8051單片機中DPTR的擴展設計
摘要 首先對比分析在執行大規模數據轉移時(shí),傳統8051單片機和進(jìn)行DPTR擴展后的8051單片機在數據轉移執行效率上的差別。通過(guò)詳細分析DPTR操作所涉及的因素,具體實(shí)現對DPTR的擴展,并進(jìn)行實(shí)際仿真測試。
關(guān)鍵詞 8051單片機 DPTR 數據轉移執行效率
單片機的出現是計算機技術(shù)發(fā)展史上的一個(gè)里程碑,它使計算機從海量數值計算進(jìn)入到控制領(lǐng)域。在單片機中,以8051系列最為經(jīng)典,至今仍是最普及、廣泛使用的8位MCU架構。業(yè)界許多技術(shù)人員在其基礎上不斷進(jìn)行性能擴展,使得8051系列芯片不斷完善,從而形成一個(gè)龐大的體系。在傳統的8051系列單片機中,設置了一組雙字節寄存器(數據指針DPTR),用于訪(fǎng)問(wèn)外接的64 KB數據存儲器和I/O接口電路;但在現今的8051單片機應用中,特別是在嵌入式系統中,往往涉及大規模的數據轉移操作,而傳統8051的一組數據指針使用起來(lái)則顯得捉襟見(jiàn)肘,因此若在8051設計中將數據指針設計為兩組或多組,則在執行大規模數據轉移操作時(shí)會(huì )相當簡(jiǎn)便、迅速。在這種背景下,本文首先以數據轉移執行效率為衡量標準,分析了DPTR擴展的意義,并在Oregano公司的MCS8051核[1]上實(shí)現了DPTR擴展。
1 DPTR擴展意義
為描述8051中的DPTR擴展的意義,我們針對實(shí)現大規模數據轉移,分別對DPTR擴展前后作了對比。為使對比更加清晰明了,提出了數據轉移執行效率的概念。
數據轉移執行效率v定義為進(jìn)行單字節數據轉移所耗費的機器周期數,即v=nt。其中,n表示所轉移數據字節數;t表示所耗費的機器周期,可設定其單位為字節/機器周期。
在未進(jìn)行DPTR擴展的8051中,可通過(guò)設置地址緩沖區的方法來(lái)實(shí)現大規模的數據轉移。具體的例程如下:
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用于存放數據源地址s_adr(s_adrh為高字節, s_adrl為低字節),52H、53H用于存放數據目的地址t_adr(t_adrh為高字節, t_adrl為低字節),實(shí)現將源地址起始64字節數據轉移至目的地址。在8051中,執行n字節數據移位操作耗費(14+28
評論