新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 實(shí)驗(yàn)三 查表、多分支(80C51單片機(jī)匯編語言編程)

實(shí)驗(yàn)三 查表、多分支(80C51單片機(jī)匯編語言編程)

作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
設(shè)一表格,表中數(shù)為:00H、11H、22H……FFH,將片內(nèi)00H單元中的低4位放到片外0000H中(0000H中的高4位為0),高4位放到片外0001H中(0001H中的高4位為0),根據(jù)0000H中的數(shù)取出表中相應(yīng)的值存到片內(nèi)30H中;根據(jù)0001H中的數(shù)跳到相應(yīng)的處理程序中,在處理程序中,把相應(yīng)的位地址置1。
ORG 0000H
START:MOV DPTR,#0000H;
MOV A,#00H
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
MOV DPTR,#00H;將片內(nèi)00H中的值拆分放入片外相應(yīng)位置
MOV R1,#00H
MOV A,@R1
ANL A,#0FH
MOVX @DPTR,A

MOV A,@R1
ANL A,#0F0H
RR A
RR A
RR A
RR A
INC DPTR
MOVX @DPTR,A

MOV DPTR,#0000H;相應(yīng)值賦給30H
MOVX A,@DPTR
MOV DPTR,#TABLE;指向表格的首地址
MOVC A,@A+DPTR
MOV 30H,A

MOV DPTR,#0001H;散轉(zhuǎn)
MOV 20H,#00H;置位前先將20H清零
MOVX A,@DPTR
MOV R1,A;LJMP;A變?yōu)?倍
RL A
ADD A,R1
MOV DPTR,#TAB
JMP @A+DPTR

TAB: LJMP PM0
LJMP PM1
LJMP PM2
LJMP PM3
LJMP PM4
LJMP PM5
LJMP PM6
LJMP PM7
LJMP PM8
LJMP PM9
LJMP PMA
LJMP PMB
LJMP PMC
LJMP PMD
LJMP PME
LJMP PMF
PM0:SETB 00H
JMP AA
PM1:SETB 01H
JMP AA
PM2:SETB 02H
JMP AA
PM3:SETB 03H
JMP AA
PM4:SETB 04H
JMP AA
PM5:SETB 05H
JMP AA
PM6:SETB 06H
JMP AA
PM7:SETB 07H
JMP AA
PM8:SETB 08H
JMP AA
PM9:SETB 09H
JMP AA
PMA:SETB 0AH
JMP AA
PMB:SETB 0BH
JMP AA
PMC:SETB 0CH
JMP AA
PMD:SETB 0DH
JMP AA
PME:SETB 0EH
JMP AA
PMF:SETB 0FH
JMP AA
TABLE:DB 00H,11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH
AA:SJMP $
END


評(píng)論


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

關(guān)閉