自行车测速仪的设计毕业论文 联系客服

发布时间 : 星期一 文章自行车测速仪的设计毕业论文更新完毕开始阅读f79f8bc25122aaea998fcc22bcd126fff7055d1c

附录2 源程序

#include #include typedef unsigned char uchar; typedef unsigned int uint; typedef bit BOOL; sbit lcdrs=P2^6; sbit lcden=P2^7; sbit lcdrw=P2^1; sbit ds_rst=P2^5; sbit ds_io=P2^4; sbit ds_clk=P2^3; sbit ACC0=ACC^0; sbit ACC7=ACC^7; sbit dq=P2^2;

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

for(j=0;j<1;j++);

}

return(presence);

uchar read_bit() //读位 { }

void write_bit(uchar dat) //写位 { }

uchar read_byte() { }

void write_byte(uchar dat) {

uchar i,j; for(i=0;i<8;i++) {

//写字节

uchar dat=0; uchar i; for(i=0;i<8;i++) { }

return(dat);

if(read_bit())

dat|=0x01<

//读字节

dq=0; if(dat==1)

dq=1; delay18b20(5); dq=1; uchar i; dq=0; dq=1;

for(i=0;i<3;i++) return(dq);