资源描述:
《单片机电子时钟设计程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《单片机电子时钟》程序3.3设计程序sbitsmg1=P2^5;//位码1声明sbitsmg2=P2^4;//位码2声明sbitsmg3=P2^3;//位码3声明sbitsmg4=P2^2;//位码4声明sbitsmg5=P2^1;//位码5声明sbitsmg6=P2^0;//位码6声明sbitk1=P3^4;//按键k1的声明sbitk2=P3^5;//按键k2的声明sbitk3=P3^6;//按键k3的声明sbitbeep=P2^7;//蜂鸣器声明/*定义一些变量*/chard=0,e=0,a=0,b=0,n=0,shi=12,fen=0,miao=0,s_shi=6,f_f
2、en=30,m_miao=0;charcodetable[]={//共阳级数码管码表0-90xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidinit();voiddelay(intz);voiddisplay(chars,f,m);voidkey();voidmain(){init();while(1){if(d==0)key();if(shi==b_shi&&fen==b_fen){if(d==1&&!(k1&k2&k3)){e=1;d=0;}if(e==0){d=1;beep=0;delay(10);beep=1;}
3、}if(n==0
4、
5、n==1
6、
7、n==2)display(shi,fen,miao);if(n==3
8、
9、n==4)display(S_shi,F_fen,M_miao);}}voidinit(){IE=0X8a;//10001010TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;TH1=(65536-50000)/256;TL1=(65536-50000)%256;TR1=1;}voidtimer0()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256
10、;a++;if(a==20){a=0;miao++;if(miao==60){miao=0;fen++;e=0;if(fen==60){fen=0;shi++;if(shi==24){shi=0;}}}}}voidtimer1()interrupt3{TH1=(65536-50000)/256;TL1=(65536-50000)%256;b++;if(b==20)b=0;}voiddisplay(chars,f,m){smg1=0;P1=table[s/10];delay(1);smg1=1;P1=0Xff;if(b<10&&(n==1
11、
12、n==3)){smg2=1;P1=0Xf
13、f;}else{smg2=0;P1=table[s%10];delay(1);smg2=1;P1=0Xff;}smg3=0P1=table[f/10];delay(1);smg3=1;P1=0Xff;if(b<10&&(n==2
14、
15、n==4)){smg4=1;P1=0Xff;}else{smg4=0;P1=table[f%10];delay(1);smg4=1;P1=0Xff;}smg5=0;P1=table[m/10];delay(1);smg5=1;P1=0Xff;smg6=0;P1=table[m%10];delay(1);smg6=1;P1=0Xff;}voiddelay
16、(intz){intx,y;for(x=z;x>0;x--)for(y=110;y>0;y--)}voidkey(){if(k1==0){delay(5);if(k1==0){n++;if(n>4)n=0;while(k1==0);}}if(n==0){TR0=1;}if(n==1){TR0=0;if(k2==0){delay(5);if(k2==0){shi++;if(shi==24)shi=0;while(k2==0);}}if(k3==0){delay(5);if(k3==0){shi--;if(shi<0)shi=23;while(k3==0);}}}if(n==2){T
17、R0=0;0if(k2==0){delay(5);if(k2==0){fen++;if(fen==60)fen=0;while(k2==0);}}if(k3==0){delay(5);if(k3==0){fen--;if(fen<0)fen=59;while(k3==0);}}}if(n==3){TR0=1;if(k2==0){delay(5);if(k2==0){s_shi++;if(b_shi==24)s_shi=0;while(k2==0);}}if(k3==0){dela