请问51单片机位寻址可间接寻址或寄存器寻址吗?如MOV R0 C SETB @(R0+1).Q

问题描述:

请问51单片机位寻址可间接寻址或寄存器寻址吗?如MOV R0 C SETB @(R0+1).Q
SETB @20H,
SETB @(20H+1),
SETB @R0
请问这三个可以用吗STC单片机
1个回答 分类:综合 2014-09-18

问题解答:

我来补答
51单片机位操作没有间接寻址的指令,问题中所举都不能用.
处理这类问题一般有两种思路:
1、尽量把要处理的位集中到1个或多个可位寻址的寄存器中(20H~30H),然后以字节操作的方式实现,同时也不影响其它地方对某些位偶尔的、无规律的调用.
2、穷举法:使用JMP @A+DPTR跳转语句.以下程序只提供思路
MOV DPTR,#TAB
MOV A,R0 ;R0中保存位操作的序号,序号你自己编排
MOV B,#04H ;TAB中SETB 和AJMP占用的ROM空间长度
MUL AB ;得到查表偏移量
JMP @A+DPTR
TAB:
SETB 00H
AJMP CON
SETB 01H
AJMP CON
.
CON:
(继续其它操作)
 
 
展开全文阅读
剩余:2000
上一页:课时练P3