<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

單片機驅動(dòng)數碼管顯示設計

作者: 時(shí)間:2013-01-15 來(lái)源:網(wǎng)絡(luò ) 收藏


看看修改后的程序將變得更加簡(jiǎn)潔,直觀(guān)了,程序代碼從原來(lái)的15行減少到僅4行,一樣實(shí)現了相同的功能。這也就是我們要學(xué)習的編程技巧哦!在編程中盡量用最少的代碼實(shí)現相同的功能。程序第1行的功能是將要顯示的數字“6”的十六進(jìn)制段碼"82H"送到P0口,程序第2行的功能就是將數碼管的選通代碼#0FEH(即二進(jìn)制"11111110")送到P2口,從而控制第一位,其它數碼管熄滅。把修改過(guò)的程序編譯后的目標文件寫(xiě)到上看到顯示效果是一樣的。程序中用一行代碼 MOVP0,#82H 就輸出了字形,因此我們要顯示其它字形時(shí)只要從上面的數碼管段碼表中查出對應的十六進(jìn)制字形碼,用同樣的方法把段碼輸出到P0口就可以了。比如我們要顯示一個(gè)數字“8”, 只需將程序中的 MOVP0,#82H 語(yǔ)句改成 MOVP0,#80H 即可,至此,我們終于可以隨心所欲地控制數碼管要顯示的字形了,是不是很簡(jiǎn)單呀 :) 。

另外,如果想讓第二位數碼管DG2顯示,其它熄滅怎么辦呢?其實(shí)很簡(jiǎn)單,只要把對應數碼管的選通端口輸出低電平就可以使該位了,如指令 CLRP2.1 就可以讓第二個(gè)。。。程序中如果使P2.0~P2.4都輸出低電平,那么實(shí)驗板上的5個(gè)數碼管都會(huì )被選通,顯示出相同的字形,即顯示“66666”。下面就是5位數碼管顯示出“66666”的程序,初學(xué)者可以實(shí)驗一下,以加深對數碼管顯示位選通(使能)控制的理解。

MAIN:MOV P0,#82H ;將數字"6"的段碼輸出到P0口
 MOV P2,#0E0H;從P2口輸出數碼管選通代碼,使5位數碼管均選通,即輸出二進(jìn)制“11100000”
 AJMPMAIN;跳轉到開(kāi)始重新進(jìn)行
 END ;程序結束

驅動(dòng)數碼管的動(dòng)態(tài)顯示編程

上面我們已經(jīng)學(xué)習了數碼管靜態(tài)顯示,接下來(lái)我們就學(xué)習數碼管動(dòng)態(tài)顯示編程,編程讓實(shí)驗板上的數碼管顯示“89C51”。從原理圖中(圖5)我們可以看到,5個(gè)數碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端是2連在一起的,那么當程序從P0口輸出字形碼時(shí),在同一個(gè)時(shí)間所有數碼管都會(huì )接收到相同的字形碼。你一定會(huì )問(wèn),這樣不是5個(gè)數碼管都顯示相同的數字了嗎?如何顯示出5個(gè)不同的字符“89C51”呢?因此,就要使用動(dòng)態(tài)掃描了,在程序中,首先顯示一個(gè)數,然后關(guān)掉;然后顯示第二個(gè)數,又關(guān)掉,顯示第三個(gè)數,又關(guān)掉。。。直到所有要顯示的5個(gè)數完成,再從頭開(kāi)始掃描。輪流點(diǎn)亮掃描過(guò)程中,每位顯示器的點(diǎn)亮時(shí)間是極為短暫的(約1ms),由于人的視覺(jué)暫留現象及發(fā)光二極管的余輝效應,盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會(huì )有閃爍感。

數碼管顯示“89C51”的具體編程思路如下:第一位數碼管顯示“8” → 延時(shí)1ms → 關(guān)閉所有數碼管顯示 → 第二位數碼管顯示“9” → 延時(shí)1ms → 關(guān)閉所有數碼管顯示 → 第三位數碼管顯示“C” → 延時(shí)1ms → 關(guān)閉所有數碼管顯示 → 第四位數碼管顯示“5” → 延時(shí)1ms → 關(guān)閉所有數碼管顯示 → 第五位數碼管顯示“1” → 延時(shí)1ms → 關(guān)閉所有數碼管顯示 → 返回到第一步重新進(jìn)行新一輪掃描過(guò)程。下面就是根據該思路編出來(lái)的源程序,初學(xué)者可以把該程序粘貼到Keil工程中,編譯得到目標文件,然后燒寫(xiě)到驗證一下。

; *********** 在數碼管上動(dòng)態(tài)顯示"89C51" *************
MAIN: MOV P0,#80H;第1位數碼管顯示“8”
CLR P2.0 ;允許第1位數碼管顯示
ACALL DELAY;顯示延時(shí)一段時(shí)間
MOV P0,#0FFH ;清除P0口字形碼
MOV P2,#0FFH ;停止所有數碼管顯示選通,關(guān)閉所有顯示

MOV P0,#90H;第2位數碼管顯示“9”
CLR P2.1 ;允許第2位數碼管顯示
ACALL DELAY;顯示延時(shí)一段時(shí)間
MOV P0,#0FFH ;清除P0口字形碼
MOV P2,#0FFH ;停止所有數碼管顯示選通,關(guān)閉所有顯示

MOV P0,#0C6H ;第3位數碼管顯示“C”
CLR P2.2 ;允許第3位數碼管顯示
ACALL DELAY;顯示延時(shí)一段時(shí)間
MOV P0,#0FFH ;清除P0口字形碼
MOV P2,#0FFH ;停止所有數碼管顯示選通,關(guān)閉所有顯示

MOV P0,#92H;第4位數碼管顯示“5”
CLR P2.3 ;允許第4位數碼管顯示
ACALL DELAY;顯示延時(shí)一段時(shí)間
MOV P0,#0FFH ;清除P0口字形碼
MOV P2,#0FFH ;停止所有數碼管顯示選通,關(guān)閉所有顯示

MOV P0,#0F9H ;第5位數碼管顯示“1”
CLR P2.4 ;允許第5位數碼管顯示
ACALL DELAY;顯示延時(shí)一段時(shí)間
MOV P0,#0FFH ;清除P0口字形碼
MOV P2,#0FFH ;停止所有數碼管顯示選通,關(guān)閉所有顯示

AJMPMAIN ;跳轉到開(kāi)始重新進(jìn)行

;******** 延時(shí)子程序 ********
DELAY:MOV R1,#10
Y1: MOV R2,#100
DJNZR2,$
DJNZR1,Y1
RET

END

【總結】 至此,我們已經(jīng)較全面地學(xué)習了數碼管的工作原理和使用方法,相信你對數碼管的靜態(tài)顯示、動(dòng)態(tài)顯示有了新的認識,掌握了數碼管的這兩種使用方法,你就可以根據你自己的意愿及要求來(lái)編寫(xiě)各種各樣的數字顯示程序了,如電子溫度計、時(shí)鐘、秒表、頻率計、計數器的制作等等,可以充分發(fā)揮你的想象達到你所需要的各種顯示效果。我們附帶的配套軟件資料光盤(pán)配有相關(guān)的實(shí)驗例程、實(shí)驗視頻錄像、單片機多媒體教程、實(shí)用電子圖書(shū)資料、單片機開(kāi)發(fā)軟件及編程器、仿真器的全部驅動(dòng)程序,供大家學(xué)習使用,以幫助初學(xué)者快速入門(mén)。

手機電池相關(guān)文章:手機電池修復


單片機相關(guān)文章:單片機教程


單片機相關(guān)文章:單片機視頻教程


單片機相關(guān)文章:單片機工作原理



上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: 單片機 數碼管顯示

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>