單片機引腳擴展芯片74HC595手工分解實驗

我們先來看個效果


74HC595是常用的串轉(zhuǎn)并芯片,支持芯片級聯(lián)實現(xiàn)少量IO口控制多個IO口輸出功能

14腳:DS,串行數(shù)據(jù)輸入引腳
13腳:OE,? 輸出使能控制腳,它是低電才使能輸出,所以接GND
12腳:STCP,存儲寄存器時鐘輸入引腳。上升沿時,數(shù)據(jù)從移位寄存器轉(zhuǎn)存帶存儲寄存器。
11腳:SHCP,移位寄存器時鐘引腳,上升沿時,移位寄存器中的bit 數(shù)據(jù)整體后移,并接受新的bit(從SER輸入)。
10腳:MR,低電平時,清空移位寄存器中已有的bit數(shù)據(jù),一般不用,接?高電平即可。
9 腳?:Q7S,串行數(shù)據(jù)出口引腳。當(dāng)移位寄存器中的數(shù)據(jù)多于8bit時,會把已有的bit“擠出去”,就是從這里出去的。用于595的級聯(lián)。
Q0~Q7:并行輸出引腳
時序表

我們要想實現(xiàn)數(shù)據(jù)傳輸可以按照下面邏輯來實現(xiàn),我每個撥碼開關(guān)接了個下拉電阻,所以撥碼開關(guān)不處于ON的時候就相當(dāng)于是低電平
第一步:12腳:STCP輸出低電平,在示例中就是撥碼開關(guān)2撥向下面

第二步:14腳:DS,如果數(shù)據(jù)位不需要改變,那么撥碼開關(guān)1就不用管,向下?lián)苁菙?shù)據(jù)bit位是0,向上是1

第三步:11腳:SHCP,在示例中就是撥碼開關(guān)3先低電平,再高電平,相當(dāng)于先往下?lián)芤幌?,再往上撥一?/p>
第四步:12腳:STCP輸出高電平,在示例中就是撥碼開關(guān)2撥向上面

這樣就是一個完整的數(shù)據(jù)傳輸分解,我們接下來連貫操作一下,我讓后面四個燈熄滅,前面四個燈量,相當(dāng)于傳輸數(shù)據(jù)0x0F,二進制就是 000 1111

手動分解能實現(xiàn),那么如果用單片機控制呢?大家可以動手去實現(xiàn)下。。。?