标题: 8位数码管动态显示程序,请大侠指导 [打印本页]

作者: 23054334    时间: 2015-6-23 16:26
标题: 8位数码管动态显示程序,请大侠指导
AT89C51 晶震频率为12MHz. 实现目标为数码管显示0-9,LEDCHR[] 真值表每个数值都单独测试过,protues显示没有问题。而用我附件里面的程序仿真的时候protues显示全亮八、单步仿真也是一直全亮八。很是纳闷,难道protues上用单片机内部定时器需要特殊设置? 请各位大虾指教。

8位数码管动态显示protues.JPG (109.18 KB, 下载次数: 118)

8位数码管动态显示protues

8位数码管动态显示protues

8位数码管动态显示KEIL.JPG (77.49 KB, 下载次数: 142)

8位数码管动态显示程序

8位数码管动态显示程序

作者: yanjibao    时间: 2015-6-23 23:27
把unsigned char三句拿到main以外,把T0初始化四句拿到while1以外
作者: yanjibao    时间: 2015-6-23 23:29
按你的程序,t0就一直初始化了,根本不工作,所以p0一直是0xff,当然显示8
作者: 23054334    时间: 2015-6-24 07:48
yanjibao 发表于 2015-6-23 23:29
按你的程序,t0就一直初始化了,根本不工作,所以p0一直是0xff,当然显示8

感谢大虾的指导,按照你的意思修改后确实能正常显示了。但是还有个问题模拟一开始是全八 大概1秒后才正常循环。请问这是何故?
作者: lycaoncf    时间: 2015-6-24 08:01
不断把刷新
作者: yanjibao    时间: 2015-6-24 08:41
23054334 发表于 2015-6-24 07:48
感谢大虾的指导,按照你的意思修改后确实能正常显示了。但是还有个问题模拟一开始是全八 大概1秒后才正常 ...

加一句话,在while1以前给p0赋值(初始值)
作者: 23054334    时间: 2015-6-24 08:44
yanjibao 发表于 2015-6-24 08:41
加一句话,在while1以前给p0赋值(初始值)

那是不是就是说不给单片机赋初值,单片机的引脚默认输出的是高电平?
作者: yanjibao    时间: 2015-6-24 09:11
23054334 发表于 2015-6-24 08:44
那是不是就是说不给单片机赋初值,单片机的引脚默认输出的是高电平?

是的,atmel和stc内核的51都是这样,发现这一点,说明你单片机完成入门了
作者: 电子阿高    时间: 2015-6-24 20:49
把unsigned char三句拿到main以外,把T0初始化四句拿到while1以外,按你的程序,t0就一直初始化了,根本不工作,所以p0一直是0xff,当然显示8
作者: 爱就像宫保鸡丁    时间: 2015-7-11 13:47
每次显示一个数字  延时一段时间  再去显示另一个数字  前天刚写过这个小程序




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1