8.3 8051单片机串行口工作方式
- 格式:pptx
- 大小:395.70 KB
- 文档页数:22
串行接口工作方式0应用举例一、串行口工作方式0SM0=0、SM1=0串行口工作于方式0,即串行寄存器方式。
图1是串行接口方式0的结构示意图。
(1)数据从RXD引脚上发送或接收。
一帧信息由8位数据组成,低位在前。
(2)波特率固定,为fosc/12(即为机器周期T)。
(3)同步移位脉冲从TXD引脚上输出。
图1串行口工作方式0结构示意图发送CPU执行一条写SBUF的指令如,MOV SBUF,A 就启动了发送过程。
(1)指令执行期间送来的写信号打开三态门1,将经内部总线送来的8位并行数据写入发送数据缓冲器。
(2)写信号同时启动发送控制器。
(3)此后,CPU与串行口并行工作。
经过一个机器周期,发送控制端SEND有效(高电平),打开门5和门6,应许RXD引脚发送数据,TXD引脚输出同步移位脉冲。
(4)在由时钟信号Sb/触发产生的内部移位脉冲作用下,发送数据缓冲器中的数据逐位串行输出。
每个机器周期从RXD上发送一位数据。
故波/特率为fosc/12。
Sb同时形成同步移位脉冲,一个机器周期从TXD上输出一个同步移位脉冲。
(5)8位数据(一帧)发送完毕后,SEND恢复低电平状态,停止发送数据,且发送控制器硬件置发送中断标志位TI=1,向CPU申请中断。
注:如要再次发送数据,必须用软件将TI清零,并再次执行写SBUF的指令。
接收在RI=0的条件下,将REN(SCON.4)置1就启动一次接收过程。
RXD为串行数据接收端,TXD依然输出同步移位脉冲。
(1)REN置1启动了接收控制器(2)经过一个机器周期,接收控制端RECV有效(高电平),打开了门6,应许TXD输出同步移位脉冲。
该脉冲控制外接芯片逐位输入数据,波特率为fosc/12。
(3)在内部移位脉冲作用下,RXD上的串行输入数据逐位移入移位寄存器。
(4)当8位数据(一帧)全部移入移位寄存器后,接收控制器使RECV失效,停止输出移位脉冲,还发出“装载SBUF”信号,打开三态门2,将8位数据并行送入接收缓冲器SBUF保存。
电子报/2018年/11月/18日/第009版职教与技能单片机串行接口工作方式四川科技职业学院鼎利学院杨宇翔敬顺德串行口的工作方式0为移位寄存器输入输出方式,方式0发送或接收完8位数据后由硬件置位发送中断标志TI或接收中断标志RI。
1.方式0发送串行数据从RXD引脚输出,TXD引脚输出移位脉冲。
CPU将数据写入发送寄存器(SBUF)时,立即启动发送,将8位数据以fosc/12的固定波特率从RXD输出,低位在前,高位在后,直至最高位(D7位)数字移出后,停止发送数据和移位时钟脉冲。
MOV SCON,#10H;串行口方式0MOV A,SBUF;接收数据JNB RI,$;等待数据接收完毕2.方式0接收方式0接收前,务必先置位REN=1,允许接收数据。
此时,RXD为串行数据输入端,TXD仍为同步脉冲移位输出端。
当RI=0和REN=1同时满足时,就会启动一次接收过程。
接收器以fosc/12的固定波特率接收TXD端输入的数据。
当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI,向CPU申请中断。
MOV SCON,#00H;串行口方式0MOV SBUF,A;将数据送出JNB TI,$;等待数据发送完毕工作方式0一般用于对并行输入输出口的扩展,如图1所示。
二、方式1:8位UART方式当SM0=0、SM1=1时,串行口选择方式1,单片机工作于8位数据异步通讯方式(UART)。
在方式1时,传送一帧信息为10位,即1位起始位(0),8位数据位(低位在先)和1位停止位(1)。
方式1的数据格式如图2所示。
1.方式1发送当CPU执行MOV A,SBUF指令将数据写入发送缓冲SBUF,启动发送。
先把起始位输出到TXD,然后把移位寄存器的输出位送到TXD。
接着发出第一个移位脉冲(SHIFT),使数据右移一位,并从左端补入0。
此后数据将逐位由TXD端送出,而其左面不断补入0。
发送完一帧数据后,就由硬件置位TI。
2.方式1接收当REN=1且接收到起始位后,在移位脉冲的控制下,把接收到的数据移入接收缓冲寄存器(SBUF)中,停止位到来后,把停止位送入RB8中,并置位RI,通知CPU接收到一个字符。
80C51单片机的串行口在单片机的世界里,80C51 单片机凭借其稳定性和广泛的应用一直占据着重要的地位。
而串行口作为 80C51 单片机的重要通信接口,发挥着至关重要的作用。
要理解 80C51 单片机的串行口,首先得知道串行通信的概念。
简单来说,串行通信就是数据一位一位地依次传输,相比并行通信,它只需要较少的数据线,这在很多场景下能大大减少硬件成本和布线难度。
80C51 单片机的串行口有 4 种工作方式,分别是方式 0、方式 1、方式 2 和方式 3。
方式 0 是同步移位寄存器输入/输出方式。
在这种方式下,数据以 8 位为一帧,低位在前,高位在后,没有起始位和停止位。
它通常用于扩展并行 I/O 口,例如外接串入并出的移位寄存器 74LS164 或并入串出的移位寄存器 74LS165。
方式 1 是 8 位异步通信方式,波特率可变。
这是最常用的串行通信方式之一。
一帧数据由 1 位起始位(低电平)、8 位数据位(低位在前)和 1 位停止位(高电平)组成。
发送和接收都是通过专门的寄存器来实现的。
方式 2 是 9 位异步通信方式,波特率固定。
一帧数据由 1 位起始位、8 位数据位、1 位可编程的第 9 位数据和 1 位停止位组成。
这种方式常用于多机通信,第 9 位数据可以作为地址/数据的标识位。
方式 3 与方式 2 类似,也是 9 位异步通信方式,但波特率可变。
串行口的波特率是一个非常关键的概念。
波特率决定了数据传输的速度。
在 80C51 单片机中,方式 0 和方式 2 的波特率是固定的,而方式 1 和方式 3 的波特率则是由定时器 T1 的溢出率来决定的。
通过设置定时器 T1 的工作方式和初值,可以得到不同的波特率,以适应不同的通信需求。
在实际应用中,要使用 80C51 单片机的串行口进行通信,还需要对相关的寄存器进行配置。
比如,串行控制寄存器 SCON 用于设置串行口的工作方式、接收/发送控制等;电源控制寄存器 PCON 中的 SMOD 位用于控制方式 1、2、3 的波特率加倍。
51单片机教程:单片机串行口介绍
串行口是单片机与外界进行信息交换的工具。
8051 单片机的通信方式有两种:
并行通信:数据的各位同时发送或接收。
串行通信:数据一位一位次序发送或接收。
参看下图:
串行通信的方式:
异步通信:它用一个起始位表示字符的开始,用停止位表示字符的结束。
其每帧的格式如下:
在一帧格式中,先是一个起始位0,然后是8 个数据位,规定低位在前,高位在后,接下来是奇偶校验位(能省略),最后是停止位1。
用这种格式表示字符,则字符能一个接一个地传送。
在异步通信中,CPU 与外设之间必须有两项规定,即字符格式和波特率。
字符格式的规定是双方能够在对同一种0 和1 的串理解成同一种意义。
原则上字符格式能由通信的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII 标准。
波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。
例如,数据传送的速率是120 字符/s,而每个字符如上述规定包含10 数位,则传送波特率为1200 波特。
同步通信:在同步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志,采用同步传送。
由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。
8051单片机I/O口的工作原理一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图:由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。
下面,先分析组成P0口的各个部分:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),上面一个是读锁存器的缓冲器,下面一个是读引脚的缓冲器,读取P0.X引脚上的数据,要使这个三态缓冲器有效,引脚上的数据才会传输到内部数据总线上。
D锁存器:在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。
D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。
多路开关:在51单片机中,不需要外扩展存储器时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。
这个多路选择开关就是用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用的选择开关了。
当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为‘地址/数据’总线使用的。
输出驱动部份:P0口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。
P0口作为I/O端口使用时,多路开关的控制信号为0(低电平),V1管截止,多路开关是与锁存器的Q非端相接的(即P0口作为I/O口线使用)。
作为地址/数据线使用时,多路开关的控制信号为1,V1管由地址/数据线决定,多路开关与地址/数据线连接。
输出过程:1、I/O输出工作过程:当写锁存器信号CP有效,数据总线的信号→锁存器的输入端D→锁存器的反向输出Q非端→多路开关→V2管的栅极→V2的漏极到输出端P0.X。
2020年《单片机与接口技术》试题库158题(含参考答案)一、单选题1.MCS-51单片机CPU开中断的指令是 A 。
A.SETB EAB.SETB ESC.CLR EAD.SETB EX02.能将A按位取反的指令是 A 。
A.CPL AB.CLR AC.RL AD.SWAP A3.MCS-51指令系统中,指令ADD A,R0 执行前(A)=86H,(R0)=7AH,(C)=0 执行后,其结果为 A 。
A.(A)=00H (C)=1B.(A)=00H (C)=0C.(A)=7AH (C)=1D.(A)=7AH (C)=04.寻址方式就是 C 的方式。
A.查找指令操作码B.查找指令C.查找指令操作数D.查找指令操作码和操作数5.下列指令判断若P1口最低位为高电平就转LP,否则就执行下一句的是 B 。
A.JNB P1.0,LPB.JB P1.0,LPC.JC P1.0,LPD.JNZ P1.0,LP6.MCS-51寻址方式中,直接寻址的寻址空间是D。
A.工作寄存器R0~R7B.专用寄存器SFRC.程序存储器ROMD.数据存储器256字节范围7.MCS-51单片机的P1口的功能是 A 。
A.可作通用双向I/O口用C.可作地址/数据总线用8.8051单片机的VCC(40)引脚是 A 引脚。
A.主电源+5VB.接地C.备用电源D.访问片外存贮器9.单片机8051的XTAL1和XTAL2引脚是 D 引脚。
A.外接定时器B.外接串行口C.外接中断D.外接晶振10.8051单片机的V SS(20)引脚是 B 引脚。
A.主电源+5VB.接地C.备用电源D.访问片外存贮器11.共阳极LED数码管加反相器驱动时显示字符“6”的段码是 B 。
A.06HB.7DHC.82HD.FAH12.MCS-51指令系统中,指令ADDC A,@R0 执行前(A)=38H,(R0)=30H,(30H)=FOH,(C)=1 执行后,其结果为 B 。
第八课:51单片机串行口工作原理MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信。
1.串行端口的基本特点8031单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要。
其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1多用于双机之间或与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。
串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。
串行端口有一个数据寄存器SBUF(在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。
发送时,只写不读;接收时,只读不写。
在一定条件下,向阳UF写入数据就启动了发送过程;读SBUf就启动了接收过程。
串行通信的波特率可以程控设定。
在不同工作方式中,由时钟振荡频率的分频值或由定时器Tl的定时溢出时间确定,使用十分方便灵活。
2.串行端口的工作方式①方式08位移位寄存器输入/输出方式。
多用于外接移位寄存器以扩展I/O端口。
波特率固定为fosc/12。
其中,fosc为时钟频率。
在方式0中,串行端口作为输出时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,从RXD引脚逐位输出(从低位到高位);此时,TXD输出频率为fosc/12的同步移位脉冲。
数据发送前,仅管不使用中断,中断标志TI还必须清零,8位数据发送完后,TI自动置1。
如要再发送,必须用软件将TI清零。
串行端口作为输入时,RXD为数据输入端,TXD仍为同步信号输出端,输出频率为fosc/12的同步移位脉冲,使外部数据逐位移入RxD。
当接收到8位数据(一帧)后,中断标志RI自动置。
如果再接收,必须用软件先将RI清零。
串行方式0发送和接收的时序过程见下图。
实验六8051单片机串行口实验一实验目的:理解8051单片机串行口工作原理和方式。
学习和掌握8051单片机实现通讯的环境和程序编写。
了解PC机通讯的基本要求。
二实验原理:在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式。
所以串行接口是微机应用系统常用的接口。
所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。
如图6-1所示。
这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。
图6-1在串行通讯时,RS-232C接口是目前最常用的一种串行通讯接口,RS-232C使用-3到-25V表示数字“1”,使用3V到25V表示数字“0”,RS-232C在空闲时处于逻辑“1”状态。
8051单片机上有UART用于串行通信,发送时由TXD端送出数据,接收时则由RXD端输入数据。
它是一个可编程的全双工串行口。
SCON是串行口控制和状态寄存器,其格式如下:表6-1其中,SM0,SM1为串行口工作方式控制位,具体的工作方式如下表(表6-2)所示:表6-2SM2为多机通信控制位,当SM2=1时,只有接受到RB8为1,RI才置位,当SM2=0时,接受到字符RI就置位。
REN为串行口接收允许位。
工作在方式2和3时,TB8为发送的第9位数据,也可以用作奇偶校验位,RB8为接受到的第9位数据,而方式1时,RB8为接受到的停止位。
TI,RI分别为发送接受中断标志位,均由硬件置位,软件清0。
PCON是电源控制寄存器,其格式如下:表6-3其中,SMOD为串行口波特率加倍位。
当SMOD=1时,方式1,3波特率=定时器1溢出率/16,方式2波特率为fosc/32;当SMOD=0时,方式1,3波特率=定时器1溢出率/32,方式2波特率为fosc/64。
单片机的工作方式一,中央处理器CPU及时序(一)中央处理器CPUMCS-51内部有一个功能很强的8位中央处理器CPU,它决定了单片机的主要功能特性,完成对指令的解释和运算,为执行指令提供所必须的运算,逻辑和控制线路.它由运算器,控制器和专用寄存器组等构成.1.运算器运算器包括算术逻辑运算部件ALU,累加器ACC,寄存器B,暂存器TMP1和TMP2,程序状态字寄存器PSW,十进制调整电路和以及布尔处理器等.该模块的主要功能是实现算术运算,逻辑运算,数据传送和位变量处理等.具体包括加,减,乘,除算术运算;与,或,异或,循环,求补等逻辑运算;十进制调整,加1,减1运算;置1,清0,取反操作;数据传送操作等.同时还具有一般微机所不具有的位处理功能,这也是单片机能成为面向控制的微处理器的重要原因.2.控制器控制器控制着单片机系统完成各种操作.控制器一般包括时钟电路,复位电路,定时控制逻辑,指令寄存器IR,指令译码器ID,程序计数器PC和信息传送控制部件等.它以主振频率为基准,由定时控制逻辑发出CPU时序,将指令寄存器中存放的指令码取出送指令译码器进行译码,再由信息传送控制部件发出一系列的控制信号,控制单片机各部分运行,完成指令指定的功能.(二)时钟电路时钟电路用于产生单片机工作所需的时钟信号.单片机在时钟信号控制下,各部件之间协调一致地工作,时钟信号控制着计算机的工作节奏.如图2-5所示为MCS-51单片机的时钟电路.在图2-5a)中,引脚XTALl和XTAL2之间跨接晶体振荡器和微调电容,可以和芯片内部的振荡器构成一个稳定的自激振荡器,这就是单片机的时钟电路,这种方式称之为内部时钟源方式.电容器C和C的主要作用是帮助振荡器起振,且电容器大小对振荡频率有微调作用,典型值为C=C=30pF.振荡频率主要由石英晶振的频率确定,目前,51系列单片机的晶振频率范围是fosc为1.2MHz~60MHz,其典型值为6MHz,12MHz,11.0592MHz,20MHz,24MHz,33 MHz,40MHz等.8051的工作时钟也可以由外部时钟信号提供,如图2-5b)所示,外部的时钟信号由XTAL2引脚引入.由于XTAL2端逻辑电平不是TTL的,故需外接一上拉电阻,外接的时钟频率应低于12MHz.另外,80C51的外部时钟接法与8051不同,如图2-5c)所示,其外部时钟信号由XTALl脚引入,而XTAL2脚悬空.(三)CPU时序1.时序的概念所谓时序是指各种信号的时间序列,它表明了指令执行中各种信号之间的相互关系.单片机本身就是一个复杂的时序电路,CPU执行指令的一系列动作都是在时序电路控制下一拍一拍进行的.为达到同步协调工作的目的,各操作信号在时间上有严格的先后次序,这些次序就是CPU的时序.CPU的时序信号有两大类:一类用于单片机内部,控制片内各功能部件;另一类信号通过控制总线送到片外,这类控制信号的时序在系统扩展中比较重要,我们应当了解.2.时序的基本单位8051单片机以晶体振荡器的振荡周期(或外部引入的时钟信号的周期)为最小的时序单位.所以片内的各种微操作都是以晶振周期为时序基准.如图2-6所示为8051单片机的时钟信号图.由图中可以看出,8051单片机的基本定时单位共有四个,它们从小到大分别是:①晶振周期由振荡电路产生的振荡脉冲的周期,又称节拍(如P1,P2).②时钟周期它是晶振周期的两倍,也即一个时钟周期包含两个相互错开的节拍,也称S状态时间.③机器周期MCS-51单片机有固定的的机器周期,它是由晶振频率12分频后形成的,也就是说,一个机器周期是晶振周期的12倍宽.单片机的基本操作周期为机器周期.一个机器周期有6个状态,每个状态由两个脉冲(晶振周期)组成.即:1个机器周期=6个状态周期=12个晶振周期.若单片机采用12MHz的晶体振荡器,则一个机器周期为1μs,若采用6MHz的晶体振荡器,则一个机器周期为2μs.④指令周期指令周期是执行一条指令所需要的时间.不同的指令,其执行时间各不相同,如果用占用机器周期多少来衡量的话,MCS-51单片机的指令可分为单周期指令,双周期指令及四周期指令.3.CPU的典型时序单片机的指令的执行过程分为取指令,译码,执行三个过程.取指的过程实质上是访问程序存储器的过程,其时间长短取决于指令的字节数;译码与执行的时间长短取决于指令的类型.对于MCS-51单片机的指令系统,其指令长度为1~3个字节.其中单字节指令的运行时间有单机器周期,双机器周期和四机器周期;双字节指令有双字节单机器周期指令和双字节双机器周期指令;三字节指令则都为双机器周期指令.下面就简单介绍几个典型的时序. 对于单机器周期指令,是在S1P2时刻把指令读入指令寄存器,并开始执行指令,在S6P2结束时完成指令操作.中间在S4P2时刻读的下一条指令要丢弃,且程序计数器PC也不加1.对于双字节单机器周期指令,则在同一机器周期的S4P2时刻将第二个字节读入指令寄存器,并开始执行指令.无论是单字节还是双字节指令,均在S6P2时刻结果该指令的操作.如图2-7 a),图2-7 b)所示.对于单字节双周期指令,在2个机器周期内要发生4次读操作码的操作,由于是单字节指令,后3次读操作都无效,如图2-7 c)所示.但访问外部数据存储器指令MOVX的时序有所不同.它也是单字节双周期指令,在第一机器周期有2次读操作,后一次无效,从S5时刻开始送出外部数据存储器的地址,随后读或写数据,读写期间在ALE端不产生有效信号.在第二个机器周期,不发生读操作,如图2-7 d)所示.通常算术和逻辑操作在节拍P1期间进行,内部寄存器的传送在节拍P2期间进行.二,单片机的工作方式MCS-51系列单片机中,8051及80C51的工作方式有:复位方式,程序执行方式,掉电方式,低功耗方式以及EPROM编程和校验方式.单片机不同的工作方式,代表单片机处于不同的状态.单片机工作方式的多少,是衡量单片机性能的一项重要指标.(一)单片机的复位方式复位是单片机进入工作状态的初始化操作,是使CPU和系统中其它部件都处于一个确定的初始状态,并从这个状态开始工作.另外,当程序运行错误或由于错误操作而使单片机进入死锁状态时,也可以通过复位进行重新启动.复位后,单片机内部寄存器的值被初始化,其值见表2-5.了解单片机内部寄存器初始化的状态,对于熟悉单片机的操作,简化应用程序的初始化过程是很有必要的.表2-5 单片机复位后内部各寄存器状态寄存器名内容寄存器名内容PC 0000H TH000H ACC00HTL000HB00HTH100H PSW00HTL100HSP07H SBUF不定DPTR 0000H TMOD 00HP0~P3 FFH SCON 00HIP×××00000BPCON(HMOS)0×××××××BIE0××00000BPCON(CHMOS)0×××0000BTCON00HMCS-51系列单片机的RST引脚是复位信号的引入端,复位信号为高电平有效,其所需时间在2个机器周期(24个振荡周期)以上.复位操作还会把ALE和变为无效状态,即ALE=0,=1.但复位操作不影响片内RAM单元的内容.单片机复位的方式有:上电自动复位和按键手动复位.按键手动复位又分为按键电平复位和按键脉冲复位两种,复位电路如图2-8所示.如图2-8 a)所示,上电自动复位是通过电容充电来实现的.通过选择适当的和的值,就能够使RST引脚上的高电平保持两个机器周期以上,以实现在上电的同时,完成单片机的复位. 图2-8 b)和图2-8 c)是通过RST经电阻与电源相连接或利用RC微分电路产生的正脉冲来实现按键复位的.这两个电路同时也具备上电自动复位的功能.(二)程序执行方式程序执行方式是单片机的基本工作方式,由于单片机复位后PC=0000H,所以程序总是从地址0000H开始执行.程序执行方式又可分为连续执行和单步执行两种.1.连续执行方式连续执行方式是从指定地址开始连续执行程序存储器ROM中存放的程序,每读一次程序,PC自动加1.2.单步运行方式程序的单步运行方式是在单步运行键的控制下实现的,每按一次单步运行键,程序顺序执行一条指令.单步运行方式通常只在用户调试程序时使用,用于观察每条指令的执行情况.(三)节电工作方式MCS-51单片机中有HMOS和CHMOS两种工艺芯片,它们的节电运行方式不同,HMOS 单片机的节电工作方式只有掉电工作方式,CHMOS单片机的节电工作方式有掉电工作方式和空闲工作方式两种.单片机的节电工作方式,是由其内部的电源控制寄存器PCON 中的相关位来控制的.PCON寄存器的控制格式如下:位序D7D6D5D4D3D2D1D0位符号SMOD———GF1GF0PDIDLPCON的各位定义如下:SMOD:串行口波特率倍率控制位(详见第六章串行口波特率一节).GFl,GF0:通用标志位.PD:掉电方式控制位.PD=1进入掉电工作方式.IDL:空闲方式控制位.IDL=l,进入空闲工作方式.如同时将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编程和校验方式对于片内程序存储器为EPROM型的单片机,如8751型单片机,需要一种对EPROM可以操作的工作方式,即用户可对片内的EPROM进行编程和校验.关于对片内EPROM编程和校验的具体方式,大家可参看有关资料.。