2024年3月24日发(作者:)

单片机堆栈原理及应用

单片机堆栈是什么?

在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,

它遵循顺序存取和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。

单片机堆栈有什么用?

1)子程序调用和中断服务时CPU自动将当前PC值压栈保存,返回时自

动将PC值弹栈。

2)保护现场/恢复现场

3)数据传输

单片机堆栈原理:

堆栈区由特殊功能寄存器堆栈指针SP管理 。堆栈区可以安排在 RAM

区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放

在RAM区的靠后的位置。

由上述可见:SP的内容就是栈顶单元的地址。

堆栈的操作:入栈和出栈

入栈:PUAH DIRECT

功能:先SP+1→SP,(DIRECT)→((SP))

设(SP)=60H,则执行指令 PUSH Acc后,(SP)=61H,(61H)=(Acc)

即将累加器A的内容如栈了。

出栈: POP DIRECT

功能:先(DIRECT)→((SP)), SP-1→SP

用法同上。

注:上述操作主要用于子程序和中断服务子程序中的现场保护。而断

点保护是由硬件自动完成的。

用Keil C仿真软件仿真,请学生观察相关寄存器的值的变化,从而理解堆栈的作

用及操作。