單片機運用,七段數碼管如何用單片機控制!

相信大家都見過數碼管,數碼管上面有abcdefg七個筆畫,構成一個“日”字。那麼它在單片機電路上一般是起什麼作用呢?數碼管都知道它是半導體發光器件,那麼它的具體原理你知道多少?本文將會逐步解析這些問題,給你還原一個真實的數碼管。

數碼管的一種是半導體發光器件,數碼管可分為七段數碼管和八段數碼管,區別在於八段數碼管比七段數碼管多一個用於顯示小數點的發光二極管單元DP(decimal point),其基本單元是發光二極管。數碼管是一類價格便宜使用簡單,通過對其不同的管腳輸入相對的電流,使其發亮,從而顯示出數字能夠顯示 時間、日期、溫度等所有可用數字表示的參數的器件。

在電器特別是家電領域應用極為廣泛,如顯示屏、空調、熱水器、冰箱等等。絕大多數熱水器用的都是數碼管,其他家電也用液晶屏與熒光屏。

數碼管常用段數一般為7段有的另加一個小數點,還有一種數碼管是類似於3位“+1”型。數碼管位數有半位,1,2,3,4,5,6,8,10位等等。..。,數碼管根據LED的接法不同分為共陰和共陽兩類,瞭解數碼管的這些特性,數碼管對編程是很重要的,因為不同類型的數碼管,除了數碼管的硬件電路有差異外,數碼管編程方法也是不同的。數碼管的發光原理是一樣的,只是數碼管的電源極性不同而已。數碼管顏色有紅,綠,藍,黃等幾種。數碼管廣泛用於儀表,時鐘,車站,家電等場合。選用數碼管時要注意產品尺寸顏色,功耗,亮度,波長等。下面將介紹常用數碼管內部引腳圖片。

數碼管引腳定義每一筆劃都是對應數碼管一個字母表示數碼管DP是小數點。數碼管透過分時輪流控制各個數碼管的COM端,就使各個數碼管輪流受控顯示,這就是數碼管動態驅動。每位數碼管的點亮時間為1~2ms,由於人的視覺暫留現象及發光二極體的餘輝效應,儘管實際上各位數碼管並非同時點亮LED數碼管,但只要數碼管掃描的速度足夠快,數碼管給人的印象就是一組穩定的顯示資料,數碼管不會有閃爍感,數碼管動態顯示的效果和靜態顯示是一樣的,數碼管能夠節省大量的I/O口,而且數碼管功耗更低。

單片機運用,七段數碼管如何用單片機控制!


數碼管在單片機上的應用詳解

數碼管原理圖

這是比較常見的數碼管的原理圖,我們板子上一共有6個數碼管。前邊有了 LED 小燈的學習,數碼管學習就會輕鬆的多了。從圖5-3可以看出來,數碼管共有 a、b、c、d、e、f、g、dp 這麼8個段,而實際上,這8個段每一段都是一個 LED 小燈,所以一個數碼管就是由8個 LED 小燈組成的。我們看一下數碼管內部結構的示意圖,如下圖:

單片機運用,七段數碼管如何用單片機控制!


共陽數碼管 共陰數碼管

數碼管分為共陽和共陰兩種,共陰數碼管就是8只 LED 小燈的陰極是連接在一起的,陰極是公共端,由陽極來控制單個小燈的亮滅。同理,共陽數碼管就是陽極接在一起,大家可以認真研究下圖5-4。細心的同學會發現,圖5-3的數碼管上邊有2個 com,這就是我們數碼管的公共端。為什麼有2個呢,一方面是2個可以起到對稱的效果,剛好是10個引腳,另外一個方面,公共端通過的電流較大,我們初中就學過,並聯電路電流之和等於總電流,用2個 com 可以把公共電流平均到2個引腳上去,降低單條線路承受的電流。

從我們開發板的電路圖上能看出來,我們所用的數碼管都是共陽數碼管,一共有6個,如下圖:

單片機運用,七段數碼管如何用單片機控制!


數碼管電路

6個數碼管的 com 都是接到了正極上,當然了,和 LED 小燈電路一樣,也是由 74HC138 控制三極管的導通來控制整個數碼管的使能。先來看最右邊的 DS1 這個數碼管,原理圖上可以看出,控制 DS1 的三極管是 Q17,控制 Q17 的引腳是 LEDS0,對應到 74HC138 上邊就是 U3 的 Y0 輸出,如下圖:

單片機運用,七段數碼管如何用單片機控制!



74HC138 控制圖

我們現在的目的是讓 LEDS0 這個引腳輸出低電平,相信大家現在可以根據前邊學過的知識獨立把 ADDR0、ADDR1、ADDR2、ADDR3、ENLED 這4個所需輸入的值寫出來了,現在大家不要偷懶,根據 74HC138 的手冊去寫一下,不需要你記住這些結論,但是遇到就寫一次,鍛鍊過幾次後,遇到同類芯片自己就知道如何去解決問題了。

數碼管通常是用來顯示數字的,我們板子上有6個數碼管,習慣上稱之為6位,那控制位選擇的就是 74HC138 了。而數碼管內部的8個 LED 小燈我們稱之為數碼管的段,那麼數碼管的段選擇(即該段的亮滅)是通過 P0 口控制,經過 74HC245 驅動。

數碼管是單片機系統中經常用到的顯示器件, 從內部結構上可以分為共陰極和共陽極數碼管。對不同的數碼管,電路的接法也不一樣,下圖左為數碼管的結構圖。以共陽極數碼管為例, 要想點亮某段, 只需要在相應的段上給低電平即可。下圖右為共陽極數碼管段碼分佈, 以及一個顯示的實例。

單片機運用,七段數碼管如何用單片機控制!



驅動方式

按照工作方式, 數碼管驅動可以分為靜態顯示和動態掃描。所謂靜態顯示, 就是每一個數碼管的段碼都要獨佔具有鎖存功能的輸出口, CPU把要顯示的字碼送到輸出口上,就可以使數碼管顯示對應的字符, 直到下一次送出另外一個字碼之前, 顯示的內容一直不會消失;

動態掃描是把所有顯示器的8個段碼中的A-dp的各個相同段連接在一起, 接到一個公共的輸出口上,而數碼管的位端分別接在另外的輸出口上,通過這兩個輸出口的兩組信號相互作用來產生顯示效果。即讓各位數碼管按照一定順序輪流顯示, 只要掃描頻率足夠高, 由於人眼的“ 視覺暫留”現象,就能連續穩定的顯示。

靜態顯示法的優點是顯示穩定、亮度大, 節約CPU時間, 但佔有I/O口線較多, 硬件成本高。動態掃描其特點在於能顯著降低顯示部分成本,大大減少顯示接口的連線結構。舉例, 靜態驅動4位數碼管, 需要4×8=32個I/O口, 而動態的驅動位數碼管只需要4+8=12個I/O口。

數碼管電路圖詳解

單片機的I/O資源是有限的, 因此如何節省I/O口線而又不影響系統的功能是單片機工程師面臨的實際問題。圖2採用是串行轉並行芯片74HC595和三線一八線譯碼器實現8位數碼管的驅動, 好處是可以節省更多的I/O口線作其他用途。正常驅動8個數碼管需要8+8=16根口線, 採用595+138的方式只需要3+3=6根。

單片機運用,七段數碼管如何用單片機控制!



數碼管顯示電路連接圖

為了更好地理解電路, 這裡簡單介紹一下74HC595和74LS138兩個芯片的作用。74HC595是一款串行移位輸入、8位並行輸出的芯片, 內帶數據移位寄存器和三態輸出鎖存器;SER為串行數據輸入;SRCLK為移位時鐘輸入;RCLK為鎖存控制輸入;QA-QH為數據輸出, QH’為向下一片(位)的串行數據輸出。

74LS138是一個3線一8線的譯碼器, 低電平有效輸出, 因此每個時刻輸出端口只有一個是低電平, 其餘都是高電平輸出, 因此可以驅動共陰極數碼管。如果驅動共陽極的數碼管還需要做一個非門的轉換。最後, 為了增加單片機I/O的輸出能力, 在74HC595與數碼管之間串接了一個74HC245並行驅動芯片。

從電路圖中可以看到, 每個芯片的電源和地附近都接了一個104電容, 這個高頻濾波電容, 可以減小電源對IC的影響。注意高頻電容的佈線, 連線應靠近電源端並儘量粗短, 否則, 等於增大了電容的等效串聯電阻, 會影響濾波效果。其實, 不加這個電容也可以, 但萬一因為干擾出了問題, 就會很難查找根源, 實際調試電路板的時候就會發現電容的作用非常大的, 而這些恰恰是初學者容易忽略的地方。

關健程序分析

動態掃描需要注意的一個問題, 由於所有數碼管的段碼接到一個公用的I/O上, 在每個瞬間, 各個位數碼管上的段碼都是一樣的, 要想在不同的位顯示不同的信息, 必須用掃描顯示的方式, 在一段時間內, 只點亮一個數碼管, 其餘的都處於關閉狀態;下一個時間段內點亮下一個數碼管, 其餘的都處於關閉狀態。

如此循環, 造成一個視覺暫留的效果, 當閃爍的頻率大於50Hz的時候, 人眼就分辨不出來了, 即各個位上顯示的信息就“ 區分”開了。掃描頻率過高, 每個位顯示的時間太短, 數碼管的亮度不夠;掃描頻率過低, 會有明顯的閃爍感。這個時間需要根據不同的硬件電路, 做不同的調整, 而且跟數碼管的個數有關, 一般的經驗值延時10ms左右。

單片機運用,七段數碼管如何用單片機控制!


數碼管動態顯示流程圖

本應用以基於51單片機下數碼管應用:

從上文我們已經知道了數碼管分為共陽管和共陰管。數碼管從高位到低位的段碼依次是h(dp),g,f,e,d,c,b,a共八位。共陰管是“1”表示亮,“0”表示滅,而共陽管則是相反的。順便提一句,若是要檢測數碼管是否完好,可以用數碼管“8”來檢測。

單片機運用,七段數碼管如何用單片機控制!



基於51單片機下數碼管顯示程序

若是要在數碼管上顯示0~F,則可以用一套固定的十六進制數表示,可以放在數組中,為{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}。這一個數組是用來表示共陰管的亮的,而若是共陽管的時候,需要在前面加上“~”。

獨立共陽管顯示0-F

單片機運用,七段數碼管如何用單片機控制!


8位共陰管顯示有靜態掃描和動態掃描兩種方式。

1、8個同時顯示0-F 靜態掃描

單片機運用,七段數碼管如何用單片機控制!


單片機運用,七段數碼管如何用單片機控制!


2、顯示0-F:先是顯示0-7,然後顯示8-F 位:第1-8位,第1-8位 動態掃描

單片機運用,七段數碼管如何用單片機控制!



單片機運用,七段數碼管如何用單片機控制!



簡而言之,數碼管不管是在日常生活還是在電路中都應用廣泛,本文不可能一一講解清楚,如有不足之處,還請海涵。

臥龍會,臥虎藏龍,IT高手匯聚!由多名十幾年的IT技術設計師組成,歡迎關注!


分享到:


相關文章: