一、shiftout函數shiftOut(dataPin,clockPin,bitOrder,val)dataPin:數據輸出引腳,數據的每一位將逐次輸出。引腳模式需要設置成輸出。
clockPin:時鐘輸出引腳,為數據輸出提供時鐘,引腳模式需要設置成輸出。
bitOrder:數據位移順序選擇位,該參數為byte類型,有兩種類型可選擇,分別是高位先入MSBFIRST和低位先入LSBFIRST。
val:所要輸出的數據值。
二、74HC595芯片
1.png (195.81 KB, 下載次數: 82)
下載附件
2019-1-16 03:43 上傳
(一)74HC595芯片原理74HC595 簡單說來就是具有 8位移位寄存 器和一個 存儲器 ,以及三態輸出 功能。
移位寄存器和存儲器有相互獨立的時鐘。數據在SH_cp(移位寄存器時鐘輸入)的上升沿輸入到移位寄存器中,在ST_cp(存儲器時鐘輸入)的上升沿輸入到存儲寄存器中去。如果兩個時鐘連在一起,則移位寄存器總是比存儲寄存器早一個脈沖。移位寄存器有一個串行移位輸入(Ds),和一個串行輸出(Q7’),和一個異步的低電平復位,存儲寄存器有一個并行8位的,具備三態的總線輸出,當使能OE時(為低電平),存儲寄存器的數據輸出到總線。
2.gif (713.94 KB, 下載次數: 78)
下載附件
2019-1-16 03:43 上傳
(二)74HC595芯片引腳簡介Q0-Q7這8根引腳是芯片的輸出引腳,直接跟數碼管的8段引腳相連。 Q7S引腳,串行輸出引腳,
DS是串行輸入引腳,這個引腳我們接到樹莓派任意一個GPIO口上(輸出模式)。
SHCP是移位寄存器的時鐘引腳。74HC595內部有一個8位的移位寄存器用來保存從DS引腳輸入的數據。
STCP是芯片內部另外一個8位鎖存寄存器的時鐘引腳。當移位寄存器的8位數據全部傳輸完畢后,制造一次鎖存器時鐘引腳的上升沿(先拉低電平再拉高電平)。74HC595會在這個上升沿將移位寄存器里的8位數據復制到鎖存器中(鎖存器里原來的數據將被替換)。
OE是輸出使能引腳,作用是控制鎖存器里的數據是否最終輸出到Q0-Q7輸出引腳上。低電平時輸出,高電平時不輸出(既不是高電平,也不是低電平而是高阻態,不通電)。
MR是用來重置內部寄存器的引腳。低電平時重置內部寄存器(MemoryReset)。
鎖存器,顧名思義就是將數據保存并鎖定。一旦進入了鎖存器,除非斷電或重置數據(MR口設置為低電平),鎖存器的數據不會再改變。好處是,當你需要更新數據時,將數據串行輸入移位寄存器的過程中,鎖存器里的數據不會有任何影響,也就不會有閃爍了。一直到移位寄存器8位數據準備完畢,再制造一次STCP的上升沿一次性更新鎖存器的數據,更新輸出。
3.png (150.2 KB, 下載次數: 70)
下載附件
2019-1-16 03:43 上傳
三、實驗(一)實驗元件:74HC595 直插芯片*1、紅色M5 直插LED*4、綠色M5 直插LED*4、220Ω直插電阻*8、面包板*1、面包板跳線*1 扎。
(二)實驗原理圖:
4.png (236.25 KB, 下載次數: 73)
下載附件
2019-1-16 03:43 上傳
(三)Proteus仿真電路圖:
5.png (346.16 KB, 下載次數: 79)
下載附件
2019-1-16 03:43 上傳
(四)實驗代碼:
6.png (306.49 KB, 下載次數: 85)
下載附件
2019-1-16 03:43 上傳
|