8051單片機(jī)中DPTR的擴(kuò)展設(shè)計(jì)
發(fā)布時(shí)間:2008/5/26 0:00:00 訪問次數(shù):1018
    
    
    來源:?jiǎn)纹瑱C(jī)及嵌入式系統(tǒng)應(yīng)用 作者:楊磊 張遠(yuǎn)洋 李崢 王少東
    
    摘要 首先對(duì)比分析在執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移時(shí),傳統(tǒng)8051單片機(jī)和進(jìn)行dptr擴(kuò)展后的8051單片機(jī)在數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率上的差別。通過詳細(xì)分析dptr操作所涉及的因素,具體實(shí)現(xiàn)對(duì)dptr的擴(kuò)展,并進(jìn)行實(shí)際仿真測(cè)試。
    
    關(guān)鍵詞 8051單片機(jī) dptr 數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率
    
    單片機(jī)的出現(xiàn)是計(jì)算機(jī)技術(shù)發(fā)展史上的一個(gè)里程碑,它使計(jì)算機(jī)從海量數(shù)值計(jì)算進(jìn)入到控制領(lǐng)域。在單片機(jī)中,以8051系列最為經(jīng)典,至今仍是最普及、廣泛使用的8位mcu架構(gòu)。業(yè)界許多技術(shù)人員在其基礎(chǔ)上不斷進(jìn)行性能擴(kuò)展,使得8051系列芯片不斷完善,從而形成一個(gè)龐大的體系。在傳統(tǒng)的8051系列單片機(jī)中,設(shè)置了一組雙字節(jié)寄存器(數(shù)據(jù)指針dptr),用于訪問外接的64 kb數(shù)據(jù)存儲(chǔ)器和i/o接口電路;但在現(xiàn)今的8051單片機(jī)應(yīng)用中,特別是在嵌入式系統(tǒng)中,往往涉及大規(guī)模的數(shù)據(jù)轉(zhuǎn)移操作,而傳統(tǒng)8051的一組數(shù)據(jù)指針使用起來則顯得捉襟見肘,因此若在8051設(shè)計(jì)中將數(shù)據(jù)指針設(shè)計(jì)為兩組或多組,則在執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移操作時(shí)會(huì)相當(dāng)簡(jiǎn)便、迅速。在這種背景下,本文首先以數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率為衡量標(biāo)準(zhǔn),分析了dptr擴(kuò)展的意義,并在oregano公司的mcs8051核[1]上實(shí)現(xiàn)了dptr擴(kuò)展。
    
    1 dptr擴(kuò)展意義
    
    為描述8051中的dptr擴(kuò)展的意義,我們針對(duì)實(shí)現(xiàn)大規(guī)模數(shù)據(jù)轉(zhuǎn)移,分別對(duì)dptr擴(kuò)展前后作了對(duì)比。為使對(duì)比更加清晰明了,提出了數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率的概念。
    
    數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率v定義為進(jìn)行單字節(jié)數(shù)據(jù)轉(zhuǎn)移所耗費(fèi)的機(jī)器周期數(shù),即v=nt。其中,n表示所轉(zhuǎn)移數(shù)據(jù)字節(jié)數(shù);t表示所耗費(fèi)的機(jī)器周期,可設(shè)定其單位為字節(jié)/機(jī)器周期。
    
    在未進(jìn)行dptr擴(kuò)展的8051中,可通過設(shè)置地址緩沖區(qū)的方法來實(shí)現(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é)),實(shí)現(xiàn)將源地址起始64字節(jié)數(shù)據(jù)轉(zhuǎn)移至目的地址。在8051中,執(zhí)行n字節(jié)數(shù)據(jù)移位操作耗費(fèi)(14+28×n+2)個(gè)機(jī)器周期,數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率為v=n/(14+28×n+2)。在本例程中,n為64,計(jì)算得出共需耗費(fèi)1 808個(gè)機(jī)器周期,執(zhí)行效率v約為0.035 4字節(jié)/機(jī)器周期,而且在此實(shí)現(xiàn)方法中需占用8051的4個(gè)片內(nèi)存儲(chǔ)器(ram)單元。
    
    如8051中擁有兩組dptr,并可通過特殊指令來實(shí)現(xiàn)dptr選取?稍O(shè)定setdptr0指令表示選取dptr0,setdptr1指令表示選取dptr1,#s_adr表示數(shù)據(jù)源地址,#t_adr表示數(shù)據(jù)目的地址,則程序可設(shè)計(jì)為:
    
    movpre:
    setdptr0
    movdptr,#s_adr
    setdptr1
    mov dptr,#t_adr
    mov r2,#64
    remove2:
    setdptr0
    movx a,@dptr
    inc dptr
    setdptr1
    movx @dptr,a
    inc dptr
    dj
    
    
    來源:?jiǎn)纹瑱C(jī)及嵌入式系統(tǒng)應(yīng)用 作者:楊磊 張遠(yuǎn)洋 李崢 王少東
    
    摘要 首先對(duì)比分析在執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移時(shí),傳統(tǒng)8051單片機(jī)和進(jìn)行dptr擴(kuò)展后的8051單片機(jī)在數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率上的差別。通過詳細(xì)分析dptr操作所涉及的因素,具體實(shí)現(xiàn)對(duì)dptr的擴(kuò)展,并進(jìn)行實(shí)際仿真測(cè)試。
    
    關(guān)鍵詞 8051單片機(jī) dptr 數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率
    
    單片機(jī)的出現(xiàn)是計(jì)算機(jī)技術(shù)發(fā)展史上的一個(gè)里程碑,它使計(jì)算機(jī)從海量數(shù)值計(jì)算進(jìn)入到控制領(lǐng)域。在單片機(jī)中,以8051系列最為經(jīng)典,至今仍是最普及、廣泛使用的8位mcu架構(gòu)。業(yè)界許多技術(shù)人員在其基礎(chǔ)上不斷進(jìn)行性能擴(kuò)展,使得8051系列芯片不斷完善,從而形成一個(gè)龐大的體系。在傳統(tǒng)的8051系列單片機(jī)中,設(shè)置了一組雙字節(jié)寄存器(數(shù)據(jù)指針dptr),用于訪問外接的64 kb數(shù)據(jù)存儲(chǔ)器和i/o接口電路;但在現(xiàn)今的8051單片機(jī)應(yīng)用中,特別是在嵌入式系統(tǒng)中,往往涉及大規(guī)模的數(shù)據(jù)轉(zhuǎn)移操作,而傳統(tǒng)8051的一組數(shù)據(jù)指針使用起來則顯得捉襟見肘,因此若在8051設(shè)計(jì)中將數(shù)據(jù)指針設(shè)計(jì)為兩組或多組,則在執(zhí)行大規(guī)模數(shù)據(jù)轉(zhuǎn)移操作時(shí)會(huì)相當(dāng)簡(jiǎn)便、迅速。在這種背景下,本文首先以數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率為衡量標(biāo)準(zhǔn),分析了dptr擴(kuò)展的意義,并在oregano公司的mcs8051核[1]上實(shí)現(xiàn)了dptr擴(kuò)展。
    
    1 dptr擴(kuò)展意義
    
    為描述8051中的dptr擴(kuò)展的意義,我們針對(duì)實(shí)現(xiàn)大規(guī)模數(shù)據(jù)轉(zhuǎn)移,分別對(duì)dptr擴(kuò)展前后作了對(duì)比。為使對(duì)比更加清晰明了,提出了數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率的概念。
    
    數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率v定義為進(jìn)行單字節(jié)數(shù)據(jù)轉(zhuǎn)移所耗費(fèi)的機(jī)器周期數(shù),即v=nt。其中,n表示所轉(zhuǎn)移數(shù)據(jù)字節(jié)數(shù);t表示所耗費(fèi)的機(jī)器周期,可設(shè)定其單位為字節(jié)/機(jī)器周期。
    
    在未進(jìn)行dptr擴(kuò)展的8051中,可通過設(shè)置地址緩沖區(qū)的方法來實(shí)現(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é)),實(shí)現(xiàn)將源地址起始64字節(jié)數(shù)據(jù)轉(zhuǎn)移至目的地址。在8051中,執(zhí)行n字節(jié)數(shù)據(jù)移位操作耗費(fèi)(14+28×n+2)個(gè)機(jī)器周期,數(shù)據(jù)轉(zhuǎn)移執(zhí)行效率為v=n/(14+28×n+2)。在本例程中,n為64,計(jì)算得出共需耗費(fèi)1 808個(gè)機(jī)器周期,執(zhí)行效率v約為0.035 4字節(jié)/機(jī)器周期,而且在此實(shí)現(xiàn)方法中需占用8051的4個(gè)片內(nèi)存儲(chǔ)器(ram)單元。
    
    如8051中擁有兩組dptr,并可通過特殊指令來實(shí)現(xiàn)dptr選取?稍O(shè)定setdptr0指令表示選取dptr0,setdptr1指令表示選取dptr1,#s_adr表示數(shù)據(jù)源地址,#t_adr表示數(shù)據(jù)目的地址,則程序可設(shè)計(jì)為:
    
    movpre:
    setdptr0
    movdptr,#s_adr
    setdptr1
    mov dptr,#t_adr
    mov r2,#64
    remove2:
    setdptr0
    movx a,@dptr
    inc dptr
    setdptr1
    movx @dptr,a
    inc dptr
    dj
熱門點(diǎn)擊
- 利用單片機(jī)I/O口直接驅(qū)動(dòng)LCD
- MSP430的軟硬件C延時(shí)程序設(shè)計(jì)
- 8051單片機(jī)中DPTR的擴(kuò)展設(shè)計(jì)
- 利用SoC單片機(jī)的多功能數(shù)據(jù)采集卡
- 基于單片機(jī)通用引腳的軟件UART設(shè)計(jì)
- C8051F020的音頻峰值采集和網(wǎng)絡(luò)傳送
- 數(shù)字圖像盲水印算法與LDPC碼的聯(lián)合方案
- 用SPMC75F2313A實(shí)現(xiàn)LIN結(jié)點(diǎn)
- 基于SVM和sigmoid函數(shù)的字符識(shí)別自適
- 小尺寸單片機(jī)在便攜式設(shè)備中的應(yīng)用
推薦技術(shù)資料
- 分立器件&無源元件選型及工作原
- 新一代“超越EUV”光刻系統(tǒng)參
- 最新品BAT激光器制造工藝設(shè)計(jì)
- 新款汽車SoC產(chǎn)品Malibo
- 新芯片品類FPCU(現(xiàn)場(chǎng)可編程
- 電動(dòng)汽車動(dòng)力總成系統(tǒng)̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究