標(biāo)題: 自行車測(cè)速源程序 [打印本頁]
作者: 上帝視角 時(shí)間: 2017-5-15 21:31
標(biāo)題: 自行車測(cè)速源程序
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=60;b>0;b--);
}
sbit LcdRs = P2^0;
sbit LcdRw = P2^1;
sbit LcdEn = P2^2;
#define DBPort P0
#define LCD_COMMAND 0
#define LCD_DATA 1
#define LCD_CLEAR_SCREEN 0x01
#define LCD_HOMING 0x02
void LCD_Write(bit style, unsigned char input)
{
LcdRs=style;
LcdRw=0;
DBPort=input;
delay(5);
LcdEn=1;
delay(5);
LcdEn=0;
}
#define LCD_SHOW 0x04
#define LCD_HIDE 0x00
#define LCD_CURSOR 0x02
#define LCD_NO_CURSOR 0x00
#define LCD_FLASH 0x01
#define LCD_NO_FLASH 0x00
void LCD_SetDisplay(unsigned char DisplayMode)
{
LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
}
#define LCD_AC_UP 0x02
#define LCD_AC_DOWN 0x00
#define LCD_MOVE 0x01
#define LCD_NO_MOVE 0x00
void LCD_SetInput(unsigned char InputMode)
{
LCD_Write(LCD_COMMAND, 0x04|InputMode);
}
void LCD_Initial()
{
LcdEn=0;
LCD_Write(LCD_COMMAND,0x38);
delay(5);
LCD_Write(LCD_COMMAND,0x38);
delay(5);
LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);
delay(5);
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);
delay(5);
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);
delay(5);
}
void GotoXY(unsigned char x, unsigned char y)
{
if(y==0)
LCD_Write(LCD_COMMAND,0x80|x);
if(y==1)
LCD_Write(LCD_COMMAND,0x80|(x-0x40));
}
void Print(unsigned char *str)
{
while(*str)
{
LCD_Write(LCD_DATA,*str);
str++;
delay(1);
}
}
void Timer1Init(void) //50ms@12.000MHz
{
TMOD &= 0x0F;
TMOD |= 0x10;
TL1 = 0xB0;
TH1 = 0x3C;
TF1 = 0;
TR1 = 1;
ET1=1;
EA=1;
}
unsigned char count=0;
unsigned int speed=0;
long temp1=0,temp2=0;
long s=0;
void Timer1_IRQ() interrupt 3
{
TR1 = 0;
TL1 = 0xB0;
TH1 = 0x3C;
TR1 = 1;
count++;
if(count==10)
{
temp2=TH0;
temp2<<=8;
temp2+=TL0;
if(temp2<temp1) s+=65535;
speed=(temp2-temp1)*5;
temp1=temp2;
count=0;
}
}
void Count0Init(void)
{
TMOD &= 0xF0;
TMOD |= 0x05;
TL0 = 0;
TH0 = 0;
TF0 = 0;
TR0 = 1;
}
unsigned int c=20;
long u=0;
sbit k1=P3^0;
sbit k2=P3^1;
void main()
{
Timer1Init();
Count0Init();
LCD_Initial();
while(1)
{
GotoXY(0,0);
Print("V:");
LCD_Write(1,speed/100+0x30);
LCD_Write(1,speed%100/10+0x30);
LCD_Write(1,'.');
LCD_Write(1,speed%10+0x30);
LCD_Write(1,' ');
Print("C:");
LCD_Write(1,c/100+0x30);
LCD_Write(1,c%100/10+0x30);
LCD_Write(1,'.');
LCD_Write(1,c%10+0x30);
Print("CM");
GotoXY(1,1);
Print("Total:");
u=(s+temp1)*c/40;
LCD_Write(1,u/100000+0x30);
LCD_Write(1,u%100000/10000+0x30);
LCD_Write(1,u%10000/1000+0x30);
LCD_Write(1,u%1000/100+0x30);
LCD_Write(1,'.');
LCD_Write(1,u%100/10+0x30);
LCD_Write(1,'M');
if(k2==0)
{
delay(5);
if(k2==0)
{
while(k2==0);
c++;
}
}
if(k1==0)
{
delay(5);
if(k1==0)
{
while(k2==0);
if(c>0) c--;
}
}
}
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
日韩精品亚洲专区在线观看
|
国产一区|
成人在线观|
日韩精品免费一区
|
4h影视|
国产精品久久久久aaaa
|
av大全在线观看
|
黑人巨大精品欧美一区二区一视频
|
国产蜜臀97一区二区三区
|
天堂一区二区三区
|
天天操天天玩
|
久久久久久久国产
|
国产精品一区二区在线免费观看
|
久久国产精品一区二区三区
|
一区二区三区视频在线
|
综合久|
精品国产欧美一区二区三区不卡
|
国产一级视频免费播放
|
成人在线一区二区三区
|
久久com
|
欧美一区永久视频免费观看
|
国产精品久久久亚洲
|
精品伊人久久
|
99re国产精品
|
久久久成人一区二区免费影院
|
在线啊v
|
久久91av
|
亚洲精品一二三区
|
91久久精品国产91久久性色tv
|
在线观看国产wwwa级羞羞视频
|
aaa一区
|
av永久|
欧美一区二区三区在线免费观看
|
中文字幕一区二区三区精彩视频
|
一区免费看|
欧美成人免费在线视频
|
国产乱码高清区二区三区在线
|
精品一二三区视频
|
色婷婷久久久亚洲一区二区三区
|
波多野结衣精品在线
|
中文字幕在线看
|