- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit key1=P2^6;
- sbit key3=P1^4;
- sbit key4=P1^5;
- sbit key5=P1^6;
- sbit key6=P1^7;
- sbit fmq=P3^7;
- sbit jdq=P3^6;
- void chushihua();
- void chushihua1();
- void xianshi();
- void xianshi1();
- void xianshi2();
- void delay(unsigned int xms);
- uint a=0,b=1;
- unsigned long int shu=0,shu1=0;
- uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- #define duan P0
- sbit wei1=P2^0;
- sbit wei2=P2^1;
- sbit wei3=P2^2;
- sbit wei4=P2^3;
- sbit wei5=P2^4;
- sbit wei6=P2^5;
- sbit wei11=P1^0;
- sbit wei12=P1^1;
- sbit wei13=P1^2;
- sbit wei14=P1^3;
- void main()
- { EA=1;
- EX0=1;
- EX1=1;
- IT0=0;
- chushihua1();
- chushihua();
- while(1)
- {xianshi();
- if(shu==shu1)
- {while(1)
- {TR0=0;
- fmq=0;
- jdq=0;
- xianshi();
- }
- }
- }
- }
- void chushihua()
- { shu=0;
- TMOD=0x01;
- TH0=(65536-46100)/256;
- TL0=(65536-46100)%256;
- EA=1;
- ET0=1;
- TR0=1;
- }
- void chushihua1()
- {while(b)
- {xianshi1();
- if(key1==0)
- { delay(10);
- if(key1==0)
- {b=0;
- }
- }
- while(!key1);
- delay(1);
- while(!key1);
- if(key5==0)
- {delay(10);
- if(key5==0)
- {shu1=shu1+3600;
- }
- }
- while(!key5);
- delay(1);
- while(!key5);
- if(key3==0)
- {delay(10);
- if(key3==0)
- {shu1=shu1-3600;
- }
- }
- while(!key3);
- delay(1);
- while(!key3);
- if(key6==0)
- {delay(10);
- if(key6==0)
- {shu1=shu1+60;
- }
- }
- while(!key6);
- delay(1);
- while(!key6);
- if(key4==0)
- {delay(10);
- if(key4==0)
- {shu1=shu1-60;
- }
- }
- while(!key4);
- delay(1);
- while(!key4);
- }
- }
- void dingshiqi0() interrupt 1//定時器0中斷子程序 不需聲明
- { TH0=(65536-46100)/256;
- TL0=(65536-46100)%256;
- a++;
- if(a==20)
- {a=0;
- shu++;
- }
- }
- void xianshi()
- { unsigned int sw,w,q,b,s,g;
- xianshi2();
- sw=shu%360000/36000;
- duan=table[sw];
- wei6=1;
- wei5=0;
- wei4=0;
- wei3=0;
- wei2=0;
- wei1=0;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(1);
- w=shu%36000/3600;
- duan=table[w];
- wei6=0;
- wei5=1;
- wei4=0;
- wei3=0;
- wei2=0;
- wei1=0;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(1);
- q=shu%3600/600;
- duan=table[q];
- wei6=0;
- wei5=0;
- wei4=1;
- wei3=0;
- wei2=0;
- wei1=0;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(1);
- b=shu%600/60;
- duan=table[b];
- wei6=0;
- wei5=0;
- wei4=0;
- wei3=1;
- wei2=0;
- wei1=0;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(1);
- s=shu%60/10;
- duan=table[s];
- wei6=0;
- wei5=0;
- wei4=0;
- wei3=0;
- wei2=1;
- wei1=0;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(1);
- g=shu%10;
- duan=table[g];
- wei6=0;
- wei5=0;
- wei4=0;
- wei3=0;
- wei2=0;
- wei1=1;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(1);
- }
- void xianshi1()
- { unsigned int q,b,s,g;
- duan=table[0];
- wei1=1;
- wei2=1;
- wei3=1;
- wei4=1;
- wei5=1;
- wei6=1;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(2);
- q=shu1%360000/36000;;
- duan=table[q];
- wei14=1;
- wei13=0;
- wei12=0;
- wei11=0;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=0;
- wei5=0;
- wei6=0;
- delay(1);
- duan=table[0];
- wei1=1;
- wei2=1;
- wei3=1;
- wei4=1;
- wei5=1;
- wei6=1;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(2);
- b=shu1%36000/3600;
- duan=table[b];
- wei14=0;
- wei13=1;
- wei12=0;
- wei11=0;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=0;
- wei5=0;
- wei6=0;
- delay(1);
- duan=table[0];
- wei1=1;
- wei2=1;
- wei3=1;
- wei4=1;
- wei5=1;
- wei6=1;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(2);
- s=shu1%3600/600;
- duan=table[s];
- wei14=0;
- wei13=0;
- wei12=1;
- wei11=0;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=0;
- wei5=0;
- wei6=0;
- delay(1);
- duan=table[0];
- wei1=1;
- wei2=1;
- wei3=1;
- wei4=1;
- wei5=1;
- wei6=1;
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=0;
- delay(2);
- g=shu1%600/60;
- duan=table[g];
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=1;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=0;
- wei5=0;
- wei6=0;
- delay(1);
- }
- void xianshi2()
- { unsigned int q,b,s,g;
- q=shu1%360000/36000;;
- duan=table[q];
- wei14=1;
- wei13=0;
- wei12=0;
- wei11=0;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=0;
- wei5=0;
- wei6=0;
- delay(1);
- b=shu1%36000/3600;
- duan=table[b];
- wei14=0;
- wei13=1;
- wei12=0;
- wei11=0;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=0;
- wei5=0;
- wei6=0;
- delay(1);
- s=shu1%3600/600;
- duan=table[s];
- wei14=0;
- wei13=0;
- wei12=1;
- wei11=0;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=0;
- wei5=0;
- wei6=0;
- delay(1);
- g=shu1%600/60;
- duan=table[g];
- wei14=0;
- wei13=0;
- wei12=0;
- wei11=1;
- wei1=0;
- wei2=0;
- wei3=0;
- wei4=0;
- wei5=0;
- wei6=0;
- delay(1);
- }
- void delay(unsigned int xms)
- {unsigned int i,j;
- for(i=xms;i>0;i--)
- for(j=114;j>0;j--);
- }
- void waibuzhongduan0() interrupt 0//外部中斷0子程序 不需聲明
- {while(1)
- {TR0=0;
- fmq=0;
- jdq=0;
- xianshi();
- }
- }
- void waibuzhongduan1() interrupt 2//外部中斷1子程序 不需聲明
- {while(1)
- {TR0=0;
- fmq=0;
- jdq=0;
- xianshi();
- }
- }
復制代碼
|