㈠ 51系列单片机上电复位后堆栈指针sp的初始值为多少最大容量是多少
答:51系列单片机上电复位后堆栈指针SP的初始值为07H,即SP=07H。堆栈区最大容量是120字节,即08H~7FH全为堆栈区。可事实上没有这么用的,也不可能用这么多,内部RAM主要用于存放程序运行中的变量。
㈡ 单片机复位 堆栈区
单片机复位后进入初始化状态。初始化后,程序计数器PC=0000H,。单片机启动后,片内RAM为随机值,运行中的复位操作不改变RAM的内容。但特殊功能寄存器复位后的状态时确定的,也就是说与运行中的可能不同,但由于程序的运行,其内容最终还是要恢复到程序运行时的状态。
㈢ 单片机复位后各特殊功能寄存器的初始化状态是什么
首先单片机复位也分别几种:掉电再通电,按复位按钮,程序复位,通过外部接口复位。
各芯片的复位电路大同小异,这里以51系列单片机为例,上电后,保持RST一段高电平时间,就能达到上电复位的操作目的。
常见的复位电路如下:
1.掉电再通电,这里就视为冷启动吧
这种情况下单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,特殊功能寄存器复位后的状态为确定值,具体可参考相应单片机的说明书。
2.按复位按钮
这种情况下单片机的复位操作也会使程序计数器PC=0000H,程序重新从
0000H
地址执行,但是与第1种情况不同的是,片内RAM为复位前的状态值,也就是说,运行中的复位操作不改变片内RAM区中的内容。而特殊功能寄存器复位后的状态为确定值,具体可参考相应单片机的说明书。
51单片机复位后特殊功能寄存器的初始值
特殊功能寄存器
初始值
特殊功能寄存器
初始值
ACC
00H
TCON
00H
B
00H
TMOD
00H
PSW
00H
TL0
00H
SP
07H
TH0
00H
DPTR
0000H
TL1
00H
P0~P3
FFH
TH1
00H
PCON
0XXX
0000B
T2CON
00H
AUXR
XXX0
0XX0B
T2MOD
XXXX
XX00B
AUXR1
XXXX
XXX0B
RCAP2L
00H
IE
0X00
0000B
RCAP2H
00H
IP
XX00
0000B
TL2
00H
SCON
00H
TH2
00H
SBUF
XXXX
XXXXXB
WDTRST
XXXX
XXXXB
表中部分符号的含义如下:
PSW=00H:表明复位后自动选择第0组工作寄存器组为当前工作寄存器组
SP=07H:表明堆栈指针指向片内RAM07H单元,堆栈的压入操作为先加后压,所以第一个被压入的数据存放在08H单元中
P0~P3=FFH:表明各端口写入1,此时各端口既可作输入口,也可以作输出口
AUXR=XXX0
0XX0:表明ALE引脚在CPU不访问外部存储器期间有脉冲信号输出
AUXR1=XXXX
XXX0:表明选择DPTR0作数据指针
IE=00H:表明各中断均关闭
TCON=00H:表明T0,T1
均被停止
SCON=00H:表明串口处于方式0,允许发送,不允许接收
PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,单片机处于正常工作方式。
3.程序复位
这种情况下单片机的复位操作由程序内部控制,功能要视乎程序的编写。例如我们可以操作使程序计数器PC=0000H,同时
添加RAM初始化程序,清0或置1,同时设置某些特殊寄存器的值,或者其他操作,总之这是一种软件操控的复位,功能可灵活控制。
4.外部接口复位待研究。
P.S.
1.什么是冷启动?热启动呢?
冷启动就是在不加电的情况下启动系统,热启动就是在加电的情况下重启系统!
例子:
冷启动是之直接按下电源开关启动计算机。
热启动是之在已开机的状态下在开始菜单中选择重新启动计算机,这叫做热启动。
㈣ 为什么mcs51单片机复位后,sp的初值是07H而不是81H
sp这个寄存器里面存的是07H。
RAM初始化前七个被用作为R1-R7
堆栈指针只能在07H上。
07H也是地址。
你说的81H是特殊寄存器sp的地址。
也就是说地址81H里面的值是07H。
特别要注意的是片内RAM高128字节区和特殊寄存器SFR的
地址是相同的。间接寻址存取片内ram数据。直接寻址存取SFR。
概括就是,这两块地址独立的,你说的两个数都是不同块的地址。
㈤ 单片机复位后,堆栈指针sp的值如果不对其修改会有什么情况
对于51单片机复位后,堆栈指针sp的值为07H,如果不对其修改,会有情况,这要写程序时是怎样使用工作寄存器的。当程序中有调用子程序的指令,或有中断服务程序时,要有堆栈操作,就会从08H单元开始使用堆栈区。而从08H单元开始正是1区工作寄存器区,如果程序中用到了1区的寄存器R0~R7,那么堆栈操后将会破坏了R0~R7的数据。
㈥ 单片机复位后堆栈指针SP的状态值_____
复位后:SP = 07H
㈦ AT89S52单片机复位后的堆栈指针SP的值是多少此时的栈低和栈顶又是多少
AT89S52单片机复位后的堆栈指针SP的值是07H,此时的栈底是08H,栈顶是FFH,因为AT89S52的内部RAM是256字节,最大地址是FFH。
㈧ 单片机上电复位之后,片内的RAM中的值发生改变么
冷启动上电复位片内程序指针,数据存储器指针,堆栈指针指向默认值,其他RAM 内数据为随机数。热复位只有片内程序指针,数据存储器指针,堆栈指针指向默认值,其他RAM 内数据为复位前数据不会改变。
㈨ 是单片机复位有几种方法 复位后机器初始状态
使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值
说明:表中符号*为随机状态;
A=00H,表明累加器已被清零;
特殊功能寄存器
初始状态
特殊功能寄存器
初始状态
A
00H
TMOD
00H
B
00H
TCON
00H
PSW
00H
TH0
00H
SP
07H
TL0
00H
DPL
00H
TH1
00H
DPH
00H
TL1
00H
P0~P3
FFH
SBUF
不定
IP
***00000B
SCON
00H
IE
0**00000B
PCON
0*******B
PSW=00H,表明选寄存器0组为工作寄存器组;
SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;
Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;
IP=×××00000B,表明各个中断源处于低优先级;
IE=0××00000B,表明各个中断均被关断;
系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。
51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变