仿真文件图片
附上源代码:
- #include <AT89C51.H>
- unsigned char codedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- unsigned char codedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
- 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
- unsigned chardispbuf[8]={0,0,0,0,0,0,10,10};
- unsigned char temp[8];
- unsigned chardispcount;
- unsigned charT0count;
- unsigned chartimecount;
- bit flag;
- unsigned longx;
-
- voidmain(void) //主函数
- {
- unsigned char i;
-
- TMOD=0x15;
- TH0=0;
- TL0=0;
- TH1=(65536-5000)/256;
- TL1=(65536-5000)%256;
- TR1=1;
- TR0=1;
- ET0=1;
- ET1=1;
- EA=1;
-
- while(1)
- {
- if(flag==1)
- {
- flag=0;
- x=T0count*65536+TH0*256+TL0;
- for(i=0;i<8;i++)
- {
- temp[ i]=0;
- }
- i=0;
- while(x/10)
- {
- temp[ i]=x%10;
- x=x/10;
- i++;
- }
- temp[ i]=x;
- for(i=0;i<6;i++)
- {
- dispbuf=temp[ i];
- }
- timecount=0;
- T0count=0;
- TH0=0;
- TL0=0;
- TR0=1;
- }
- }
- }
-
- void t0(void)interrupt 1 using 0 //中断1模块的函数编写
- {
- T0count++;
- }
-
- void t1(void)interrupt 3 using 0 //中断3模块的函数编写
- {
- TH1=(65536-5000)/256;
- TL1=(65536-5000)%256;
- timecount++;
- if(timecount==200)
- {
- TR0=0;
- timecount=0;
- flag=1;
- }
- P2=0xff;
- P0=dispcode[dispbuf[dispcount]];
- P2=dispbit[dispcount];
- dispcount++;
- if(dispcount==8)
- {
- dispcount=0;
- }
- }
复制代码
全部资料51hei下载地址:
新建文件夹.rar
(15.49 KB, 下载次数: 125)
|