Proteus仿真,动态显示时数码管一闪一闪的,不稳定。

本人单片机新手,求大神指教。我在做显示学号(学号:201015020137),利用的是数码管动态显示,但是仿真时数码管一闪一闪的。程序如下:(没贴完整程序,因为贴不下。)... 本人单片机新手,求大神指教。我在做显示学号(学号:201015020137),利用的是数码管动态显示,但是仿真时数码管一闪一闪的。
程序如下:(没贴完整程序,因为贴不下。)

#include <at89x51.h>
#define led11 P3_0
#define led12 P3_1
#define led13 P3_2
#define led14 P3_3
#define led15 P3_4
#define led16 P3_5
#define led21 P1_0
#define data P2
void delay()
{
int i;
for(i=0;i<30000;i++);
}
void main()
{do
{
led11=0; led12=1; led13=1; led14=1; led15=1; led16=1; led21=1; led22=1; led23=1; led24=1; led25=1; led26=1;
data=0x5B;
delay(); //显示学号第一位:2
led11=1; led12=0; led13=1; led14=1; led15=1; led16=1; led21=1; led22=1; led23=1; led24=1; led25=1; led26=1;
data=0x3F;
delay(); //显示学号第二位:0
led11=1; led12=1; led13=0; led14=1; led15=1; led16=1; led21=1; led22=1; led23=1; led24=1; led25=1; led26=1;
data=0x06;
delay(); //显示学号第三位:1
led11=1; led12=1; led13=1; led14=0; led15=1; led16=1; led21=1; led22=1; led23=1; led24=1; led25=1; led26=1;
data=0x3F;
delay(); //显示学号第四位:0
led11=1; led12=1; led13=1; led14=1; led15=0; led16=1; led21=1; led22=1; led23=1; led24=1; led25=1; led26=1;
data=0x06;
delay(); //显示学号第五位:1
led11=1; led12=1; led13=1; led14=1; led15=1; led16=0; led21=1; led22=1; led23=1; led24=1; led25=1; led26=1;
data=0x6D;
delay(); //显示学号第六位:5
led11=1; led12=1; led13=1; led14=1; led15=1; led16=1; led21=0; led22=1; led23=1; led24=1; led25=1; led26=1;
data=0x3F;
delay(); //显示学号第七位:0}
while(1);
}
展开
 我来答
jianghe706
2013-05-26 · TA获得超过5145个赞
知道大有可为答主
回答量:2213
采纳率:77%
帮助的人:806万
展开全部
数码管动态显示,每个管间的延时时间以1-2ms为宜,如果是这个范围,显示是不会出现闪的。
但是,你在PROTEUS仿真时,由于你的电脑速度或者你的仿真内容比较复杂,计算机的仿真的运行时间长实际的时间,因此我们可能看到了LED的闪烁。这个你可以不用管它,实际运行不会有这个问题。
如果是这个情况,在运行时有信息提示,大意是计算机的CPU速度不是以真实的速度运行的。
追问
我已经解决了,延时程序改了很多遍终于弄对了。
void delay() //计算延迟1ms
{
unsigned char i,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++) ;
}
名片
2024-10-28 广告
HyperWorks是一款功能强大的工程仿真软件套件,由优菁科技(上海)有限公司代理。它提供了从概念设计到详细分析的全面解决方案,支持多种物理场的仿真分析,包括结构、流体动力学、热分析及电磁场等。该软件还具备拓扑优化、形状优化和尺寸优化等设... 点击进入详情页
本回答由名片提供
生活如歌_
2013-05-25 · TA获得超过1.5万个赞
知道大有可为答主
回答量:7398
采纳率:78%
帮助的人:2173万
展开全部
延时时间缩短。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
龙飞晨阳
2018-04-13
知道答主
回答量:31
采纳率:0%
帮助的人:10.8万
展开全部
这个问题是Proteus的BUG,先显示位选,再显示段选,闪烁现象可以消除了(延时5ms到20ms之间都可以)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
善如南0hHb23
2013-05-25 · TA获得超过174个赞
知道小有建树答主
回答量:777
采纳率:0%
帮助的人:494万
展开全部
延时不对啊
可以交流
追问
我也觉得是延时不对,但是我试了好多,还是不行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式