AT89S51单片机的堆栈区应建立在内部RAM的较高的地址区域内。
而AT89S51内部RAM区,用户可用的最大地址是7FH。在一般情况下,堆栈区留出16个单元就足够用了。 所以,设置SP的初始值为6FH即可,就从70H开始使用了。
不过,通常是用汇编写程序可以设置SP初始值,而用C语言写程序一般是不用考虑的。
对于AT89S51,内部RAM的80H以上的地址是SFR的地址,是不能作堆栈区的。
要是AT89S52,内部RAM最大地址是FFH,那80H的地址区是可以用间址寻址的,才可以作椎栈区的。
温馨提示:答案为网友推荐,仅供参考