標(biāo)題: Audino-2-Arduino中內(nèi)置的shiftOut函數(shù)與74HC595芯片的配合使用 [打印本頁]

作者: jhgvj    時間: 2019-1-15 18:42
標(biāo)題: Audino-2-Arduino中內(nèi)置的shiftOut函數(shù)與74HC595芯片的配合使用
一、shiftout函數(shù)shiftOut(dataPin,clockPin,bitOrder,val)dataPin:數(shù)據(jù)輸出引腳,數(shù)據(jù)的每一位將逐次輸出。引腳模式需要設(shè)置成輸出。
clockPin:時鐘輸出引腳,為數(shù)據(jù)輸出提供時鐘,引腳模式需要設(shè)置成輸出。
bitOrder:數(shù)據(jù)位移順序選擇位,該參數(shù)為byte類型,有兩種類型可選擇,分別是高位先入MSBFIRST和低位先入LSBFIRST。
val:所要輸出的數(shù)據(jù)值。
二、74HC595芯片



                                       

(一)74HC595芯片原理74HC595 簡單說來就是具有 8位移位寄存 和一個 存儲器 ,以及三態(tài)輸出 功能。
移位寄存器和存儲器有相互獨立的時鐘。數(shù)據(jù)在SH_cp(移位寄存器時鐘輸入)的上升沿輸入到移位寄存器中,在ST_cp(存儲器時鐘輸入)的上升沿輸入到存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復(fù)位,存儲寄存器有一個并行8位的,具備三態(tài)的總線輸出,當(dāng)使能OE時(為低電平),存儲寄存器的數(shù)據(jù)輸出到總線。




                                       


(二)74HC595芯片引腳簡介Q0-Q7這8根引腳是芯片的輸出引腳,直接跟數(shù)碼管的8段引腳相連。 Q7S引腳,串行輸出引腳,
DS是串行輸入引腳,這個引腳我們接到樹莓派任意一個GPIO口上(輸出模式)。
SHCP是移位寄存器的時鐘引腳。74HC595內(nèi)部有一個8位的移位寄存器用來保存從DS引腳輸入的數(shù)據(jù)。
STCP是芯片內(nèi)部另外一個8位鎖存寄存器的時鐘引腳。當(dāng)移位寄存器的8位數(shù)據(jù)全部傳輸完畢后,制造一次鎖存器時鐘引腳的上升沿(先拉低電平再拉高電平)。74HC595會在這個上升沿將移位寄存器里的8位數(shù)據(jù)復(fù)制到鎖存器中(鎖存器里原來的數(shù)據(jù)將被替換)。
OE是輸出使能引腳,作用是控制鎖存器里的數(shù)據(jù)是否最終輸出到Q0-Q7輸出引腳上。低電平時輸出,高電平時不輸出(既不是高電平,也不是低電平而是高阻態(tài),不通電)。
MR是用來重置內(nèi)部寄存器的引腳。低電平時重置內(nèi)部寄存器(MemoryReset)。
鎖存器,顧名思義就是將數(shù)據(jù)保存并鎖定。一旦進(jìn)入了鎖存器,除非斷電或重置數(shù)據(jù)(MR口設(shè)置為低電平),鎖存器的數(shù)據(jù)不會再改變。好處是,當(dāng)你需要更新數(shù)據(jù)時,將數(shù)據(jù)串行輸入移位寄存器的過程中,鎖存器里的數(shù)據(jù)不會有任何影響,也就不會有閃爍了。一直到移位寄存器8位數(shù)據(jù)準(zhǔn)備完畢,再制造一次STCP的上升沿一次性更新鎖存器的數(shù)據(jù),更新輸出。



                                       


三、實驗(一)實驗元件:74HC595 直插芯片*1、紅色M5 直插LED*4、綠色M5 直插LED*4、220Ω直插電阻*8、面包板*1、面包板跳線*1 扎。
(二)實驗原理圖:



                                       

(三)Proteus仿真電路圖:



                                       

(四)實驗代碼:

















歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1