新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機51小實驗---跑馬燈

單片機51小實驗---跑馬燈

作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
以下這個程序我在實驗箱上運行過,AT89C52功能:根據(jù)P2.X口的電平,若輸入為1,則有X個燈在P0P1口上循環(huán)
;輸入為開關(guān)按鍵
ORG 0000H
JMP8: MOV P2,#0FFH ;將所在口置1,即設(shè)為輸入方式
MOV A,#0 ;初始化R1
MOV R1,A
JB P2.0,SHOW1 ;判斷P2口,若為1則轉(zhuǎn)入相應(yīng)的處理程序
JB P2.1,SHOW2
JB P2.2,SHOW3
JB P2.3,SHOW4
JB P2.4,SHOW5
JB P2.5,SHOW6
JB P2.6,SHOW7
JB P2.7,SHOW8
JMP JMP8
;P2口對應(yīng)的處理部分
SHOW1:MOV A,#1
MOV R0,A
ACALL PRO ;PRO為處理子程序
SHOW2:MOV A,#2
MOV R0,A
ACALL PRO
SHOW3:MOV A,#3
MOV R0,A
ACALL PRO
SHOW4:MOV A,#4
MOV R0,A
ACALL PRO
SHOW5:MOV A,#5
MOV R0,A
ACALL PRO
SHOW6:MOV A,#6
MOV R0,A
ACALL PRO
SHOW7:MOV A,#7
MOV R0,A
ACALL PRO
SHOW8:MOV A,#8
MOV R0,A
ACALL PRO
RET
PRO:ACALL OUT ;OUT為向P2口輸出子程序
CLR 20H ;將位20H作為是否跳到JMP8的標志,1則跳轉(zhuǎn)
ACALL PP ;PP為判斷P2口是否有新的按鍵
JB 20H,JMP8
ACALL XG ;XG為修改R1R0的值
JMP PRO
RET
OUT:MOV A,R1
MOV P1,A
MOV A,R0
MOV P0,A
ACALL DELAY ;DELAY為延時1024us的子程序
RETDELAY:MOV A,#0FFH
MOV R3,A
TT1:NOP
NOP
NOP
NOP
DJNZ R3,TT1
RET
PP: JB P2.0,S
JB P2.1,S
JB P2.2,S
JB P2.3,S
JB P2.4,S
JB P2.5,S
JB P2.6,S
JB P2.7,S
SETB 20H
S:RET
XG: MOV A,R1 ;將R1R0十六位進行循環(huán)移位
MOV C,ACC.7
MOV A,R0
RLC A
MOV R0,A
MOV A,R1
RLC A
MOV R1,A
RET
END


關(guān)鍵詞: 單片機51跑馬

評論


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

關(guān)閉