單片機(jī)驅(qū)動(dòng)數(shù)碼管顯示設(shè)計(jì)
②靜態(tài)顯示驅(qū)動(dòng):靜態(tài)驅(qū)動(dòng)也稱(chēng)直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來(lái)驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。
前面我們學(xué)習(xí)了數(shù)碼管的基礎(chǔ)知識(shí),現(xiàn)在馬上來(lái)看看S51增強(qiáng)型實(shí)驗(yàn)板的數(shù)碼管吧(圖4),S51實(shí)驗(yàn)板上有5位高亮度共陽(yáng)數(shù)碼管DG1~DG5,可以用來(lái)做計(jì)數(shù)器(最大計(jì)數(shù)值99999)、溫度顯示、電子鐘等顯示實(shí)驗(yàn),掌握數(shù)碼管的靜態(tài)顯示驅(qū)動(dòng)和動(dòng)態(tài)顯示驅(qū)動(dòng)。
圖4 |
S51增強(qiáng)型實(shí)驗(yàn)板的數(shù)碼管驅(qū)動(dòng)原理圖如下圖5所示。
圖5 |
從原理圖可以看出,S51增強(qiáng)型實(shí)驗(yàn)板中數(shù)碼管的段碼a,b,c,d,e,f,g,dp分別與單片機(jī)的P0.0~P0.7相連,控制數(shù)碼管中顯示的字形;數(shù)碼管的位選通由5個(gè)PNP三極管控制,分別接到單片機(jī)的P2.0、P2.1、P2.2、P2.3、P2.4端口上,程序中通過(guò)控制P2.0~P2.4端口的輸出電平就可以控制數(shù)碼管的顯示與關(guān)閉。如P2.0輸出低電平時(shí),三極管T1導(dǎo)通,+5V電源加到第一個(gè)數(shù)碼管的COM端,那么第一個(gè)數(shù)碼管DG1就會(huì)顯示出相應(yīng)的數(shù)字,顯示的數(shù)字由單片機(jī)P0.0~P0.7輸出段碼決定,當(dāng)P2.0輸出高電平時(shí),三極管T1截止,數(shù)碼管DG1就不顯示,從而實(shí)現(xiàn)數(shù)碼管位選通控制。同理,當(dāng)P2.1輸出低電平時(shí),則數(shù)碼管DG2顯示。。。
單片機(jī)驅(qū)動(dòng)數(shù)碼管的靜態(tài)顯示編程
上面我們學(xué)習(xí)了一大堆的理論知識(shí),對(duì)數(shù)碼管已經(jīng)有了較全面的認(rèn)識(shí),是否躍躍欲試了呀!馬上動(dòng)手編一個(gè)簡(jiǎn)單的程序驗(yàn)證一下理論吧,現(xiàn)在我們編程讓實(shí)驗(yàn)板上的第一個(gè)數(shù)碼管DG1顯示數(shù)字“6”,最終的實(shí)驗(yàn)效果見(jiàn)上面圖4所示。
啟動(dòng)Keil C51單片機(jī)集成開(kāi)發(fā)環(huán)境,新建一個(gè)工程,工程命名為smg1.uv2,(不懂如何建立新工程的初學(xué)者請(qǐng)看網(wǎng)頁(yè) 手把手教你建立Keil工程),打開(kāi)一個(gè)文本編輯窗,在文本編輯窗中輸入如下代碼:
;********** 下面是數(shù)碼管顯示"6"的程序 **********
MAIN:CLR P0.0;P0.0輸出低電平,點(diǎn)亮數(shù)碼管段碼"a"
SETBP0.1;P0.1輸出高電平,熄滅數(shù)碼管段碼"b"
CLR P0.2;P0.2輸出低電平,點(diǎn)亮數(shù)碼管段碼"c"
CLR P0.3;P0.3輸出低電平,點(diǎn)亮數(shù)碼管段碼"d"
CLR P0.4;P0.4輸出低電平,點(diǎn)亮數(shù)碼管段碼"e"
CLR P0.5;P0.5輸出低電平,點(diǎn)亮數(shù)碼管段碼"f"
CLR P0.6;P0.6輸出低電平,點(diǎn)亮數(shù)碼管段碼"g"
SETBP0.7;P0.7輸出高電平,熄滅數(shù)碼管小數(shù)點(diǎn)段碼"dp"
CLR P2.0;P2.0輸出低電平,選通數(shù)碼管DG1
SETBP2.1;P2.1輸出高電平,不選通數(shù)碼管DG2
SETBP2.2;P2.2輸出高電平,不選通數(shù)碼管DG3
SETBP2.3 ;P2.3輸出高電平,不選通數(shù)碼管DG4
SETBP2.4;P2.4輸出高電平,不選通數(shù)碼管DG5
AJMPMAIN;跳轉(zhuǎn)到開(kāi)始重新進(jìn)行
END ;程序結(jié)束
注:程序中分號(hào)“;”后面的中文為每一行程序的注釋?zhuān)欠奖阄覀冮喿x程序的,可以不輸入。
上面的源程序輸入完畢后,保存為"smg1.asm",然后添加到工程smg1.uv2中,最后源程序經(jīng)過(guò)編譯得到目標(biāo)文件"smg1.hex"(見(jiàn)下面的圖6所示),不熟悉Keil工程建立、設(shè)置及源程序編譯等詳細(xì)操作的初學(xué)者請(qǐng)參考網(wǎng)頁(yè) >>> 手把手教你建立Keil工程。>>>
手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評(píng)論