單片機(jī)控制數(shù)碼管的設(shè)計(jì)
LED小燈是一種簡單的LED,只能通過亮和滅來表達(dá)簡單的信息。而這節(jié)課我們要來學(xué)習(xí)一種能表達(dá)更復(fù)雜信息的器件——LED數(shù)碼管。
先給大家提供一張?jiān)韴D看一下,如圖5-3所示。
圖5-3 數(shù)碼管原理圖
這是比較常見的數(shù)碼管的原理圖,我們板子上一共有6個(gè)數(shù)碼管。前邊有了 LED 小燈的學(xué)習(xí),數(shù)碼管學(xué)習(xí)就會(huì)輕松的多了。從圖5-3可以看出來,數(shù)碼管共有 a、b、c、d、e、f、g、dp 這么8個(gè)段,而實(shí)際上,這8個(gè)段每一段都是一個(gè) LED 小燈,所以一個(gè)數(shù)碼管就是由8個(gè) LED 小燈組成的。我們看一下數(shù)碼管內(nèi)部結(jié)構(gòu)的示意圖,如圖5-4。
圖5-4 數(shù)碼管結(jié)構(gòu)示意圖
數(shù)碼管分為共陽和共陰兩種,共陰數(shù)碼管就是8只 LED 小燈的陰極是連接在一起的,陰極是公共端,由陽極來控制單個(gè)小燈的亮滅。同理,共陽數(shù)碼管就是陽極接在一起,大家可以認(rèn)真研究下圖5-4。細(xì)心的同學(xué)會(huì)發(fā)現(xiàn),圖5-3的數(shù)碼管上邊有2個(gè) com,這就是我們數(shù)碼管的公共端。為什么有2個(gè)呢,一方面是2個(gè)可以起到對(duì)稱的效果,剛好是10個(gè)引腳,另外一個(gè)方面,公共端通過的電流較大,我們初中就學(xué)過,并聯(lián)電路電流之和等于總電流,用2個(gè) com 可以把公共電流平均到2個(gè)引腳上去,降低單條線路承受的電流。
從我們開發(fā)板的電路圖上能看出來,我們所用的數(shù)碼管都是共陽數(shù)碼管,一共有6個(gè),如圖5-5所示。
6個(gè)數(shù)碼管的 com 都是接到了正極上,當(dāng)然了,和 LED 小燈電路一樣,也是由 74HC138 控制三極管的導(dǎo)通來控制整個(gè)數(shù)碼管的使能。先來看最右邊的 DS1 這個(gè)數(shù)碼管,原理圖上可以看出,控制 DS1 的三極管是 Q17,控制 Q17 的引腳是 LEDS0,對(duì)應(yīng)到 74HC138 上邊就是 U3 的 Y0 輸出,如圖5-6所示。
圖5-6 74HC138 控制圖
我們現(xiàn)在的目的是讓 LEDS0 這個(gè)引腳輸出低電平,相信大家現(xiàn)在可以根據(jù)前邊學(xué)過的知識(shí)獨(dú)立把 ADDR0、ADDR1、ADDR2、ADDR3、ENLED 這4個(gè)所需輸入的值寫出來了,現(xiàn)在大家不要偷懶,根據(jù) 74HC138 的手冊(cè)去寫一下,不需要你記住這些結(jié)論,但是遇到就寫一次,鍛煉過幾次后,遇到同類芯片自己就知道如何去解決問題了。
數(shù)碼管通常是用來顯示數(shù)字的,我們板子上有6個(gè)數(shù)碼管,習(xí)慣上稱之為6位,那控制位選擇的就是 74HC138 了。而數(shù)碼管內(nèi)部的8個(gè) LED 小燈我們稱之為數(shù)碼管的段,那么數(shù)碼管的段選擇(即該段的亮滅)是通過 P0 口控制,經(jīng)過 74HC245 驅(qū)動(dòng)。