- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- uint a,b,c,d,e,f,g;
- uchar temp,ge,shi;
- sbit wei = P2^7;
- sbit duang=P2^6;
- uchar code leddata[]={
- 0x3F, //"0"
- 0x06, //"1"
- 0x5B, //"2"
- 0x4F, //"3"
- 0x66, //"4"
- 0x6D, //"5"
- 0x7D, //"6"
- 0x07, //"7"
- 0x7F, //"8"
- 0x6F, //"9"
- 0x77, //"A"
- 0x7C, //"B"
- 0x39, //"C"
- 0x5E, //"D"
- 0x79, //"E"
- 0x71, //"F"
- 0x76, //"H"
- 0x38, //"L"
- 0x37, //"n"
- 0x3E, //"u"
- 0x73, //"P"
- 0x5C, //"o"
- 0x40, //"-"
- 0x00, //熄灭
- 0x00 //自定义
- };
- void delay();
- void delay(uint z)
- {
- for(a = z;a > 0;a--)
- for(b = 114;b > 0;b--);
- }
- void dishzhdu()
- {
- TMOD=0x10;
- TH1 =0x4b;
- TL1 =0xfd;
- TR1 = 1; //50MS
- EA = 1;
- ET1 = 1;
-
- }
- void wabuzhdu()
- {
- EX0 = 1;
- IT0 = 0;
- EA = 1;
- TMOD=0x01;
- TH0 =0x4b;
- TL0 =0xfd; //50ms
- TR0 = 1;
- }
- void display(uint f )
- { ge = f%10;
- shi= f/10;
- P0 = 0xff;
- wei= 1;
- P0 = 0xfd;
- wei= 0;
- duang= 1;
- P0 = leddata[ge];
- duang= 0;
- delay(1);
- P0 = 0xff;
- wei= 1;
- P0 = 0xfe;
- wei= 0;
- duang= 1;
- P0 = leddata[shi];
- duang= 0;
- delay(1);
- }
- void main()
- {
- temp = 0xfe;
- P1 = temp;
- dishzhdu();
- wabuzhdu();
- while (1)
- { TR0 = 1;
- if(TF0 == 1)
- { TH0 =0x4b;
- TL0 =0xfd;
- TF0 = 0;
- c++;
- if(c == 20)
- {
- c = 0;
- d++;
- if(d >= 90)
- {
- d = 0;
- }
- display(d);
- }
- }
-
-
- }
- }
- void dszd0() interrupt 3
- {
- TH1 =0x4b;
- TL1 =0x7d;
- e++;
-
- if(e == 10)
- {
- e = 0;
- temp = _cror_(temp,1);
- P1 = temp;
- }
- }
- void wbzd() interrupt 0
- {
- TR0 = 0;
- delay(1);
- }
复制代码
|