74HC165是并行输入串行输出的逻辑芯片,一般用于扩展输入的IO口。使用电路如下:
外部可以接8个输入,然后通过3个口与单片机相连。3个口的功能为:
PL:输出使能;
CP:时钟线;
Q7:数据输出。
看一下74HC165的真值表:
可见,当PL为低时,165通过D0到D7从外部读取输入,读取到一个8位的寄存器中。
然后当PL拉高时,CP给一个上升沿,8位寄存器中的值就通过Q7输出一位。
再看时序:
上图中的CE是时钟输出使能(芯片15脚),要把它拉低,时钟信号才有效。不用该功能直接接GND即可。
从上图可看到,当PL拉低时,165从外部采集信号,此时D7=H,D6=H,D5=L...,然后把PL拉高,Q7输出D7的值
因为此时CE被拉高,所以CP的上升沿被屏蔽了,可是一旦CE拉低,读到CP的上升沿,Q7的输出值就往后移一位,此时输出D6的值。再读到一个上升沿,又继续往后移一位。。。
一片165可以扩展出8个输入口,如果不够可以再加无数个165,而且都只需要3个IO口与单片机连接。这就是165的级联使用。比如3片级联:
可以看到第二片165的Q7接到了第一片的DS,第三片165的Q7接到了第二片的DS。原理如下: