LDI TBR,0FH-----????这个0FH值是以什么定的,任意的吗???
这个0FH是根据表格所有的位置决定的.
LDA MIN_L,00H
CALL 07FAH ;查表得显示数据---怎么不写成CALL 07F0H呢????
这个也是根据表格所在有位置决定的.
STA SEG1,06H ;显示分钟低位的dcba 四段
LDI TMP,1000B
ANDM SEG2,06H-----这句和上面那句指令是清分钟地位egf段的吧??
如果不清的话直接这样写可以吗?LDA TBR,06H;STA SEG2,06H???
因为8段数码管有个"点",这个程序中没有用到这个"点",所以不显示
LDA TBR,00H;----这个为什么不写成LDA TBR,06H呢??
这个00H或是01H,06H等是指寄存器所在的RAM的BANK值TBR寄存器在RAM的BANK0.
ORM SEG2,06H ;显示分钟低位的egf 三段
还有就是假如分钟的低位是数5,为什么经过CALL查表就查到
RTNW 0011B,1101B ;5这行呢?依据什么来查到得???很不明白
这个要结合问题要结合上一次您问的查询问题,我解释了TJMP是如何跳转的.
您在查表前先设置好TBR,A的值,再用CALL指令来调用表格,通常这个A的值是相对于表头的偏移量,例如,我表格在7A0H,在调用前TBR被赋值为A,A值被赋值为5,刚在CALL后,第一条执行的语句一定是TJMP,这个TJMP会跳转到由(PC11~PC8)(TBR)(A)所组成的位置,即7F5H,而7F5H为RTNW XH,XH ,这样7F5H的数据就被查到了. |