c51可调10小时倒计时源程序

c51可调10小时倒计时源程序

ID:9945332

大小:39.00 KB

页数:6页

时间:2018-05-16

c51可调10小时倒计时源程序_第1页
c51可调10小时倒计时源程序_第2页
c51可调10小时倒计时源程序_第3页
c51可调10小时倒计时源程序_第4页
c51可调10小时倒计时源程序_第5页
资源描述:

《c51可调10小时倒计时源程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#includeunsignedcharsec100,sec,sec5,min,hour,flag1,command,temp,opto;unsignedchari,digit,buffer[4],onHour1,onMin1,offHour1,offMin1;charcputick,key,delay,count1;charconvert[10]={0x3F,0x0c,0x76,0x5e,0x4d,0x5b,0x7b,0x0e,0x7f,0x5f};voidp

2、ause(int);voidscanLED();voidmanualOnOff();voidsavetimeOnOff1();voidsetmin();voidsethour();voidshowOnce();voidsavetimeOff1();voidtime();voidtimeToBuffer();voidblink();voidoffmsd();voidkeyexe();voidkeydelay();voidcomparetime();voidtimer0int(void)interrupt1using

3、1{TH0

4、=0xdc;cputick++;time();}voidmain()//主运行程序//{EA=1;//打开总中断开关//ET0=1;//打开定时器中断//TMOD

5、=0x01;//定时器方式选择//TR0=1;opto=0xff;//定时开关置1//cputick=0;hour=10;min=0;sec=0;//初始开机时分秒//key=-1;flag1=0;onHour1=10;onMin1=00;//定时开关开启时间//offHour1=00;offMin1=00;//定时开关关闭时间//coun

6、t1=0;buffer[0]=0x40;buffer[1]=0x40;buffer[2]=0x40;buffer[3]=0x40;while(1){while(cputick<1)scanLED();cputick=0;timeToBuffer();blink();offmsd();keyexe();keydelay();comparetime();}}voidtime()//计时子程序//{sec100++;if(sec100>=100)//这里if构成顺序选择结构///{sec100=0;flag1

7、=0x0

8、5;temp=50;sec++;if(sec>=60){sec=0;//秒产生程序//flag1

9、=0x02;min--;if(min==-1){min=59;//分倒计时//hour--;if(hour==-1){hour=23;//时倒计时//}}}}}voidscanLED(){inti;digit=0x08;key=-1;for(i=0;i<4;i++){P3=~digit&opto;P1=~buffer[i];pause(5);P1=0xff;if((P3&0x10)==0)key=i;digit>>=

10、1;}}voidtimeToBuffer(){buffer[0]=convert[min%10];//分个位//buffer[1]=convert[min/10];//分十位//buffer[2]=convert[hour%10];//时个位//buffer[3]=convert[hour/10];//时十位//}voidblink(){if((flag1&0x04)!=0){temp--;if(temp!=0){buffer[1]

11、=0x80;buffer[2]

12、=0x80;}else(flag1&=~0x04

13、);}//if和else构成多分支选择结构,当表达式为假时,就跳过分支语句,执行后续程序/////}voidkeyexe()//键盘处理子程序//{if(key!=-1)//if如果的意思//{if((flag1&0x80)==0){flag1

14、=0x80;delay=50;//延时//switch(key)//开关和跳转语句//{case(0)://开关语句关键字//manualOnOff();break;//通常用在循环语句和开关语句中,用来跳出循环程序块//case(1):savetimeOnOff1();

15、break;case(2):setmin();break;case(3):sethour();}}}}voidsethour()//小时调整子程序//{hour--;if(hour==23)hour=0;}voidsetmin()//分钟调整子程序//{min--;sec=0;if(min==59)min=0;}voidsavetimeOnOff1(){count1++;

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

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

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