Keil C51模块化编程经验总结

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

Keil C51模块化编程经验总结_第1张图片

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

Keil C51模块化编程经验总结_第2张图片   Keil C51模块化编程经验总结_第3张图片

实际上更好的写法是:

Keil C51模块化编程经验总结_第4张图片

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

Keil C51模块化编程经验总结_第5张图片

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

Keil C51模块化编程经验总结_第6张图片

 

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

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

 

你可能感兴趣的:(传经送宝,Keil,模块化编程,C语言,数码管,74HC573)