微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 谁能调试仿真此程序?

谁能调试仿真此程序?

时间:10-02 整理:3721RD 点击:

用protues仿真,第一天可以实现部分功能,第二天调试时原可以实现的功能都不行了,非常奇怪?还有P2口始终全为高电平如下图,是不是延时太短,分辨不来?但是把延时调长,也不行?为什么?

#include <reg51.h>
char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
                 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf} ;
sbit k1=P3^2;
sbit k2=P3^3;
char sec100,min,sec,hour;
void delay(int k)
  {
    int m,n;
    for(m=0;m<k;m++)
      {for(n=0;n<120;n++) ; }
}
char buffer[8];
void dsy_handle()
   {
    buffer[7]=hour/10;
    buffer[6]=hour%10;      
    buffer[5]=16;
   
    buffer[4]=min/10;
    buffer[3]=min%10;
   
    buffer[2]=16;
   
    buffer[1]=sec/10;
    buffer[0]=sec%10;
   
   }
char display()
   {
     P2=0x80;
     P0=tab[buffer[0]];
     delay(5);
     
     P2=0x40;
     P0=tab[buffer[1]];
     delay(5);
     
     P2=0x20;
     P0=tab[buffer[2]];
    delay(5);
     P2=0x10;
     P0=tab[buffer[3]];
    delay(5);
     P2=0x08;
     P0=tab[buffer[4]];
      delay(5);
     P2=0x04;
     P0=tab[buffer[5]];
     delay(5);              
   
     P2=0x02;
     P0=tab[buffer[6]];
     delay(5);
     if(hour>9)
       {
         P2=0x01;
       }
       else
{
         P2=0x00;
}
     P0=tab[buffer[7]];
     delay(2);
  }
void INC_hour()
   {
    hour++;
    if(hour>23)
    {hour=0;}
   }
void INC_min()
   {
    min++;
    if(min>59)
    {min=0;
    INC_hour();
    }  
}
void INC_sec()
   {
    sec++;
    if(sec>59)
    {sec=0;
    INC_min();}   
}
void int0 ()  interrupt 0
  {
    delay(150);
    if(INT0==0)
    {INC_hour();}  
  }
void int1 () interrupt  2
  {
    delay(150);
    if(INT1==0)
    {INC_min(); }
  }
void time0() interrupt  1
  {
    TH0=0xDC;
    TL0=0x00;
    sec100++;
    if(sec100>=100)
      {sec100=0;
      INC_sec();}
}
void init ()
{
   TMOD=0x01;
   TH0=0xDC;
   TL0=0x00;
   TR0=1;
   ET0=1;
   IT0=0;
   EX0=1;
   EX1=1;
   IT1=0;
   EA=1;  
}
void main ()
{
  init ();
  P0=0xff;
  P2=0x00;
  hour=9;
  min=58;
  sec=0;
  sec100=0;
  while (1)
{
  dsy_handle();
  display();
}  
}






file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/563375308/QQ/WinTemp/RichOle/_}UDAJ}C@$CN%NT(98{R65N.jpg
我们哪里看去?

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

网站地图

Top