



MCS-51系列单片机中,8051及80C51的工作方式有:复位、程序执行、掉电保护、低功耗、EPROM编程和校验方式。单片机不同的工作方式,代表单片机处于不同的状态。单片机工作方式的多少,是衡量单片机性能的一项重要指标。
复位是单片机进入工作状态的初始化操作,是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。另外,当程序运行错误或由于错误操作而使单片机进入死锁状态时,也可以通过复位进行重新启动。复位后,单片机内部寄存器的值被初始化,其值见表 2-8。了解单片机内部寄存器初始化的状态,对于熟悉单片机的操作,简化应用程序的初始化过程是很有必要的。
表 2-8 单片机复位后内部各寄存器状态
MCS-51系列单片机的RST引脚是复位信号的引入端,复位信号为高电平有效,其所需时间在 2 个机器周期(24 个振荡周期)以上。
复位操作还会把ALE和
变为无效状态,即ALE=0,
=1。但复位操作不影响片内RAM单元的内容。
单片机复位的方式有上电自动复位和按键手动复位。按键手动复位又分为按键电平复位和按键脉冲复位两种,复位电路如图 2-22 所示。
如图 2-22(a)所示,上电自动复位是通过电容充电来实现的。通过选择适当的R和C的值,就能够使RST引脚上的高电平保持两个机器周期以上,以实现在上电的同时,完成单片机的复位。
图 2-22(b)和图 2-22(c)是通过RST经电阻与电源相连接或利用RC微分电路产生的正脉冲来实现按键复位的。这两个电路同时也具备上电自动复位的功能。
图 2-22单片机的复位电路
程序执行方式是单片机的基本工作方式,由于单片机复位后PC = 0000H,所以程序总是从地址 0000H开始执行。程序执行方式又可分为连续执行和单步执行两种。
1.连续执行方式
连续执行方式是从指定地址开始连续执行程序存储器ROM中存放的程序,每读一次程序,PC自动加 1。
2.单步运行方式
程序的单步运行方式是在单步运行键的控制下实现的,每按一次单步运行键,程序顺序执行一条指令。单步运行方式通常只在用户调试程序时使用,用于观察每条指令的执行情况。
MCS-51单片机中有HMOS和CHMOS两种工艺芯片,它们的节电运行方式不同,HMOS单片机的节电工作方式只有掉电工作方式,CHMOS单片机的节电工作方式有掉电工作方式和空闲工作方式两种。单片机的节电工作方式,是由其内部的电源控制寄存器PCON中的相关位来控制的。PCON寄存器的控制格式如下:
PCON的各位定义如下:
· SMOD :串行口波特率倍率控制位(详见第六章串行口波特率一节)。
· GF1、GF0 :通用标志位。
· PD :掉电方式控制位。PD = 1,进入掉电工作方式。
· IDL :空闲方式控制位。IDL =1,进入空闲工作方式。
如同时将PD和IDL置 1,则进入掉电工作方式。PCON寄存器的复位值为 0XXX0000,PCON.4~PCON.6 为保留位,用户不能对它们进行写操作。
1.空闲工作方式
当程序将PCON的IDL位置 1 后,系统就进入了空闲工作方式。空闲工作方式是在程序运行过程中,用户在CPU无事可做或不希望它执行程序时,进入的一种降低功耗的待机工作方式。在此工作方式下,单片机的工作电流可降到正常工作方式时电流的15 %左右。
在空闲工作方式时,振荡器继续工作,中断系统、串行口以及定时器模块由时钟驱动工作,但时钟不提供给CPU。也就是说,CPU处于待机状态,工作暂停。与CPU有关的SP、PC、PSW、ACC的状态以及全部工作寄存器的内容均保持不变,I/O引脚状态也保持不变。ALE和
保持逻辑高电平。
退出空闲方式的方法有两种,一种是中断退出,一种是按键复位退出。
任何的中断请求被响应都可以由硬件将PCON.0(IDL)清 0,从而中止空闲工作方式。当执行完中断服务程序返回时,系统将从设置空闲工作方式指令的下一条指令开始继续执行程序。另外,PCON寄存器中的GF0和GF1通用标志可用来指示中断是在正常情况下或是在空闲方式下发生。例如,在执行设置空闲方式的指令前,先置标志位GF0(或GF1);当空闲工作方式被中断中止时,在中断服务程序中可检测标志位GF0(或GF1),以判断出系统是在什么情况下发生的中断,如GF0(或GF1)为 1,则是在空闲方式下进入的中断。
另一种退出空闲方式的方法是按键复位,由于在空闲工作方式下振荡器仍然工作,因此复位仅需2个机器周期便可完成。而RST端的复位信号直接将PCON.0(IDL)清0,从而退出空闲状态,CPU则从进入空闲方式的下一条指令开始重新执行程序。在内部系统复位开始,还可以有2~3个指令周期,在这一段时间里,系统硬件禁止访问内部RAM区,但允许访问I/O端口。一般地,为了防止对端口的操作出现错误,在设置空闲工作方式指令的下一条指令中,不应该是对端口写或对外部RAM写指令。
2.掉电保护方式
当CPU执行一条置PCON.1位(PD)为1的指令后,系统即进入掉电保护方式。
掉电的具体含义是指由于电源的故障使电源电压丢失或工作电压低于正常要求的范围值。掉电将使单片机系统不能运行,若不采取保护措施,会丢失RAM和寄存器中的数据,为此单片机设置有掉电保护措施,进行掉电保护处理。具体做法是:检测电路一旦发现掉电,立即先把程序运行过程中有用信息转存到RAM,然后启用备用电源维持RAM供电。
在掉电保护方式下,单片机内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,端口的输出状态值都保存在对应的SFR中,ALE和
都为低电平。这种工作方式下的电流可降到15μA以下,最小可降到0.6μA。
退出掉电保护方式的惟一方法是由硬件复位,复位时将所有的特殊功能寄存器的内容初始化,但不改变内部RAM区的数据。
在掉电保护方式下,VCC可以降到 2V,但在进入掉电保护之前,VCC不能降低。而在准备退出掉电保护方式之前,VCC必须恢复正常的工作电压值,并维持一段时间(约10ms),使振荡器重新启动并稳定后方可退出掉电方式。
对于内部集成有EPROM的MCS-51单片机,可以进行编程或校验方式。
1.内部EPROM编程
编程时,时钟频率应定在 3~6MHz的范围内,其余各有关引脚的接法和用法如下:P1口和P2 口的P2.0~P2.3 为EPROM的 4K地址输入,P1 为 8 位地址;P2.4~P2.6 以及PSEN应为低电平;P0口为编程数据输入;P2.7和RST应为高电平;RST的高电平可为2.5V,其余的都以TTL的高低电平为准;EA/V PP 端加+ 21V的编程脉冲,此电压要求稳定,不能大于 21.5V,否则会损坏EPROM。
在出现正脉冲期间,ALE/PROG端加上50ms的负脉,完成一次写入。8751的EPROM编程一般要用专门的单片机开发系统来进行。
2. EPROM程序校验
在程序的保险位尚未设置,无论在写入的当时或写入以后,均可将片上程序存贮器的内容读出进行检验,在读出时,除P2.7脚保持为TTL低电平之外,其他引脚与写入EPROM的连接方式相同。要读出的程序存贮器单元地址由P1 口和P2 口的P2.0~P2.3 送入,P2口的其他引脚及
保持低电平,ALE、
和RST接高电平,检验的单元内容由P
0
口送出。在检验操作时,需在P0的各位外部加上电阻10kΩ。
3.程序存贮器的保险位
8751内部有一个保险位,亦称保密位,一旦将该位写入便建立了保险,就可禁止任何外部方法对片内程序存贮器进行读写。将保险位写入以建立保险位的过程与正常写入的过程相似,仅只P2.6 脚要加TTL高电平而不是像正常写入时加低电平,而P0、P1 和P2的P2.0~P2.3 的状态随意,加上编程脉冲后就可使保险位写入。
保险位一旦写入,内部程序存贮器便不能再被写入和读出校验,而且也不能执行外部存贮器的程序。只有将EPROM全部擦除时,保险位才能被一起擦除,也才可以再次写入。