① MCS―51单片机的堆栈区只可设置在__,堆栈寄存器5P是__位寄存器
楼上所说:“...低128字节”,是错误的说法,高128字节也是可以当做堆栈使用的。
正确答案是:
MCS―51单片机的堆栈区只可设置在__片内RAM__,堆栈寄存器SP是__8__位寄存器。
② AT89S51单片机的堆栈区应建立在哪
AT89S51单片机的堆栈区应建立在内部RAM的较高的地址区域内。
而AT89S51内部RAM区,用户可用的最大地址是7FH。在一般情况下,堆栈区留出16个单元就足够用了。 所以,设置SP的初始值为6FH即可,就从70H开始使用了。
不过,通常是用汇编写程序可以设置SP初始值,而用C语言写程序一般是不用考虑的。
对于AT89S51,内部RAM的80H以上的地址是SFR的地址,是不能作堆栈区的。
要是AT89S52,内部RAM最大地址是FFH,那80H的地址区是可以用间址寻址的,才可以作椎栈区的。
③ 51单片机的堆栈区在那里低128还是高128字节单元
寻址区
30H~7FH:一般数据区,堆栈区
寄存器组就是R0-R7,一共是8*4是32字节
位寻址就是对每一位寻址,一个字节可以有8位,位地址可以从0-7F,一共是16个字节
30-7FH有80个字节单元,可以采用字节字节寻址的方法访问
堆栈区及堆栈指示区 堆栈是在片内RAM中数据先进后出的一个存储区域。堆栈指针SP是存放当前堆栈栈顶所对应的存储单元地址的一个8位寄存器。系统复位后SP为07H,而07H一般是寄存器区,所以,一般可以通过对SP赋值,可以使堆栈区设定在RAM中的某一区域,但堆栈的深度以不超过片内RAM区空间为限
④ 51单片机的堆栈区只可设置在什么地方
51的栈只可设置在片内RAM的间接寻址区,即 idata 区域中。
另外,栈是栈,堆是堆,不要混为一谈。
⑤ 8051单片机堆栈设置在什么地方,如何实现
8051单片机在复位后,堆栈的底部就在07H,压栈时,将向08H方向增长。
如果需要改变默认值,可以在初始化阶段使用如下指令:
MOV SP, #6FH即可将堆栈的底部设置在6FH。
(5)51单片机的堆栈区设置在扩展阅读:
基本结构:
51 单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。
如是市面上出现了各式各样的但均以51 为内核的单片机,倒是Intel 公司自己的单片机却显得逊色了。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的基础上扩展一些功能而内部结构是与51 一致的。
一个完整的计算机应该由运算器、控制器、存储器(ROM 及RAM)、数据总线和I/O 接口组成。一般微处理器(如8086)就只包括运算器和控制器两部分。
和一般微处理器相比,8051 增加了四个8 位I/O 口、一个串行口、4KB ROM、128BRAM、很多工作寄存器及特殊功能寄存器(SFR),所以单片机具有比微处理器更强大的控制功能,单片机是专为进行控制设计的,而常见的微处理器是用于运算功能的。