标题: 51单片机倒计时,proteus仿真一直出错 [打印本页]

作者: luyadi    时间: 2014-11-30 13:53
标题: 51单片机倒计时,proteus仿真一直出错
#include  <reg52.h>
sbit dx=P2^0;
sbit wx=P2^1;
unsigned int shi,ge,num=0;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delays(unsigned int xms)
{
unsigned int i,j;
  for(i=xms;i>0;i--)
   for(j=110;j>0;j--)
                          ;
}
void display(unsigned char shi,unsigned char ge)
{
wx=1;
P0=table[ge];
wx=0;
dx=1;
P3=0x02;
wx=0;
delays(5);

wx=1;
P0=table[shi];
wx=0;
dx=1;
P3=0x01;
dx=0;
delays(5);
}
void main()
{
  unsigned temp;
temp=31;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
  if(num==20)
   {num=0;
    temp--;
    shi=temp/10;
     ge=temp%10;
    }

if(temp==0)
          temp=31;
display(shi,ge);}
}
void time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}


求大神解释,
24 分钟前 仿真的时候数码管处于常亮状态,两个八,带小数点都亮,不会变化

267f9e2f07082838c682d6b1b999a9014d08f18c.jpg (151.58 KB, 下载次数: 161)

267f9e2f07082838c682d6b1b999a9014d08f18c.jpg

作者: luyadi    时间: 2014-11-30 13:56

上个图错了    不好意思

QQ截图20141130114751.png (29.61 KB, 下载次数: 191)

QQ截图20141130114751.png

作者: 风缘    时间: 2014-11-30 18:59
数码管没选错吧
作者: dgahz    时间: 2014-11-30 21:39


作者: dgahz    时间: 2014-11-30 21:40
void display(unsigned char shi,unsigned char ge)
{
        wx=1;
        P3=0x02;
        wx=0;
        dx=1;
        P0=table[ge];
        dx=0;
        delays(5);
        wx=1;
        P3=0x01;
        wx=0;
        dx=1;
        P0=table[shi];
        dx=0;
        delays(5);
}


作者: gaozhaohong    时间: 2014-12-2 12:20
图错了也不影响仿真,但是位码的Q0和Q1要交换一下才可以,否则就会十位和个位颠倒。另外程序是30秒倒计时,而不是分钟倒计时。
作者: TY天网    时间: 2014-12-9 17:22
位码的Q0和Q1要交换一下,左右反了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1