原创 51 单片机堆栈的讲解

2009-4-8 14:14 7286 5 6 分类: MCU/ 嵌入式

片机原理及维修》公开课教案<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



授课班级


 


授课时间


授课内容


51单片机内部RAM中堆栈的使用


教学目的


掌握堆栈在单片机中的位置、使用方法、指令形式


教学重点、难点


堆栈的操作原则、指令形式


 


 


教学过程


堆栈:


1、  什么是堆栈?


(1)是单片机内部RAM中一个专用的连续存储区,是一个单端读写操作的存储结构。


(2)51单片机的堆栈在片内RAM 中开辟。


2、堆栈指针(SP


(1)8位寄存器,用来存放堆栈的栈顶。


(2)单片机复位后SP=70H


3、堆栈的操作


(1)压入堆栈:SP自动加1,数据进栈; 先加后进


(2)弹出堆栈:数据进栈,SP自动减1 先出后减


举例:假设SP=70H,将数据12H34H依次压入堆栈


解答:


(1) SP自动加1SP=71H;将数据12H压入SP所指的单元(71H)。


(2) SP自动加1SP=72H,将数据34H压入SP所指的单元(72H)。


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />




 


 


 


 


 





 


 


12H


 






 


34H


12H


 


 




73H


72H


71H


70H




73H


72H


71H


70H




73H


72H


71H


70H




SP




SP




SP




初始状态




(1)




(2)

<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" />

反之,现要将堆栈单元的内容弹出的话,执行过程如下,


(1) SP所指堆栈单元(70H)的内容34H弹出;SP自动减1SP=71H


(2) SP所指堆栈单元(71H)的内容12H弹出;SP自动减1SP=70H






 


34H


12H


 


 





 


 


12H


 






 


 


 


 


 




73H


72H


71H


70H




73H


72H


71H


70H




73H


72H


71H


70H




SP




SP




SP




初始状态




(1)




(2)


4、堆栈的原则:


  先进后出,后进先出


5、堆栈的作用:


用来保护断点地址和保护现场。


6、堆栈操作的指令:


(1) 压入堆栈:


        PUSH  direct SP自动加1,然后将direct内容压入SP所指堆栈单元。


(2) 弹出堆栈:


         POP  direct 先将所指堆栈单元的内容弹给direct,然后SP自动减1


小结:总结重点难点。


 


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户377235 2013-8-30 17:13

有错误

相关推荐阅读
用户547394 2009-04-08 14:15
wave软件的使用
div class="Section1" style="LAYOUT-GRID: 15.6pt none">《单片机原理及维修》公开课教案<?xml:namespace prefix =...
我要评论
1
5
关闭 站长推荐上一条 /3 下一条