8051單片機中DPTR的擴展設(shè)計
——
1 DPTR擴展意義
為描述8051中的DPTR擴展的意義,我們針對實現(xiàn)大規(guī)模數(shù)據(jù)轉(zhuǎn)移,分別對DPTR擴展前后作了對比。為使對比更加清晰明了,提出了數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率的概念。
數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率v定義為進(jìn)行單字節(jié)數(shù)據(jù)轉(zhuǎn)移所耗費的機器周期數(shù),即v=nt。其中,n表示所轉(zhuǎn)移數(shù)據(jù)字節(jié)數(shù);t表示所耗費的機器周期,可設(shè)定其單位為字節(jié)/機器周期。
在未進(jìn)行DPTR擴展的8051中,可通過設(shè)置地址緩沖區(qū)的方法來實現(xiàn)大規(guī)模的數(shù)據(jù)轉(zhuǎn)移。具體的例程如下:
MOVPRE:
MOV50H, #s_adrh
MOV51H, #s_adrl
MOV52H,#t_adrh
MOV53H,#t_adrl
MOVR2, #64
REMOVE:MOV DPH, 50H
MOV DPL, 51H
MOVX A, @DPTR
INC DPTR
MOV 50H, DPH
MOV 51H, DPL
MOV DPH, 52H
MOV DPL, 53H
MOVX @DPTR,A
INC DPTR
MOV 52H, DPH
MOV 53H, DPL
DJNZ R2, REMOVE
在此例程中,50H、51H用于存放數(shù)據(jù)源地址s_adr(s_adrh為高字節(jié), s_adrl為低字節(jié)),52H、53H用于存放數(shù)據(jù)目的地址t_adr(t_adrh為高字節(jié), t_adrl為低字節(jié)),實現(xiàn)將源地址起始64字節(jié)數(shù)據(jù)轉(zhuǎn)移至目的地址。在8051中,執(zhí)行n字節(jié)數(shù)據(jù)移位操作耗費(14+28
評論