找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4823|回复: 6
收起左侧

51单片机倒计时,proteus仿真一直出错

[复制链接]
ID:69690 发表于 2014-11-30 13:53 | 显示全部楼层 |阅读模式
#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
回复

使用道具 举报

ID:69690 发表于 2014-11-30 13:56 | 显示全部楼层

上个图错了    不好意思
QQ截图20141130114751.png
回复

使用道具 举报

ID:69706 发表于 2014-11-30 18:59 | 显示全部楼层
数码管没选错吧
回复

使用道具 举报

ID:67992 发表于 2014-11-30 21:39 | 显示全部楼层

猎豹截图20141130213652.png
回复

使用道具 举报

ID:67992 发表于 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);
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:61876 发表于 2014-12-2 12:20 | 显示全部楼层
图错了也不影响仿真,但是位码的Q0和Q1要交换一下才可以,否则就会十位和个位颠倒。另外程序是30秒倒计时,而不是分钟倒计时。
回复

使用道具 举报

ID:69946 发表于 2014-12-9 17:22 | 显示全部楼层
位码的Q0和Q1要交换一下,左右反了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表