18
AT90S2313
0839g–08/01
• 位 0 – c: carry 标记
这 carry 标记 c indicates 一个 carry 在 一个 arithmetic 或者 逻辑 运作. 看 这 操作指南
设置 描述 为 详细地 信息.
便条 那 这 状态 寄存器 是 不 automatically 贮存 当 进去 一个 中断 rou-
tine 和 restored 当 returning 从 一个 中断 routine. 这个 必须 是 处理 用
软件.
堆栈 pointer – sp
一个 8-位 寄存器 在 i/o 地址 $3d ($5d) 形式 这 堆栈 pointer 的 这 at90s2313. 8
位 是 使用 至 地址 这 128 字节 的 sram 在 locations $60 - $df.
这 堆栈 pointer 点 至 这 数据 sram 堆栈 范围 在哪里 这 子例程 和 inter-
rupt stacks 是 located. 这个 堆栈 空间 在 这 数据 sram 必须 是 定义 用 这
程序 在之前 任何 子例程 calls 是 executed 或者 中断 是 使能. 这 堆栈
pointer 必须 是 设置 至 要点 在之上 $60. 这 堆栈 pointer 是 decremented 用 1 当
数据 是 pushed 面向 这 堆栈 和 这 推 操作指南, 和 它 是 decremented 用 2
当 一个 地址 是 pushed 面向 这 堆栈 和 子例程 calls 和 中断. 这
堆栈 pointer 是 incremented 用 1 当 数据 是 popped 从 这 堆栈 和 这 流行音乐
操作指南, 和 它 是 incremented 用 2 当 一个 地址 是 popped 从 这 堆栈 和
返回 从 子例程 ret 或者 返回 从 中断 reti.
重置 和 中断
处理
这 at90s2313 提供 10 不同的 中断 来源. 这些 中断 和 这 sepa-
比率 重置 vector 各自 有 一个 独立的 程序 vector 在 这 程序 记忆 空间.
所有 这 中断 是 assigned 单独的 使能 位 那 必须 是 设置 (一个) 一起 和
这 i-位 在 这 状态 寄存器 在 顺序 至 使能 这 中断.
这 最低 地址 在 这 程序 记忆 空间 是 automatically 定义 作 这
重置 和 中断 vectors. 这 完全 列表 的 vectors 是 显示 在 表格 2. 这 列表
也 确定 这 priority 水平 的 这 不同的 中断. 这 更小的 这 地址, 这
高等级的 这 priority 水平的. 重置 有 这 最高的 priority, 和 next 是 int0 (这 外部
中断 要求 0), 等
位 76543210
$3d ($5d)
SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0 SPL
读/写 r/w r/w r/w r/w r/w r/w r/w r/w
最初的 value00000000
Table2.
重置 和 中断 vectors
vector 非. 程序 地址 源 中断 定义
1 $000 重置
硬件 管脚, 电源-在 重置 和
看门狗 重置
2 $001 INT0 外部 中断 要求 0
3 $002 INT1 外部 中断 要求 1
4 $003 timer1 capt1 计时器/counter1 俘获 事件
5 $004 timer1 comp1 计时器/counter1 对比 相一致
6 $005 timer1 ovf1 计时器/counter1 overflow
7 $006 timer0 ovf0 计时器/counter0 overflow
8 $007 uart, rx uart, rx 完全