单片机的工作方式是进行系统设计的基础,也是单片机应用工作者必须熟悉的问题。通常,MCS-51单片机的工作方式包括:复位方式、程序执行方式、节电方式以及编程和校验方式4种。
单片机在开机时都需要复位,以便CPU及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51的RST引脚是复位信号的输入端,复位信号是高电平有效,持续时间要有24个时钟周期以上。例如,若MCS-51单片机时钟频率为12MHz,则复位脉冲宽度至少应为2ms。单片机复位后,其片内各寄存器状态如表2-3所示。这时,堆栈指针SP为07H,ALE、 、P0、P1、P2和P3口各引脚均为高电平,片内RAM中内容不变。
程序执行方式是单片机的基本工作方式,通常可以分为单步执行和连续执行两种工作方式。
单步执行方式是指单片机在控制面板上某个按钮(即单步执行键)控制下一条一条执行用户程序中指令的方式,即按一次单步执行键就执行一条用户指令的方式。单步执行方式常常用于用户程序的调试。
单步执行方式是利用单片机外部中断功能实现的。单步执行键相当于外部中断的中断源,当它被按下时相应电路就产生一个负脉冲(即中断请求信号)送到单片机的(或)引脚,MCS-51单片机在上负脉冲作用下产生中断,便能自动执行预先安排在中断服务程序中的指令,如以下两条。执行完中断服务程序后返回用户程序中执行一条用户指令(单步),这条用户指令执行完后,单片机又自动回到上述中断服务程序执行,并等待用户再次按下单步执行键。
……
LOOPl:JNB P3.2,LOOPl;则不往下执行
LOOP2:JB P3.2,LOOP2;则不往下执行
RETI
连续执行方式是所有单片机都需要的一种工作方式,被执行程序可以放在片内或片外ROM中。由于单片机复位后程序计数器PC=0000H,因此单片机系统在上电或按复位键后,总是到0000H处执行程序,这就可以预先在0000H处放一条转移指令,以便跳转到0000H~FFFFH中的任何地方执行程序。
CHMOS型的MCS-51单片机具有低功耗的特点。为进一步降低功耗,适用于电源功耗要求低的应用场合,该型单片机还提供了两种节电工作方式:待机方式和掉电保护方式。这两种工作方式特别适合以电池为工作电源和停电时使用备用电源供电的应用场合。
待机方式和掉电方式都是由电源控制寄存器PCON的有关位来控制的。电源控制寄存器属于特殊功能寄存器,地址为87H,不可位寻址,其格式如图2-12所示。
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
SMOD |
— |
— |
— |
GF1 |
GF0 |
PD |
IDL |
图2-12 PCON格式
PCON各位的说明如下。
· SMPD:串行口波特率系数控制位。
· GFl:通用标志“1”。
· GF0:通用标志“0”。
· PD:掉电方式控制位,PD=1,系统进入掉电保护方式。
· IDL:待机方式控制位,IDL=1,系统进入待机方式。
如果想要单片机进入待机方式或掉电保护方式,只需执行一条能够使IDL或PD位置“1”的指令即可。
待机方式的进入方法非常简单,只需使用指令将PCON寄存器的IDL位置“l”即可。MCS-51单片机进入待机方式时振荡器仍然运行,而且时钟被送往中断逻辑、串行口和定时器/计数器,但不向CPU提供时钟,因此CPU是不工作的。CPU的现场(堆栈指针SP、程序计数器PC、PSW、ACC)及除与上述三部件有关的寄存器外,其余通用寄存器都保持原有状态不变,各引脚保持进入待机方式时的状态,ALE和保持高电平,中断的功能还继续存在。
退出待机方式的方法有两种:中断和硬件复位。在待机方式下,在单片机响应任何一个中断请求信号的同时,中断PCON.0位(即IDL位)被硬件自动清零,单片机退出待机方式进入到正常的工作状态;另一种退出待机方式的方法是硬件复位,在RST引脚引入两个机器周期的高电平即可,复位后的状态如前述。
掉电保护方式的进入类似于待机方式的进入,只需使用指令将PCON寄存器的PD位置“1”即可。进入掉电保护方式,单片机的一切工作全部停止,只有内部的RAM单元的内容被保存。I/O引脚状态和相关特殊功能寄存器的内容相对应,ALE和为逻辑低电平。
退出掉电保护方式的方法只有一个:硬件复位。复位后特殊功能寄存器的内容被初始化,但RAM的内容仍然保持不变。
这里的编程是指利用特殊手段对单片机片内EPROM进行写入的过程,校验则是对刚刚写入的程序代码进行读出验证的过程。因此,单片机的编程和校验方式只有EPROM型器件才有,如8751这样的器件。