单片机上的一小块屏幕就是LED点阵屏,与数码管一样,内部由LED灯组成,只是点阵屏使用的LED灯更多,LED灯呈矩形分布而非“8”字形;并且点阵屏和数码管一样,有两种接法共阳极和共阳极;
16*16LED点阵屏的原理图如下:
可以看到,这种每行或每列都连接在1个I/O口的方式与矩阵键盘一样,所以我们需要进行逐行扫描或者逐列扫描,也就是坐标的方式,就能够点亮我们想要点亮的灯。从原理图可以看出,每一行LED都连接到POS这个网络标号上,而POS这个网络标号连接到J28和J34。行为二极管的阳极,列为二极管的阴极。
每一列LED都连接到NEG这个网络标号上, 而原理图上没有相应的I/O口对应NEG,这是为什么?———试想,如果每一行每一列都通过I/O扣进行直接控制,那么这里就需要4*8=32个I/O口。为了减少I/O口的使用,这时候就需要用到移位寄存器74HC595:
串行输入并行输出:1个1个输入,多个同时发出;
SER:串行数据输入引脚(也就是我们是通过SER把数据1个1个地输入进去)
SRCLK : 移位寄存器时钟引脚,上升沿时(给高电平时),移位寄存器中的bit 数据整体后移(图 中灰色向下箭头方向),并接受新的bit
RCLK : 存储寄存器时钟输入引脚。上升沿时,数据从移位寄存器转存带存储寄存器(图中灰色向右箭头)
整个过程就是:通过SER往里面放数据,SERCLK给高电平一次,就把数据向下移动一位,然后再往里面放入数据,就这样一直循环,直到8个数据位全部装满,R