Keil C51模块化编程经验总结

本文针对之前发布的关于数码管模拟时钟的C语言代码进行优化改进。通过调整锁存语句的顺序,解决了数码管显示亮度不佳的问题,提高了显示稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在2014年11月,笔者写了一份 基于C语言,如何在Keil软件里模块化编程 的文档,并上传至百度文库共享。后来又在2016年5月对文档部分内容进行了更新。到目前为止,也收到若干读者发来的感谢信和“请教”信,对于未及时回信的朋友,笔者在此说声抱歉。

在文档第15页,笔者把关于数码管模拟时钟的C代码贴上,并备注代码中有关数码管、LED的锁存语句顺序待完善的字样(见上图)。一直以来笔者也未及时进行补充,所以本文将这个点继续完善一下。文档中这部分的代码结构是下图这样的:

  

实际上更好的写法是:

之所以要按照这样的结构,主要是因笔者当初在调试代码时发现,按照原始的代码结构,最终数码管的显示亮度始终不是很好,修改消影延时也不能很好解决,后来发现与锁存语句顺序有关。对于文档中数码管代码所依据的电路原理:

查看74HC573数据手册,如下图右下角真值表,当锁存引脚使能为高电平时,锁存器对数据透明,即输入啥输出啥。 当锁存引脚使能为低电平时,数据将被锁存。所以,原始代码结构是先将锁存引脚置为高电平,然后再给P0端口送数据,这期间难免会受P0端口原有数据的影响。而先将数据送给P0端口,再开锁存,则就能避免这样的影响。所以最终数码管显示很稳定。

 

本着给刚开始练习编程的朋友一个参考,故发此博文,方便更多朋友能够看到。如果各位读者觉得有点作用,可以继续扩散,笔者在此不胜感激。由于笔者水平有限,若发现文中有描述不正确之处,还请各位读者留言指正。此外,文档中很随意的编码风格,还请广大读者自行忽视^_^

文档URL:https://wenku.baidu.com/view/3a6468b833d4b14e84246852

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值