资源描述:
《郭天祥老师的程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/******************************************************************“天祥电子”倾情奉献www.txmcu.cnwww.txmcu.com按键功能简介S16矫正时间S17继续计时S18设置定时S19取消定时S6--S15分别为数字键0--9********************************************************************该例程为数码管显示可调且可定时钟表,用到TX-1C开发板中矩阵键盘的上三排与第四排前两个按键。若要更改时钟初
2、始值(即时钟校准),可先按下矩阵键盘中的S16键(第三排第三列),此时时钟会暂停。然后按S6---S15中的键修改矫正当前值,S6--S15分别先后对应数字0到9。矫正完后,按下S17(第三排最后一个),时钟可继续工作。若要设置定时时间,可先按下S18(第四排第一个),然后按数字键S6--S15设置定时时间(设置顺序是由高位到低位的顺序),设置完定时后,按下S17可恢复到正常计时状态定时时间到,蜂鸣器会持续响一分钟报时。若要取消定时,或者蜂鸣器响时想对其关闭,可以按下S19功能键。注意晶振需为11.0592M。若为其他数值晶振,请合理改变TH0
3、与TL0参数值,否则计时会有很大误差。***********************************************************************************************************************/#include#defineucharunsignedcharsbitdula=P2^6;sbitwela=P2^7;sbitbeep=P2^3;unsignedcharj,k,a1,a0,b1,b0,c1,c0,s,f,m,key=10,temp,q
4、q;ucharshi20,shi10,fen20,fen10,miao20,miao10,ok=1,wei,dingshi,change,yidingshi;ucharbaoshi,baoshijieshu;unsignedintpp;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelay(unsignedchari){for(j=i;j>0;j--)for(k=125;
5、k>0;k--);}voiddisplay(ucharshi2,ucharshi1,ucharfen2,ucharfen1,ucharmiao2,ucharmiao1){dula=0;P0=table[shi2];dula=1;dula=0;wela=0;P0=0xfe;wela=1;wela=0;delay(5);P0=table[shi1]
6、0x80;dula=1;dula=0;P0=0xfd;wela=1;wela=0;delay(5);P0=table[fen2];dula=1;dula=0;P0=0xfb;wela=1;wela=0;
7、delay(5);P0=table[fen1]
8、0x80;dula=1;dula=0;P0=0xf7;wela=1;wela=0;delay(5);P0=table[miao2];dula=1;dula=0;P0=0xef;wela=1;wela=0;delay(5);P0=table[miao1];dula=1;dula=0;P0=0xdf;wela=1;wela=0;delay(5);}voidkeyscan0(){P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp
9、!=0xf0){temp=P3;switch(temp){case0xbb:ok=0;change=1;break;case0x7b:ok=1;change=0;dingshi=0;break;}}}P3=0xf7;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=P3;switch(temp){case0xe7:ok=0;dingshi=1;break;case0xd7:yidingshi=0;//取消定时break;}}}}voidkeyscan(){{P
10、3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0){delay(10);if(temp!=0xf0){temp=