第二章--存储器.ppt

第二章--存储器

* 堆栈: 在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循先进后出和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。 功用: 1)子程序调用和中断服务时CPU自动将当前PC 值压栈保存,返回时自动将PC值弹栈。 2)保护现场/恢复现场 3)数据传输 * 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 SP栈顶 下一个进栈的数据将存在此 数据进栈 已经进栈的数据存放在此 初始 SP 复位后 SP=07H,数据进栈时:首先SP+1指向08H单元,第一个放进堆栈的数据将放进08H单元,然后SP再自动增 1,仍指着栈顶…… 堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。 * 从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶…… 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 SP栈顶 当前要出栈的数据 数据出栈 SP-1指向下一个将要出栈的数据 初始 SP 堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。 * 从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶…… 00H 20H 2FH 7FH 1FH 30H 80H FFH 52子系列才有 的RAM区 普通RAM区 位寻址区 工作寄存器区 SP-1 指向新的栈顶,也就是下一个将要出栈的数据 数据出栈 初始 SP 堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。 在实际应用中,常需在RAM区设置堆栈。80C51的堆栈一般设在30H~7FH的范围内。栈顶的位置由SP寄存器指示。复位时SP的初值为07H,在系统初始化时可以重新设置。 push a push b push PSW ………. pop a pop b pop PSW 这样的指令顺序对不对? * 89C51特殊功能寄存器(SFR) ▼特殊功能寄存器SFR(专用寄存器) 专用于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。 ▼不同的SFR管理不同的硬件模块,负责不同的功能——各司其职 换言之:要让单片机实现预定的功能,必须有相应的硬件和软件,而软件中最重要的一项工作就是对SFR写命令(要求)。 标识符号 地址 寄存器名称 ACC 0E0H 累加器 B 0F0H B寄存器 PSW 0D0H 程序状态字 SP 81H 堆栈指针 DPTR 82H、83H 数据指针(16位)含DPL和DPH IE 0A8H 中断允许控制寄存器 IP 0B8H 中断优先控制寄存器 P0 80H I/O口0寄存器 P1 90H I/O口1寄存器 P2 0A0H I/O口2寄存器 标识符号 地址 寄存器名称 P3 0B0H I/O口3寄存器 PCON 87H 电源控制及波特率选择寄存器 SCON 98H 串行口控制寄存器 SBUF 99H 串行数据缓冲寄存器 TCON 88H 定时控制寄存器 TMOD 89H 定时器方式选择寄存器 TL0 8AH 定时器0低8位 TH0 8CH 定时器0高8位 TL1 8BH 定时器1低8位 TH1 8DH 定时器1高8位 P0、P1、P2、P3: 四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。 SCON (Serial Control Register) SBUF (Serial Date Buffer) PCON (Power Control Register) 与端口相关的(7个) 与定时/计数器相关的(6个) TMOD (Timer/Counter Mode Register) 定时器工作模式寄存器。 TCON (Timer/Counter Control Register) 定时器控制寄存器。 TH0、TL0 、TH1、TL1:分别是T0、T1的记数初值寄存器。 IP (Interrupt Priority Register) IE (Interrupt Enable Reg

文档评论(0)

1亿VIP精品文档

相关文档