曹少科 楊晴 陳海宇 王碩
摘要:74HC595是美國國家半導(dǎo)體公司生產(chǎn)的通用位移寄存器芯片,它可以實現(xiàn)8位串行輸入輸出或者并行輸出,操作方便簡單,可以很容易的完成對單片機IO口的擴展。[1]本文主要是介紹用74HC595芯片來擴展IO口詳細原理,并利用此方法進行實驗,實現(xiàn)流水燈效果。
關(guān)鍵詞:單片機;74HC595;擴展IO口;流水燈
上世紀70年代到80年代期間,單片機憑借著它體積小,低功耗,性價比高的優(yōu)勢,被越來越多的人所使用,并被廣泛運用于各個領(lǐng)域。但隨著科技不斷地進步與發(fā)展,我們對于單片機的應(yīng)用更加廣泛,我們也慢慢發(fā)現(xiàn)了51單片機的一些缺點,即IO端口有限,很多人在運用單片機時總會出現(xiàn)IO口不夠用的現(xiàn)象,而74HC595芯片剛好能彌補此缺陷,大量擴展單片機的IO口。
174HC595芯片的選擇
74HC595是硅結(jié)構(gòu)的CMOS器件,能實現(xiàn)串入轉(zhuǎn)并入,數(shù)據(jù)通過一個IO串口輸入后經(jīng)過74HC595后將數(shù)據(jù)8位并行輸出。[2]74HC595與74HC164芯片功能基本相同,但前者價格更低廉,驅(qū)動能力更強,操作簡單,但因為74HC595有存儲寄存器,所以在移位的過程中,并排輸出端口的數(shù)據(jù)保持不變。所以選用74HC595芯片來擴展51單片機IO口比較合適。
2擴展方案
2.1硬件連接與實現(xiàn)原理
若要以74HC595芯片實現(xiàn)對IO口的擴展,首先需要定義一個單片機I0口與74HC595芯片DS相連,以此來控制串行數(shù)據(jù)的輸入。而移位寄存器和存儲寄存器是不同的時鐘,當(dāng)SH_CP處于上升沿時,數(shù)據(jù)會輸入到移位寄存器中,當(dāng)ST_CP處于上升沿時會傳入的存儲寄存器中。因此兩個時鐘需要分別進行連接,移位寄存器有串行輸入DS引腳、串行輸出引腳Q7和低電平復(fù)位引腳MR。存儲寄存器有并行數(shù)據(jù)輸出引腳Q0~Q7和低電平輸出有效OE引腳。所以用MR進行復(fù)位時,只是將位移寄存器中的數(shù)據(jù)清除,而不必擔(dān)心存儲寄存器中的數(shù)據(jù)有所變化。另外只有當(dāng)OE輸出低電平時,存儲寄存器的數(shù)據(jù)才會輸出到IO口。
所以,利用74HC595進行IO口的擴展時,僅僅只需要用5根連接線,在通常情況下,可以將MR直接連接高電平,通過軟件的方法來控制位移寄存器中的數(shù)據(jù)清零。OE直接連接低電位,然后將其余連接線與51單片機IO口相連即可。
單片機中的數(shù)據(jù)會從DS口傳輸進入74HC595,每當(dāng)SH_CP處于上升沿(先拉低電平再拉高電平)的時候,位移寄存器中的數(shù)據(jù)會一次移動一位,經(jīng)過SH_CP的8個上升沿之后,便會全部移入位移寄存器。[3]此時如果想再接入一個74HC595則可以將Q7接入第二個74HC595上的DS,按照此種方法可接入任意多個74hc595芯片,使IO口可以得到充分擴展。
當(dāng)數(shù)據(jù)全部送完后,給ST_CP一個上升沿(先拉低電平再拉高電平),存儲寄存器里的數(shù)據(jù)便輸出到Q0~Q7,實現(xiàn)IO口的擴展,原理如下圖。
4結(jié)論
本文詳細的闡述了運用74HC595芯片擴展51單片機IO口的原理,很大程度上解決了51單片機IO口緊缺的問題,并且電路連接與代碼編程十分簡單。同時進行實驗,運用74HC595擴展的IO與led燈相連,實現(xiàn)了流水燈的效果。
參考文獻:
[1]李亞,常濤,王永強.利用74HC595實現(xiàn)多位LED顯示的新方法[J].微計算機信息,2005(07).
[2]吳振磊,劉孝趙.74HC595在單片機控制多位數(shù)碼管中的應(yīng)用[J].科技廣場,2013(05).
[3]黃勇.74HC595在LED點陣顯示系統(tǒng)中的應(yīng)用[J].電腦知識與技術(shù),2018(36).