目录

1、单片机整体模块

2、 LED模块

3、独立按键模块

4、数码管模块

5、LCD1602模块

6、矩阵按键模块​编辑

7、串口通信模块

8、LED点阵屏模块


1、单片机整体模块

单片机使用的是TTL电平(一种电平的规范),规定为0V为低电平,5V为高电平;

字母上有一横,意为低电平有效。

单片机上电时,所有I/O口默认为高电平。

单片机I/O口连接的模块(重复I/O口在同一时间只能实现一个功能):

(1)P0.0~P0.7:数码管、外接显示屏LCD1602

(2)P1.0~P1.7:矩阵键盘

(3)P2.0~P2.7:LED模块的8个LED灯

P2.2~P2.4:138译码器选择位;

P2.5~P2.7:外接显示屏LCD1602

(4)P3.0~P3.3:四个独立按键K1~K4


2、 LED模块

上图左边8个口连接到单片机的P2.0口~P2.7口, 右边VCC是指电源;

VCC左边的蓝色方框是指电阻,右上角1K指1000Ω,用于保护电路,防止超载;

中间绿色的为LED二极管,当P2.0口为低电平时,则对应电路上的LED灯D1亮;若为高电平,则对应电路上的LED灯D1灭,其他灯同理。

单片机上电阻的读数方式 


3、独立按键模块

 右边接地,左边四个口分别连接到单片机的P3.0~P3.3;

要注意RXD与TXD的顺序与上面不一致。K1对应P3.1,K2对应P3.0,K3对应P3.2,K4对应P3.3

因为单片机上电时,I/O默认为高电平,所有按键没有按下时,则I/O口为高电平;按键按下时,I/O变为低电平


4、数码管模块

(1)138译码器

~有上划线,代表低电平有效,如果没有上划线,表示高电平有效

开发板上接的是74HC138,右侧LED1~LED8接到了数码管的公共端,通过138译码器,能够使由左侧P22、P23、P24三个端口来控制选择右边的8个端口LED1~LED8

例:当C、B、A输入为000时,输出Y0低电平有效,其他无效,即输出LED8~LED1为1111 1110。

C B A 输出(上面一横代表低电平有效)
0 0 0 Y0(1111 1110 )
0 0 1 Y1(1111 1101)
0 1 0 Y2(1111 1011)
0 1 1 Y3(1111 0111)
1 0 0 Y4(1110 1111)
1 0 1 Y5(1101 1111)
1 1 0 Y6(1011 1111)
1 1 1 Y7(0111 1111)

 左下角G1、G2A和G2B为使能端,当G1接VCC,G2A和G2B接地,138译码器才会工作。

89C52RC单片机采用的是共阴极数码管,右上角COM指公共端,所以如果想点亮第三个数码管,首先需要给LED1~LED8赋值1101 1111,这样第三个数码管就被选中了,然后给第三个数码管数据,需要给数码管下面的接口输入阳码(1为亮,0为灭)——如想让数码管显示1,需要输入      0110 0000。

74HC245为双向数据缓冲器,右上角VDD是电源接VCC,OE为使能端口,低电平有效,接地时芯片才开始工作,左下角GND为接地。

左侧A0和右侧B0为一 一对应的关系,左上角DIR为控制数据方向端口,如果DIR接高电平是将左侧数据A0~A8送到右侧B0~B8,如果DIR接低电平,是将右侧数据B0~B8送到左侧A0~A8,由于在电路板上LE始终与VCC连接,因此这里74HC245的作用是将左侧数据A0~A8送到右侧B0~B8

由于数码管为共阴极,给数码管下面接口输入阳码时,LED才亮,但是直接将P0~P7的高电平输入到数码管时,89C52RC单片机的I/O口是弱上拉类型,单片机高电平驱动能力有限,输出的最大电流不能太大,而低电平驱动能力更强一些因此过从P0~P7的数据,经过74HC245,就会使输入数码管的电流更小,这样驱动能力会更强一些


5、LCD1602模块

 通过调用LCD1602调试程序,使数据显示在LCD1602液晶屏上。


6、矩阵按键模块

由独立按键模块可知,当P1.7口接地时,通过检测P1.0~P1.3口是否为低电平,来判断按键是否被按下。

逐行扫描,就是通过给P1.4~P1.7哪一个口设置低电平,来表示扫描哪一行,通过检测P1.0~P1.3哪一个口为低电平,来判断是哪一个按键被按下,再通过单片机快速的读取输入扫描,就能最终实现所有按键同时检测的效果。

由于单片机的自身局限性,P1.5口逐行扫描时会和其它引脚冲突,会导致蜂鸣器一直响,因此在这里我们用逐列扫描,原理和逐行扫描相同。通过给P1.0~P1.3哪一个口设置低电平,来表示扫描哪一行,通过检测P1.4~P1.7哪一个口为低电平,来判断是哪一个按键被按下


7、串口通信模块

上面电路图的功能是将51单片机中的UART串口(TXD与RXD)与电脑的USB串口互相传输数据


8、LED点阵屏模块

上图与开发板LED点阵屏引脚对应关系如下:

 通过P0.0~P0.7来控制LED点阵屏的列;

通过D0~D7来控制LED点阵屏的横,D0~D7连接在74HC595移位寄存器上。

 74HC595是串行输入,并行输出的移位寄存器,可用3根线输入串行数据,8根线输出并行数据,多片级联后,可输出16位、24位、32位等,常用于I/O口扩展。

:输出使能位,如果给低电平给,则可以输出D0~D7。

 (VCC):串行清零端

RCLK(P3.5):寄存器时钟

(P3.6):串行时钟

SER(P3.4):串行数据

QH’:用来多片级联(多个74HC595移位寄存器相连)

 左边竖着的为8位移位寄存器,右边竖着的为输出缓存。

 首先由SER串行输入数据,从上端进入移位寄存器, 串行时钟每来一个上升沿,数据就会向下进行移一位, 当移位寄存器中8位数据满了后,寄存器时钟RCLK会发出一个上升沿,然后将左边8位移位寄存器数据,同时搬运到右边的8位输出缓存。

若当左边8位移位寄存器数据满了后,继续向SER串行输入数据,那么数据会从QH’流入下一片的移位寄存器。

为什么LED点阵屏没有横竖两排都接I/O口?

单片机高电平驱动能力有限,输出的最大电流不能太大,而低电平驱动能力更强一些。

竖排接I/O口接地后,如果横排接I/O口接高电平,LED点阵屏的亮度不会特别亮。


转自:
https://blog.csdn.net/m0_50562428/article/details/130604730