- #include<reg52.h>
- #define LEDPort P0
- #define DataPort P1
- sbit LATCH1=P2^2;
- sbit LATCH2=P2^3;
- unsigned char code dofly_ShiWei[8]{ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07 };
- unsigned char code dofly_GeWei[10]{ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- unsigned char TempData[8]
- unsigned int num=0,cnt=0;
- void Delay(unsigned char t);
- void Display(unsigned char FirstBit,unsigned char Num);
- void Init_Timer0(void);
- void mian()
- {
- TMOD=0X01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- Init_Timer0();
- Timer0_isr();
- LEDPort=0x09;
- DataPort = 0x3f;
- unsigned char num=70,cnt=0;
- while(1)
- {
- cnt=++;
- if(cnt==20)
- {
- cnt=0;
- num--;
- if(LEDPory==0x09&&num<=10)
- {
- LEDPort=0x08;
- Delay(50000);
- LEDPort=0x09;
- Delay(5000));
- }
- if(LEDPort==0x09&&num<1)
- {
- num=5;
- LEDPort=0x10;
- }
- if(LEDPort==0x10&&num<1)
- {
- num=50;
- LEDPort=0x06;
- }
- if(LEDPort==0x06&&num<=10)
- {
- LEDPort=0x02;
- Delay(50000);
- LEDPort=0x06;
- Delay(50000);
- }
- if(LEDPort==0x06&&num<1)
- {
- num=70;
- LEDPort==0x09;
- }
- TempData[0]dofly_ShiWei[num/10];
- TempData[1]dofly_GeWei[num%10];
- Display(2,2)
- }
- }
- }
- void Delay(unsigned int t)
- {
- unsigned int j,k;
- for(j=0;j<t;j++)
- for(k=0;j<1821;k++);
- }
- void Init_Timer0(void)
- {
- TMOD|=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- }
- void Timer0_isr(void) interrupt 1 ()
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- Display(0,8);
- }
- void Display(unsigned char FirstBit,unsigned char Num)
- {
- static unsigned char i=0;
- DataPort=0;
- LATCH1=1;
- LATCH1=0;
-
- DataPort=dofly_WeiMa[i+FirstBit];
- LATCH2=1;
- LATCH2=0;
-
- DataPort=TempData[i];
- LATCH1=1;
- LATCH1=0;
-
- i++;
- if(i==Num)
- i=0;
- }
復制代碼 |