LED数码管的学习

来源:互联网 发布:php mysql web第五版 编辑:程序博客网 时间:2024/05/03 07:53

对于STC89C52来说,使用的是共阳极数码管。在这个部分主要掌握的是:1、数码管段显示的编码,即从0~f数据的十六进制表示2、数码管的静态显示和动态显示。很多时候需要同时使用多个LED数码管,比方说我们这个学期数字逻辑电路课程设计做的数字时钟。这时就需要选择合适的显示驱动方式。

        对于静态显示,我感觉我的实践并不是很够,不过可以把我从书上看来的一些思想方法总结一下。主要思想是扩展。静态显示方式有两种实现方式:第一是通过串行接口扩展LED显示,其原理是利用单片机串行接口的模式0,再外接串入/并出的移位寄存器,扩展出多个8位并行I/0接口。第二是通过外部RAM地址空间进行扩展LED显示,其原理是,将单片机外部64KB的RAM空间的一部分作为扩展的I/O接口的地址空间,用其控制LED的显示。

        对于动态显示,我亲自做了一个例子,对数字钟钟我的设计有了更加深入的理解。思想是:在时间上做文章,类似于时间片轮转的思想,给每一位数码管一定的时间,利用人的视觉停留效应,给人的感觉是所有的数码管同时显示,所以,你的眼睛有时会骗你,嘿嘿。实现方法有两种:一种是用电路实现,另一种是用程序实现;感觉用电路实现比较抽象,而用程序设置则比较容易思考。

例一:利用电路扫描实现:

原理解析:

显示模块原理:利用74293模八计数器来提供顺序信号,利用74138(3-8译码器)的输出来控制位码,然后利用4块74151(8选一数据选择器)来依次将六组数据送入到7447(7段译码器)的输入端,输出端控制段码。

例二:

利用程序控制,代码如下:

OK,终于又写完一篇总结了,这实验做得贼快,写总结慢得要死,O(∩_∩)O~,不能急啊,慢慢来。。。。。。

原创粉丝点击