首页 理论教育 使用74HC595扩展I/O口,实现快速开发

使用74HC595扩展I/O口,实现快速开发

时间:2023-11-17 理论教育 版权反馈
【摘要】:74HC595是一个8位串行输入/并行输出芯片,可以将输入的串行信号转行成并行信号输出。本实验使用74HC595来控制1位数码管,使用数码管循环显示十六进制的数字0~9、A~F,其中B和D用相应的小写字母b和d表示。1)74HC595引脚定义。74HC595的各引脚定义如表6-3所列。图6-574HC595表6-374HC595引脚定义真值表如表6-4所示。

使用74HC595扩展I/O口,实现快速开发

在上面实验中使用1位数码管需要8个I/O引脚,假设需要4位数码管,则至少需要4×8=32个I/O引脚,而MSP430G2 LaunchPad引脚只有20个,是远远不够的,这就需要使用一些辅助手段来扩展引脚,这里介绍一款芯片74HC595,如图6-5所示。

74HC595是一个8位串行输入/并行输出芯片,可以将输入的串行信号转行成并行信号输出。74HC595只能作为输出端口扩展,如果要扩展输入端口,则可以使用其他的并行输入/串行输出芯片,如74HC165等。

本实验使用74HC595来控制1位数码管,使用数码管循环显示十六进制的数字0~9、A~F,其中B和D用相应的小写字母b和d表示。

1)74HC595

(1)引脚定义。74HC595的各引脚定义如表6-3所列。

图6-5 74HC595

表6-3 74HC595引脚定义

(2)真值表如表6-4所示。其中X表示可以是L/H。

表6-4 74HC595真值表

(3)时序图(见图6-6)。在SHCP的上升沿,串行数据DS输入到内部的8位移位寄存器,并由Q7‘输出;而并行输出则是在STCP的上升沿将8位移位寄存器的数据存入到8位并行输出存储器。当串行数据输入端OE的控制信号为低电平时,并行输出端的输出值等于并行输出存储器所存储的值;而当OE为高电平时,输出关闭,并行输出端会维持在高阻抗状态。

图6-6 74HC595时序图

2)实验材料

实验材料包括MSP430G2 LaunchPad、一片74HC595芯片、一块面包板、一个8段共阴极数码管、一个100Ω电阻和100 nF的电容。

3)引脚连接

本实验使用表6-5、表6-6、图6-7的方式连接74HC595、LaunchPad和数码管。

表6-5 74HC595与LaunchPad连接

表6-6 74HC595与数码管连接(www.xing528.com)

4)连接示意图

74HC595的Q0~Q7引脚分别连接数码管的a~g和dp引脚(见图6-7)。在74HC595的VCC和GND引脚之间放了一个100 nF的高频去耦电容,起稳定电压、减少干扰的作用,电容值取值是经验值。对于初学者会模仿使用就可以了,详细原理请查阅《模拟信号处理》或《信号与系统》等相关书籍。

图6-7 74HC595应用连接示意图

5)程序解析

74HC595程序清单如表6-7所示。

表6-7 74HC595应用程序清单

(续表)

本实验用到了shift Out()函数,下面进行说明。

(1)shift Out()函数。其功能是模拟SPI串口输出,串行输入数据,并行输出数据。关于SPI详细解释请参见第8章的内容。函数用法如下:

其中参数dataPin为数据输出引脚,clockPin为时钟输出引脚,bitOrder()为数据传输顺序,有两个可取值:①MSBFIRST,高位在前,即从高位到低位一位一位地发送;②LSBFIRST,低位在前,即从低位到高位一位一位地发送。value为传输的数据,byte类型,与unsigned char一样。

返回值:无。

(2)shiftIn()函数。shiftIn函数的功能是模拟SPI串口输入。函数用法如下:

参数:dataPin为数据输入引脚;clock Pin为时钟输入引脚;bit Order()为数据传输顺序,有两个可取值MSBFIRST或LSBFIRST。

返回值:输入的串行数据。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈