新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于三八譯碼器控制八個數(shù)碼管同時顯示內(nèi)容的問題

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

作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
單片機(jī)開發(fā)板上,很多時候為了節(jié)省IO口的資源,擴(kuò)展和利用IO口,我們很經(jīng)常使用的一個方法是使用三八譯碼器,這將由三個IO口變成了八個IO口的控制,但三八譯碼器的三個口輸入口只能同時控制一個輸出口,那么,問題就來了,比如我們很經(jīng)常用一個三八口去按一個八位或者四位的數(shù)碼管,那么我們怎么樣才能夠讓這八個數(shù)碼管同時工作,讓我們看上去八個IO口顯示不同的內(nèi)容呢?

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

本文引用地址:http://m.butianyuan.cn/article/201611/323751.htm

程序:

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

MOV P0,#00000001B;根據(jù)三八譯碼器真值表的原理控制第二數(shù)碼管工作
MOV P1,#00000110B;顯示 1
CALL DELAY;短暫的延時

MOV P0,#00000010B;根據(jù)三八譯碼器真值表的原理控制第三數(shù)碼管工作
MOV P1,#01011011B;顯示 2
CALL DELAY;短暫的延時

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

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

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

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

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


JMP STARY

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

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


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



評論


技術(shù)專區(qū)

關(guān)閉