Stc单片机里边有一段出厂时固化的程序,这段程序的作用是检测串口是否要下载程序,不需求则履行单片机内的用户程序。每次发动时运转这端程序,这便是为什么每次下载时要冷发动。而复位后单片机是从地址0000H处开端履行,地址0000H又会指向主程序进口,即主函数处,即片内下载的用户程序而不会履行前面现已固化的检测串口那段程序。这便是为什么单片机每次下载要冷发动,而复位不可。留意,程序前面的宏界说什么的东西不占用体系时刻,所以主程序即主函数处。
有一个方法能够给那些需求加电马上发动的用户,STC单片机能够设置为加电时只需P1.0/P1.1为低电平时开端下载程序,不然直接履行用户程序。这种方法快,不必等前面检测串口的那段时刻 。stc单片机冷发动是有必要的而复位电路不是有必要的,不管是冷发动仍是手动发动。也便是想下载程序有必要冷发动,而有没有复位电路无所谓。可是最小体系板上有必要有复位电路,无论是上电复位,仍是上电加手动复位,虽然在一些简略的程序中看不出差异,可是由于复位操作会对一些特别寄存器产生影响,这样没有复位操作的话再次履行函数的时分会呈现过错。单片机断电后在通电也会从主函数处持续履行,可能是单片机断电后地址主动回到0000H,可是那些特别寄存器里的值不会改动。
关于上电复位,形似电路不会有电流流过,可是上电瞬间,有一个给电容充电的进程,这个进程中rst端口会呈现一个正脉冲,只需该脉冲坚持1ms以上就能使单片机复位。
单片机的复位操作使单片机进入初始化状况,其间包含使程序计数器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内部的数据则不变。