找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1761|回复: 3
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
本帖最后由 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 (134.45 KB, 下载次数: 71)

QQ图片20170606103940.png

QQ图片20170606103828.png (137.61 KB, 下载次数: 59)

QQ图片20170606103828.png

QQ图片20170606103242.png (75.97 KB, 下载次数: 66)

QQ图片20170606103242.png

QQ图片20170606103220.png (57.98 KB, 下载次数: 82)

QQ图片20170606103220.png

QQ图片20170606103157.png (96.08 KB, 下载次数: 103)

QQ图片20170606103157.png

定时器测试学习.rar

54.55 KB, 下载次数: 2

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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 (2.86 MB, 下载次数: 62)

IMG_20170606_121338.jpg

1.jpg (9.78 KB, 下载次数: 64)

1.jpg

2.jpg (34.16 KB, 下载次数: 80)

2.jpg
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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