第七章 LED七段顯示器 認識七段顯示器 用陣列儲存七段顯示數字 認識74HC595(序列連接七段顯示器)
七段顯示器 七段顯示器是內建八個LED的顯示元件,為了方便解說, 內部LED分別標上a~g和dp(點)代號。 參閱 7-2
用陣列儲存七段顯示數字 下圖顯示了呈現某個數字所需點亮的LED代號,並用陣列儲存。 參閱 7-3
連接LED七段顯示器與Arduino板 參閱 7-4
顯示數字的程式 從LEDs陣列,取出數字編碼輸出給「埠D」腳位,傳給七段顯示器。 參閱 7-5
使用積體電路簡化電路 積體電路(IC)是把各種電子元件裝配在一個小矽晶上面,完成特定的電路功能。 參閱 7-8 用74HC595,能把原本「並連」元件的接法,改成「串連」,減少佔用Arduino腳位。
74HC595簡介 74HC595是一個8位元位移暫存器(shift register),「暫存器」相當於記憶體,代表它最多能保存8位元資料,「位移」則代表其內部資料可序列移動。 參閱 7-11
序列連接七段顯示器(一) 74HC595連接一個七段顯示器電路 參閱 7-12 74HC595串列輸入、 並列輸出時序圖
使用shiftOut()函數傳輸序列資料 Arduino提供一個shiftOut()函數(直譯「資料位移輸出」),能一次傳送8個位元資料,我們只需負責打開和關閉74HC595的並列資料輸出閘門,語法如下: 其中的「位元順序」代表資料位元的傳送順序。採用的傳送方式,取決於74HC595資料輸出端的電路接法。 參閱 7-13
序列連接七段顯示器(二) 參閱 7-14
序列顯示器的主程式碼 底下的程式實作採用LSBFIRST(最小位元先傳),若要改用MSBFIRST(最大位元先傳),請將電路圖中的a~g接線順序顛倒過來接。 參閱 7-15
串聯兩個74HC595(一) 串聯在一起的74HC595,就像相連的生產線,自前一條生產線推移出來的物品,會接續出現在下一條生產線: 參閱 7-16 本單元程式與說明,可參閱作者網站的這篇文章: 串聯多個74HC595 的Arduino程式示範
串聯兩個74HC595(二) 所有串聯的74HC595的序列時脈(第11腳)和暫存器時脈線(第12腳),都要接在一起,才能同步運作。 參閱 7-17
認識邏輯閘 數位系統中最基本的運算就是邏輯運算,負責邏輯運算最基本的元件就是邏輯閘。邏輯閘能將一個或多個輸入,經運算之後產生一個輸出。 參閱 7-20