你的程序有缺陷,給你改了一下,你試試。
- #include <reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- //uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- uchar code DSY_CODE[]={0xa4,0xc0,0xf9,0x80};
- uchar code wei[]={0x80,0x40,0x20,0x10};
- unsigned char const xuehao[]={
- 0x00,0x00,0xFE,0x82,0x82,0x82,0xFE,0x00, //0
- 0x00,0x00,0x84,0x82,0xFF,0x80,0x80,0x00, //1
- 0x00,0x00,0xF2,0x92,0x92,0x92,0x9E,0x00, //2
- 0x00,0x00,0x92,0x92,0x92,0xFE,0x00,0x00, //3
- 0x00,0x20,0x30,0x28,0x24,0xFE,0x20,0x00, //4
- 0x00,0x00,0x9E,0x92,0x92,0x92,0xF2,0x00, //5
- 0x00,0x00,0xFE,0x92,0x92,0x92,0xF2,0x00, //6
- 0x00,0x00,0x00,0x02,0x02,0x02,0xFE,0x00, //7
- 0x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00, //8
- 0x00,0x32,0x49,0x49,0x49,0x3e,0x00,0x00 //9
- };
- unsigned char code lie[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- void DelayMS(uint x)
- {
- uchar t;
- while(x--) for(t=0;t<120;t++);
- }
- /*
- void Timer1Init()
- {
- TMOD|=0X10;//選擇為定時(shí)器1模式,工作方式1,僅用TR1打開(kāi)啟動(dòng)。
- TH1=0XFC; //給定時(shí)器賦初值,定時(shí)1ms
- TL1=0X18;
- ET1=1;//打開(kāi)定時(shí)器1中斷允許
- EA=1;//打開(kāi)總中斷
- TR1=1;//打開(kāi)定時(shí)器
- }
- */
- void main()
- {
- uchar i;
- uchar t,j,k;
- //Timer1Init(); //定時(shí)器1初始化
- while(1)
- {
- //for(i=0;i<4;i++)
- //{
- // DelayMS(10);
- //}
- for(t=0;t<10;t++)
- {
- for(j=0;j<30;j++)
- {
- for(k=0;k<8;k++)
- {
- P2=lie[k];
- P0=~xuehao[t*8+k];
- DelayMS(2);
- P3=0x00; //關(guān)閉顯示
- P1=DSY_CODE[ k/2]; //發(fā)送數(shù)字段碼
- P3=wei[ k/2];
- }
- }
- }
- }
- }
- /*
- void Timer1() interrupt 3
- {
- TH1=0XFC; //給定時(shí)器賦初值,定時(shí)1ms
- TL1=0X18;
- }
- */
復(fù)制代碼 |