ht46r22/ht46c22
rev. 1.10 9 October 2, 2002
间接的 寻址 寄存器
Location 00H 是 一个 间接的 寻址 寄存器 那 是
不 physically 执行. 任何 读/写 运作 的
[00H] accesses 数据 记忆 pointed 至 用 MP (01h).
读 location 00H 它自己 indirectly 将 返回 这 re
-
sult 00h. Writing indirectly 结果 在 非 运作.
这 记忆 pointer 寄存器 MP (01h) 是 一个 7-位 寄存器.
这 位 7 的 MP 是 未阐明的 和 读 将 返回 这
结果
1
. 任何 writing 运作 至 MP 将 仅有的 转移
这 更小的 7-位 数据 至 mp.
Accumulator
这 accumulator 是 closely related 至 ALU 行动. 它
是 也 编排 至 location 05H 的 这 数据 记忆 和
能 carry 输出 立即的 数据 行动. 这 数据
movement 在 二 数据 记忆 locations 必须
通过 通过 这 accumulator.
Arithmetic 和 逻辑 单位
ALU
这个 电路 执行 8-位 arithmetic 和 逻辑 行动.
这 ALU 提供 这 下列的 功能:
Arithmetic 行动 (增加, 模数转换器, sub, sbc, daa)
逻辑 行动 (和, 或者, xor, cpl)
旋转 (rl, rr, rlc, rrc)
Increment 和 Decrement (inc, dec)
Branch decision (sz, snz, siz, SDZ ....)
这 ALU 不 仅有的 saves 这 结果 的 一个 数据 运作 但是
也 改变 这 状态 寄存器.
状态 寄存器
状态
这个 8-位 寄存器 (0ah) 包含 这 0 标记 (z), carry
标记 (c), auxiliary carry 标记 (交流), overflow 标记 (ov),
电源 向下 标记 (pd), 和 看门狗 时间-输出 标记 (至).
它 也 records 这 状态 信息 和 控制 这
运作 sequence.
和 这 例外 的 这 至 和 PD flags, 位 在 这
状态 寄存器 能 是 改变 用 说明 像
大多数 其它 寄存器. 任何 数据 写 在 这 状态
寄存器 将 不 改变 这 至 或者 PD 标记. 在 增加
行动 related 至 这 状态 寄存器 将 给 dif
-
ferent 结果 从 那些 将. 这 至 标记 能
是 影响 仅有的 用 系统 电源-向上, 一个 WDT
时间-输出 或者 executing 这
CLR WDT
或者
HALT
在
-
构造. 这 PD 标记 能 是 影响 仅有的 用 exe
-
cuting 这
HALT
或者
CLR WDT
操作指南 或者 一个
系统 电源-向上.
这 z, ov, 交流 和 C flags 一般地 反映 这 状态 的
这 最新的 行动.
在 增加, 在 进去 这 中断 sequence 或者 exe
-
cuting 这 子例程 call, 这 状态 寄存器 将 不 是
pushed 面向 这 堆栈 automatically. 如果 这 内容 的
这 状态 是 重要的 和 如果 这 子例程 能 cor
-
rupt 这 状态 寄存器, 预防措施 必须 是 带去 至
保存 它 合适的.
中断
这 设备 提供 一个 外部 中断, 一个 内部的
计时器/事件 计数器 中断, 这 一个/d 转换器 中断
和 这 I
2
C 总线 中断. 这 中断 控制 寄存器
0 (intc0;0bh) 和 中断 控制 寄存器 1
(intc1;1eh) 包含 这 中断 控制 位 至 设置 这
使能 或者 使不能运转 和 这 中断 要求 flags.
Once 一个 中断 子例程 是 serviced, 所有 这 其它 在-
terrupts 将 是 blocked (用 clearing 这 EMI 位). 这个
scheme 将 阻止 任何 更远 中断 嵌套. 其它
中断 requests 将 发生 在 这个 间隔 但是
仅有的 这 中断 要求 标记 是 recorded. 如果 一个 确实 在-
terrupt 需要 servicing 在里面 这 维护 routine, 这
EMI 位 和 这 相应的 位 的 INTC0 和 INTC1
将 是 设置 至 准许 中断 嵌套. 如果 这 堆栈 是 全部,
这 中断 要求 将 不 是 acknowledged, 甚至 如果 这
related 中断 是 使能, 直到 这 SP 是 decremented.
如果 立即的 维护 是 desired, 这 堆栈 必须 是 前
-
vented 从 becoming 全部.
Labels 位 函数
C0
C 是 设置 如果 这 运作 结果 在 一个 carry 在 一个 增加 运作 或者 如果 一个 borrow 做 不 引领
放置 在 一个 subtraction 运作; 否则 C 是 cleared. C 是 也 影响 用 一个 rotate
通过 carry 操作指南.
交流 1
交流 是 设置 如果 这 运作 结果 在 一个 carry 输出 的 这 低 nibbles 在 增加 或者 非 borrow 从 这
高 nibble 在 这 低 nibble 在 subtraction; 否则 交流 是 cleared.
Z 2 Z 是 设置 如果 这 结果 的 一个 arithmetic 或者 逻辑 运作 是 0; 否则 Z 是 cleared.
OV 3
OV 是 设置 如果 这 运作 结果 在 一个 carry 在 这 最高的-顺序 位 但是 不 一个 carry 输出 的 这
最高的-顺序 位, 或者 恶行 对抗; 否则 OV 是 cleared.
PD 4
PD 是 cleared 用 系统 电源-向上 或者 executing 这
CLR WDT
操作指南. PD 是 设置 用 execut
-
ing 这
HALT
操作指南.
至 5
至 是 cleared 用 系统 电源-向上 或者 executing 这
CLR WDT
或者
HALT
操作指南. 至 是 设置
用 一个 WDT 时间-输出.
6, 7
Unused 位, 读 作
0
状态 寄存器