数码管动态显示,每个管间的延时时间以1-2ms为宜,如果是这个范围,显示是不会出现闪的。
但是,你在PROTEUS仿真时,由于你的电脑速度或者你的仿真内容比较复杂,计算机的仿真的运行时间长实际的时间,因此我们可能看到了LED的闪烁。这个你可以不用管它,实际运行不会有这个问题。
如果是这个情况,在运行时有信息提示,大意是计算机的CPU速度不是以真实的速度运行的。
把你的代码, *** 作过程详细描述或者贴出来,大家了解更多才能帮到你。
另外,KEIL默认是不生成HEX文件的,你按以下过程查看一下Creat HEX File前面的框框是否有勾选,如果没有勾选,就勾选起来,重新编译后就能生成hex文件了:
project-》options for target-》output-》Creat HEX File
生成hex文件后,双击proteus中的单片机,将hex文件加载进去,再仿真试试。
#include "reg52h"
#define uchar unsigned char;
uchar num,t;
void main()
{
num=0xfe;
t=0;
TMOD=0x10;
EA=1;
ET1=1;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
while(1)
{
if(t==7)
t=0;
}
}
void time0() interrupt 3
{
TH0=(65536-50000)/256;//请问,你到底是想用定时器1还是定时器0
TL0=(65536-50000)%256;
t++;
num=num|0x01;
num=num<<1;这两行调换位置
P1=num;
}
从你犯的这两个问题可以看出,你是一位初学者。遇到问题知道来网上进行求助,说明你懂得应用网络这个资源,但是,我建议在往后的学习中能够细心一点,这样能避免很多不必要的问题。建议多看一点别人写的比较正规的程序,注意格式,你的程序什么注释也没有。
要学会自己找问题,自己解决问题,我们要学习是方法,如何解决问题的方法。
说多了!个人之言,仅供参考!
以上就是关于Proteus仿真,动态显示时数码管一闪一闪的,不稳定。全部的内容,包括:Proteus仿真,动态显示时数码管一闪一闪的,不稳定。、proteus最简单的点亮LED灯的实验,为什么我用汇编能运行,用C语言就不能、8个LED灯怎么不能循环闪烁我用Proteus和Keil,图画的没问题,就是不知程序错在哪等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)