基于单片机的数字时钟程序

基于单片机的数字时钟程序

ID:18291507

大小:62.00 KB

页数:34页

时间:2018-09-16

基于单片机的数字时钟程序_第1页
基于单片机的数字时钟程序_第2页
基于单片机的数字时钟程序_第3页
基于单片机的数字时钟程序_第4页
基于单片机的数字时钟程序_第5页
资源描述:

《基于单片机的数字时钟程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于单片机的数字时钟程序#include#include#defineunitunsignedint#defineucharunsignedchar/*定义字型字位口*/#defineDIGPORTXBYTE[0x8000]#defineWORDPORTXBYTE[0x4000]/*定义P1口各管脚*/sbitK0=P1^0;sbitK1=P1^1;sbitK2=P1^2;sbitBEEP=P1^3;sbitL0=P1^4;sbitL1=P1^5;sbitL2=P1^6;sbitL3=P1^7

2、;uchardataBUFFER[2]={0,0};/*显示缓冲区(依次为低位,高位)*/uchardataCLOCK[4]={0,0,0,0};/*存放时钟时间(依次为百分秒,秒,分和时位)*/uchardataSECOND[2]={0,0};/*存放秒表时间(依次为百分秒,秒)*/uchardataREVERSE[4]={0,0,0,0};/*存放倒计时时间(依次为百分秒,秒,分和时位)*//*定义运行状态*/uchardataSTATE=0;/*STATE=0,秒表*//*STATE=1,倒计时分调整*//*STATE=2,

3、倒计时小时调整*//*STATE=3,倒计时运行*//*STATE=4or7,时钟运行*//*STATE=5,时钟分调整*//*STATE=6,时钟时调整*/bitbdataSND=0;/*秒表START*/bitbdataRST=0;/*秒表RESET*/bitbdataSTP=0;/*倒计时STOP*//*数码管显示编码"0"-"9","A","-"*/ucharcodeTABLE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x40};voiddispl

4、ay(void){uchari;/*显示缓冲区首址*/uchardelay;/*显示延时*/uchardisp;/*显示内容*/uchardigit;/*定义数码管显示位*/digit=0x08;for(i=0;i<2;i++)/*秒表,显示百分秒和秒*/{if(BUFFER[i]>100)disp=BUFFER[i]%10+10;elsedisp=BUFFER[i]%10;DIGPORT=digit;WORDPORT=TABLE[disp];for(delay=0;delay<=200;delay++);digit=digit>

5、>1;disp=BUFFER[i]/10;DIGPORT=digit;WORDPORT=TABLE[disp];for(delay=0;delay<=200;delay++);digit=digit>>1;}}voidtimer0(void)interrupt1using1{/*重置定时初值*/TH0=-5000/256;TL0=-5000%256;/*时钟处理*/CLOCK[0]=CLOCK[0]+1;if((CLOCK[0]==50)&&(STATE>=4)){L0=!L0;}if(CLOCK[0]==100){if(STAT

6、E>=4)L0=!L0;CLOCK[0]=0;CLOCK[1]=CLOCK[1]+1;if(CLOCK[1]==60){CLOCK[1]=0;CLOCK[2]=CLOCK[2]+1;if(CLOCK[2]==60){CLOCK[2]=0;CLOCK[3]=CLOCK[3]+1;if(CLOCK[3]==24){CLOCK[3]=0;}}}}}voidtimer2(void)interrupt5using3{TF2=0;TH2=-5000/256;TL2=-5000%256;/*秒表处理*/if(STATE==0){SECOND[0

7、]=SECOND[0]+1;if(SECOND[0]==50){L1=!L1;}if(SECOND[0]==100){L1=!L1;SECOND[0]=0;SECOND[1]=SECOND[1]+1;if(SECOND[1]==100){SECOND[1]=0;}}}/*倒计时处理*/if(STATE==3){REVERSE[0]=REVERSE[0]+1;if(REVERSE[0]==50){L2=!L2;}if(REVERSE[0]==100){L2=!L2;REVERSE[0]=0;REVERSE[1]=REVERSE[1]

8、+1;if(REVERSE[1]==60){REVERSE[1]=00;REVERSE[2]=REVERSE[2]-1;if((REVERSE[2]==0)&&(REVERSE[3]==0)){TR2=0;STP=1;BEEP=0;}elseif(

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

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

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