• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51单片机程序为什么要重新设置SP数值?

crustycrab 2017-07-20 浏览量:3588
RT,一般如何设置其数值?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 51单片机中,SP是堆栈指针寄存器,存放着当前堆栈地址。堆栈用于存储子程序调用、中断程序调用时程序返回的地址,或者用来临时保存某一寄存器的值。

    一般在出现中断时,51单片机会把当前正在处理中的任务的位置(PC值)以及一些过程数据压入堆栈,待处理完中断之后再取出继续进行原先任务。

    因此在中断任务中需要指定SP的地址。SP的地址一般取50H左右的位置,后续的程序要注意存储时不要覆盖了SP指针指向位置。


    • 发布于 2017-07-20
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 单片机刚上电时,SP指向07H,而07H是很常用到的RAM区,必须修改到不影响RAM的地址去。

    sp这个寄存器里面存的是07H。
    RAM初始化前七个被用作为R1-R7
    堆栈指针只能在07H上。

    https://zhidao.baidu.com/question/712301978170784085.html
    https://zhidao.baidu.com/question/193222855.html?qbl=relate_question_0
    • 发布于2017-07-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 567.PNG

    568.PNG

    以上是Datasheet說明


    • 发布于2017-07-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机刚上电时,SP指向07H,而07H是很常用到的RAM区,必须修改到不影响RAM的地址去。
    故有修改SP的要求
    • 发布于2017-07-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51单片机程序为什么要重新设置SP数值?