作为一个新入坑单片的小白,在不断地追求快速入门的过程中可谓是一波三折,但是经过不断地努力,也算是一步步攻克了!今天给大家分享一下,单片如何通过寄存器芯片控制数码管工作的。
欲成其事,先晓其理。
1.首先要了解一下数码管的电路。
图1
我这里使用的是一块清翔的板子,对于像我这样的初学者来说,拿到这个板子的时候真的是已经晕头转向了,到底是该从哪里入手?
不过好在有开发板原理图,首先在原理图中找到数码管,仔细地将数码管的针脚连接位置查看了一遍,又与单片的IO口对照了一遍。
图2
图3
咦?这怎么与我想像的不一样,怎么数码管没有跟单片机连在一起?这怎么控制?
不过这时候肯定是不能慌的,平复一下心情,再仔细看一下数码管的针脚连接方向,不难发现A~G的字母,以及WE1~WE8的字符,就是他们了,于是又耐心地在原理图上仔细地查找了一番。终于发现了一些蛛丝马迹,原来这些字符出现在锁存器模块上!
这里有两个74HC573锁存器,一个锁存器Q0-Q7针脚接的连接是WE1~WE7,另一个锁存器则连接的是A~G。
图4
到这里,我大概猜测出数码管很有可能是由这两个寄存器进行控制的。为了验证这个猜测,再仔细观察一下锁存器的其它针脚对应的连接。
经过一番查看后,不难发现锁存器的LE脚,一个锁存器接的是P26/DULA脚,另一个锁存器则接的P27/WELA脚。查看单片机芯片图(图3),可以看到这芯片上的P26和P27两个IO口。
咦?单片机上的的P0口怎么也接的D0~D7?D0~D7不是在74HC573锁存器上吗?
还是被细心的同学发现了,哈哈!
确实是这样的!
通过查看原理图,我们了解了开发板中数码管与单片机的接线图,接下来我们分析一下,单片、锁存器、8位数码管之间的工作原理。
在这之前我们先简单了解一下锁存器与8位数码管!
1)74HC573锁存器
74HC573是一款高速CMOS器件,包含八路D型透明锁存器,每个锁存器具有独立的D型输入和适用于总线应用的三态输出。以下是74HC573的引脚及功能说明:
- 数据输入引脚(D0-D7):用于输入待存储的数据。
- 输出引脚(Q0-Q7):用于输出存储的数据。
- 使能引脚(OE):当OE引脚为高电平时,输出引脚将被禁用,输出端进入高阻态。(实际应用中会将该引脚设置为低电平,我们当前的开发板是将其接地,默认为低电平,不需要直接控制)
- 锁存时钟引脚(LE):当LE引脚为低电平时,输入数据将被锁存到内部存储器中;当LE引脚为高电平时,输入数据将不会被存储。
2) 8位数码管
图5
从上图可以看出,数码管分为共阴极显示和共阳极显示,本文中所使用的开发板为共阴极数码管。
单个数码管是由ABCDEFGH 8个led灯组成,A~G分别对应的是能显示数字的7个线段形Led灯,H对应的是点形Led灯,如果要想让LED显示数字,则只需要控制数码管上的对应线段点亮或或熄灭,即可让数码管显示我们想要看到的信息。
8位数的数码管则还包含WE针脚,这样的数码管需要让对应位置显示,当然同样可以控制数码管上对应位置的电平来控制数码管显示位置。
图6
2.单片机控制数码管工作
单片机是如何控制数码管工作的呢?通过上文的电路原理,我们可以看出,开发板上的两个锁存器,一个锁存器(这里叫WE锁存器)的输出端Q的8个脚接的是数码管上的WE端的8个口,另一个锁存器(这里叫DU锁存器)的Q端接在数码管上的ABCDEFG口。
从接线方式不难发现,WE锁存器锁存的电平输出给数码管,用于控制数码管的显示位置,DU锁存器锁存的电平数据输出到数码管,用于控制数码管显示信息。
通过控制单片机的P0端的8个IO口的电平,并将其输入并锁存到对应的锁存器中,锁存器再将数据传输给数码管,那么数码管就可以在对应的位置显示我们想让其输出的信息。
是不是很简单?
兴趣是学习最好的老师,如果你也喜欢单片机,也是在学习的路上,希望我的文章能够对你有所帮助!
原创不易,如需转载或借用,请联系~