打印

教程中第117页的时钟显示例子中的疑问

[复制链接]
1741|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mugangzhu|  楼主 | 2010-1-22 14:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 mugangzhu 于 2010-1-22 14:23 编辑

DISP_M:
LDI TBR,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???
LDA TBR,00H;----这个为什么不写成LDA TBR,06H呢??
ORM SEG2,06H ;显示分钟低位的egf 三段
还有就是假如分钟的低位是数5,为什么经过CALL查表就查到
RTNW 0011B,1101B ;5这行呢?依据什么来查到得???很不明白
沙发
warm_ice| | 2010-1-22 14:49 | 只看该作者
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的数据就被查到了.

使用特权

评论回复
板凳
mugangzhu|  楼主 | 2010-1-22 15:13 | 只看该作者
基本上明白了,呵呵
这个TJMP会跳转到由(PC11~PC8)(TBR)(A)所组成的位置,
可是这个(PC11~PC8)的值怎么重新定义呢???
还有就是表格建立的地址是不是有什么要求????
还有就是那个例子中我可不可以写成这样
CALL 07F0H

ORG 07F0H
TJMP
;0egf, dcba
RTNW 0101B,1111B ;0
RTNW 0000B,0110B ;1
RTNW 0110B,1011B ;2
RTNW 0010B,1111B ;3
RTNW 0011B,0110B ;4
RTNW 0011B,1101B ;5
RTNW 0111B,1101B ;6
RTNW 0000B,0111B ;7
RTNW 0111B,1111B ;8
RTNW 0011B,1111B ;9

使用特权

评论回复
地板
warm_ice| | 2010-1-22 15:37 | 只看该作者
可是这个(PC11~PC8)的值怎么重新定义呢???
这个值是根据表格所在位置决定的,表格位置不同,PC11~PC8自然就不同了.
还有就是表格建立的地址是不是有什么要求????
这个是有些要求的.一般我们会将表格放到XX0H开始,这样可以做16行,即XX0H到XXFH.
另外要注意,除非您非常了解您自己在做什么,否则不要把XXFH开始,尤其是XFFH开始.
这个的原因,您自己可以单步模拟一下就清楚了.

使用特权

评论回复
5
mugangzhu|  楼主 | 2010-1-22 15:45 | 只看该作者
可是这个(PC11~PC8)的值怎么重新定义呢???
这个值是根据表格所在位置决定的,表格位置不同,PC11~PC8自然就不同了
还是不太明白什么意思?可否详细解释一下呢?
还有三楼我那样修改可以吗?

使用特权

评论回复
6
warm_ice| | 2010-1-22 16:17 | 只看该作者
可是这个(PC11~PC8)的值怎么重新定义呢???
这个值是根据表格所在位置决定的,表格位置不同,PC11~PC8自然就不同了
还是不太明白什么意思?可否详细解释一下呢?
还有三楼我那样修改可以吗?

您三楼修改的数据表格是没有问题的.
您已经注意到了把TJMP放在的合适的位置.

使用特权

评论回复
7
mugangzhu|  楼主 | 2010-1-22 16:19 | 只看该作者
呵呵,谢谢,

使用特权

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

本版积分规则

70

主题

358

帖子

1

粉丝