谢邀,知乎小透明第一次被邀还是有点小激动呢~
如果要介绍所有的相关介绍,那不是一般的多(好吧 就是我懒),所以关于51单片机的那部分就不提了。主要说说LED点阵的工作原理。(因为第一次被邀请,所以打算专门为了回答打开电路仿真软件呢!)
led 发光二极管,对我们用来说,很简单的东西, 给阳极高电平,阴极低电平就能够点亮;两端都接低或高电平就不会亮。为了简单说明led点阵,以2*2的led点阵来说明。
LED点阵是将每行led的阳极连在一起,每列led的阴极连在一起,形成这样:
开始上图
(默认你能看懂电路图,仿真软件Proteus8.4)
最基本电路图就是这样,现在我们想点亮一个LED。我们想点亮D1,其他led不亮,就需要将D1的阳极接为高电平,阴极接低电平,因此要将K1为1,K3为0,同时为了保证D2 D3 D4不亮,K2必须为0(否则D3亮),K4必须为1(否则D4亮),如图:
点亮其他单个LED同理。
现在我们点亮两个LED:
同时点亮D1 D3:K1 K2 K3 K4必须为1101。
同时点亮D1 D2:K1 K2 K3 K4必须为1000。
同时点亮D3 D4,D2 D4同理,问题是如何同时点亮D1D4?
按照此电路图原理,同一时刻,是无法同时点亮D1和D4(或D2和D3)的,为了显示出D1D4同时点亮的效果,采用动态扫描的原理来实现,即先点亮D1,再点亮D4,以非常快的速度轮流点亮,在人眼中看到的就是两个都亮了(人眼视觉残留)。以此为原理所有的显示效果都能够显示出来。
能够发现,在led点阵中,能够同时点亮的led为同行或同列,也就是只有在同一行/列的led才能真正的在同一时刻点亮,不同行/列的只能用人眼视觉残留的方式让人感觉是同时点亮的。
所以在实际使用中,通常是以一行(列)为单位,每次只显示一行(列),轮流显示每行(列),在led点阵中被称为行(列)扫描。
至此led点阵的显示原理结束。从根本来说,就是控制引脚的高低电平信号而已,单片机就可以直接输出高低电平信号led点阵显示汉字,所以理论上是单片机可以直接控制led点阵,但是多个led点亮时的电流基本上是在几百ma左右甚至更大,单片机的IO口无法输出足够大的电流,因此在单片机和led点阵中间加入一个驱动IC提供电流,一般使用的74hc595、74hc245之类的逻辑IC,本质上依然是高低电平输出,在模拟测试时,可以忽略这类的逻辑IC,但实际使用中必须加,否则可能会出现led点阵亮度不够甚至无法点亮的情况。
最后简单说下上面说的74hc595和245
74hc245在此电路中输出完全和输入相同,在本电路中除增大驱动电流外led点阵显示汉字,完全可以当做单片机的IO口输出。
74hc595 三态输出锁存功能的8位串行输入、串行/并行输出移位寄存器 ,简单来说就是将少量的IO口用特定的协议装换为8个IO口输出,协议不涉及led显示原理,不多说,同样,在本电路中除增大驱动电流特定的协议可以减少IO口外,其他完全当做单片机IO口输出即可
文章由启和科技编辑,部分段落收集自网络,如有侵权,请联系我们删除
上一篇:制作led显示屏的教程-led显示屏制作教程LED显示屏怎么做的