- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
LED七段显示器
第七章 LED七段顯示器 認識七段顯示器 用陣列儲存七段顯示數字 認識74HC595(序列連接七段顯示器) 七段顯示器 七段顯示器是內建八個LED的顯示元件,為了方便解說,內部LED分別標上a~g和dp(點)代號。連接電源方式不同,區分共陽(陰)極。 參閱 7-2 所有LED端接地都相連 用陣列儲存七段顯示數字 下圖顯示了呈現某個數字所需點亮的LED代號,並用陣列LEDs儲存。陣列元素資料類型為 byte,儲存 0~9 共 10 個數字腳位編碼。 參閱 7-3 共陰極七段顯示器 用陣列儲存七段顯示數字 下圖顯示共陰極七段顯示器腳位編碼,共陽極則呈現互補對應結果。 參閱 7-3 byte index = 0; const byte LEDs[10] = { B1111110, B0110000, B1101101, B1111001, B0110011, B1011011, B1011111, B1110000, B1111111, B1111011, } ; //(續) 連接LED七段顯示器與Arduino板 參閱 7-5 顯示數字的程式 在loop函數中,每隔一秒從LEDs陣列,取出數字編碼輸出給「埠D」腳位(數位 0~7 腳),傳給七段顯示器。 參閱 7-6 void setup() { //埠D 0~7 腳全設為輸出 DDRD = //可改寫成上述for迴圈 } 在setup()函數中,可使用 for 迴圈將 0~6 腳位設定成輸出。 void setup() { for (byte i = 0 ; i 7 ; i++) { pinMode(i, OUTPUT); } //將 0~6 腳全設為輸出 //為確保 index 值在 0~9 之間循環, // 當index=10 時,將它重設為 0 (取出 index 0~9 元素) 顯示數字的程式 參閱 7-6 上傳程式碼時,若 Arduino 程式開發工具出現底下錯誤訊息 : avrdude: stk500_getsync(): not in sync: resp=0x00 請先拆掉數位 0 和 1 的接線,即可上傳新的程式。 程式上傳後,再將原本的數位 0 與 1 腳接線裝回去。重新接上 USB 線供電後,七段顯示器將每隔一秒顯示 0~9。 拆、裝電路時,請先拔掉 USB 線,以免拆線時,導線碰觸到電路板導致短路損毀。 連接硬體時,應避免使用數位 0 與 1 腳,因為該兩腳位也用於序列埠通訊。從電腦上傳程式碼給 Arduino 板,就是透過序列埠傳送。 然而七段顯示器電路有兩個缺點: (1)使用到數位 0 與 1 腳、(2)佔用太多腳位。為了減少佔用腳位,可改採積體電路(Integrated Circuit)元件來擴充 Arduino 的輸出腳位。 使用積體電路簡化電路 積體電路(IC)是把各種電子元件裝配在一個小矽晶上面,完成特定的電路功能。數位IC用於邏輯運算、計算、暫存資料、編/解碼…等處理0與1訊號。類比IC用於通訊、訊號放大、電壓調節…等連續訊號處理。 用74HC595,能把原本「並連」元件的接法,改成「串連」,減少佔用Arduino腳位。 參閱 7-8 間距 0.1吋(2.54mm) 日立 串入並出 7408 IC +Vcc 輸入 輸出 輸入 輸出 輸出 輸入 輸入 輸出 GND 74HC595簡介 74HC595是一個8位元位移暫存器(shift register),「暫存器」相當於記憶體,代表它最多能保存8位元資料,「位移」則代表其內部資料可序列移動。 參閱 7-10 當時脈訊號由低電位變成高電位時,序列輸入的資料將逐一往高位元方向移動,依序進入暫存器。依序進入8個位元資料並移動8次之後,左邊的輸出控制開關將被開啟,此時,8個位元資料將同時被傳送出去。 齒輪為時脈訊號 74HC595 接腳圖 輸出 1~7 接地 正電源 輸出0 序列輸入(SER) 輸出致能,此腳接地,代表允許輸出 暫存器時脈,RCLK 序列時脈,SRCLK 序列清除,SRCLR,將此腳接地代表清除。通常固定在正電源。 串聯輸出 使用shiftOut()函數傳輸序列資料 Arduino提供一個shiftOut()函數(直譯「資料位移輸出」),能一次傳送一個位元組(8個位元)資料,我們只需負責打開和關閉74HC595的並列資料輸出閘門,語法如下: 其中的「位元順序
文档评论(0)