显示的秒表 C语言程序.doc

显示的秒表 C语言程序.doc

ID:56790667

大小:29.50 KB

页数:8页

时间:2020-07-11

显示的秒表 C语言程序.doc_第1页
显示的秒表 C语言程序.doc_第2页
显示的秒表 C语言程序.doc_第3页
显示的秒表 C语言程序.doc_第4页
显示的秒表 C语言程序.doc_第5页
资源描述:

《显示的秒表 C语言程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、源程序代码://名称:用1602LCD设计的秒表//说明:首先按下K1键时开始计时,自此按下时暂停,第三次按下时继续累积计时,再次按下时停止计时,K2键用于清零秒表。//#include#include#defineucharunsignedchar#defineuintunsignedint#definedelayNOP()﹛_nop_();_nop_();_nop_();_nop_();﹜//LCD控制函数voidLCD_Initialize();voidLCD_Set_POS(uc

2、har);voidLCD_Write_Date(uchar);voidDisplay_String(uchar﹡,uchar);sbitK1=P1^0;sbitK2=P1^1;sbitBEEP=P3^0;sbitLCD_RS=P2^0;sbitLCD_RW=P2^1;sbitLCD_EN=P2^2;ucharKeyCount=0;ucharcodemsg1[]=﹛〞SecondWatch0〞﹜;ucharcodemsg2[]=﹛〞>>>>0〞﹜;ucharcodePrompts[][16]={﹛〞::1---->〞﹜,﹛〞::

3、1---->::2〞﹜,﹛〞::1->2::3-->〞﹜,﹛〞::1->2::3-->4〞﹜};//计时缓冲与显示缓冲ucharTime_Buffer[]={0,0,0,0};ucharLCD_Display_Buffer[]={〞00:00:00:00〞};////蜂鸣器//voidBeep()﹛uchari,j=70;for(i=0;i<180;i++)﹛while(--j);BEEP=~BEEP;﹜BEEP=0;﹜////延时//voidDelayX(uintms){uchari;while(ms--)for(i=0;i

4、<120;i++);﹜////显示计时//voidShow_Second(){uchari;LCD_Set_POS(0x45);//设置LCD显示起点for(i=3;i!=0xff;i--);{//将两位整数的1/100s,秒,分,时转换为8位数字字符LCD_Display_Buffer[2﹡i+1]=Time_Buffer[i]/10+ˊ0ˊ;LCD_Display_Buffer[2﹡i]=Time_Buffer[i]%10+ˊ0ˊ;//在=3,2,1,0时分别显示时,分,秒,1/100sLCD_Writer_Date(LC

5、D_Display_Buffer[2﹡i+1])LCD_Writer_Date(LCD_Display_Buffer[2﹡i])LCD_Writer_Date(ˊ:ˊ)}}////Time0中断//VoidTime0()interrupt1using0{THO=-10000/256;TLO=-10000%256;Time_Buffer[0]++if(Time_Buffer[0]==100){Time_Buffer[0]=0;Time_Buffer[1]++;}if(Time_Buffer[1]==60)//秒{Time_Buf

6、fer[1]=0;Time_Buffer[2]++;}if(Time_Buffer[2]==60)//分{Time_Buffer[2]=0;Time_Buffer[3]++;}if(Time_Buffer[3]==24)//时Time_Buffer[3]=0;}////主函数//voidmain(){uchari;IE=0x82;TMOD=0x01;THO=-10000/256;TLO=-10000%256;LCD_Initialize();Display_String(msg1,0x00);Display_String(ms

7、g2,0x40);While(1){if(k1==0){DelayX(100);i=++KeyCount;switch(i){case1:case3:TRO=1;Display_String(Prompts[i-1],0);Break;case2:case4:TRO=0;Display_String(Prompts[i-1],0);break;default:TRO=0;break;}While(K1==0);//等待释放K1键Beep();}elseif(K2==0){TRO=0;KeyCount=0;for(i=0;i<4

8、;i++)Time_Buffer[i]=0;//清零计数缓冲Display_String(msg1,0);Beep();DelayX(100);while(K2==0);//等待释放K2键}Show_Second();}}////1602LCD显示驱动函数//#include

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。