新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機驅動數碼管顯示設計

單片機驅動數碼管顯示設計

作者: 時間:2013-01-15 來源:網絡 收藏

②靜態(tài)顯示驅動:靜態(tài)驅動也稱直流驅動。靜態(tài)驅動是指每個數碼管的每一個段碼都由一個的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態(tài)驅動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅動,要知道一個89S51可用的I/O端口才32個呢:),實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。

前面我們學習了數碼管的基礎知識,現在馬上來看看S51增強型實驗板的數碼管吧(圖4),S51實驗板上有5位高亮度共陽數碼管DG1~DG5,可以用來做計數器(最大計數值99999)、溫度顯示、電子鐘等顯示實驗,掌握數碼管的靜態(tài)顯示驅動和動態(tài)顯示驅動。

點擊瀏覽下一頁
圖4

S51增強型實驗板的數碼管驅動原理圖如下圖5所示。

點擊瀏覽下一頁
圖5

從原理圖可以看出,S51增強型實驗板中數碼管的段碼a,b,c,d,e,f,g,dp分別與的P0.0~P0.7相連,控制數碼管中顯示的字形;數碼管的位選通由5個PNP三極管控制,分別接到單片機的P2.0、P2.1、P2.2、P2.3、P2.4端口上,程序中通過控制P2.0~P2.4端口的輸出電平就可以控制數碼管的顯示與關閉。如P2.0輸出低電平時,三極管T1導通,+5V電源加到第一個數碼管的COM端,那么第一個數碼管DG1就會顯示出相應的數字,顯示的數字由單片機P0.0~P0.7輸出段碼決定,當P2.0輸出高電平時,三極管T1截止,數碼管DG1就不顯示,從而實現數碼管位選通控制。同理,當P2.1輸出低電平時,則數碼管DG2顯示。。。

單片機驅動數碼管的靜態(tài)顯示編程

上面我們學習了一大堆的理論知識,對數碼管已經有了較全面的認識,是否躍躍欲試了呀!馬上動手編一個簡單的程序驗證一下理論吧,現在我們編程讓實驗板上的第一個數碼管DG1顯示數字“6”,最終的實驗效果見上面圖4所示。

啟動Keil C51單片機集成開發(fā)環(huán)境,新建一個工程,工程命名為smg1.uv2,(不懂如何建立新工程的初學者請看網頁 手把手教你建立Keil工程),打開一個文本編輯窗,在文本編輯窗中輸入如下代碼:

;********** 下面是"6"的程序 **********

MAIN:CLR P0.0;P0.0輸出低電平,點亮數碼管段碼"a"
 SETBP0.1;P0.1輸出高電平,熄滅數碼管段碼"b"
 CLR P0.2;P0.2輸出低電平,點亮數碼管段碼"c"
 CLR P0.3;P0.3輸出低電平,點亮數碼管段碼"d"
 CLR P0.4;P0.4輸出低電平,點亮數碼管段碼"e"
 CLR P0.5;P0.5輸出低電平,點亮數碼管段碼"f"
 CLR P0.6;P0.6輸出低電平,點亮數碼管段碼"g"
 SETBP0.7;P0.7輸出高電平,熄滅數碼管小數點段碼"dp"

 CLR P2.0;P2.0輸出低電平,選通數碼管DG1
 SETBP2.1;P2.1輸出高電平,不選通數碼管DG2
 SETBP2.2;P2.2輸出高電平,不選通數碼管DG3
 SETBP2.3  ;P2.3輸出高電平,不選通數碼管DG4
 SETBP2.4;P2.4輸出高電平,不選通數碼管DG5

 AJMPMAIN;跳轉到開始重新進行
 END ;程序結束

注:程序中分號“;”后面的中文為每一行程序的注釋,是方便我們閱讀程序的,可以不輸入。

上面的源程序輸入完畢后,保存為"smg1.asm",然后添加到工程smg1.uv2中,最后源程序經過編譯得到目標文件"smg1.hex"(見下面的圖6所示),不熟悉Keil工程建立、設置及源程序編譯等詳細操作的初學者請參考網頁 >>> 手把手教你建立Keil工程。>>>

手機電池相關文章:手機電池修復


單片機相關文章:單片機教程


單片機相關文章:單片機視頻教程


單片機相關文章:單片機工作原理




評論


相關推薦

技術專區(qū)

關閉