数码管
我们用的数码管是最常见的半导体数码管,用我们讲过的发光LED灯所组成的
当LED两端有正向压差时,一段数码管就会被点亮
通过控制每一段发光LED灯来使数码管显示我们想要显示的东西
V是公共端,用来接地或者接电源,通过对1-4 6-9,八个引脚高低电平的控制可以实现对
数码管中八个LED灯的控制,
但是一个数码管就需要八个单片机的引脚来进行控制,两个数码管就需要16个。
而且二极管正常工作时需要5mA以上的电流,若数码管引脚和芯片引脚直接相连,芯片的I/O口无法输出这么大的电流,对于共阴极的数码管,可以在阳极处接上拉电阻,对于共阳极的数码管,可以在阴极处接下拉电阻。
对于单片机来说它的引脚占有率太高,所以我们不单一的通过单片机引脚来控制数码管,而是加入了一个锁存器芯片74HC573,
一个74HC573用来对数码管的具体LED灯进行控制,另一个74HC573来选择具体的数码管
但是这样就带来一个问题,我们同时只能对一个数码管进行控制显示,但是只要我们控制的时间短,让每个数码管循环被控制,我们的肉眼发现不了就可以,运用了余晖效应。
关于矩阵键盘
先说一下独立按键。
独立按键是一个按键一端接引脚,另一端接VCC或者GND,当按键按下时,独立按键的引脚就会被置为VCC或者GND从而读取引脚的值就可以判断按键是否按下。
如果接的是GND一般把按键设置为下拉,
如果接的是VCC一般把按键设置为上拉
按键相当于开关,当按键按下,某个电路就会被设为通路,当按键弹起,它所在电路被设为断路,
通过对电路引脚的读取来判断按键是否按下。
但是当涉及到的按键较多时,和上述数码管一样,我们不可能用很多引脚来控制一个外设,
为了优化i/o口的使用,就用到了我们的矩阵键盘。
我们常用的矩阵键盘是4×4的,方便进行代码编辑
通过把四个按键组成一行或者一列,通过对高四位,低四位来设置不同的高低电平来判断是哪一行和哪一列的按键被按下。
按键会产生脉冲,所以还可以将按键当做中断源使用,可以通过按键中断来对其他事件进行处理。