一个简单的中断计数仿真基于proteus
时间:10-02
整理:3721RD
点击:
以下是我的程序,用keil软件编写并编译的。
#include<reg52.h>#define uint unsigned int
#define uchar unsigned char
uchar leddata[]={
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
};
uchar count=0;
uchar num_L,num_H;
uchar i,j;
sbit clear=P3^5;
void delay(uint k)
{
for(i=k;i>0;i--);
for(j=110;j>0;j--);
}
void display()
{
num_H=count/10;
num_L=count%10;
if(num_H==0)
{
P0=0x00;
}
P0=leddata[num_H];
delay(1);
P2=leddata[num_L];
delay(1);
}
void int0 ()interrupt 0
{
count++;
}
void main()
{
P0=0x00;
P2=0x00;
EA=1;
EX0=1;
IT0=1;
while(1)
{
if(clear==0)
{
P2=0x00;
P0=0x00;
}
display();
delay(1);
}
}
这是proteus画的电路图:
电路图在附件中。
当去掉延时函数时会出现
Simulation is not running in real time due to excessive CPU load
求大神指教!