附件包扩c语言程序的代码,proteus的仿真图以及keil生成的仿真文件
单片机源程序如下:
- #include<reg51.h>
- unsigned char code discode1 []={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
- unsigned char code discode2 []={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- unsigned char timer=0;
- unsigned char second;
- unsigned char key=0;
- sbit tt=P3^7;
- void delay_ms(unsigned int xmax)
- { unsigned int x,y;
- for(x=xmax;x>0;x--)
- for(y=70;y>0;y--);
- }
- main ()
- {
- TMOD=0x01;
- TH0=(65535-50000)/256;
- TL0=(65535-50000)/256;
- ET0=1;
- EA=1;
- second=0;
- P0=discode1 [second/10];
- P2=discode2 [second%10];
- while (1)
- {
- if ((P3&0x80)==0x00)
- {
-
- if(!tt)
- {
- while ((P3&0x80)==0x00);
- key++;
- }
- }
- if (second == 99)
- {
- // TR0=0;
- key=2;
- second=0;
- TR0=0;
- }
- switch (key)
- {
- case 1:
- TR0=1;
- P0=discode1 [second/10];
- delay_ms(10);
- P2=discode2 [second%10];
- delay_ms(10);
- break;
- case 2:
- TR0=0;
- break;
- case 3:
- key =0;
- timer=0;
- P0=0x3f;
- P2=0x3f;
-
- break;
-
-
- }
- }
- }
- void int_T0() interrupt 1 using 0
- {
- TR0=0;
- TH0=(65535-50000)/256;
- TL0=(65535-50000)/256;
- timer++;
- if (timer==2)
- {
- timer=0;
- second++;
- }
- }
复制代码
所有资料51hei提供下载:
miaobiao.zip
(17.15 KB, 下载次数: 63)
|