在上面实验中使用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。
返回值:输入的串行数据。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。