根据芯片手册的时序图来编写74HC595的驱动程序,用于产生HC595所需要的三个输入信号,即:SHCP、DS、STCP。时序图如图所示:
SHCP:HC595的工作时钟
DS:HC595的串行输入数据
STCP:当移位寄存器上面的数据稳定之后,打开STCP,即可将移位寄存器上面的数据并行输出
编写程序时应注意工作时钟SHCP的得到方式:如果工作时钟DHCP采用分频的方式得到,且用分频的得到DHCP来触发各个触发器,那么会出现使用门控时钟的各种问题,此处采用一种新的方式来得到工作时钟的上升沿。
即将SHCP看成一个正常的信号,用其他信号来控制它,如图所示
图中所示SHCP是一个占空比位1\2且频率为12.5MHZ的信号,而SHCP_counter是在SHCP的上升沿和下降沿分别产生一个脉冲,频率为25MHZ。
不用分频的方法如何产生SHCP?
对SHCP_counter的每个脉冲进行计数,并在相应的时候拉高或者拉低SHCP的电平,就得到了SHCP。