1、2.1 80C51系列单片机简介 2.2 80C51单片机内部基本结构及引脚功能 2.3 80C51单片机CPU结构 2.4 80C51存储器结构 2.5 输入/输出(I/O)端口 2.6 单片机的工作过程 2.7 80C51的低功耗方式 2.8 本章小结 2.9 练习思考题,第二章 80C51系列单片机内部结构与工作原理,第二章 80C51系列单片机内部结构与工作原理,主要内容:介绍51系列单片机主要功能特点;然后从硬件设计和程序设计的角度来分析单片机的基本组成、工作原理;引脚功能和结构框图,并详细介绍80C51的CPU及CPU外围电路结构和应用原理;存储器结构和地址空间;位处理器;单片机的
2、工作方式等。 要求:1、掌握51系列单片机的主要功能特点;2、熟悉51系列单片机的内部结构;3、掌握各引脚功能;,第二章 80C51系列单片机内部结构与工作原理,4、熟悉如何对系统芯片进行故障诊断;5、熟悉80C51单片机的存储器结构和地址空间。6、熟悉80C51单片机的几种工作方式。,2.1 80C51系列单片机简介,2.1 80C51系列单片机简介80C51单片机系列源于MCS-51系列。把所有厂家以8051为基核推出的各种型号80C51兼容型单片机统称为80C51系列。8051是MCS-51系列中最基础的单片机型号,其供应状态有8051(MaskROM)、8751(EPROM)、8031
3、(ROMless)。 说明: 1、Intel公司将MCS-51系列单片机实行技术开放政策后,许多公司,如Philips、Dallas、Siemens、ATMEL、华邦、LG等都以MCS-51中的基础结构8051为,2.1 80C51系列单片机简介,基核推出了许多各具特色、各具优越性能的单片机。2、该课件后面提到的80C51不是专指MaskROM供货状态的型号,而是泛指80C51系列中的基础结构。80C51系列则是在8051基础结构通过不同资源配置而推出的一系列CHMOS单片机。3、80C51系列中80C51BH、80C31BH、87C51BH是MCS-51系列典型产品8051、8031、875
4、1采用CHMOS工艺的产品。80C51BH是MaskROM型,片内有4KROM;80C31BH是ROMless型,片内无ROM;87C51BH是EPROM型,片内有4K EPROM。除此之外,三者的内部结构及引脚完全相同。,2.1 80C51系列单片机简介,51系列单片机的主要功能特点: 1、一个8位微处理器CPU;2、片内振荡器,振荡频率范围为1.212MHZ;3、4KB/8KB的片内ROM(8031、8032、80C31无);4、128/256字节的片内RAM;5、片外ROM的寻址范围为64KB;6、片外RAM的寻址范围为64KB;7、21个特殊功能寄存器(SFR);8、四个8位并行I/O
5、接口(P0P3),32根I/O口线;,2.1 80C51系列单片机简介,9、1个全双工UART串行口,可多级通信;10、2/3个16位定时/计数器;11、具有5/6个中断源,可编程为两个优先级;12、有位寻址功能,适于布尔处理的位处理机;13、111条指令;14、片内采用单总线结构;15、用单一+5V电源。,2.2 80C51单片机内部基本结构及引脚功能,2.2 80C51单片机内部基本结构及引脚功能 一、80C51单片机内部基本结构说明: 80C51是经典的单片机系列,具有典型的单片机结构体系,其基本结构如图2-1所示。组成:由CPU系统、CPU外围单元、基本功能单元等组成,各组成部分通过内
6、部单一总线相连。,2.2 80C51单片机内部基本结构及引脚功能,图2-1 80C51单片机内部结构,2.2 80C51单片机内部基本结构及引脚功能,1、CPU系统(核心) 组成:包括CPU、时钟系统、总线控制逻辑。(1)CPU:是专门为面向测控对象、嵌入式应用特点而设计的,有突出控制功能的指令系统。(2)时钟系统:主要满足CPU及片内各单元电路对时钟的要求,对80C51单片机还要满足功耗管理对时钟系统电路的可控要求。(3)总线控制逻辑:主要用于管理外部并行总线的时序以及系统复位控制。,2.2 80C51单片机内部基本结构及引脚功能,2、CPU外围单元 功能: 与CPU运行直接相关的单元电路,
7、与CPU构成单片机的最小系统。组成:包括程序存储器ROM、数据存储器RAM、输入/输出(I/O)口、操作管理寄存器SFR(特殊功能寄存器)。说明:(1)ROM:其供应状态有MaskROM、EPROM、ROMLess。早期的MCS-51系列中的8031为ROMLess型,8751为EPROM型,8051为MaskROM型。,2.2 80C51单片机内部基本结构及引脚功能,(2)RAM:寻址范围为00H7FH,它包括通用寄存器区、位寻址区、用户RAM区。80HFFH为特殊功能寄存器区。(3)4个8位I/O端口:分别为P0、P1、P2、P3口。功能见本章2.5节。(4)SFR:位于80HFFH中,重
8、要控制、指挥单元。CPU对所有片内功能单元的操作、控制都是通过对SFR访问实现的。,2.2 80C51单片机内部基本结构及引脚功能,3、基本功能单元 功能: 满足单片机测控功能要求的基本计算机外围电路,用来完善和扩大计算机的功能组成: 包括定时/计数器、中断系统、串行通信接口等。说明:(1)80C51有两个16位定时/计数器 (T0和T1)。作用: 可以作为内部定时器或外部脉冲计数器使用。作内部定时器时,是靠对时钟振荡器的12分频脉冲计数方式实现定时的;做为计数器时,外部脉冲通,2.2 80C51单片机内部基本结构及引脚功能,过引脚T0(P3.4)、T1(P3.5)输入。 (2)中断系统: 有
9、5个中断源,即两个外部中断源、两个定时/计数器T0、T1溢出中断源和一个串行通信发送/接收完毕的中断源。五个中断源有高级、低级两种优先状态。两个外部中断源由引脚(P3.2)、(P3.3)输入。 (3)一个带有移位寄存器工作方式的通用异步收发器UART :既可用作串行通信,还可以用于移位寄存器方式的串行外围扩展。其接口分别为RXD(P3.0)、TXD(P3.1)。,2.2 80C51单片机内部基本结构及引脚功能,二、引脚功能 80C51单片机采用40引脚双列直插封装(DIP)形式(采用CHMO工艺制造),也有用44引脚的方型封装结构(QFP),其中4条(标有NC)的引脚是不连线的。,DIP封装,
10、QFP封装,2.2 80C51单片机内部基本结构及引脚功能,图2-2 80C51单片机引脚图,2.2 80C51单片机内部基本结构及引脚功能,各引脚名称及功能:1、电源引脚:VCC和VSS VCC(40脚):接+5V电源。VSS(20脚):接地。2、时钟电路引脚:XTAL1和XTAL2 XTAL1(19脚):片内反相放大器的输入端。接外部石英晶体和微调电容的一端。若使用外部时钟时,对于HMOS单片机,该引脚必须接地;对于CHMOS单片机,该引脚作为驱动端。,2.2 80C51单片机内部基本结构及引脚功能,XTAL2(18脚):片内反相放大器的输出端。接外部石英晶体和微调电容的另一端。振荡电路的
11、频率是晶体振荡频率。若使用外部时钟时,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。注:要检查单片机芯片振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。3、控制信号引脚: 和RST/Vpd,2.2 80C51单片机内部基本结构及引脚功能,、ALE:(30脚):地址锁存允许信号端/EPROM编程输入端。 当CPU访问片外存储器时,用于锁存P0口低8位地址(因为P0口作为地址/数据复用口,P0口上的信息究竟是地址还是数据完全由ALE定义)。当单片机上电正常工作后,此端周期性地以时钟振荡频率的1/6的固定频率向外输出正脉冲信号。所以,ALE信号可
12、用作对外输出时钟或定时信号。注意:51单片机系统有外部存储器在访问外部存储器时,有ALE脉冲丢失,用户不宜用ALE做精确的时钟或定时信号。,2.2 80C51单片机内部基本结构及引脚功能,检查单片机芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。ALE端的负载能力为8个LS型TTL。:对EPROM型单片机,如对87C51BH编程时的编程脉冲输入端。、 (29脚):程序存储允许输出端。片外程序存储器的读选通信号,低电平有效。 CPU从外部ROM取指令时,在每个机器周期中两次有效。但在访问片外RAM时,要少产生两次负脉冲信,2.2 80C51单片机内部基本结构及引脚功能,号。有效时,将外部R
13、OM中的指令读到数据总线上。检查单片机系统上电后,CPU能否正常到EPROM/ROM中读取指令码,可用示波器查看该端有无负脉冲信号输出。可驱动8个LS型TTL门电路。、 (31脚):内部/外部ROM地址选择信号/固化编程电压输入端。:为高电平,CPU访问ROM有两种情况:当PC中的值小于0FFFH时,执行片内ROM指令;当PC中的值超过0FFFH时,将自动转向执行片外ROM指令。,2.2 80C51单片机内部基本结构及引脚功能,当为低电平时,CPU只执行片外ROM指令。对80C31BH单片机,必须接低电平。VPP:用于87C51BH编程时输入编程电压。 、RST/VPD(9脚):复位信号输入端
14、/备用电源正端输入。 RST:高电平有效,其复位信号都是靠外部电路实现。在此输入端保持两个机器周期的高电平后,就可以完成复位操作。,2.2 80C51单片机内部基本结构及引脚功能,表2-1 80C51单片机复位后各内部寄存器的状态,2.2 80C51单片机内部基本结构及引脚功能,图2-3 上电与按钮复位电路,2.2 80C51单片机内部基本结构及引脚功能,工作原理:在通电瞬间,由于RC的充电过程在RST端出现一定宽度的正脉冲,只要该脉冲能保持10ms以上,就能使单片机可靠复位。但初始化不影响片内RAM状态,只要RST引脚保持高电平,单片机将循环复位,复位有效期间,ALE、 输出高电平,当RST
15、从高电平变为低电平时,单片机将从0000H单元开始执行程序。通常采用以下三种复位方式:上电自动复位、开关复位和外部脉冲复位。,2.2 80C51单片机内部基本结构及引脚功能,图2-4 多功能复位电路,2.2 80C51单片机内部基本结构及引脚功能,Vpd(备用电源正端输入):当主电源Vcc电位突然降低或断电(故障),将+5V电源自动接入RST,从而保护RAM中信息不丢失,使复电后能正常工作。 4、I/O(输入/输出)引脚:P0、P1、P2、P3 说明:P0P3是4个寄存器,也称为4个端口,是80C51单片机与外界联系的4个8位双向并行I/O口。 由于在数据的传输过程中,CPU需要对接口电路中输
16、入输出数据的寄存器进行读写操作,所以在单片机中对这些寄存器像对存储单元一样进行编址。通常把接口电路中这些已编址并能进行读写操作的寄存器称为端口(PORT)或简称口。,2.2 80C51单片机内部基本结构及引脚功能,P0口(P0.0P0.7)(3239脚): 一个8位的准双向I/O口。在访问片外存储器时,它分时作为8位地址线和8位双向数据线;不作总线使用时,可作普通I/O口;其每位的负载能力为8个LSTTL。P1口(P1.0P1.7)(18脚): 一个带内部上拉电阻的8位准双向I/O口。其每位的负载能力为个LSTTL。P2口(P2.0P2.7)(2128脚):一个带内部上拉电阻的8位准双向I/O
17、口。在访问片外存储器时,它作为高8位地址线;不作总线使用时,也可做普通I/O口,2.2 80C51单片机内部基本结构及引脚功能,其每位的负载能力为4个LSTTL。P3口(P3.0P3.7)(1017脚): 一个带内部上拉电阻的8位准双向I/O口;P3口除了作为一般准双向口使用外,每脚还具有第二功能(见表2-2); 其每位的负载能力为4个LSTTL。,2.2 80C51单片机内部基本结构及引脚功能,表2-2 P3口线第二功能表,2.3 80C51单片机CPU结构,2.3 80C51单片机CPU结构 CPU是单片机的核心部件,其功能是产生控制信号,把数据从存储器或输入口传送到CPU或反向传送,还可
18、以对输入数据进行算术逻辑运算以及位操作处理。它由运算器、控制器等部件组成。一、运算器它以算术/逻辑部件ALU为核心,加上累加器ACC、暂存寄存器、程序状态字寄存器PSW以及布尔处理器、BCD码运算调整电路等构成了整个运算器逻辑电路。,2.3 80C51单片机CPU结构,2.3 80C51单片机CPU结构,1、累加器ACC 8位寄存器,它通过暂存器和ALU相连,是CPU中最繁忙的寄存器。在进行算术、逻辑运算时,运算器的一个输入多为ACC的输出,而运算结果又大多数送到ACC中。在指令系统中ACC的助记符为A。 2、算术逻辑部件ALU ALU用来完成二进制的四则运算和布尔代数的逻辑运算。此外通过对运
19、算结果判断,影响程序状态字的有关位。,2.3 80C51单片机CPU结构,3、程序状态字寄存器PSW 8位寄存器,用来存放运算结果的一些特征。字节地址(D0H)。格式:(见下页图)C:进位标志。在进行加法(或减法)运算时,若运算结果最高位有进位(或借位),则C=1,否则C=0,在进行位操作时,C作为位操作累加器。AC:半进位标志(或辅助进位)。在进行加法(或减法)运算时,若低半字节向高半字节有进位(或借位),则AC=1,否则AC=0,AC还作为BCD码运算调整时的判,2.3 80C51单片机CPU结构,2.3 80C51单片机CPU结构,别位。 F0:用户标志位。由用户置位、复位,作为软件标志
20、。RS1、RS0:工作寄存器指针。用来选择当前的工作寄存器组。由用户通过指令改变RS1、RS0的组合,以选择当前的工作寄存器组。OV:溢出标志。反映运算结果是否溢出,溢出时,OV=1,否则OV=0。溢出是指有符号数进行运算时,结果超出了+127-128;而进位是指两个无符号数最前一位(第7位)相加(或相减)时有进位(或有借位)。,2.3 80C51单片机CPU结构,F1:用户标志位,同F0。P:奇偶标志。反映A中的内容的奇偶性,若A中有奇数个1则P=1,否则P=0。单片机复位时,RS1=RS0=0,CPU默认第0组工作寄存器。二、控制器说明:控制器是CPU的大脑中枢,它包括定时控制逻辑、指令寄
21、存器、指令译码器、数据指针DPTR、程序计数器PC、堆栈指针SP以及地址寄存器、地址缓冲器等。,2.3 80C51单片机CPU结构,功能:对程序指令逐条译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作,完成指令所规定的操作。 1、程序计数器PC(Program Counter) 功能:和一般微机相同,它用来存放下一条要执行指令的地址,当一条指令按照PC所指的地址从存储器中取出后,PC会自动加1,即指向下一条指令。2、堆栈指针SP(Stack Pointer) SP在片内RAM 128个字节中开辟栈区,并随时跟踪栈顶地址。它是按“先进后出”的原则进行存
22、取数据的,开机复位后,单片机栈底地址为07H。,2.3 80C51单片机CPU结构,3、指令译码器 当指令送入指令译码器后,由译码器对该指令进行译码,即把指令转变成所需的电平信号,以便计算机能正确执行程序所要求的各种操作。4、数据指针DPTR 由于80C51系列单片机可以外接64K的RAM和I/O接口电路,故单片机内设置了16位的数据指针DPTR。它可以对64K外部RAM和I/O口进行寻址。它的高8位为DPH,地址为83H,低8位为DPL,地址为82H。,2.3 80C51单片机CPU结构,三、80C51时钟系统时钟电路设计有两种方式:内部时钟方式和外部时钟方式。1、内部时钟方式80C51单片
23、机的时钟系统是一个内含振荡电路、外接谐振器、可关断控制的时钟系统,如图2-5所示。,2.3 80C51单片机CPU结构,图2-5 80C51单片机时钟系统,2.3 80C51单片机CPU结构,(1)、时钟振荡器。 它是一个并联谐振电路(皮尔斯振荡器),谐振器为石英振子或陶瓷振子。(2)、它通过引脚XTAL2、XTAL1与外接谐振器、振荡电容C1、C2相连。 C1和C2一般取30pF左右,振荡频率范围是1.2MHz12MHz。(3)、80C51的时钟系统具有可关断功能。通过 端可关闭CPU的时钟;通过 端可关闭时钟振荡器。时钟系统的关断功能主要用于单片机的功,2.3 80C51单片机CPU结构,
24、耗管理。谐振器的振荡信号从XTAL2端送到内部时钟电路上,它对振荡信号二分频,并向CPU提供两相时钟信号P1和P2。时钟信号的周期称为状态时间S,它是振荡周期的2倍,在每个状态的前半周期,P1信号有效,在每个状态的后半周期,P2信号有效。CPU就以两相时钟P1和P2为基本节拍指挥单片机各部分协调工作。,2.3 80C51单片机CPU结构,2、外部时钟方式,2.3 80C51单片机CPU结构,四、CPU时序 1、振荡周期 为单片机提供定时信号的振荡源的周期(其振荡频率为fOSC)。2、时钟周期(状态周期、状态时间S) 它是振荡周期的2倍,分为P1节拍和P2节拍,P1节拍通常完成算术逻辑操作,而内
25、部寄存器间传送通常在P2节拍完成。,2.3 80C51单片机CPU结构,3、机器周期 一个机器周期由6个状态(12个振荡脉冲)组成,若把一条指令的执行过程分成几个基本操作,则完成一个基本操作所需的时间称为机器周期。4、指令周期 指执行一条指令所占用的全部时间,通常由14个机器周期组成。图2-6给出了80C51单片机取指和执行指令的定时关系。由图可见,每个机器周期内,地址锁存信号ALE两次有效,一次在S1P2和S2P1期间,另一次在S4P2和S5P1期间。,2.3 80C51单片机CPU结构,图2-6 80C51单片机典型指令的取指操作,2.3 80C51单片机CPU结构,下面结合上图对几种典型
26、指令的取指时序进行说明。 (1)单字节单周期指令(例如INC A) 单字节指令的读取始于S1P2,接着锁存于指令寄存器内并开始执行。当第二个ALE有效时,在S4期间仍作读操作,由于CPU封锁住PC,使其不增量,故此读操作无效。指令在S6P2结束时完成操作。(2)双字节单周期指令(例如ADD A,#data)。,2.3 80C51单片机CPU结构,此时对应ALE的两次读操作都有效,其在同一机器周期的S1P2读第一字节(操作码),CPU对其进行译码后便知道是双字节指令,故使PC加1,并在ALE第二次有效时的S4P2期间读第二字节(操作数),在S6P2结束时完成操作。(3)单字节双周期指令。 对于指
27、令INC DPTR,两个机器周期内共进行了四次读操作码操作。由于是单字节指令,CPU自动封锁后面的读操作,故后三次读操作无效,并在第二个机器周期的S6P2结束时完成操作。,2.3 80C51单片机CPU结构,对于指令MOVX A,DPTR;这类指令访问片外RAM,与其他单字节双周期指令有所不同。在执行这类指令时,先在ROM读取指令,然后对外部RAM进行读/写操作。在第一个机器周期内,与其他指令一样,是第一次读指令(操作码)有效,第二次读指令无效。第二个周期时,进行外部RAM访问,此时与ALE信号无关,所以第二机器周期内不产生取指操作。上述时序图只表现了取指令的过程,而没有表现执行指令的过程。实
28、际上,执行指令的操作是紧随取指令之后进行的,不同指令的操作时序是不同的。以指令MOVX A,DPTR为例说明执行指令的操作。,2.3 80C51单片机CPU结构,2.4 80C51存储器结构,2.4 80C51存储器结构 通用微型计算机存储器的结构形式不同,一般的微型计算机只有一个存储器逻辑空间,可随意安排ROM或RAM,访问时用同一种指令,这种结构称为普林斯顿型。80C51系列单片机存储器结构的主要特点是将ROM和RAM分开并有各自的寻址机构和寻址方式,这种结构称为哈佛型结构。80C51单片机在物理上有4个存储空间的结构如图2-7所示,空间地址是:,2.4 80C51存储器结构,片内和片外统
29、一编址0000HFFFFH的64KB ROM地址空间(16位地址);256B/384B(51子系列/52子系列)片内RAM(8位);64KB片外RAM地址空间,地址0000HFFFFH(16位地址)。,2.4 80C51存储器结构,图2-7 80C51单片机存储器配置图,2.4 80C51存储器结构,一、程序存储器ROM功能:用于存放程序指令,数据和表格常数等,实现取数、查表、指令等操作。各类ROM存在方式说明:80C51BH有4K片内ROM,片内地址为0000H0FFFH,87C51BH在同样的地址空间有4K片内EPROM,80C31BH的片内无ROM。显然在使用80C31BH时,系统需在片
30、外扩展ROM。对于80C51BH和87C51BH构成的系统,当4K程序存储器空间不够用时,需向片外扩展。,2.4 80C51存储器结构,ROM访问方式说明:由于PC和DPTR都是16位的,因此80C51系列单片机片外扩展ROM的最大空间都是64K,地址范围0000HFFFFH。对于80C51BH和87C51BH,片内、片外在0000H0FFFH这4K地址空间是重叠的。CPU提供了一个控制信号用于选择重叠区的片内地址或片外地址。对于片内有ROM/EPROM的单片机,应把 端接至高电平,运行时CPU从内部ROM地址0000H开始执行程序,当PC值超过0FFFH时,自动转到片外ROM的1000HFF
31、FFH空间上去执行程序。,2.4 80C51存储器结构,对于片内无ROM的单片机须向片外扩展ROM,则 端应接低电平,使CPU从外部ROM的0000H空间开始取指令。80C51上电复位后,(PC)=0000H,即CPU总是从0000H开始执行程序,0000H0002H存放引导程序(绝对跳转指令),主程序从跳转地址存放。在ROM中有一个固定的中断源入口地址区。这些入口地址不得随意被其他程序指令占用。80C51的5个中断源的入口地址如下表所示:,2.4 80C51存储器结构,2.4 80C51存储器结构,ROM的操作有: (1)程序指令的自主操作。程序按照PC指针顺序操作或转移操作。(2)表格常数
32、的查表操作。80C51中查表操作指令为MOVC,通过PC或DPTR的基址变址寻址方式实现查表操作。具体查表方法在第3章介绍。,2.4 80C51存储器结构,二、RAM功能:用于存放运算的中间结果,进行数据暂存和数据缓冲、标志位等。说明:80C51单片机的分片内和片外两种,两者的地址空间彼此是独立的,各自有不同的指令寻址。访问内部RAM用MOV指令,访问外部RAM用MOVX指令。1、片内RAM 内部RAM划分为两个块:00H7FH低128字节为真正的用户RAM区,80HFFH高128字节为SFR区,两块的地址空间连续。,2.4 80C51存储器结构,图2-8 片内RAM的配置,2.4 80C51
33、存储器结构,(1)通用寄存器区 在低128字节中,32个工作寄存器占用00H1FH单元,分为四组,构成通用寄存器区,每组由8个通用工作寄存器(R0R7)组成。其指令的数量最多,均为单周期指令,执行的速度最快。通过对PSW中的RS1和RS0的设置可决定选用哪一组工作寄存器。不用的工作寄存器区单元可以作一般的RAM使用。CPU复位后总是选中第0组工作寄存器。,2.4 80C51存储器结构,表2-3 工作寄存器地址表,2.4 80C51存储器结构,(2)位寻址区 内部RAM的20H2FH为位寻址区,见书中表2-4。这16个字节单元既可以进行位寻址操作,也可以进行按字节寻址操作。问题:位寻址范围为00
34、H7FH,而片内RAM字节地址范围也是00H7FH,问CPU对这部分RAM空间访问时会不会混淆?答案:不会。原因:单片机可根据指令的寻址方式来区分。,2.4 80C51存储器结构,例: MOV 2AH,A ;字节寻址,把A中内容送入字节地址为2AH单元 MOV 2AH,C ;位寻址,把PSW中最高位C中的数送入位地址2AH处 (3)用户RAM区 用户RAM区(又称数据缓冲区)设在30H7FH空间,该区可作为堆栈区、数据缓冲区和工作单元。它只能用字节地址寻址。,2.4 80C51存储器结构,设置堆栈的原则:可在内RAM的任意区域,用户可根据需要用软件设置栈底。 如:MOV SP,#60H。一般在
35、初始化程序中设置栈指针。SP值设置越大,堆栈就越浅。 (4)SFR区 80C51片内高128字节RAM为SFR区。除PC外,有21个SFR分散在80HFFH的RAM空间中,对SFR的操作只能用直接寻址方式。,2.4 80C51存储器结构,SFR功能:专用于控制、管理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能单元的工作。用户在编程时可以置数设定,而不能自由地移作它用。它综合、实时地反映整个单片机内部工作状态及工作方式。在SFR区中,访问没有定义的单元得到的是一个随机数。在21个SFR中,字节地址能被8整除的SFR具有位寻址能力,共11个字节,83位。,2.4 8
36、0C51存储器结构,部分SFR的说明 寄存器B(F0H)。8位寄存器,一般用于乘、除法指令,与A配合使用。B存放第二操作数、乘积的高位字节或除法的余数部分。其它指令中,B作为一般通用寄存器或内部RAM的一个单元使用。P0P3(I/O)端口。P0P3为4个8位SFR,分别是4个并行I/O端口的锁存器,它们都有字节地址,每一个口锁存器还有位地址。当I/O端口的某位用作输入时,对应的锁存器必须先置“1”(准双向口)。P0P3作为专用寄存器,还可以,2.4 80C51存储器结构,用直接寻址方式参与其他指令操作。2、片外RAM 片外和片内RAM空间0000H00FFH是重叠的。访问内部RAM用MOV指令
37、;访问外部RAM用MOVX指令,用间接寻址方式,R0、R1和DPTR都可作间址寄存器。,2.5 输入/输出(I/O)端口,2.5 输入/输出(I/O)端口80C51单片机有4个8位的并行接口,共32根I/O口线。每个口主要由四部分组成:端口锁存器,即SFR中P0P3;输入缓冲器;输出驱动器;引至端口外的端口引脚。 一、 P0口组成:一个输出锁存器,两个三态输入缓冲器,一个输出驱动器,一个输出控制电路和输出引脚。输出驱动器由两个FET(场效应管)组成,其工作状态受控制电路控制,控制电路由与门,反相器和模拟开关MUX组成。,2.5 输入/输出(I/O)端口,图2-9 P0口的位结构,2.5 输入/
38、输出(I/O)端口,1、作通用I/O口使用 工作原理:(1)作普通的I/O口使用 当来自CPU的控制信号为0时,MUX开关处于图2-9所示位置,它一方面使锁存器的 端与T2的栅极接通,同时使与门输出0,使T1截止,此时端口为漏极开路输出,P0口作普通的I/O口使用。(2)写操作(输出),2.5 输入/输出(I/O)端口,当CPU对P0口进行写操作时,写脉冲加到锁存器的CL上,其上升沿将来自内部总线的数据,经D端打入到Q端,取反后出现在 端,又经T2反相,D端的写入数据与P0引脚的数据相同。(3)读操作(输入) 当CPU对P0口进行读操作时,由于该信号既加到T2又加到一个三态缓冲器上,假如此前该
39、口曾输入锁存过数据0,则T2是导通的,这样引脚上的电位就被钳在“0”电平上,使输入的1无法读入,因此在输入数据前,应先向端口写1,使T2截止。故P0口作通用I/O口,2.5 输入/输出(I/O)端口,时,是一个准双向口。但在访问外部RAM时,CPU会自动向P0口的锁存器写1。 说明:上面所述为“读引脚”的情形,有时端口已处于输出状态,CPU不直接读端口引脚上的数据,而是读端口锁存器Q端的数据。这是为适应CPU“读-改-写”类指令而作的结构安排。2、P0口作地址/数据总线 当来自CPU的控制信号为1时,P0口作地址/数据总线使用,此时MUX开关把地址/数据总线经非门与T2接通,同时打开与门,输出
40、的地址/数据信息通过与门,2.5 输入/输出(I/O)端口,去驱动T1,又通过反相器去驱动T2,使两个FET构成推拉输出电路。输出时,若地址/数据等于1,T1导通,T2截止,P0引脚上出现“1”信号;反之,地址/数据等于0,T1截止,T2导通,P0引脚上出现“0”信号。若由P0口输入数据时,则输入信号从引脚通过输入缓冲器进入内部数据总线。,2.5 输入/输出(I/O)端口,二、 P1口P1口是一个准双向口作通用I/O口使用,其内部有上拉电阻与电源相连,故不必再外接上拉电阻。当作输入时,必须先向对应的锁存器置“1”,使FET截止。,图2-10 P1口的位结构,2.5 输入/输出(I/O)端口,三
41、、 P2口 P2口一个准双向口,其位结构同P0口类似,当系统中有片外存储器时,P2口用于输出高8位地址。此时MUX在CPU控制下,接通地址信号。P2口在作为通用I/O口使用时,MUX接通锁存器,使需要输出的数据送到P2的引脚上。对于80C31单片机,P2口通常只作地址总线口使用,而不作I/O口线直接与外部设备连接。,2.5 输入/输出(I/O)端口,图2-11 P2口的位结构,2.5 输入/输出(I/O)端口,四、 P3口P3口有一个第二功能输出端,引脚输入通路上有两个缓冲器。P3口可以作为普通I/O口用,也可以作第二功能口使用。,2.5 输入/输出(I/O)端口,图2-12 P3口的位结构图
42、,2.5 输入/输出(I/O)端口,1、作为普通I/O口 第二功能输出端须保持高电平。输出时,端口锁存器Q端信息能顺利通过与非门,传送到引脚上。输入时,应先置端口锁存器为“1”,使FET截止,引脚上的信息通过两个缓冲器进入内部总线。2、作为第二功能口 该位端口锁存器必须为“1”状态。输出时,第二输出功能端的信息能顺利通过与非门传送到引脚上。输入时,也需先置端口锁存器为“1”,使FET截止,引脚上的第二功能输入信号引自缓冲器4的输出端。,2.6 单片机的工作过程,2.6 单片机的工作过程 一、实质:1、执行人们所编制程序的过程,即逐条执行指令的过程。计算机每执行一条指令都可以分为以下三个阶段进行
43、。 (1)取指令:根据PC中的值从ROM读出现行指令,送到指令寄存器。(2)分析指令:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。,2.6 单片机的工作过程,(3)执行指令:取出操作数,然后按照操作码的性质对操作数进行操作。 计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令或循环等待指令。,2.6 单片机的工作过程,2、单片机执行一条指令过程的示意图。,图2-13 单片机指令执行过程,2.6 单片机的工作过程,数据总线缓冲器的作用:对CPU内外数据传送时予以缓冲;暂存器:暂存待输入到ALU中进行操作的数据;地址寄存器:
44、用于存放存储器或输入/输出接口的地址值;微操作控制电路与时序电路相配合,把指令译码器输出的信号转变为执行该指令所需的各种控制信号。,2.6 单片机的工作过程,一般计算机进行工作时,首先要通过外部设备,把程序和数据通过输入接口电路和数据总线送入存储器,然后取出逐条执行。但单片机中的程序一般事先已固化在片内或片外ROM中,因而一开机即可执行指令。,2.6 单片机的工作过程,二、指令执行过程 开机时,PC变为0000H。然后,单片机在时序电路作用下自动进入执行程序过程。现假设待执行指令为“MOV A,#0E0H”,其机器码为“74H,E0H”,该指令的功能是把操作数E0H送入A。0000H单元中已存
45、放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段。其次序是:(1)PC的内容(这时是0000H)送到地址寄存器。(2)PC的内容自动加1(变为0001H)。,2.6 单片机的工作过程,(3)地址寄存器的内容(0000H)通过内部地址总线送到存储器,经存储器中地址译码电路,使地址为0000H的单元被选中。(4)CPU使读控制信号有效。(5)在读指令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。,2.6 单片机的工作过程,由于本次进入指令寄存器中
46、的内容是74H(操作码),经译码器译码后单片机就会知道该指令是要将一个数据送到A,而该数是在这代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要到存储器中取第二字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。因为指令是要求把取得的数送到A,所以取出的数字经内部数据总线进入A,而不是进入指令寄存器。至此,一条指令执行完毕。,2.6 单片机的工作过程,单片机中PC=0002H,PC在CPU每次向存储器取指或取数时都自动加1,单片机又进入下一个取指阶段。这一过程
47、一直重复下去,直至收到暂停指令或循环等待指令才停止。CPU通过这样一条一条地执行指令,完成程序所规定的功能。 例子: 设计一个能够自动交替闪烁的广告灯(包含8个灯泡)。,2.6 单片机的工作过程,1、首先必须对其电路进行设计,若选用的一块87C51的芯片,那么如何给它连线。 (1)电源:5V电源正极接40引脚,负极(地)接20引脚。(2)振荡电路:使用晶体振荡器,接18、19脚。按图1接法。(3)RST(9脚):按图1中画法连好。(4)EA(31脚):接到正电源端,使用内部ROM。,2.6 单片机的工作过程,图1,2.6 单片机的工作过程,2、 任务分析 (1)要用单片机点亮一只发光二极管LE
48、D,显然,这个LED必须要和单片机的某个引脚相连,否则单片机就没法控制它,那么和哪个引脚相连呢?单片机上除了刚才用掉的5个引脚,还有35个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻)按照上图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚能够控制,也就是说,我们要能够让1引脚按要求变为高或低电平。,2.6 单片机的工作过程,(2)编程分析又怎样让它变“高”或变“低”呢?要计算机工作,就得向计算机发命令,进行编程。让一个引脚输出高电平的指令是SETB,让一个引脚输出低电平的指令是CLR。因此,我们要P1.0输出高电平,用SETB P1.0命令,要
49、P1.0输出低电平,用 CLR P1.0命令。,2.7 80C51的低功耗方式,2.7 80C51的低功耗方式 80C51单片机除具有一般的程序执行方式外,还具有两种低功耗方式: 待机(空闲)方式:可使功耗减小,电流一般为1.75mA;掉电(停机)方式:备用电源直接由VCC端输入。可使功耗减到最小,电流一般为550A。因此,CHMOS型单片机特别适用于低功耗应用的场合。,2.7 80C51的低功耗方式,一、电源控制寄存器PCON PCON中的有关位控制两种低功耗方式,各位的作用如下:(1)SMOD:波特率倍增位。在串行口工作方式1、2或3下,SMOD=1使波特率加倍。(2)GF1和GF0:通用标志位。由软件置、复位。(3)PD:掉电方式位。若PD=1,进入掉电工作方式。(4)IDL:待机方式位。若IDL=1,进入待机工作方式。如果PD和IDL同时为1,则进入掉电工作方式。复位时,PCON中所有定义位均为“0”。,2.7 80C51的低功耗方式,2.7 80C51的低功耗方式,二、待机方式 1、条件:IDL=1,例如执行“ORL PCON,1”指令后进入。2、说明:在待机方式下,振荡器继续运行,时钟信号继续提供给中断逻辑、串行口和定时器,但提供给CPU的内部时钟信号被切断,CPU停止工作(见图)。这时,堆栈指针SP、PC、PSW、ACC以及所有的工作寄存器内容都被保存下来。,