1、74HC595是一个8位串行输入、并行/串行输出移位寄存器,具有可控3态输出。本文主要使用595的级联功能。
功能示意图
时序图
74HC595锁存功能:串行输入后,8位锁存,可以一直保持输出的8位不变,等待新的8位就位,连同级联的其他74HC595一起更新,然后再次锁存,依次循环。
74HC595的级联功能:例如串行输入16位,前8位会被挤出,从9脚Q7S同样串行输出至下一级芯片,后8位留在本身的Q0-Q7中。
74HC595的使能功能:将每一个74HC595芯片的使能脚一起接受CPU同一个管脚控制,以达到收到新数据的所有74HC595同时输出8位数据,显示一种效果。
2、下面是74HC595使用实例原理图:
示例图
图中只用3个CPU管脚控制多个4位数码显示,UM1为一级芯片,即发出数据的最后8位,用于选择所有4位数码管的第N位显示。UM2-UM5用于控制每一个4位数码管8段。
利用分时复用原理,
当发出0x9F、0x9F、0x9F、0x9F、0x08,使能后,由于0x08片选,所有每个4位数码管的第一位会显示1。
当发出0x25、0x25、0x25、0x25、0x04,使能后,由于0x04片选,所有每个4位数码管的第二位会显示2。
当发出0x0D、0x0D、0x0D、0x0D、0x02,使能后,由于0x02片选,所有每个4位数码管的第三位会显示3。
当发出0x99、0x99、0x99、0x99、0x01,使能后,由于0x01片选,所有每个4位数码管的第四位会显示4。
依次循环显示。每位显示时长为四分之一周期。
3、汇编程序:
定时程序
定时程序选择2-5毫秒为宜,也可自己根据自己程序的运行效果尝试着设置。循环显示4位数码管,每位显示时长为四分之一周期。
子程序
上图为显示第一位的子程序,其他类似。
4、C程序
在定时器(2-5ms)程序中加入下图语句
定时器加入语句
显示子程序:
子程序
5、扩展
5.1 举例中UM1只用到了Q4-Q7四位,可将Q0-Q3一起用上,添加4组74HC595 数码管,可得到8x4=32位数码管显示。
5.2 将其中一位数码管变成8个二极管,可显示8个运行状态,其中4位数码管可变32个指示灯。
5.3 CPU加一个IO,可以最多增加8个按键,UM1输出Q0-Q7分别加一个按键,按键另一端共同接在IO上,在分时复用显示每位数码管时,检测IO是否被按下,类似扫描按键程序。
欢迎拍砖,欢迎指正,欢迎私信。
,