#include <REG51.H>-
#define uchar unsigned char- #define uint unsigned int- sbit cun_1=P0^6;//段選的鎖存器使能端;- sbit cun_2=P0^7;//位選的鎖存器使能端;- uchar num,a,bai,shi,ge;- void delay(uint z);- void display(uchar bai,uchar shi,uchar ge);- void init();- uchar code table[]={- 0x3f,0x06,0x5b,0x4f,- 0x66,0x6d,0x7d,0x07,- 0x7f,0x6f,0x77,0x7c,- 0x39,0x5e,0x79,0x71};- main()- {- init();- while(1)- { - if(a==20)- {- a=0;- num--;- if(num==0)- num=100;- bai=num/100;- shi=num%100/10;- ge=num%10;- }- display(bai,shi,ge);- }- }- void display(uchar bai,uchar shi,uchar ge)- {- cun_2=1;- P2=~0XFE;- cun_2=0;- cun_1=1;- P1=~table[bai];- cun_1=0;- delay(2);- cun_2=1;- P2=~0XFd;- cun_2=0;- cun_1=1;- P1=~table[shi];- cun_1=0;- delay(2);- cun_2=1;- P2=~0XFb;- cun_2=0;- cun_1=1;- P1=~table[ge];- cun_1=0;- delay(2);- }- void delay(uint z)- {- uint x,y;- for(x=z;x>0;x--)- for(y=1000;y>0;y--);- }- void init()- {- num=101;- TMOD=0x01;- TH0=(65536-50000)/256;- TL0=(65536-50000)%256;- EA=1;- ET0=1;- TR0=1;- }- void time_0() interrupt 1- {- TH0=(65536-50000)/256;- TL0=(65536-50000)%256;- a++;- }- |