打印

INX TBR寄存器是什么东西,如何使用 有程序例子

[复制链接]
2060|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyz527|  楼主 | 2008-5-20 22:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面程序是对RAM,LCDRAM进行清0
其中用到INX,TBR我看不明白,不知道在指定地址后,
如何对其进行清0操作,
请高手明示.66P51

;CLR RAM
CLRRAM:
    LDI    DPL,08H
    LDI    DPM,02H
    LDI    DPH,00H
CLRRAM_1:
    LDI    INX,00H  ;??????????
    ADIM    DPL,01H
    LDI    TBR,00   ;?????????????
    ADCM    DPM,00H
    BA3    CLRRAM_2
    JMP    CLRRAM_3
CLRRAM_2:
    ADIM    DPH,01H
    ANDIM    DPM,0111B
CLRRAM_3:
    SBI    DPH,01H
    BNZ    CLRRAM_1
    SBI    DPM,02H
    BNZ    CLRRAM_1
    SBI    DPL,08H
    BNZ    CLRRAM_1
;**************************************************
;clr lcd reg 300H-33AH
CLRLCD:
    LDI    DPL,00H
    LDI    DPM,00H
    LDI    DPH,06H
CLRLCD_1:
    LDI    INX,00H   ;?????????
    ADIM    DPL,01H
    BNC    CLRLCD_1
    ADIM    DPM,01H
    SBI    DPM,03H
    BNZ    CLRLCD_1    ;CLR LCD REG 300H-330H
CLRLCD_2:
    LDI    INX,00H   ;?????????
    ADIM    DPL,01H
    SBI    DPL,0BH
    BNZ    CLRLCD_2    ;CLR LCD REG 330H-33AH
沙发
warm_ice| | 2008-5-21 10:09 | 只看该作者

这样

DPH(3位),DPM(3位),DPL(4位)与INX一起进行间接寻址,INX的指针指向由DPH,DPM,DPL组成的10位RAM地址.
解释一下您问号部分:
1.第一个问号:INX赋值为0即对DPH,DPM,DPL组成的10位地址所指向的RAM进行清零.
    LDI    DPL,08H
    LDI    DPM,02H
    LDI    DPH,00H

从DPH,DPM,DPL展开为2进制
000 010 1000
再从最低位开始4位4位的组成地址,即028H.

即INX清零即对028H的RAM进行清零.
2.第二个问题部分是对DPH,DPM,DPL的指针地址加1,即指向下一个RAM的地址,这样循环,即可对一片RAM进行赋值操作.

下面的几个问号部分也是一样.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

10

帖子

0

粉丝