51單片機學習之4-數碼管

2021-01-08 電子產品世界

第11集

一、數碼管工作原理

本文引用地址:http://www.eepw.com.cn/article/201611/323853.htm



數碼管顯示亮度高,響應速度快,可以在一些比較差的環境中使用。有1位、2位、4位、8位連體等。。。也有專用於顯示時間的數碼管。

如圖,一位數碼管由8個二極體構成,7個構成「日」字型,1個是小圓點。分共陰和共陽。共陰:所有二極體的負極連接在一起,接到電源負極。共陽:所有二極體的正極連接在一起,接到電源正極。(圖(a)引腳畫錯了。)

驅動的原理都很簡單,如共陽型數碼管的驅動。圖(b)右邊的電路圖可以看出,所有的二極體正極都接在電源正極,a、b、c、d、e、f、g、dp都接在單片機的IO口上,在《51單片機複習筆記1》:http://www.51hei.com/mcu/2111.html中介紹過驅動二極體的原理,所以這裡只需要在相應的二極體負極給低電平即可讓相應的二極體發光。

這裡補充一下,為什麼給高電平二極體就不亮,給低電平就亮呢。因為單片機是TTL電平,也就是說高電平即輸出5V,低電平就不輸出電壓0V,二極體的正極接在電源的正極那就是5V,那麼二極體的負極如果也給高電平的話,那麼就相當於在二極體的負極也接到了5V,二極體兩端都是5V沒有電勢差,就相當於沒有通電一樣,自然不會發光。給低電平即0V,那麼二極體就有一個5V的電勢差且是正向偏置,二極體自然就發光了,共陰型恰好相反。

看下圖(設共陽型),假如我們要讓數碼管顯示『1』,那麼只需要給b、c段的二極體低電平,其他為高電平即可讓數碼管顯示『1』。假如我們要讓數碼管顯示『2』,那麼只給a、b、g、e、d低電平即可讓數碼管顯示『2』。要顯示什麼,只給相應的發光二極體低電平即可。



那麼在實際編程中應該怎麼寫程序呢。

我們將a、b、c、d、e、f、g、dp八個引腳接到單片機的P1口,P1^0←a、P1^1←b.....P1^7←dp。畫紅框的是低四位。那麼如果要顯示2。

P1^0=a=0、P1^1=b=0、P1^6=g=0、P1^4=e=0、P1^3=d=0

剩餘的為1那麼就是:10100100=0xA4

程序代碼中將0xA4賦值給P1即可,如P1=0xA4;看圖。








由於數碼管需要佔用單片機的IO口很多,所以一般會搭配74HC573晶片來擴展IO口。《51單片機複習筆記1》有介紹該晶片的使用方法。驅動原理一樣。

數碼管顯示方式有兩種:

靜態顯示:其實和上面一樣,如P1=0xA4;那麼P1一直維持0xA4那麼數碼管的每一段二極體的狀態都會保持字形不變。變動P1的電平狀態才會改變新字形。優點是佔用CPU時間少。缺點是佔用IO口多硬體設計複雜,特別是控制多位數碼管時尤為佔用IO口,成本較高。


動態顯示:動態其實就是利用發光二極體的餘暉和人眼視覺暫留作用。控制多位數碼管時,將所有數碼管的段選並聯在一起,由位選線控制是哪位數碼管接受段選編碼。如下圖一樣。

例如:

P0組是並聯所有數碼管的段選。P2^6、P2^7選擇哪位數碼管。我要顯示520,那麼首先選中第一位數碼管,然後送數字5的段編碼控制段選的P0口。

然後再選中第二位數碼管,再送數字2的段選編碼給P0,這時候第一位數碼管雖然斷電,但是二極體並沒有瞬間熄滅,所以還有餘暉保持字形。
繼續再選中第三位數碼管送數字0的段選編碼給P0,這時候第一、第二位數碼管雖然都斷電,但由於切換速度太快,餘暉仍沒有完全熄滅就造成三位數碼管同時顯示不同的數字字型的假象。


相關焦點

  • 51單片機基礎之靜態數碼管電路
    原理圖多數人也都知道,51單片機的入門第一篇就是Led燈的操作,當然了,那也是最基本的操作。上次玩完LED燈,就相當於是入門,今天我們來看看數碼管,對於數碼管,大家可以是再熟悉不過了,生活中處處都可以見到各種各樣的數碼管,但是你知道其內部的原理嗎,其實還是相當簡單的,老樣子,我們要玩什麼,當然是先看看這個部分的原理圖了:由原理圖可知,八個數碼管並不是直接接在單片機的IO口上的,而是用了74HC595晶片,那麼我們要想驅動數碼管,就必須了解595晶片到底是個什麼玩意兒
  • 74HC595控制8位數碼管 51單片機
    關鍵字:74HC595控制  8位數碼管  51單片機 編輯:什麼魚 引用地址:http://news.eeworld.com.cn/mcu/2015
  • 單片機驅動數碼管設計詳解(74HC595實現)
    數碼管顯示設計本設計使用了一個4位的數碼管,為共陽型,為了節省單片機的IO口,使用了兩片74HC595作為數碼管的驅動晶片,共佔用3個IO口。其管腳介紹如下:15:數據輸出A-接數碼管數據A段;1:數據輸出B-接數碼管數據B段;2:數據輸出C-接數碼管數據C段;3:數據輸出D-接數碼管數據D段;4:數據輸出E-接數碼管數據E段;5:數據輸出F-接數碼管數據F段;6:數據輸出G-接數碼管數據G段;7:數據輸出H-接數碼管數據H段;
  • 51單片機之4位數加法計算器的設計報告
    方案二:採用LED數碼管顯示。數碼管能顯示數字和符號,但是佔用I/O口資源較多,對於簡單的電路可以選用此方案。計算器,需要較為強大的人機互動界面,故選用方案一,顯示所需信息。2.2.6 蜂鳴器的選擇方案論證方案一:採用有源蜂鳴器。有源蜂鳴器內部帶震蕩源,只要一通電就會發出響聲。
  • 單片機控制八隻數碼管滾動顯示1~8 附PROTEUS軟體仿真圖
    數碼管顯示是每一個單片機初學者都必須學的,而單片機驅動數碼管的數字循環顯示實驗,又是單片機基礎中的基礎,同時也是學好C語言編程的關鍵,此實驗在硬體上可以弄清楚單片機驅動原理和數碼管的顯示原理,在軟體上可以幫助建立編程思維和良好的編程習慣,同時加深C語言中 函數,變量和循環結構語句的學習
  • 單片機控制單只數碼管循環顯示0~F 用PROTEUS軟體仿真
    數碼管顯示是每一個單片機初學者都必須學的,而單片機驅動數碼管的數字循環顯示實驗,又是單片機基礎中的基礎,同時也是學好C語言編程的關鍵,現在供上代碼供大家學習研究,此程序經過一些改進,可以實現按鍵識別 數碼管動態掃描。同時也可以做各種有關顯示調試程序的二次開發等等。
  • 51單片機還有沒有必要學?
    二、51單片機入門學習首先根據個人基礎,如果是完全沒有基礎的,應該還是從51單片機入手,目前51單片機的應用還有很多,很多設備還能見到51晶片,尤其成本低的項目,出貨量特別大,51單片機入門簡單,上手快,項目開發進度快。低端產品大量使用,也是教學入門的晶片。
  • MC-51單片機紅綠燈+數碼管計時實驗
    單片機實驗//主機板的P1接口 平接 顯示板P00接口 即數碼管段選接口//主機板的P3接口 平接 顯示板P20接口 即數碼管位選接口//主機板的P0接口 平接 顯示板燈的接口
  • 單片機編程:讓led數碼管顯示數字0到9
    打開APP 單片機編程:讓led數碼管顯示數字0到9 發表於 2018-01-15 16:23:34 led數碼管(LEDSegmentDisplays
  • 學習單片機,為什麼我建議你從51單片機開始
    隨著物聯網的大潮,單片機的學習又有高潮,可是面對品類繁多的單片機,不知從何學起,不知道到底學習單片機需要哪些知識;是從8位單片機、16位單片機,還是現在正流行的32位單片機開始學習呢。因此經過我的教學經驗,如果想開始學習單片機,最好從51單片機開始學起,我都推薦STC系列的51單片機學習。原因就是一句話,因為51系列單片機簡單,學習起來也簡單。但是簡單不代表它功能少,51單片機雖然簡單,但體系是完備的。所以當你學會51單片機,會非常快速入門其它單片機學習。
  • 51單片機、STM32單片機、PIC單片機性能對比
    51單片機 應用最廣泛的8位單片機當然也是初學者們最容易上手學習的單片機,最早由Intel推出,由於其典型的結構和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統,堪稱為一代「經典」,為以後的其它單片機的發展奠定了基礎。
  • Proteus軟體仿真與Keil的51單片機系統設計
    51、PIC、AVR、ARM7等多個系列的單片機晶片,集編輯、編譯、仿真調試於一體。本設計以51單片機構成的99秒馬表為例描述基於Proteus的硬體設計、基於Keil C的軟體設計以及它們的聯合仿真調試過程。
  • 51單片機C語言教程(四) 數據類型
    在KEIL uVision2中的關鍵字除了有ANSI C標準的32個關鍵字外還根據51單片機的特點擴展了相關的關鍵字。其實在KEIL uVision2的文本編輯器中編寫C程序,系統可以把保留字以不同顏色顯示,預設顏色為天藍色。(標準和擴展關鍵字請看附錄一中的附表1-1和附表1-2)  先看表4-1,表中列出了KEIL uVision2 C51編譯器所支持的數據類型。
  • 從零開始學習51單片機(八)獨立按鍵S1實驗3:一鍵控制N個設備
    今天的學習內容是:系統化編程讓一個按鍵能夠控制N個設備獨立按鍵S1的實驗3:在「獨立按鍵S1實驗2」的基礎上進一步改進,讓程序再次優化,學會怎樣將程序模塊化編寫,掌握了程序模塊化編寫,就能夠用一個獨立按鍵同時控制N個設備了
  • 基於51單片機電子琴的設計(附源碼及論文)
    單片機最小系統單片機最小系統說明:時鐘信號的產生:在MCS-51晶片內部有一個高增益反相放大器,其輸入端為晶片引腳如果晶體振蕩頻率高,則系統的時鐘頻率也高,單片機的運行速度也就快。單片機復位使CPU和系統中的其他功能部件都處在一個確定的初始狀態下,並從這個狀態開始工作。單片機復位條件:必須使9腳加上持續兩個機器周期(即24個振蕩周期)的高電平。
  • 基於51單片機的人體紅外模塊的自動門設計
    方案二:採用51系列單片機。系統的要求不高,程序的編寫也比較簡單,需要用到的I/O口的數量用該系列的單片機來操作完全能夠實現,無需再擴展,充分的利用了單片機資源。另外,經典的51系列單片機的處理速度也能夠滿足系統要求,性價比相對CPLD器件更高。綜合以上兩種方案,本系統選擇方案二,以AT89C51作為系統的微控制器。4.
  • 基於51單片機的電子時鐘課程設計
    第一章 設計目的及要求1.目的通過對電子時鐘系統進行編程與Protues仿真,進一步掌握單片機的組成,P1、P0、P2、P3口的應用,蜂鳴器的應用,定時中斷程序的編寫及應用,對之前學習的單片機課程進行回顧與應用;初步掌握Protues仿真方法以及用keil軟體編寫程序的方法。
  • 圖形化編程玩51單片機(十四)模擬工廠裡產品掃描計數器實驗一
    【使用說明】:選用51單片機實驗板上的S2和S3鍵。其中S2用於模擬代替掃描開關,當有產品經過時,會使S2送出低電平(本程序中使用手按下S2來模擬)S2每按一下,便會使數碼管上的計數器加一,達到一萬的時候全部清零,重新計數。
  • 現在還有必要學習51單片機了嗎
    無意間聽到的這段對話,引出了我的一番思考,現在學單片機,尤其是8位的51單片機,真的是窮途末路了嗎?低成本晶片的主戰場當下的電子,嵌入式行業發展中,單片機的用量越來越大,應用領域越來越廣,小到20元左右的玩具,達到成百上千萬的醫療設備,無不在使用單片機。
  • 基於proteus的51單片機開發實例24-矩陣鍵盤(行列式鍵盤)
    設計思路我們在前面已經學習過獨立按鍵,在獨立按鍵電路中,一個按鍵連接單片機的一位I/O埠。這樣通過檢測I/O的狀態就能很方便的識別該按鍵是否按下。這種電路的優點是:電路簡單,程序簡單,缺點是一個按鍵就要佔用一個I/O口。