74HC165芯片介绍
74HC165 是 8位并行输入串行输出移位寄存器,它是一款高速 CMOS 器件,遵循JEDEC 标准。74HC165 引脚兼容低功耗肖特基TTL(LSTTL)系列。其管脚封装及功能如下:
- CLK、CLK INH:74HC165 的时钟输入是一个“或非门” 结构CLK和CLKINH功能是可以等效的可以互换使用的,一般采取相连在一起、上升沿时数据一位一位的串行输出。
- A-H:并行数据输入端
- SER:为串行输入端、将数据串行进入到寄存器中、在每一个时钟的上升沿向右移动一位,利用这种特性,只要把 QH 输出连接到下一级的 SER 输入既可实现并转串扩展。
- QH:串行输出端
- Q`H:互补串行输出端
- SH/LD:为低电平时并行数据进入移位寄存器中、为高电平时并行数据不能传进移位寄存器。
当移位/置入控制端(SH/LD)为低电平时,并行数据(A-H)被置入寄存器,而时钟(CLK,CLK INH)及串行数据(SER)均无关。当 SH/LD为高电平时,并行置数功能被禁止。
CLK 和CLK INK在功能上是等价的,可以交换使用。当CLK和CLK INK有一个为低电平并且SH/LD为高电平时,另一个时钟可以输入。当CLK和CLK INK有一个为高电平时,另一个时钟被禁止。只有在CLK为高电平时CLKINK才可变为高电平。
当SH/LD为低电平时74HC165 并行输入口数据存储到寄存器中,要读取该数据只需保证时钟在上升沿时读取即可,如果需要读取8位即一个字节数据,只需要循环8次,先从最高位开始(74HC164 并行口的H就相当于最高位,A为最低位),每读取一次就移1位,在串行数据读取的程序中,通常先移位后读取数据,8次循环后就将一个字节数据读取出来。从时序图中可以看出,74HC165的串行输出与输入正好是对应的,即H-A按高到低位依次输出
硬件设计
本实验使用到硬件资源如下:
- LED模块(D1~D8)
- 独立按键模块
- 74HC165模块
74HC165芯片的控制管脚QH、CLK、SH/LD并未直接连接到51单片机的IO上,而是连接到J5端子上。芯片的并口输入端连接在JP2。
软件设计
本实验要实现的功能是:独立按键K1~K8按下对应控制D1~D8亮
1 | /************************************************************************************** |
实验代码比较简单,首先将LED模块控制脚输出高电平,保证LED默认是熄灭状态,然后进入循环,读取74HC165存储器中数据,然后保存到变量value中,从硬件电路中可知,在74HC165并行口中有上拉电阻,所以当按键未按下时,默认输出数据为0XFF,只有当按键按下时不为0XFF。最后将读取的值通过LED模块展示。