单片机计时器仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- sbit key=P3^0;
- sbit ge=P2^7;
- sbit shi=P2^6;
- uchar time=0,count=0;
- uchar code dis[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
- uchar code dis_dot[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
- void delay (uchar N)
- {
- uchar i,j;
- for(i=0;i<N;i++)
- for(j=0;j<125;j++);
- }
- void display(void)
- {
- P0=dis[time%10];
- ge=0;
- delay(3);
- ge=1;
- P0=dis_dot[time/10];
- shi=0;
- delay(3);
- shi=1;
- }
- void main()
- {
- TMOD=0x01;TH0=0x3c;TL0=0xb0;IE=0x82;//定时器0工作方式1
- while(1)
- {
- while(key==1)
- display();
- TR0=1;
- EA=1;
- while(key==0)
- display();
- while(key==1)
- display();
- EA=0;
- while(key==0);
- display();
- while(key==1)
- display();
- time=0;
- while(key==0)
- display();
- }
- }
- void T0_time()interrupt 1
- {
- count++;
- if(count==2)
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
147.zip
(62.35 KB, 下载次数: 27)
|