新聞中心

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

單片機(jī)51小實(shí)驗(yàn)---跑馬燈

作者: 時(shí)間:2016-11-24 來(lái)源:網(wǎng)絡(luò) 收藏
以下這個(gè)程序我在實(shí)驗(yàn)箱上運(yùn)行過(guò),AT89C52功能:根據(jù)P2.X口的電平,若輸入為1,則有X個(gè)燈在P0P1口上循環(huán)
;輸入為開(kāi)關(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口對(duì)應(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的標(biāo)志,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為延時(shí)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十六位進(jìn)行循環(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)鍵詞: 單片機(jī)51跑馬

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉