单片机复位、程序执行、低功耗以及编程和复位操作
2021-07-03
说明
单片机有四种工作模式:复位、程序执行、低功耗、编程和验证。
1.重置方法
(l) 复位操作 复位是单片机的初始化操作,其主要作用是初始化PC,使单片机执行来自单元的程序。除了进入系统的正常初始化外,当系统因程序运行错误或操作错误而处于死锁状态时,为了摆脱困境,还需要按复位键重新启动.
除PC外,复位操作还会影响其他一些特殊功能寄存器,其复位状态如上表所示。
复位操作也会影响微控制器的各个引脚信号。例如,在复位期间,ALE 和信号变为无效,即 ALE==1。 (2) 信号及其产生
①复位信号
RST 引脚是复位信号的输入端。复位信号为高电平有效,其有效时间应大于24个振荡脉冲周期(即2个机器周期)。如果使用频率为6MHz的晶振,复位信号持续时间应超过4μs才能完成复位操作;产生复位信号的电路逻辑如下图所示。
整个复位电路包括芯片内外两部分。外电路产生的复位信号(RST)送到施密特触发器,片上复位电路在每个机器周期的S5P2时间对施密特触发器的输出进行采样。只有这样才能获得内部复位操作所需的信号。
②复位模式 复位操作有上电自动复位、按键手动复位和外部脉冲复位三种模式,如下图所示。
上电自动复位是通过给外部复位电路的电容充电来实现的,电路如上图(a)所示。这样只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即上电完成系统的复位初始化。按键电平复位是通过一个电阻将复位端接到Vcc电源上来实现的,电路如上图(b)所示。按键复位电路图中的电阻电容参数适用于6MHz晶振,可以保证复位信号的高电平持续时间大于2个机器周期。外部脉冲复位是外部提供的复位脉冲。这个复位脉冲的宽度应该保持大于两个机器周期,如上图(c)所示。复位脉冲后,内部下拉电阻保证RST端为低电平。
2.程序执行方法
程序执行模式是单片机的基本工作模式。由于 PC= 复位后,程序执行总是从地址开始。但一般的程序并不是真正从头开始,为此,必须在起始单元中存储无条件转移指令,才能跳转到实际程序群执行。
3.低功耗工作模式
有两种低功耗模式,即待机模式和掉电保护模式。待机模式和掉电保护模式所涉及的硬件如上图所示。待机模式和掉电模式由电源控制寄存器(PCON)的相关位控制。功率控制寄存器(PCON)寄存器是一个逐位定义的8位寄存器,其格式如下:
其中:SMOD为波特率倍增位,用于串口通信; CF1是
通用标志位1; GF0为通用标志位0; PD为掉电模式位,PD=1,则进入掉电模式; IDL为待机模式位,IDL=1,则进入待机模式。要使微控制器进入待机或掉电工作模式,只需执行一条指令使 IDL 或 PD 位为 1 即可。
(1)待机模式
④ 进入待机模式。如果 PCON 寄存器的 IDL 位设置为 1,它将进入待机模式。此时振荡器仍在运行,为中断逻辑、串口和定时/计数器电路提供时钟,但为CPU提供时钟的电路被阻塞,因此CPU无法工作,中断功能继续存在,但与CPU有关,如SP、PC、PSW、ACC,所有通用寄存器都“冻结”在原始状态。
②退出待机模式
使用中断方式退出待机模式。在待机模式下,如果引入外部中断请求信号,PCON. Bit 0(即PD位)由硬件自动清0,单片机退出待机模式,进入正常工作模式。中断服务程序中只需安排一条RETI指令,MCU即可恢复正常运行,返回断点继续执行程序。
(2)掉电保护方法
①进入掉电保护模式
PCON 寄存器的 PD 位控制微控制器进入掉电保护模式。当单片机检测到掉电时,除信息保护外,还应将PCON.I位置置“1”,使其进入掉电保护模式。此时单片机的所有工作都停止,只保存内部RAM单元的内容。
②单片机的后备电源从掉电保护模式退出时的Vcc端引入。当Vcc恢复正常时,只要硬件复位信号保持10ms,单片机就可以退出掉电保护模式。待机和掉电模式下的引脚状态如下表所示。
4.编程方法
片上有一个 4K 字节的代码存储器阵列。有低压编程和高压编程(12V)两种模式。低压编程状态为用户在系统中编程提供了方便的方式,高压编程(12V)模式适用于普通或编程器。
(1)存储器编程方法上表列出了存储器编程、校验、写锁定位和读芯片标志的逻辑电平。存储器源代码数组在上述两种编程状态下都是一字节的如果内存不为空,则必须在芯片擦除状态下擦除整个内存。元素的内容被保存。 ②掉电保护模式从Vcc端退出MCU后备电源。当Vcc恢复正常时只要硬件复位信号保持10ms,MCU就可以退出掉电保护模式。待机和掉电模式下的引脚状态如表4所示。
4.编程方法
片上有一个 4K 字节的代码存储器阵列。有低压编程和高压编程(12V)两种模式。低压编程状态为用户在系统中编程提供了方便的方式,高压编程(12V)模式适用于普通或编程器。
(1)存储器编程方法上表列出了存储器编程、校验、写锁定位和读芯片标志的逻辑电平。存储器源代码数组在上述两种编程状态下都是一字节的编程。如果内存不为空,则在芯片擦除时必须擦除整个内存。
(2) 存储器编程
①编程算法 编程前必须按照上表和上图(a)、(b)设置地址、数据和控制信号。编程有以下步骤: (a) 在地址线上输入内存地址。 (b) 在数据行上输入正确的数据。 (c) 正确的控制信号组合如上图所示。 (d) 对于高压编程模式单片机原理与应用及c51编程技术,将 EA 的反向 /Vpp 增加到 12V。 (e) 给 ALE/PROG 的逆程序一个编程脉冲。字节写周期自行计时,一般不超过1.5ms。 (f) 更改地址和数据单片机原理与应用及c51编程技术,重复步骤 (a) ~ (e) 直到所有目标文件(OBJ 文件)结束。
②数据查询()具有通过数据查询检测写周期结束的特性。在写周期中,如果尝试读取刚刚写入的字节,则会在 P0.7 引脚上得到写入数据的反码。一旦写周期完成,刚刚写入的真实数据将出现在所有输出上,因此可以开始下一个周期。写周期开始后,可以随时开始数据查询。
③/busy(与RDY/BSY相反)字节编程的过程也可以通过RDY/BSY输出信号来检测。如上图所示,编程时ALE/PRO升回高电平后,P3.4引脚被拉低,表示BUS;编程完成后再次拉高表示。
④程序验证如果锁定位LB1和LB2没有被编程,可以通过数据线回读代码数据进行验证。锁定位无法直接验证,只能通过观察其特性是否允许来间接验证。
⑤芯片对整个阵列的擦除和三个锁定位的电擦除可以通过控制信号的正确组合并保持ALE/PROG反引脚低电平l0ms来完成。在芯片擦除操作中,代码阵列全部写入“1”。并且在重复编程任何非空存储字节之前,必须先执行擦除操作。
⑥读取特征字节的读取程序与030H、031H、032H区的标准校验程序类似,区别在于P3.6和P3.7必须为逻辑低电平,返回值如下:(030H)=1EH表示AT-MEL生产,(031H)=51H表示,(032H)=FFH表示12V编程,(032H)=05H表示5V编程。
(3)程序锁定位和编程芯片的功能包含三个锁定位,但没有密码数组。可以通过编程(U)或编程(P)来获得一些附加功能,如图上表 不同的编程条件和程序锁定位的特性 当第一级加密时,EA的反逻辑电压被采样并锁存 在复位期间,如果器件上电而不是复位,则锁存内容为初始化为1个随机值,直到复位操作结束。锁定位的编程方法可参考表5中的逻辑电平。