新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 數(shù)碼管掃描程序(采用數(shù)據(jù)表格)

數(shù)碼管掃描程序(采用數(shù)據(jù)表格)

作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
;此數(shù)碼管為共陽極數(shù)碼管,此程序中的取反指令可以不必,可以直接賦給原始值也是可以的

CNT EQU 30H ;賦值指令:給標(biāo)號(hào)CNT賦值,標(biāo)號(hào)CNT=30H

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

ORG 0000H
MOV P1,3FH

;剛開始的數(shù)據(jù)恢復(fù)程序(延時(shí))
START: MOV R1,#00H
L0: DJNZ R1,L0
MOV SP,#50H

MOV CNT,#00H ;計(jì)數(shù)器先清零
LOOP: MOV A,CNT ;把CNT(地址)中的數(shù)(存的是程序表中的地址)付給A
MOV DPTR,#TABLE ;定義字形表的起始地址
MOVC A,@A+DPTR ;TABLE為表的起始地址
CALL OUTPUT ;跳轉(zhuǎn)到輸出程序
INC CNT ;計(jì)數(shù)器加一
MOV A,CNT ;重新把CNT放在A中
CJNE A,#10,LOOP ;比較不相等轉(zhuǎn)移指令,如果數(shù)碼管顯示過9后,就不再轉(zhuǎn)移了
MOV CNT,#00H ;數(shù)碼管顯示9后,從新使計(jì)數(shù)器記0
SJMP LOOP ;重新循環(huán)

;程序中的數(shù)據(jù)表格,DB為定義字節(jié)指令(從指定的地址開始,在程序存儲(chǔ)器的連續(xù)單元中定義字節(jié)數(shù)據(jù))
TABLE: DB 3FH ;0
DB 06H ;1
DB 5BH ;2
DB 4FH ;3
DB 66H ;4
DB 6DH ;5
DB 7DH ;6
DB 27H ;7
DB 7FH ;8
DB 6FH ;9

;輸出函數(shù)
OUTPUT: PUSH PSW
CPL A ;取反指令
MOV P1,A
CALL DELAY
POP PSW
RET

;延時(shí)函數(shù),延時(shí)125ms
DELAY: PUSH PSW
MOV R0,#00H
L1: MOV R1,#00H
L2:DJNZ R1,L2
DJNZ R0,L1
POP PSW
RET

END



評(píng)論


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

關(guān)閉