① 于8051单片机的堆栈,回答: (1) 、如何建立堆栈
将特殊寄存器SP赋值,这个值(表示的DATA地址)要在你规划的所有用户变量之后,这样就部署好可用堆栈了。
② 51系列单片机的堆栈与通用微机中的堆栈有何
stackpointer:堆栈指针在51系列单片机里,堆栈指针sp在片内RAM128B中开辟栈区,并随时跟踪栈顶地址。它是按"先进后出"的原则存取数据。开机复位后,单片机栈底地址为07H。主要用来保存临时数据,局部变量和中断/调用子程序程序的返回地址。堆栈指针总是指向栈顶元素。在51系列单片机中,堆栈是向上生长的,所以数据入栈的时候,堆栈指针先加1,再压栈。出栈的时候先弹出数据,堆栈指针再减1。但在AVR单片机中,堆栈是向下生长的,数据入栈时指针将减1,数据出栈时指针将加1。参见网络:/view/2081454.htm
③ 什么叫堆栈8051堆栈指示器SP有多少位,作用是什么单片机初始化话后SP中的内容是什么
堆栈是连续的内存单元,存取方式遵循“先进后出”的原则。
其作用一般是保存寄存器或标志寄存器的内容。
堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减
1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。
sp是一个8位专用寄存器,它批示出堆栈顶部在内部ram块中的位置。系统复位后,sp初始化为07h,实际上堆栈是由08h单元开始的。考虑08h~1fh单元分别属于工作寄存器区1~3,若在程序设计中用到这些区,则最好把sp值改值为1fh或更大的值。
sp是一个8位专用寄存器,它批示出堆栈顶部在内部ram块中的位置。系统复位后,sp初始化为07h,实际上堆栈是由08h单元开始的。考虑08h~1fh单元分别属于工作寄存器区1~3,若在程序设计中用到这些区,则最好把sp值改值为1fh或更大的值。
mcs-51的堆栈是向上生成的,若sp=60h,cpu执行一和调用指令或者响应中断后,pc进栈,pcl保护到61h,pch保护到62h,sp=62h。
④ 8051单片机的堆栈有几级
只要栈指针之后的寄存器区没有使用,就可以安排堆栈,假设一个极限的情况:将栈指针指向30H,(MOV SP,#2FH)以7FH为界,可以有50H字节,可嵌套28H级子程序(每个子程序用两字节堆栈),实际应用要小许多--毕竟要用一些寄存器作运算。
要搞清一个问题:如果不是嵌套(子程序里调用子程序),那堆栈不会太深。
⑤ 51单片机堆栈是什么意思可以对哪些单元堆栈
堆栈的功能就是先进后出,这样可以非常简单的解决子程序调用和中断(其实是特殊的子程序调用)问题,主要是嵌套的返回,用堆栈能准确的找到返回点。51单片机的堆栈是向上生长的,其实可以利用片内RAM中没用到的一切空间(当然得是连续的),复位后堆栈指针指向07H,一般从30H开始使用,就是复位后将堆栈指针指向30H,一定要弄清楚中断还有子程序调用时单片机是怎么压栈,返回时是怎么出栈的,利用堆栈可以让中断返回时返回到指定的地方,这招很绝。
⑥ 什么是堆栈MCS-51单片机的堆栈怎样设置的
堆栈其实就是一块存储器区域,51单片机中可以用寄存器SP来设置栈顶地址,压栈操作,地址是往上加的,出栈则地址往下减。遵循后进先出原则。
⑦ 80C51 单片机堆栈区的进栈和出栈遵循的原则是
80C51 单片机堆栈区的进栈和出栈遵循的原则是后进先出。
⑧ 8051单片机堆栈
51单片机的堆栈是向上生长的,就是堆栈不为空时,栈底地址小于栈顶地址,当将数据入栈时,栈顶地址增加。还有一个技巧是,堆栈是数据存储器的一部分,也就是说堆栈除了利用push和pop访问,也可以通过普通的选址方法访问,例如mov。有时我们想访问堆栈数据,但不想改动变动栈顶,这时可以通过mov来访问数据。还有一个书上很少提到的知识点是出栈之后,原来那个栈顶的内容并不会清零,所以我们依然可以像对待普通数据存储器一样访问。
⑨ 关于51单片机堆栈的问题
首先,SP是堆栈指针,当压堆栈的时候,它增加一,当出栈的时候,它减一。
PUSH
ACC和POP
ACC分别是压和出的指令。
除此之外,中断和call指令,硬件自动将PC程序指针压栈,等到reti或ret指令的时候,出栈。
一般讲SP设置大一点,比如70H,以免和其他单元冲突。
⑩ 求解单片机原理题1、请说明80C51单片机的堆栈的作用和操作规律。补考试题,求解,急急急
1.堆栈用于响应中断或调用子程序时保护断点地址,也可通过栈操作指令(push
和pop保护和恢复现场)其中入栈时先SP+1再将内容压入当前SP所指示的堆栈单元
中,出栈则先将SP所指示的内部ram单元中内容送入直接地址寻址的单元中,再将
SP减1.
2.中断允许寄存器的功能是控制CPU对中断的开放和屏蔽以及每个中断源是否允许
中断结构包括EA(CPU中断总允许位),ES(串行口中断允许位)ET1(定时器1中
断允许位)EX1(外部中断1中断允许位)ET0(定时器0中断允许位)EX0(外部中
断0中断允许位)
3.T机=12/fosc=12/(6*E6)=2us
X=2*E13-T/T机=8192-200/2=8092=1F9CH=1111 1100 1110 0B
因为TL1的高3位未用, 修正后X=1111 1100 0001 1100B=FC1CH
4.LJMP为长转移指令,可转向64KB程序存储器的任一单元;SJMP为相对转移指令
,偏移范围-128~+127共259字节;AJMP为绝对转移指令,转移目的在指令后一个
存储单位所在2K区间内。
5.按键抖动:在触点抖动期间检测按键的通与断状态,可能导致判断出错,即按
键一次按下或释放被错误认为是多次操作。
6.汽车的温控系统,测控系统,防盗报警等多项系统中应用单片机。汽车电子中
涉及A/D和D/A转换的模块基本都会有单片机的存在。以下以汽车倒车雷达为例,
雷达控制部分由89C51单片机构成,前端数据采集由超声波测距,系统由发射和接
收装置来获取数据,根据所测得的距离来判断是否调用声音报警程序,距离小于
预置点时,调用报警模块。