找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1622|回复: 3
收起左侧

求大家帮我看一下这个仿真的问题,本人小白,实在想不通这个了,我把程序发在下面了。

[复制链接]
ID:203619 发表于 2017-6-6 10:42 | 显示全部楼层 |阅读模式
本帖最后由 loyc 于 2017-6-6 10:43 编辑

      情况是这个样子的,我在学习一个教材里面的程序,数码管的动态显示。 程序没有任何更改过,自己也差不多理解了,因为没有教材里面的学习板,所以想用protues仿真实验一下,仿真的情况是一开始数码管不显示,让仿真运行一会儿之后数码管就开始显示了,但是抖动很厉害根本没法观察。期望大家帮帮忙,万分感谢,后面我会把仿真和程序打包一起发上来,麻烦大佬看一下谢谢,另外我还发了一些截图,麻烦大家饿了谢谢。
      对了,发上来的截图里面应该也能看出来,就是一开始P0口全为高电平,无现象,但是过一会儿之后P0口有电平变化,出现现象。仔细看可以看出来。
程序如下,谢谢:
#include<reg52.h>
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
unsigned char code LedChar[]={
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
unsigned char LedBuff[6]={
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
unsigned char i = 0;
unsigned int cnt = 0;
unsigned char flag1s = 0;
void main()
{

unsigned long sec = 0;

ENLED = 0;
ADDR3 = 1;
TMOD = 0x01;
TH0 = 0xFC;
TL0 = 0x67;
TR0 = 1;
EA = 1;
ET0 = 1;
while(1)
{
  if(flag1s == 1)   
  {
   flag1s = 0;
   sec++;
   LedBuff[0] = LedChar[sec%10];
   LedBuff[1] = LedChar[sec/10%10];
   LedBuff[2] = LedChar[sec/100%10];
   LedBuff[3] = LedChar[sec/1000%10];
   LedBuff[4] = LedChar[sec/10000%10];
   LedBuff[5] = LedChar[sec/100000%10];
  }
     
}
}
void InterruptTime0() interrupt 1  
{
  TH0 = 0xFC;
  TL0 = 0x67;
  cnt++;
  if(cnt >= 1000)
  {
   cnt = 0;
  flag1s = 1;
  }
  P0 = 0xFF;
     switch(i)
  {
   case 0: ADDR2=0; ADDR1=0; ADDR0=0; i++; P0=LedBuff[0];break;
   case 1: ADDR2=0; ADDR1=0; ADDR0=1; i++; P0=LedBuff[1];break;
    case 2: ADDR2=0; ADDR1=1; ADDR0=0; i++; P0=LedBuff[2];break;
   case 3: ADDR2=0; ADDR1=1; ADDR0=1; i++; P0=LedBuff[3];break;
   case 4: ADDR2=1; ADDR1=0; ADDR0=0; i++; P0=LedBuff[4];break;
   case 5: ADDR2=1; ADDR1=0; ADDR0=1; i=0; P0=LedBuff[5];break;
   default:break;
  }
}


QQ图片20170606103940.png
QQ图片20170606103828.png
QQ图片20170606103242.png
QQ图片20170606103220.png
QQ图片20170606103157.png

定时器测试学习.rar

54.55 KB, 下载次数: 2

回复

使用道具 举报

ID:203619 发表于 2017-6-6 10:43 | 显示全部楼层
麻烦大家帮帮忙谢谢
回复

使用道具 举报

ID:203619 发表于 2017-6-6 10:44 | 显示全部楼层
图片顺序发反了,是从下到上看的。。。
回复

使用道具 举报

ID:164602 发表于 2017-6-6 12:20 | 显示全部楼层
程序没有问题。
如图所示:
我将你的程序,移植到我的板子上,我的板子电路如图所示。
我去掉了你程序中无用的5、6、22、23行。
你的程序,就是一个秒表,一秒加一个数,是这个现象吧。
可能是你的仿真有问题,我没有用过仿真,都是真实板子实验的。
IMG_20170606_121338.jpg
1.jpg
2.jpg
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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