新聞中心

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

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

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

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

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

程序:

;作者:李俊軒
;時(shí)間:2010年10月21日
;通過三八譯碼器讓三個(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


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



評(píng)論


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

關(guān)閉