发布时间 : 星期一 文章自行车测速仪的设计毕业论文更新完毕开始阅读f79f8bc25122aaea998fcc22bcd126fff7055d1c
附录2 源程序
#include
sbit scan = P3^2; //低电平输入 sbit key0=P1^2; sbit key1=P1^3; uchar com,inf,num=0; int temper=0;
uchar code table[]=%uchar ncounter; //转数 long int scounter;
uchar T0counter; //T0 50ms计数 uchar SECsign; //秒信号 uchar speed; //速度 uchar cflag; //计数允许 uchar s=0; uchar sk=0;
//以米为单位的路程 //以千米为单位的路程
uchar t_sec=0x00,sec1,sec2; uchar t_min=0x59,min1,min2; uchar t_hr=0x20,hr1,hr2;
/***************************************
lcd1602的初始化程序
***************************************/ void delay(uint z) { }
BOOL lcd_bz()
{ // 测试LCD忙碌状态 BOOL result; lcdrs= 0; lcdrw= 1; lcden = 1; _nop_(); _nop_(); _nop_(); _nop_();
result = (BOOL)(P0&0x80); lcden = 0; return result; }
void write_com(uchar com) //写命令 { }
void write_dat1(uchar dat1) //写数据 {
lcd_bz(); lcdrs=0; lcdrw=0; lcden=0; P0=com; delay(12); lcden=1; delay(12); lcden=0; uchar x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
//lcd的延时程序
}
lcd_bz(); lcdrs=1; lcdrw=0; lcden=0; P0=dat1; delay(60); lcden=1; delay(60); lcden=0;
//lcd初始化
void init_lcd() { }
lcden=0;
write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01);
//清屏
//光标控制
//以下是ds18b20的控制程序 /*-----------------------*/
void delay18b20(uint time) //ds18b20的延时程序 { }
uchar reset() //复位子程序 {
uchar presence; dq=0;
delay18b20(29); dq=1; delay18b20(3); presence=dq; delay18b20(25); uint i,j;
for(i=0;i