发布时间 : 星期三 文章自行车测速仪的设计毕业论文更新完毕开始阅读f79f8bc25122aaea998fcc22bcd126fff7055d1c
}
shiwei=asc/10; BCD=shiwei*16+gewei;
return BCD; lcd_display() {
/***********************************
时间显示及其控制程序 t_sec=read_ds1302(0x81); sec1=t_sec&0x0f; sec2=t_sec>>4;
t_min=read_ds1302(0x83); min1=t_min&0x0f; min2=t_min>>4; t_min=min2*10+min1; t_hr=read_ds1302(0x85); hr1=t_hr&0x0f; hr2=t_hr>>4; t_hr=hr2*10+hr1; write_com(0x80+0x4e); write_dat1(table[sec2]); write_com(0x80+0x4f); write_dat1(table[sec1]); write_com(0x80+0x4d); write_dat1(':'); write_com(0x80+0x4c); write_dat1(table[min1]); write_com(0x80+0x4b); write_dat1(table[min2]); write_com(0x80+0x4a); write_dat1(':'); write_com(0x80+0x49); write_dat1(table[hr1]); write_com(0x80+0x48);
************************************/
write_dat1(table[hr2]); /*测速静态显示*/ write_com( 0x80+0x46 );
write_dat1( 'k' ); write_com( 0x80+0x47 ); write_dat1( 'm' );
write_com( 0x80+0x05 );
write_dat1( 'm' ); write_com( 0x80+0x06 ); write_dat1( '/' );
write_com( 0x80+0x07 );
write_dat1( 's' );
/***************************************
温度显示及其控制程序
***************************************/
write_com(0x80+0x09); write_dat1('T'); delay(200);
write_com(0x80+0x0a); write_dat1(':'); delay(200); temper=read_temp(); if(temper<0) { } {
temper=0-temper; write_com(0x80+0x0b); write_dat1('-'); delay(200);
write_com(0x80+0x0f);
write_dat1(((temper+0x01)&0x000f)*62.5/100+0x30); else
write_com(0x80+0x0b); write_dat1('+');
delay(200);
write_com(0x80+0x0f);
write_dat1((temper&0x000f)*62.5/100+0x30); }
write_com(0x80+0x0c);
write_dat1((temper>>4)0/10+0x30); write_com(0x80+0x0d);
write_dat1((temper>>4)+0x30); write_com(0x80+0x0e); write_dat1('.');
/***************************************
测速控制程序
*************************************/
if( SECsign ) \\
{
dis_mileage( );
speed =1.1* ncounter; //周长为2.2M,两个霍尔传感器,一圈两个信号
ncounter = 0; dis_speed( ); SECsign = 0; TR0 = 1;
//显示完后启动计数,减小误差 EA=1; }
/***************************************
主函数
************************************/ void main() {
initialize( ); init_lcd( ); init_timer0( ); }
init_lcd(); delay(5); init_1302(); delay(5); P1=0xff; P3=0xff; while(1) { if(key0==0)
{ {
t_hr++; delay(20); if(t_hr>=24)
t_hr=0; delay(50); if(key0==0)
{ }
t_hr=TOBCD(t_hr);
while(!key0);
write_ds1302(0x8e,0x00);//关闭写保护 write_ds1302(0x84,t_hr);//时
write_ds1302(0x8e,0x80);//打开写保护
}
if(key1==0) {
delay(50); if(key1==0) {
t_min++; delay(20); if(t_min>=60) { }