单片机的复位与程序执行
- 格式:doc
- 大小:121.50 KB
- 文档页数:3
单片机的复位与程序执行程序中的字节可能是操作码,也可能是数据。
所以主程序要从程序存储器的指定位置开始存储,单片机的工作也必须从这个指定位置开始执行,才能正确运行。
51单片机规定主程序从程序存储器0号单元开始存储。
也就是说,O号单元存储的肯定是操作码,而1号单元存储的是操怍数或卜条指令的操作码。
如果机器从l号单元开始执行程序,就会将操作数当作操作码,其结果是影响整个程序的运作.铸成一步错步步错的结局。
单片机上电后,首先使程序计数器PC等于0000H.保证从第一条指令的操作码开始执行程序。
1.复位要求和复位方法5 1单片机复位引脚Reset为高电平时,进行初始化;为低电平时,开始工作。
就是通常所说的高电平复位。
单片机正常工作期间.复位引脚Reset要一直保持低电平,工作过程中,引脚Reset一旦接收到一个正脉冲,就会再次复位启动。
为可靠复位,51单片机要求Reset引脚施加的正脉冲脉宽不小于2个机器周期。
当晶搌频率fose=12MHzH~f,机器周期T=lμs.要求加在Reset引脚的正脉宽不小于21xs。
以t=OH寸刻作为正脉冲上升沿,在正脉冲期间,单片机完成复位任务,使有关的寄存器、计数器等成为特定状态。
正脉冲结束时.即t=tl 时,单片机开始执行程序。
通常.利用RC电路暂态过程中电容充电指数曲线加到51单片机Reset引脚上完成复位.见图1和图2。
复位方法分为上电复位和手动复位。
手动复位也叫按钮复位。
上电复位时,Reset引脚电压按照RC充电规律变化,当该电压下降到单片机最小输入高电平对应电压时,复位结束,程序开始启动。
显然,电阻、电容越大,复位正脉宽就越大。
设计复位电路的要求,就是确定电阻电容值,达到2个机器周期的复位最小正脉宽要求。
手动复位是操作者手按按钮,给单片机施加一个正脉冲,或由别的电路给单片机施加一个正脉冲使之复位。
实际上.手指按一下起码有数百毫秒,一般都能满足单片机复位正脉宽的要求。
知识结构图2-1典型单片机的基本组成结构P3——8位、准双向I/O口,具有内部上拉电阻。
P3还提供各种替代功能。
在提供这些功能时,其输出锁存器应由程序置1。
P3口可以驱动4个LSTTL负载。
·串行口:P3.0——RXD(串行输入口),输入。
P3.1——TXD(串行输出口),输出。
·中断:P3.2——INT0,外部中断0,输入。
P3.3——INT1,外部中断1,输入。
·定时器/计数器:P3.4——T0 ,定时器/计数器0的外部输入,输入。
P3.5——T1 ,定时器/计数器1的外部输入,输入。
·数据存储器选通:P3.6——WR,低电平有效,输出,片外数据存储器写选通。
P3.7——RD,低电平有效,输出,片外数据存储器读选通。
(3) 控制线:共4根。
①输入:RST——复位输入信号,高电平有效。
在振荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位。
EA/V PP——片外程序存储器访问允许信号,低电平有效。
在编程时,其上施加21 V或12 V 的编程电压。
②输入、输出:ALE/PROG——地址锁存允许信号,输出。
用做片外存储器访问时,低字节地址锁存。
ALE以1/6的振荡频率稳定速率输出,可用做对外输出的时钟或用于定时。
在EPROM编程期间,作输入。
输入编程脉冲(PROG)。
1ALE 可以驱动8个LSTTL负载。
③输出控制线:PSEN——片外程序存储器选通信号,低电平有效。
在从片外程序存储器取指期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上P0口(数据总线)。
PSEN可以驱动8个LSTTL负载。
2) 数据指针DPTR数据指针是80C51中一个功能比较特殊的寄存器。
从结构上说,DPTR是一个16位的特殊功能寄存器,主要功能是作为片外数据存储器寻址用的地址寄存器(间接寻址),故称为数据指针。
访问片外数据存储器的指令为:MOVX A,@DPTR 读MOVX @DPTR,A 写此时,DPTR的输出,即片外数据存储器的地址,与P0、P2口之间的关系如图2--5所示。
单片机复位和冷启动详细介绍单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
单片机如何冷启动单片机冷启动很简单,关电,再上电,正常复位后,就冷启动成功。
单片机冷启动其实是一个技术术语,是指单片机从最原始状态启动运行。
实现这一目标视不同的单片机内部结构而有所不同。
接下来我们以STC12系列单片机冷启动、热启动解析一下:冷启动——是指在断电状态下重新上电。
冷启动,是在下载程序开始时,为了是单片检测有无下载信号。
若有则下载;若无则执行原来的程序。
热启动——是指已经处于上电状态,给复位端加复位信号(还有其他类型的复位),程序重新运行。
怎样判断是冷启动、热启动?可通过查询PCON寄存器中的POF位来判断,单片机上电冷启动后,POF位变为1,可由软件清0实际判断流程图:Stc单片机里面有一段出厂时固化的程序,这段程序的作用是检测串口是否要下载程序,不需要则执行单片机内的用户程序。
每次启动时运行这端程序,这就是为什么每次下载时要冷启动。
而复位后单片机是从地址0000H处开始执行,地址0000H又会指向主程序入口,即主函数处,即片内下载的用户程序而不会执行前面已经固化的检测串口那段程序。
这就是为什么单片机每次下载要冷启动,而复位不行。
注意,程序前面的宏定义什么的东西不占用系统时间,所以主程序即主函数处。
有一个办法可以给那些需要加电立刻启动的用户,STC单片机可以设置为加电时只有。
四川工程职业技术学院单片机应用技术课程电子教案Copyright © 第讲58051及P89V51RD2单片机的时钟、时序和复位本讲主要内容5-1. 标准80C51的时钟电路、时间单位与时序5-2. P89V51RD2单片机的时钟电路、时间单位与时序5-3. P89V51RD2单片机的复位与复位电路时钟电路——用于产生供单片机各部分同步工作的时钟信号方法1:用石英晶体振荡器方法2:从外部输入时钟信号(80C51)80C51振荡器C1C2CYS80C51悬空外部时钟信号XTAL1XTAL2XTAL2XTAL1单片机内部的时间单位S1S2S3S4S5S6机器周期T CY分频器振荡器晶振周期时钟周期(S 状态)80C51P1P2ALE 信号单片机内部的时间单位✧振荡频率f osc = 石英晶体频率或外部输入时钟频率振荡周期= 振荡频率的倒数✧机器周期机器周期是单片机应用中衡量时间长短的最主要的单位在多数51系列单片机中:1机器周期= 12×1/ fosc✧指令周期——执行一条指令所需要的时间单位:机器周期51单片机中:单周期指令、双周期指令、四周期指令单片机内部的时间单位课堂练习:如果某单片机的振荡频率f=12MHz,则:osc振荡周期=S=mS=uS;机器周期=uS;已知乘法指令“MUL AB”是一条4周期指令,则执行这条指令需要uS;加法指令“ADD A,#01H”是单周期指令,那么1S内该单片机可以进行次加法运算。
单片机内部的时序单片机执行各种操作时,CPU都是严格按照规定的时间顺序完成相关的工作,这种时间上的先后顺序成为时序。
✧单周期指令的操作时序S1S2S3S4S5S61个机器周期P1P2ALE读操作码空读S1S2S3S4S5S61个机器周期P1P2ALE读操作码读第二字节单字节指令双字节指令单片机内部的时序✧双周期指令的操作时序S1S2S3S4S5S6第1机器周期P1P2ALE读操作码空读3次S1S2S3S4S5S6第2机器周期时钟电路✧时钟电路参数:频率范围:0~40MHz C1、C2:20~30pF80C51振荡器C1C2CYSXTAL2XTAL1P89V51RD2的两种时钟模式✧X1模式✧X2模式器件含有一个时钟加倍选项,可以加速器件的运行速度。
单片机的复位操作由复位引脚RST/VPD上出现高电平引起的,高电平持续时间不少于两个机器周期(24个震荡周期),CPU在第2个机器周期内执行复位操作。
如果RST/VPD持续为高电平,那么每隔24个震荡周期重复一次复位操作。
复位后机内各特殊功能寄存器初始状态如表1-12所示,而片内128BRAM的状态不受复位信号影响。
SFR 复位状态SRF 复位状态P0~P3 FFH TH0 00H SP 07H TH1 00HDPL 00H SCON 00HDPH 00H SBUF 不定PCON 0xxx xxxxB(HMOS) IE 0xx0 0000BTCON 00H IP xxx0 0000BTMOD 00H PSW 00HTL0 00H A 00HTL1 00H B 00H各个特殊功能寄存器的复位状态解释如下:P0~P3=FFH:表示已向各端口写入1,使各端口即能作输入线,又能作输出线使用。
SP=07H:表示堆栈栈底位于07H单元,第1个进栈字节将写入08H单元中。
DPTR=0000H:表示片外储存器的操作将从000H单元开始(DPTR包括DPL和PPH 两种状态)。
PCON:HMOS单片机的PCON=0xxx xxxxB,最高位为0表示串行工作时的波特率不加倍。
CHMOS单片机的PCON=00xx xx00 B,最低两位00表示复位后单片机处于正常操作方式。
TCON=00H:表示T0,T1的工作均被停止。
TL0=00H,TH0=00H:表示T0的初始值为000H。
TL1=00H,TH1=00H:表示T1的初始值为000H。
SCON=00H:表示串行口处于工作方式0,允许发送,禁止接收。
SBUF 不定:SUBF存放的是串行口待发送或待接收数据,此时数据无用。
IE=0xx0 0000B:最高为0表示禁止所以中断。
IP=xxx0 0000B:表示5个中断源处于低优先级。
PSW=00H:表示工作寄存器选用0组。
单片机复位电路汇总复位电路的作用在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。
无论用户使用哪种类型的单片机,总要涉及到单片机复位电路的设计。
而单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。
许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。
基本的复位方式单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:手动按钮复位和上电复位1、手动按钮复位手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。
一般采用的办法是在RST 端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST 端。
手动按钮复位的电路如所示。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
图12、上电复位AT89C51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。
对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1µF。
上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。
为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。
上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。
单片机的4种工作方式介绍单片机共有复位、程序执行、低功耗和编程与加密四种工作方式,下面分别加以介绍。
1.复位方式(1)为什么要复位大家知道,单片机执行程序时总是从地址0000H 开始的,所以在进入系统时必须对CPU 进行复位,也叫初始化;另外由于程序运行中的错误或操作失误使系统处于死锁状态时,为了摆脱这种状态,也需要进行复位,就象电脑死机了要重新启动一样。
(2)复位的原理单片机复位的方法其实很简单,只要在RST 引脚(9 脚)上加一个持续时间为24 个振荡周期(即两个机器周期)的高电平就可以了。
如果晶振为12M,计算一下这个持续脉冲需要多长时间?(3)如何进行复位复位操作有上电自动复位、按键复位和外部脉冲复位3 种方法,上电自动复位是通过外部复位电路的电容充电来实现的,当电源刚接通时电容C 对下拉电阻开始充电,由于电容两边的电压不能突变,所以RTS 端维持高电平,只要这个充电时间不超过1ms,就可以实现对单片机的自动上电复位,即接通电源就完成了系统的初始化,在实际的工程应用中,如果没有特殊要求,一般都采用这种复位方式;按键复位的电路如图2 所示,它其实就是在上电复位的基础上加了R2 和SA,这种电路一般用在需要经常复位的系统中;外部脉冲复位的电路如图3 所示,外部复位通常用于要求比较高的系统,比如希望系统死锁后能自动复位。
外部复位是由专门的集成电路来实现的,也就是我们通常俗称的“看门狗”电路,这种电路有很多,它们不但能完成对单片机的自动复位功能,而且还有管理电源、用作外部存储器等功能,比如X25045,MAX813L 等等就是比较常用的此类芯片。
(4)复位后的状态这就是单片机复位后内部系统的状态。
2.程序执行方式程序执行是单片机的基本工作方式,由于复位后PC=0000 ,所以程序就从地址0000H 开始执行,此时单片机就根据指令的要求完成一系列的操作控制,比如前面讲的让LED 灯闪烁起来,不过在实际使用中,程序并不会从0000H 开始执行,而总是安排一条跳转指令,比如LJMP START ,为什么要这样安排,我们讲到中断时再来解释。
单片机习题答案第1章习题参考答案1-1什么是单片机?它与一般微型计算机在结构上何区别?微型计算机的基本结构由CPU(运算器、控制器)、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。
单片机的结构是在一块芯片上集成了中央处理器(CPU)、存储器、定时器/计数器、中断控制、各种输入/输出接口(如并行I/O口、串行I/O口和A/D转换器)等,它们通过单片机内部部总线连接而成为一体。
1-2MCS-51系列单片机内部资源配置如何?试举例说明8051与51兼容的单片机的异同。
答:MCS-51系列单片机内部资源配置型号8031/80C318051/80C51程序存储器片内RAM定时/计数器并行I/O口串行口中断源/中断优先级无128B128B128B256B256B2某162某162某163某163某164某84某84某84某84某8111115/25/25/26/26/24KBROM无8751/87C514KBEPROM8032/80C328052/80C524KBROM8051与51兼容的单片机的异同厂商型号程序存储片内定时/并行串行中断源/优先级5/26/2直接驱动LED输出,片上模拟比较器256B3某163219/2SPI,WDT,2个数据指针其它特点器RAM计数器I/O口口IntelATMEL8051/80C514KBROM128BAT89C20512KBFlahROMAT89S5312KBFlah ROMAnalogADuC812DeviceW77E5832KB256B+3某1636212/2扩展了4位I/O 口,双数据指针,WDT。
19/2WDT,SPI,8通道12位ADC,2通道12位DAC,片上DMA控制器。
.飞利浦80C552无256B3某1648115/4CMOS型10位ADC,捕捉/比较单元,PWM83/87C5528KBEEPROM83/89CE55832KBEEPROM256B+3某16401024B115/4256B3某1648115/4CMOS型10位ADC,捕捉/比较单元,PWM8通道10位ADC,捕捉/比较单元,PWM,双数据指针,IC总线,PLL (32kHz)。
单片机的复位与程序执行
程序中的字节可能是操作码,也可能是数据。
所以主程序要从程序存储器的指定位置开始存储,单片机的工作也必须从这个指定位置开始执行,才能正确运行。
51单片机规定主程序从程序存储器0号单元开始存储。
也就是说,O号单元存储的肯定是操作码,而1号单元存储的是操怍数或卜条指令的操作码。
如果机器从l号单元开始执行程序,就会将操作数当作操作码,其结果是影响整个程序的运作.铸成一步错步步错的结局。
单片机上电后,首先使程序计数器PC等于0000H.保证从第一条指令的操作码开始执行程序。
1.复位要求和复位方法
5 1单片机复位引脚Reset为高电平时,进行初始化;为低电平时,开始工作。
就是通常所说的高电平复位。
单片机正常工作期间.复位引脚Reset要一直保持低电平,工作过程中,引脚Reset一旦接收到一个正脉冲,就会再次复位启动。
为可靠复位,51单片机要求Reset引脚施加的正脉冲脉宽不小于2个机器周期。
当晶搌频率fose=12MHzH~f,机器周期T=lμs.要求加在Reset引脚的正脉宽不小于21xs。
以t=OH寸刻作为正脉冲上升沿,在正脉冲期间,单片机完成复位任务,使有关的寄存器、计数器等成为特定状态。
正脉冲结束时.即t=tl 时,单片机开始执行程序。
通常.利用RC电路暂态过程中电容充电指数曲线加到51单片机Reset引脚上完成复位.见图1和图2。
复位方法分为上电复位和手动复位。
手动复位也叫按钮复位。
上电复位时,Reset引脚电压按照RC充电规律变化,当该电压下降到单片机最小输入高电平对应电压时,复位结束,
程序开始启动。
显然,电阻、电容越大,复位正脉宽就越大。
设计复位电路的要求,就是确定电阻电容值,达到2个机器周期的复位最小正脉宽要求。
手动复位是操作者手按按钮,给单片机施加一个正脉冲,或由别的电路给单片机施加一个正脉冲使之复位。
实际上.手指按一下起码有数百毫秒,一般都能满足单片机复位正脉宽的要求。
上电复位时,要通过RC缓慢放电来满足复位要求。
若RCH寸间常数太小,就不能满足复位正脉宽要求。
因此应当按照上电复位要求来确定电阻和电容值。
按钮复位时,正脉冲波顶电压由Rl、R2对+5V分压形成。
URl=(Rl/Rl+R2)Uω因此,Rl、R2应能满足对+5V分压值大于单片机最小输入高电平电压(单片机最小输入高电平UtHmin=3.5V)。
通常取R1=lOkΩ,R2=lkΩ,分压为URl=4.55V>3. 5V.再根据电路暂态过程按照上述电复位要求来确定电容C的值。
根据T=RlC,以及Rl=10kΩ,可求出品振为lMHzB寸C=6.7nF。
为保险起见,通常取电容C=lμF。
按照比较低的晶振频率fosc=1MHz计算的电阻和电容值,自然适用于实际使用的更高的晶振频率,例如fosc=6MHz、11.0592MHz和fosc= l2MHz。
对Rl=10Ω,时间常数T=4ms。
就是说,当Rl=10kQ时,C=lμF.单片机合闸上电后4ms即开始启动执行程序。
2。
复位影响及复位结果
复位影响:5l单片机复位影响程序计数器PC及除SBUF .WDTRST以外的22个SFR。
复位结果:P0-P3全为l,SP=07H.其余SFR及PC有效位全为O.见附表。
复位后,P0-P3全为1,程序无需向口线写1.就可以用作输入,且无论口线接收低电平输入还是高电平输入,都不会损坏单片机。
3.上电复位与带电复位
上电复位与带电复位都能使单片机完成最常见的初始化并肩动,两者区别是上电复位后,内部RAM数值不定。
带电复位后,内部RAM数值不变。
带电复位能使计算机跳出死循环,解决死机问题.还能使计算机结束待机状态和掉电状态。
单片机中的复位,实际是在程序运行前给定一个已知条件。
若复位给定的已知条件不能满足需要,还可以在程序运行中随时修改和补充。
程序开始阶段的初始化,就是集中补充已知条件。
目标复位结果日标复位结果目标复位结果PC 0000H SC0N 00H TL0 00H DPTR O00OH TCON 00H THO 00H
B 00H TMOD 00H TLl 00H
ACC O0H PCON 00H TH1 00H
PSW 0OH SP 07H AUXR ×××0O××0 IP ××000000B PO~P3 FFH AUXRl ×××××××0 IE 0×000000B SBUF ××××××××WDTRST ××××××××。