proteus 数码管显示不正常

电路图用的是郭天祥TX-1C的电路图,只画了led和数码管部分。做数码管动态显示654321,下面是程序#include<reg52.h>#defineucharunsi... 电路图用的是郭天祥TX-1C的电路图,只画了led和数码管部分。
做数码管动态显示654321,下面是程序
#include<reg52.h>
#define uchar unsigned char

sbit dula=P2^6;
sbit wela=P2^7;
uchar numdu,numwe,a;

uchar code table[]={0x7d,0x6d,0x66,0x4f, 0x5b,0x06};
uchar code tablewe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

void main()
{
TMOD=0x01;
TH0=0xfc;
TL0=0x66;
EA=1;
ET0=1;
TR0=1;
a=0;

while(1)
{

if(a==10)
{
a=0;
numdu++;
numwe++;
dula=1;
if(numdu==6)
numdu=0;
P0=table[numdu];
dula=0;
wela=1;
if(numwe==6)
numwe=0;
P0=tablewe[numwe];
wela=0;
}
}

}

void time0() interrupt 1
{
TH0=0xfc;
TL0=0x66;
a++;
}
中断时时间是1ms,当a取值100或50的时候显示的是一个一个出现的字符,但是当a取得过于小时数码管显示变得不正常,看不到完整的数字,再将a取得更小时,比如10,仿真会出错,出现提示信息,这提示信息是什么意思,该怎么解决,仿真出错的原因是什么,还有数码管为什么看不到完整字符,请帮忙解释下,非常感谢
展开
 我来答
做而论道
高能答主

推荐于2020-01-05 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部

呵呵,显示不正常,是因为缺少“消隐”所致。

当你更新显示的“段”的时候,显示的位置,还是在前一时间的“位”上;

然后你再更新“位”,这就出现移动的效果了。

看插图,增加消隐的环节后,我把a,逐步减小,减小到1,都能正常显示。

楼主出错的原因,可能是其它问题。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
深圳市鸿佳联合科技有限公司_
2021-01-25 广告
提供户外强光下可视、高清高亮、超宽视角、工业级宽温中小尺寸TFT液晶屏,可差异化定制,接口可兼容SPI/MCU/RGB/MIPI。以上回答如果还觉得不够详细,可以来咨询下深圳市鸿佳联合科技有限公司。深圳市鸿佳联合科技有限公司专注于中小尺寸T... 点击进入详情页
本回答由深圳市鸿佳联合科技有限公司_提供
凌乱的舞步_杰
2010-05-19 · TA获得超过434个赞
知道小有建树答主
回答量:385
采纳率:0%
帮助的人:149万
展开全部
仿真的时候就是会出错 我也试过我改过成5根本就没有显示了 改成了40——50之间差不多 但是还是有闪烁 但是我试过如果直接用单片机的引脚去驱动两个发光二极管的话是没有任何闪烁的 个人认为之所以不正常关键就是74HC573这个锁存器的问题 这可能也是proteus的bug吧 我做数码管仿真的时候都是直接驱动数码管的段选和位选的 这样是没有问题的
其实掌握动态显示的思路和方法 数码管再多也是同样的思路 你可以试试我说的直接驱动2个数码管动态显示
有什么问题我们再交流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangxiyuan168
2010-05-19 · 超过10用户采纳过TA的回答
知道答主
回答量:25
采纳率:0%
帮助的人:21.5万
展开全部
楼上的回答有道理,我也遇到类似的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式