3176|3

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一个很搞的程序,运行结果非常意外,苦思无果 [复制链接]

这几天一个同学做了个单片机的小程序,非常简单的功能,就是驱动数码管显示。但是他用了两个74HC573锁存器。算是用作驱动了吧。那个程序貌似没有问题,但是显示的时候,总是会有几个数字不能显示(非硬件问题,因为是仿真)。非常搞笑。我测试过,发现从最左边起,第一个数码管不能显示1、4,第二个数码管不能显示5、6,第三个数码管不能显示2,第四个数码管不能显示1、4、7。非常诡异。

  在单步调试之后发现了问题的根源,是因为提前开放锁存器,造成锁存器数据混乱。改成先更改输出端口的数据,然后再开放锁存器就可以了。但是就算之前有混乱,也不过是一个机器周期,怎么会造成看不到呢。希望大家给点建议。原来有问题的程序是wela=1;
 P0=0xfe;   
 wela=0; 
 dula=1;
 P0=table[a];
 dula=0;
 delay(1); 
 
 wela=1;
 P0=0xfd;
 wela=0; 
 dula=1;
 P0=table
 dula=0;
 delay(1);

 wela=1;
 P0=0xfb;
 wela=0; 
 dula=1;
 P0=table[c]; 
 dula=0;
 delay(1);

 
 wela=1;
 P0=0xf7;
 wela=0; 
 dula=1;
 P0=table[d]; 
 dula=0;
 delay(1);

 

后来改成把P0的赋值放在wela和dula更改之前就好了。定义了wela是P3.0口,dula是P2.0口。再给了电路图。

第二位的5没了.jpg (153.47 KB, 下载次数: 0)

第二位的5没了.jpg

第一位的1和第三位的2不能显示.jpg (129.78 KB, 下载次数: 0)

第一位的1和第三位的2不能显示.jpg
此帖出自单片机论坛

最新回复

  详情 回复 发表于 2011-8-4 20:24
点赞 关注
 

回复
举报

246

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
仿真就会出现这个问题 直接来真的就不会有这问题了 protues的仿真已经被淘汰了
此帖出自单片机论坛
 
个人签名坚持不懈!
 

回复

7228

帖子

195

TA的资源

五彩晶圆(高级)

板凳
 
以实际电路为准
此帖出自单片机论坛
 
 
 

回复

1万

帖子

16

TA的资源

版主

4
 

看来是仿真的事,我仿真时也有异常,但不是数码管

此帖出自单片机论坛
 
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表