位置:51电子网 » 技术资料 » 测试测量

8051单片机中DPTR的扩展设计

发布时间:2008/5/26 0:00:00 访问次数:1027

        

    

    

    来源:单片机及嵌入式系统应用 作者:杨磊 张远洋 李峥 王少东

    

    摘要 首先对比分析在执行大规模数据转移时,传统8051单片机和进行dptr扩展后的8051单片机在数据转移执行效率上的差别。通过详细分析dptr操作所涉及的因素,具体实现对dptr的扩展,并进行实际仿真测试。

    

    关键词 8051单片机 dptr 数据转移执行效率

    

    单片机的出现是计算机技术发展史上的一个里程碑,它使计算机从海量数值计算进入到控制领域。在单片机中,以8051系列最为经典,至今仍是最普及、广泛使用的8位mcu架构。业界许多技术人员在其基础上不断进行性能扩展,使得8051系列芯片不断完善,从而形成一个庞大的体系。在传统的8051系列单片机中,设置了一组双字节寄存器(数据指针dptr),用于访问外接的64 kb数据存储器和i/o接口电路;但在现今的8051单片机应用中,特别是在嵌入式系统中,往往涉及大规模的数据转移操作,而传统8051的一组数据指针使用起来则显得捉襟见肘,因此若在8051设计中将数据指针设计为两组或多组,则在执行大规模数据转移操作时会相当简便、迅速。在这种背景下,本文首先以数据转移执行效率为衡量标准,分析了dptr扩展的意义,并在oregano公司的mcs8051核[1]上实现了dptr扩展。

    

    1 dptr扩展意义

    

    为描述8051中的dptr扩展的意义,我们针对实现大规模数据转移,分别对dptr扩展前后作了对比。为使对比更加清晰明了,提出了数据转移执行效率的概念。

    

    数据转移执行效率v定义为进行单字节数据转移所耗费的机器周期数,即v=nt。其中,n表示所转移数据字节数;t表示所耗费的机器周期,可设定其单位为字节/机器周期。

    

    在未进行dptr扩展的8051中,可通过设置地址缓冲区的方法来实现大规模的数据转移。具体的例程如下:

    

    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为低字节),实现将源地址起始64字节数据转移至目的地址。在8051中,执行n字节数据移位操作耗费(14+28×n+2)个机器周期,数据转移执行效率为v=n/(14+28×n+2)。在本例程中,n为64,计算得出共需耗费1 808个机器周期,执行效率v约为0.035 4字节/机器周期,而且在此实现方法中需占用8051的4个片内存储器(ram)单元。

    

    如8051中拥有两组dptr,并可通过特殊指令来实现dptr选取。可设定setdptr0指令表示选取dptr0,setdptr1指令表示选取dptr1,#s_adr表示数据源地址,#t_adr表示数据目的地址,则程序可设计为:

    

    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

        

    

    

    来源:单片机及嵌入式系统应用 作者:杨磊 张远洋 李峥 王少东

    

    摘要 首先对比分析在执行大规模数据转移时,传统8051单片机和进行dptr扩展后的8051单片机在数据转移执行效率上的差别。通过详细分析dptr操作所涉及的因素,具体实现对dptr的扩展,并进行实际仿真测试。

    

    关键词 8051单片机 dptr 数据转移执行效率

    

    单片机的出现是计算机技术发展史上的一个里程碑,它使计算机从海量数值计算进入到控制领域。在单片机中,以8051系列最为经典,至今仍是最普及、广泛使用的8位mcu架构。业界许多技术人员在其基础上不断进行性能扩展,使得8051系列芯片不断完善,从而形成一个庞大的体系。在传统的8051系列单片机中,设置了一组双字节寄存器(数据指针dptr),用于访问外接的64 kb数据存储器和i/o接口电路;但在现今的8051单片机应用中,特别是在嵌入式系统中,往往涉及大规模的数据转移操作,而传统8051的一组数据指针使用起来则显得捉襟见肘,因此若在8051设计中将数据指针设计为两组或多组,则在执行大规模数据转移操作时会相当简便、迅速。在这种背景下,本文首先以数据转移执行效率为衡量标准,分析了dptr扩展的意义,并在oregano公司的mcs8051核[1]上实现了dptr扩展。

    

    1 dptr扩展意义

    

    为描述8051中的dptr扩展的意义,我们针对实现大规模数据转移,分别对dptr扩展前后作了对比。为使对比更加清晰明了,提出了数据转移执行效率的概念。

    

    数据转移执行效率v定义为进行单字节数据转移所耗费的机器周期数,即v=nt。其中,n表示所转移数据字节数;t表示所耗费的机器周期,可设定其单位为字节/机器周期。

    

    在未进行dptr扩展的8051中,可通过设置地址缓冲区的方法来实现大规模的数据转移。具体的例程如下:

    

    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为低字节),实现将源地址起始64字节数据转移至目的地址。在8051中,执行n字节数据移位操作耗费(14+28×n+2)个机器周期,数据转移执行效率为v=n/(14+28×n+2)。在本例程中,n为64,计算得出共需耗费1 808个机器周期,执行效率v约为0.035 4字节/机器周期,而且在此实现方法中需占用8051的4个片内存储器(ram)单元。

    

    如8051中拥有两组dptr,并可通过特殊指令来实现dptr选取。可设定setdptr0指令表示选取dptr0,setdptr1指令表示选取dptr1,#s_adr表示数据源地址,#t_adr表示数据目的地址,则程序可设计为:

    

    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

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!