微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 一个简单的中断计数仿真基于proteus

一个简单的中断计数仿真基于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
求大神指教!


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top