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