專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

基于三八譯碼器控制八個(gè)數(shù)碼管同時(shí)顯示內(nèi)容的問(wèn)題

作者:李俊軒   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年07月18日   【字體:

在單片機(jī)開(kāi)發(fā)板上,很多時(shí)候?yàn)榱斯?jié)省IO口的資源,擴(kuò)展和利用IO口,我們很經(jīng)常使用的一個(gè)方法是使用三八譯碼器,這將由三個(gè)IO口變成了八個(gè)IO口的控制,但三八譯碼器的三個(gè)口輸入口只能同時(shí)控制一個(gè)輸出口,那么,問(wèn)題就來(lái)了,比如我們很經(jīng)常用一個(gè)三八口去按一個(gè)八位或者四位的數(shù)碼管,那么我們?cè)趺礃硬拍軌蜃屵@八個(gè)數(shù)碼管同時(shí)工作,讓我們看上去八個(gè)IO口顯示不同的內(nèi)容呢?

下面我就把今天剛在楊老師指導(dǎo)下編寫(xiě)的程序以及原理作一個(gè)簡(jiǎn)單的分析吧。我的開(kāi)發(fā)板是P0低三位(38數(shù)碼管的輸入端口)口控制數(shù)碼管的位選的,八個(gè)輸出口分別控制八個(gè)數(shù)碼管工作的。

程序:

;作者:李俊軒
;時(shí)間:2010年10月21日
;通過(guò)三八譯碼器讓三個(gè)IO口控制八個(gè)數(shù)碼管的工作狀態(tài)
 ORG 00H
STARY:
 MOV P0,#00000000B;根據(jù)三八譯碼器真值表的原理控制第一個(gè)數(shù)碼管工作
 MOV P1,#00111111B;顯示 0
 CALL DELAY;短暫的延時(shí)
 
 MOV P0,#00000001B;根據(jù)三八譯碼器真值表的原理控制第二數(shù)碼管工作
 MOV P1,#00000110B;顯示 1
 CALL DELAY;短暫的延時(shí)
 
 MOV P0,#00000010B;根據(jù)三八譯碼器真值表的原理控制第三數(shù)碼管工作
 MOV P1,#01011011B;顯示 2
 CALL DELAY;短暫的延時(shí)

 MOV P0,#00000011B;根據(jù)三八譯碼器真值表的原理控制第四個(gè)數(shù)碼管工作
 MOV P1,#01001111B;顯示 3
 CALL DELAY;短暫的延時(shí)

 MOV P0,#00000100B;根據(jù)三八譯碼器真值表的原理控制第五個(gè)數(shù)碼管工作
 MOV P1,#01100110B;顯示 4
 CALL DELAY;短暫的延時(shí)
 
 MOV P0,#00000101B;根據(jù)三八譯碼器真值表的原理控制第六個(gè)數(shù)碼工作
 MOV P1,#01101101B;顯示 5
 CALL DELAY;短暫的延時(shí)

 MOV P0,#00000110B;根據(jù)三八譯碼器真值表的原理控制第七個(gè)數(shù)碼工作
 MOV P1,#01111101B;顯示 6
 CALL DELAY;短暫的延時(shí)

 MOV P0,#00000111B;根據(jù)三八譯碼器真值表的原理控制第八個(gè)數(shù)碼工作
 MOV P1,#00000111B;顯示 7
 CALL DELAY;短暫的延時(shí)


 JMP STARY

DELAY:;延時(shí)程序
     MOV R0,#3
DV1:    MOV R1,248
DV2: DJNZ R1,DV2
     DJNZ R0,DV1
     RET
     END

效果:在八個(gè)數(shù)碼管上顯示數(shù)字0至7
 


寫(xiě)這程序的時(shí)候要注意的是延時(shí)時(shí)間的問(wèn)題。要保留在人的視覺(jué)能夠看得見(jiàn)的狀態(tài)。一般是20MS以內(nèi)。

關(guān)閉窗口

相關(guān)文章