新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 8051單片機中DPTR的擴展設(shè)計

8051單片機中DPTR的擴展設(shè)計

——
作者: 時間:2007-05-08 來源: 收藏
單片機的出現(xiàn)是計算機技術(shù)發(fā)展史上的一個里程碑,它使計算機從海量數(shù)值計算進(jìn)入到控制領(lǐng)域。在單片機中,以系列最為經(jīng)典,至今仍是最普及、廣泛使用的8位MCU架構(gòu)。業(yè)界許多技術(shù)人員在其基礎(chǔ)上不斷進(jìn)行性能擴展,使得系列芯片不斷完善,從而形成一個龐大的體系。在傳統(tǒng)的系列單片機中,設(shè)置了一組雙字節(jié)寄存器(數(shù)據(jù)指針),用于訪問外接的64 KB數(shù)據(jù)存儲器和I/O接口電路;但在現(xiàn)今的8051單片機應(yīng)用中,特別是在嵌入式系統(tǒng)中,往往涉及大規(guī)模的數(shù)據(jù)轉(zhuǎn)移操作,而傳統(tǒng)8051的一組數(shù)據(jù)指針使用起來則顯得捉襟見肘,因此若在8051設(shè)計中將數(shù)據(jù)指針設(shè)計為兩組或多組,則在執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移操作時會相當(dāng)簡便、迅速。在這種背景下,本文首先以數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率為衡量標(biāo)準(zhǔn),分析了擴展的意義,并在Oregano公司的MCS8051核[1]上實現(xiàn)了擴展。

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


關(guān)鍵詞: 8051 DPTR

評論


相關(guān)推薦

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

關(guān)閉