02第二章MCS51硬件体系结构.ppt

上传人:sccc 文档编号:5090964 上传时间:2023-06-03 格式:PPT 页数:70 大小:2.60MB
返回 下载 相关 举报
02第二章MCS51硬件体系结构.ppt_第1页
第1页 / 共70页
02第二章MCS51硬件体系结构.ppt_第2页
第2页 / 共70页
02第二章MCS51硬件体系结构.ppt_第3页
第3页 / 共70页
02第二章MCS51硬件体系结构.ppt_第4页
第4页 / 共70页
02第二章MCS51硬件体系结构.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《02第二章MCS51硬件体系结构.ppt》由会员分享,可在线阅读,更多相关《02第二章MCS51硬件体系结构.ppt(70页珍藏版)》请在三一办公上搜索。

1、第二章 MCS-51硬件体系结构,2,本章目录,8051的芯片封装与内部功能模块,8051内部结构,MCS-51的基本时序,MCS-51的工作方式,3,2.1 MCS-51的特点,MCS-51单片机是在一块硅片上集成了中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入输出端口(I/O)等主要计算机功能部件的微型计算机,8051的内部功能模块如图所示。,4,单片机8051的内部功能模块,8位的CPU,其作用是实现各种算术运算、逻辑运算以及判断控制等功能。片内振荡器及时钟电路。片内RAM,共有128B,用来存放数据,又称为片内数据存储器。片内ROM,共有4KB,用来存放程序

2、,又称为片内程序存储器。在MCS-51系列单片机中,8051有ROM,而8031没有ROM。,5,单片机8051的内部功能模块,特殊功能寄存器(SFR),共有21个,是一组特殊用途的寄存器。32根I/O线,分为4组8位的双向输入输出端口。2个16位的定时器/计数器,具有四种工作方式。一个全双工串行通信接口,具有四种工作方式。5个中断源,2级中断优先权。布尔处理器。,6,MCS-51的芯片封装,MCS-51单片机大多采用40只引脚的双列直插DIP封装,引脚如图所示;也有采用44只引脚的方形封装。,7,MCS-51的芯片引脚定义,Pin39Pin32:P0.0P0.7,双向8位三态I/O口,为低8

3、位地址总线及数据总线分时复用口。Pin1Pin8:P1.0P1.7,准双向8位I/O口。Pin21Pin28:P2.0P2.7,准双向8位I/O口,可作为高8位地址总线复用。Pin10Pin17:P3.0P3.7,双功能复用,第一功能是准双向8位I/O口。Pin9:RST/VPD,复用。第一功能RST是复位脚;第二功能是VPD,即备用电源输入脚。Pin18:时钟XTAL2,片内振荡电路的输出脚,接外部晶体的一个引脚。如果采用外部振荡器时,此引脚则接收振荡器的信号。Pin19:时钟XTAL1,片内振荡电路的输入脚,接外部晶体的另一个引脚。如果采用外部振荡器时,此引脚应接地。Pin20:VSS,接

4、地。,8,MCS-51的芯片引脚定义,Pin29:PSEN,片外程序存储器的选通信号,低电平有效。Pin30:ALE/PROG,复用。第一功能ALE是地址锁存信号输出端。在访问片外存储器时,若ALE为有效高电平,则P0口输出16位地址的低8位,可以用ALE信号做外部地址锁存器的锁存信号。当ALE端输出一个1/6时钟频率的正脉冲信号时,可做系统中其他芯片的时钟源。第二功能PROG是针对EPROM型单片机(8751等),在EPROM编程期间,此引脚用来输入编程脉冲。Pin31:EA/VPP,复用。第一功能EA是内外部程序存储器的选通信号脚。第二功能VPP是针对EPROM型单片机,在EPROM编程期

5、间,此引脚用于施加编程电压。Pin40:VCC,接+5V电源。,9,2.2 MCS-51内部结构,MCS-51系列单片机片内结构如图所示,可划分为CPU、存储器、并行口、串行口、定时器/计数器和中断逻辑几个部分。若将4KB的ROM存储器部分用EPROM替换,则单片机就由8051变为8751,而去掉ROM存储器则成为8031.,10,2.2.1 中央处理器,中央处理器是单片机内部的核心部件,它决定了单片机的主要功能特性。中央处理器由运算器和控制器等部件组成,其中包括若干特殊功能寄存器(SFR)。,1.运算器运算器包括算术逻辑部件ALU、布尔处理器、累加器ACC、寄存器B、暂存器TMP1和TMP2

6、、程序状态字寄存器PSW以及十进制调整电路等。运算器的功能是实现数据的算术逻辑运算、位变址处理和数据传送操作。,11,运算器,算术逻辑部件ALU MCS-51单片机的ALU功能十分强,它不仅可对8位变量进行逻辑“与”、“或”、“异或”、循环、求补、清零等基本操作,还可以进行加、减、乘、除等基本运算。为了乘除运算的需要,设置了寄存器B,在执行乘法运算指令时,用来存放其中一个乘数和乘积的高8位数;在执行除法运算指令时,存入除数及余数。MCS-51单片机的ALU还具有布尔处理功能。单片机指令系统中的布尔指令集、存储器中的位地址空间与CPU中的位操作构成了片内的布尔功能系统,它可对位(bit)变量进行

7、布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。在实现位操作时,借用程序状态字(PSW)中的进位标志CY作为位操作的“累加器”。,12,运算器,累加器 运算部件中的累加器ACC是一个8位的累加器。从功能上看,它与一般微处理器的累加器相比没有什么特别之处,但需要说明的是ACC的进位标志CY就是布尔处理器进行位操作的累加器。,13,运算器,程序状态字PSW MCS-51单片机的程序状态字PSW是一个8位寄存器,其中的7位用来寄存本次运算的状态信息。各位的含义如下:CY:进位标志。有进位/借位时,CY=1;否则CY=0。AC:半进位标志。当D3位向D4位有进位/借位时,AC=1;否

8、则AC=0。常用于十进制调整运算中。F0:用户可设置的标志,可用软件来置位或复位,编程时供测试用。RS1、RS2:四个通用寄存器组的选择位。这两位的四种组合状态用来选择03寄存器组。OV:溢出标志。当带符号数运算结果超出-128+127范围时,OV=1;否则OV=0。当无符号数乘法结果超过255时,或无符号数除法的除数为0时,OV=1;否则OV=0。P:奇偶校验标志。每条指令执行完,若累加器A中1的个数为奇数时,P=1;否则P=0,即偶校验方式。,14,控制器,控制器主要包括定时与控制逻辑、程序计数器PC、指令寄存器IR、译码器ID以及地址指针DPTR等。,(1)定时与控制逻辑 时钟电路 80

9、51片内设有一个由反向放大器构成的振荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端,时钟可以由内部或外部产生。片内产生方式的时钟电路如图所示。,15,控制器,时序 MCS-51典型的指令周期为一个机器周期,一个机器周期由6个状态(12个振荡周期)组成,每个状态又被分成P1和P2两拍。通常算术逻辑操作在P1拍进行,而内部寄存器传送在P2拍进行。图2.6给出了8051单片机的取指和执行指令的定时关系。,16,控制器,(2)程序计数器PC 用来存放即将要执行的存放在程序存储器中的指令地址,共16位,可对64K程序存储器直接寻址。执行指令时,PC内容的低8位经P0口输出,高8位经P2口输

10、出。(3)指令寄存器IR CPU执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经译码后由定时与控制电路发出相应的控制信号,完成指令功能。(4)指令译码器ID ID对IR中指令操作码进行分析解释,产生相应的控制信号。(5)数据指针DPTR DPTR是16位地址寄存器,可以寻址64KB地址空间,既可用于寻址外部数据寄存器,也可寻址外部程序存储器中的表格数据。,17,2.2.2存储器组织,单片机的存储器结构有两种类型:哈佛(Harvard)结构:程序存储器和数据存储器普林斯顿(Princeton)结构:程序存储器与数据存储器合二为一 MCS-51系列单片机采用哈佛结构的形式,而后续产品16

11、位的MCS-96系列单片机则采用普林斯顿结构。MCS-51单片机的存储器结构在物理上可划分为片内ROM、片外ROM、片内RAM、片外RAM。其中,ROM存储器地址空间的地址范围为0000HFFFFH,片内RAM地址空间的地址范围为00HFFH,片外RAM地址空间的地址范围为0000HFFFFH。,18,程序存储器ROM,在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。程序存储器可以放在片内或片外,亦可片内片外同时设置。由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,因此,内外存储器的地址可从0000H到FFFFH

12、。8051片内有4KB的程序存储单元,其地址为0000H0FFFH。单片机启动复位后,程序计数器的内容为0000H,如果程序不是从0000H单元开始,则应在这三个单元中存放一条无条件转移指令,让CPU直接去执行用户指定的程序。在程序存储器中有些特殊的单元,其中一组特殊单元是0000H0002H单元,另一组特殊单元是0003H002AH。这40个单元被分为5段,定义如下:0003H000AH,外部中断0中断地址区。000BH0012H,定时器/计数器0中断地址区。0013H001AH,外部中断1中断地址区。001BH0022H,定时器/计数器1中断地址区。0023H002AH,串行中断地址区。,

13、19,数据存储器RAM,数据存储器通常用随机存取存储器。MCS-51单片机的数据存储器在物理上和逻辑上都分为两个地址空间,一个内部数据存储区和一个外部数据存储区。MCS-51内部RAM是128或256个字节的数据存储器,用于存放执行的中间结果和过程数据。,MCS-51的数据存储器均可读写,部分单元还可以位寻址。8051内部RAM共有256个单元,分为两部分:地址为00H7FH的存储单元(共128个字节)是用户数据RAM;地址从80HFFH的存储单元(也是128个字节)为特殊寄存器(SFR)单元。,20,数据存储器RAM,00H1FH共32个单元被均匀分为4个区,每个区包含8个8位寄存器,都称为

14、R0R7。通过定义程序状态字寄存器PSW的RS0和RS1,即可从4个区选择进入某一工作寄存器区。,内部RAM的20H2FH单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区有16个字节共128个位,位地址为00H7FH。位地址分配如表2.2所示,CPU能直接寻址这些位,执行例如置“1”、清“0”、求“反”、转移、传送和逻辑等操作。MCS-51具有布尔处理功能,布尔处理的存储空间就是这些位寻址区。,21,特殊功能寄存器,也称为专用寄存器,特殊功能寄存器反映了MCS-51单片机的运行状态,很多功能也通过特殊功能寄存器来定义和控制程序的执行,因而特殊功能寄存器实际上是805

15、1的状态字及控制字寄存器。特殊功能寄存器的地址范围为80HFFH。在MCS-51中,除程序计数器PC和四个工作寄存器区外,还有21个特殊功能寄存器,其中5个是双字节寄存器,共占用了26个字节。,主要的SFR寄存器有:与ALU相关的SFR 累加器A(Accumulator):大部分单操作数指令的操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。寄存器B:常用于乘除法指令。程序状态字(Program Status Word):是一个8位寄存器,用于存放程序运行的状态信息。,22,特殊功能寄存器,与指针相关的SFR堆栈指针SP:是一个8位寄存器,指示堆栈顶部在内部RAM中的位置。数据指针

16、DPTR:由两个8位寄存器DPH和DPL组成,其中DPH为高8位,DPL为低8位。与中断相关的SFRI/O口专用寄存器(P0、P1、P2、P3):分别是MCS51单片机的四组I/O口锁存器。电源控制及波特率选择寄存器PCON:用于设置电源工作方式,以及串行通信中的波特率。串行口控制寄存器SCON:用于设置串口工作模式、数据格式、发送和接收中断标志等。串行数据缓冲器SBUF:用于存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。发送和接收操作其实都是针对串行数据缓冲器进行。,23,特殊功能寄存器,与定时器/计数器相关的SFR定时器/计数器控制寄存器TCON:

17、用于设置中断请求方式、定时模式、启动停止等。定时器/计数器工作方式寄存器TMOD:定时器/计数器有四种工作模式,通过设置TMOD来决定工作方式。定时器/计数器TH0、TL0、TH1和TL1:MCS-51单片机中有两个16位的定时器/计数器T0和T1,它们各自由两个8位寄存器组成。两个16位定时器/计数器完全独立,可以单独对这四个寄存器寻址,但不能把T0和T1当作一个16位寄存器来使用。,24,2.2.3 I/O接口,MCS-51单片机设有4个8位双向I/O端口(P0、P1、P2、P3),每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能驱动8个LS型TTL负载电路。P1、P2、P3

18、口为准双向口(在用作输入线时,各口对应的锁存器必须先写入“1”,故称为准双向口),负载能力为4个LS型TTL电路。P0端口功能(P0.0P0.7,3239引脚),P0口的位结构包括1个输出锁存器,2个三态缓冲器,1个输出驱动电路和1个输出控制端。输出驱动电路由一对场效应管组成,其工作状态受输出端的控制,输出控制端由1个与门、1个反相器和1个转换开关MUX组成。,25,P0端口功能,P0口作地址/数据复用总线使用 若从P0口输出地址或数据信息,此时控制端应为高电平,转换开关MUX将反相器输出端与输出级场效应管V2接通,同时与门开锁,内部总线上的地址或数据信号通过与门去驱动V1管,又通过反相器去驱

19、动V2管,此时内部总线上的地址或数据信号传送到P0口的引脚。工作时低8位地址与数据线分时使用P0口,低8位地址由ALE信号的负跳变使它锁存到外部地址锁存器中,而高8位地址由P2口输出。P0口作通用I/O端口使用 对于有内部ROM的单片机,P0口也可以作通用I/O,此时控制端为低电平,转换开关把输出级与锁存器的Q端接通,同时因与门输出为低电平,输出级V1管处于截止状态,输出级为漏极开路电路,在驱动NMOS电路时应外接上拉电阻;作输入口用时,应先将锁存器写“1”,此时输出级两个场效应管均截止,可作高阻抗输入,通过三态输入缓冲器读取引脚信号,从而完成输入操作。,26,P0端口功能,P0口线上的“读修

20、改写”功能 图中设置一个三态缓冲器是为了读取锁存器Q端的数据,Q端与引脚的数据一致,以满足“读修改写”指令的需要。这类指令的特点是先读口对应的锁存器,随之可能对读入的数据进行修改,再写入到端口上。这类指令同样适合于P1P3口,其操作是先将口字节的全部8位数读入,再通过指令修改某些位,然后将新的数据写回到口锁存器中。,27,I/O接口,P1口(P1.0P1.7,18脚)准双向口P1口作通用I/O端口使用 P1口是一个有内部上拉电阻的准双向口,位结构如图所示。P1口的每一条口线能独立用作输入线或输出线。用作输出时,如将“0”写入锁存器,场效应管导通,输出线为低电平,即输出为“0”。用作输入时,必须

21、先将“1”写入口锁存器,使场效应管截止。该口线由内部上拉电阻提拉成高电平,同时也能被外部输入源拉成低电平。P1口用作输入时,可被任何TTL电路和MOS电路驱动,P1口可驱动4个LS型TTL门电路。,28,I/O接口,P1口其他功能 P1口在EPROM编程和验证程序时,输入低8位地址;在8032/8052系列中P1.0和P1.1是多功能的,P1.0可作定时器/计数器2的外部计数触发输入端T2,P1.1可作定时器/计数器2的外部控制输入端T2EX。,29,I/O接口,P2口(P2.0P2.7,2128脚)准双向口 P2口的位结构如图2.11所示,口线上的内部上拉电阻同P1口。在结构上,P2口比P1

22、口多一个输出控制部分P2口作通用I/O端口使用 P2口作通用I/O端口使用时是一个准双向口,此时转换开关MUX倒向左边,输出级与锁存器接通,引脚可接I/O设备,其输入输出操作与P1口相同,30,I/O接口,P2口作地址总线口使用 当系统中接有外部存储器时,P2口用于输出高8位地址A15A8。此时在CPU的控制下,转换开关MUX倒向右边,接通内部地址总线。P2口的口线状态取决于片内输出的地址信息,这些地址信息来源于PCH、DPH等。在外接程序存储器时,由于访问外部存储器的操作连续不断,P2口不断送出地址高8位。因此,在8031构成的系统中,P2口一般只作地址总线口使用,不再作I/O端口直接连外部

23、设备。,31,I/O接口,P3口(P3.0P3.7,1017脚)双功能口 P3口是一个多用途的端口,也是一个准双向口。作为第一功能使用时,其功能同P1口,P3口的位结构如图所示。,32,I/O接口,P3口的第二功能实际上就是系统具有控制功能的控制线。此时相应的口线锁存器必须为“1”状态,与非门的输出由第二功能输出线的状态确定,从而P3口线的状态取决于第二功能输出线的电平。在P3口的引脚信号输入通道中有两个三态缓冲器,第二功能的输入信号取自第一个缓冲器的输出端,第二个缓冲器仍是第一功能的读引脚信号缓冲器。P3口可驱动4个LS型TTL门电路。,33,2.2.4 内部资源,串行端口 8051有一个全

24、双工的可编程串行I/O端口。这个串行I/O端口既可以在程序控制下将CPU的8位并行数据变成串行数据一位一位地从发送数据线TXD发送出去,也可以把从接收数据线RXD串行接收到的数据变成8位并行数据送给CPU。串行端口的这种串行发送和串行接收操作可以单独进行,也可以同时进行。8051串行发送和串行接收利用了P3口的第二功能,即利用P3.1引脚作为串行数据的发送线TXD,利用P3.0引脚作为串行数据的接收线RXD。串行I/O口的电路结构还包括串行口控制器SCON、电源及波特率选择寄存器PCON和串行数据缓冲器SBUF等,都属于特殊功能寄存器SFR。其中,PCON和SCON用于设置串行口工作方式,确定

25、数据的发送和接收波特率;SBUF实际上由两个8位寄存器组成,一个用于存放将要发送的数据,另一个用于存放刚接收到的数据,起着数据缓冲作用。,34,2.2.4 内部资源,中断系统中断的概念 中断是通过硬件来改变CPU的运行方向。计算机在执行程序的过程中,当出现CPU以外的某种情况,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。“中断”之后所执行的相应的处理程序通常称为中断服务或中断处理子程序,原来正常运行的程序称为主程序。主程序被断开的

26、位置(或地址)称为“断点”。引起中断的原因,或能发出中断申请的来源,称为“中断源”。中断源要求服务的请求称为“中断请求”(或中断申请)。调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序是在程序中事先安排好的;而何时调用中断服务程序事先无法确定,因为“中断”的发生是由外部因素决定的,在程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成的。,35,2.2.4 内部资源,MCS-51中断系统的结构框图 中断过程是在硬件基础上再配以相应的软件而实现的,不同的计算机其硬件结构和软件指令不完全相同,因此,中断系统也不相同。MCS-51中断系统的结构框图如图所示。,36,2

27、.2.4 内部资源,中断处理过程,37,中断处理过程,中断请求 中断源以某种方式(电平、脉冲或状态)产生向CPU的请求。中断确认 中断请求的确认必须满足一些条件,其中最主要的条件是当前指令执行结束,且CPU允许中断。断点保护 在中断响应过程及中断服务程序中对断点进行保护,以便在中断处理结束时能返回被中断的程序并接着中断前的状态继续执行。CPU会由硬件自动保护某些寄存器,不同的CPU保护的寄存器不一样在中断服务程序中还需要程序保护其他寄存器。中断源识别 如果多个中断源同时向CPU申请中断,必须判断是哪个中断源提出的请求,以便有针对地提供服务。目前中断源识别多采用矢量法,即为每个中断源规定其中断服

28、务程序的入口(起始)地址,即中断源的中断矢量。中断服务 中断服务是通过CPU执行中断服务程序实现的,不同的中断源的服务程序不同。中断服务程序应包括断点保护以及针对中断源的控制管理等程序。断点恢复 执行RETI指令恢复PC值,使CPU返回断点。中断返回 中断服务程序的最后一条指令必须是中断返回指令RETI,其功能是将中断响应时由CPU硬件自动保护的寄存器从堆栈恢复到原寄存器中。,38,2.2.4 内部资源,中断优先级控制 通常系统中有多个中断源,当多个中断源同时发出中断请求时,CPU应能确定哪个中断更紧迫并首先响应。为此给每个中断源规定了优先级别,称为优先权。当多个中断源同时发出中断请求时,优先

29、权高的中断能先被响应,只有优先权高的中断处理结束后才能响应优先权低的中断。按中断源优先权高低逐次响应的过程称优先权排队,这个过程可通过硬件电路实现,也可通过软件查询实现。,39,2.2.4 内部资源,中断嵌套,当CPU响应某一中断时,若有优先权更高的中断源发出中断请求,则CPU中断正在进行的中断服务程序,并保留这个程序的断点(类似于子程序嵌套),响应高级中断。高级中断处理结束后,再继续进行被中断的中断服务程序,这个过程称为中断嵌套,如右图所示。如果新发出中断请求的中断源的优先权级别与正在处理的中断源同级或更低时,CPU不会响应这个中断请求,直至正在处理的中断服务程序执行完以后才能响应新的中断请

30、求。,40,2.2.4 内部资源,中断源 MCS-51的5个中断源如下:INT0:外部中断0,由P3.2脚输入。通过TCON寄存器的IT0位来决定是低电平有效还是下跳边有效。一旦输入信号有效,则向CPU申请中断,并建立IE0标志。INT1:外部中断1,由P3.3脚输入。通过IT1位(TCON.2)来决定是低电平有效还是下跳边有效。一旦输入信号有效,则向CPU申请中断,并建立IE1标志。T0:定时器T0溢出中断。当定时器T0产生溢出时,定时器T0中断请求标志位TF0(TCON.5)置位(由硬件自动执行),请求中断。T1:定时器T1溢出中断。当定时器T1产生溢出时,定时器T1中断请求标志位TF1(

31、TCON.7)置位(由硬件自动执行),请求中断。RI或TI:串行中断。当接收或发送完一串行帧时,内部串行口中断请求标志位RI(SCON.0)或TI(SCON.1)置位(由硬件自动执行),请求中断。,41,2.2.4 内部资源,中断标志 TCON寄存器的中断标志 TCON是定时器T0和T1的控制寄存器,同时也锁存T0和T1的溢出中断请求标志及外部中断INT0和INT1的中断标志等,TCON的各位如图所示。D7 D6 D5 D4 D3 D2 D1 D0,42,中断标志,与中断有关的位如下:TCON.7:TF1,T1的溢出中断标志。T1启动计数后,从初值开始加1计数,计满溢出后由硬件置位TF1,同时

32、向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。也可由软件查询该标志,并由软件清0。TCON.5:TF0,T0溢出中断标志。其操作功能与TF1相同。TCON.3:IE1,INT1中断标志。IE1=1,外部中断1向CPU申请中断。TCON.2:IT1,INT1中断触发方式控制位。IT1=0,外部中断1控制为电平触发方式。在这种方式下,CPU在每个机器周期的S5P2期间对INT1(P3.3)引脚采样,若为低电平,则认为有中断申请,随即使IE1标志置位;若为高电平,则认为无中断申请,或中断申请已撤除,随即使IE1标志复位。在电平触发方式中,CPU响应中断后不能由硬件自动清除I

33、E1标志,也不能由软件清除IE1标志,所以,在中断返回之前必须撤销INT1引脚上的低电平,否则将再次中断导致出错。TCON.1:IE0,INT0中断标志。功能与IE1相同。TCON.0:IT0,INT0中断触发方式控制位。功能与IT1相同。,43,中断标志,SCON寄存器的中断标志 SCON是串行口控制寄存器,各位如下图所示。其中,低2位TI和RI锁存串行口的接收中断标志和发送中断标志。D7 D6 D5 D4 D3 D2 D1 D0,SCON.1:TI,串行发送中断标志。CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。但CPU响应中断时并不清除TI,必须

34、由软件清除。SCON.0:RI,串行接收中断标志。在串行口允许接收时,每接收完一个串行帧,硬件将使RI置位。同样,CPU在响应中断时不会清除RI,必须由软件清除。8051系统复位后,TCON和SCON均清0,应用时要注意各位的初始状态。,44,中断标志,IE寄存器中断的开放和禁止标志 中断系统有两种不同类型的中断:非屏蔽中断 可屏蔽中断 对非屏蔽中断,用户不能用软件方法加以禁止,一旦有中断申请,CPU必须予以响应。对可屏蔽中断,用户则可以通过软件方法来控制是否允许某中断源的中断,允许中断称为中断开放,不允许中断称为中断屏蔽。MCS-51系列单片机的5个中断源都是可屏蔽中断,其中断系统内部设有一

35、个中断允许寄存器IE,用于控制CPU对各中断源的开放或屏蔽,如下图所示。D7 D6 D5 D4 D3 D2 D1 D0,45,中断标志,IE寄存器各位定义如下:IE.7:EA,中断允许控制位。EA=1,开放所有中断,各中断源的允许和禁止可通过各自的中断允许位单独加以控制;EA=0,禁止所有中断。IE.4:ES,串行口中断允许位。ES=1,允许串行口中断;ES=0禁止串行口中断。IE.3:ET1,定时器T1中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。IE.2:EX1,外部中断1(INT1)中断允许位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。IE.1:E

36、T0,定时器T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。IE.0:EX0,外部中断0(INT0)中断允许位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。8051单片机系统复位后,IE寄存器中各中断允许位均清0,即禁止所有中断。,46,中断标志,IP寄存器中断优先级标志 8051单片机有两个中断优先级,每个中断源都可以通过编程确定为高优先级中断或低优先级中断,因此,可实现二级嵌套。同一优先级别的中断源可能不止一个,也存在中断优先权排队的问题。MCS-51系列单片机设置中断优先级寄存器IP,控制各中断源的优先级,如下图所示。IP寄存器的每一位由软件置1或

37、清0,1表示高优先级,0表示低优先级。D7 D6 D5 D4 D3 D2 D1 D0,47,中断标志,IP寄存器各位定义如下:IP.4:PS,串行口中断优先级控制位。PS=1,设定串行口为高优先级中断;PS=0,设定串行口为低优先级中断。IP.3:PT1,定时器T1中断优先级控制位。PT1=1,设定定时器T1为高优先级中断;PT1=0,设定定时器T1为低优先级中断。IP.2:PX1,外部中断1中断优先级控制位。PX1=1,设定外部中断1为高优先级中断;PX1=0,设定外部中断1为低优先级中断。IP.1:PT0,定时器T0中断优先级控制位。PT0=1,设定定时器T0为高优先级中断;PT0=0,设

38、定定时器T0为低优先级中断。IP.0:PX0,外部中断0中断优先级控制位。PX0=1,设定外部中断0为高优先级中断;PX0=0,设定外部中断0为低优先级中断。当系统复位后,IP寄存器低5位全部清0,所有中断源均设定为低优先级中断。,48,中断标志,如果同一优先级的几个中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑,按自然优先级顺序确定先响应哪个中断请求。自然优先级由硬件形成,从高到低排列如下表所示。,49,2.2.4 内部资源,中断响应时间 中断响应时间是指从中断请求标志置位到CPU开始执行中断服务程序的第一条指令所持续的时间。CPU并非每时每刻对中断请求都予以响应,不同的中断请求其响

39、应时间不同,不同情况下CPU响应中断的时间也是不同的,因此,中断响应时间形成的过程较为复杂。以外部中断为例,CPU在每个机器周期的S5P2期间采样其输入引脚INT0或INT1的电平,如果中断请求有效,则置位中断请求标志IE0或IE1,然后在下一个机器周期再对这些值进行查询,这就意味着中断请求信号的低电平至少应维持一个机器周期。此时如果满足中断响应条件,则CPU响应中断请求,在下一个机器周期执行一条硬件长调用指令LCALL,使程序转入中断矢量入口。LCALL指令执行时间是两个机器周期,因此,外部中断响应时间至少需要3个机器周期,这是最短的中断响应时间。如果中断请求不能满足前面所述的三个条件而被阻

40、断,则中断响应时间将延长。,50,2.2.4 内部资源,定时器/计数器 MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1(8052提供第三个定时器T2)。它们既可用作定时器方式,又可用作计数器方式。定时器/计数器的控制字 定时器/计数器的基本部件是两个8位的计数器(其中TH1、TL1是T1的计数器,TH0、TL0是T0的计数器)拼装而成。作定时器使用时,输入的时钟脉冲由晶体振荡器的输出经12分频后得到,所以定时器也可看作是对CPU机器周期的计数器,其频率为晶振频率的1/12。如果晶振频率为12MHz,则定时器每接收一个输入脉冲的时间为1s。当用作对外部事件计数

41、时,需外接CPU的外部输入引脚T0(P3.4)或T1(P3.5)。在这种情况下,当检测到输入引脚上的电平由高跳变到低时,计数器就加1,51,定时器/计数器,定时器/计数器有四种工作方式,其工作方式的选择及控制都由两个特殊功能寄存器(TMOD和TCON)的内容来决定。用指令改变TMOD或TCON的内容后,则在下一条指令的第一个机器周期的S1P1期间起作用。定时器的工作方式寄存器TMOD TMOD为定时器的工作方式寄存器,每位的定义如图所示。高4位用于定时器1,低4位用于定时器0,其中M1、M0用于确定所选的工作方式。,52,定时器/计数器,M1、M0:4种工作方式选择,4种编码对应的工作方式如下

42、表。,C/T:定时器方式或计数器方式选择位。C/T=1为计数器方式;C/T=0为定时器方式。GATE:门控位,用于确定外部中断请求引脚(INT0,INT1)是否参与T0或T1的操作控制。当GATE=0时,只要工作方式寄存器TCON中的TR0(或TR1)置1,允许T0(或T1)开始计数;当GATE=1时,不仅要TCON中的TR0或TR1置位,还需要P3口的INT0或INT1引脚为高电平,才允许T0(或T1)计数。TMOD寄存器在复位时每一位均清0。,53,定时器/计数器,定时器控制寄存器TCON TCON用于控制定时器的操作以及对定时器中断进行控制,如下图所示。其中,TR0和TR1的定义如下:T

43、R0:T0的运行控制位,置1或清0用于实现启动计数或停止计数。TR1:T1的运行控制位,置1或清0用于实现启动计数或停止计数。D7 D6 D5 D4 D3 D2 D1 D0,54,定时器/计数器,定时器/计数器工作方式 MCS-51的定时器/计数器可以通过对TMOD的控制位C/T进行设置来选择定时器方式或计数器方式。对M1M0两位进行设置可以选择4种工作方式。方式0 M1M0设置为00时,定时器设定为工作方式0,此时16位寄存器只用了13位,由TH0的8位和TL0的低5位组成一个13位计数器。当GATE=0时,只要TCON中的TR0为1,TL0及TH0组成的13位计数器就开始计数;当GATE=

44、1时,此时仅TR0=1仍不能使计数器计数,还需要INT0引脚为1才能使计数器工作。由此可知,当GATE=1和TR0=1时,计数器是否计数取决于INT0引脚的信号,当INT0由0变1时,开始计数;当INT0由1变0时,停止计数,因此可用来测量在INT0端出现的脉冲宽度。当13位计数器从设定的初值加1到全“1”后,再加1就产生溢出。此时置TCON的TF0位为1,同时计数器变为全“0”。,55,定时器/计数器,方式1 方式1和方式0的工作相同,区别在于TH0和TL0组成一个16位计数器。方式2 方式2把TL0配置成一个可以自动恢复初值的8位计数器,TH0作为常数缓冲器,由软件预置的初值保存在TH0中

45、。当TL0产生溢出时使溢出标志TF0置1,同时将TH0的8位数据重新装入TL0中。方式2常用于定时控制。例如,如果要求每隔250s产生一个定时控制脉冲,则可以采用12MHz的振荡器,TH0预置为6,并使C/T=0即可实现。方式2不用作串行口波特率发生器。方式3 方式3对定时器T0和定时器T1很不相同。若T1设置为方式3,则立即停止工作,保持原有的计数值。所以方式3只适用于T0。当T0设置为方式3时,此时TL0和TH0是两个相互独立的8位计数器,TL0利用了T0本身的一些控制(C/T、GATE、TR0、INT0和TF0)方式,其操作与方式0和方式1类似。而TH0用作定时器功能,对机器周期计数,并

46、借用了T1的控制位TR1和TF1。在这种情况下TH0控制了T1的中断。此时T1还可以设置为方式0、1或2,用于不需要中断控制的场合,或用作串行口的波特率发生器。通常,只有在T1用作串行口波特率发生器时,T0才设置为方式3,以增加一个8位计数器。,56,定时器/计数器,定时器/计数器的初始化 初始化步骤 MCS-51内部定时器/计数器是可编程序的,其工作方式和工作过程均可由MCS-51通过程序进行设定和控制。因此,MCS-51在定时器/计数器工作前必须先对它进行初始化。初始化步骤为:,首先给定时器的工作方式寄存器TMOD送一个方式控制字,设定定时器/计数器的相应工作方式。给定时器/计数器送定时器

47、初值或计数器初值,确定需要定时的时间和需要计数的初值。给中断允许寄存器IE送中断控制字,给中断优先级寄存器IP送中断优先级字,开放相应中断和设定中断优先级。给定时器控制寄存器TCON送命令字,启动或停止定时器/计数器的运行。,57,定时器/计数器,计数器初值的计算 定时器/计数器可用软件随时启动和关闭,启动后自动加“1”计数直到计满,即全为“1”。若不停止计数,计数值从全“1”变为全“0”,同时将计数溢出位置“1”并向CPU发出定时器溢出中断申请。对于各种不同的工作方式最大的定时时间和计数数不同。把计数器从初值开始作加1操作,到计满为全1所需要的计数加1次数设为C,计数初值设为D,由此可得到如

48、下的计算式:D=M-C 式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213,在方式1时M为216,在方式2和方式3时M为28。,58,定时器/计数器,定时器初值的计算 在定时器方式下,计数器由晶振脉冲经12分频后计数。因此,定时器定时时间T的计算公式为:T=(TM-TC)12/fOSC(s)式中,TM为计数器从初值开始作加1计数到计满为全1所需要的时间,TM为模值,和定时器的工作方式有关;fOSC为晶振的频率,TC为定时器的初值。若设TC=0,则定时器定时时间为最大(初值为0,计数从全0到全1,溢出后又为全0)。由于M的值和定时器工作方式有关,因此不同工作方式下定时器的最大定

49、时时间也不一样。例如,若设单片机晶振脉冲频率fOSC为12MHz,则最大定时时间为:方式0时,TMmax=2131s=8.192ms。方式1时,TMmax=216 1s=65.536ms。方式2和方式3时,TMmax=28 1s=0.256ms。,59,2.3.1 MCS-51的基本时序,时序是系统总线上的地址信息、数据信息和控制信息三者在时间上的互相配合和相互制约的关系。它表明了指令执行中各种微操作信号在时间上的顺序关系。1.时序的基本单位 8051单片机以晶体振荡器的振荡周期(或外部引入的时钟信号的周期)为最小的时序单位,片内的各种微操作都是以晶振周期为时序基准。下图为8051单片机的时钟

50、信号。,60,8051单片机的基本定时单位共有4个,它们从小到大分别是:晶振周期:由振荡电路产生的振荡脉冲的周期,又称节拍(如P1、P2)。时钟周期:是晶振周期的两倍,也即一个时钟周期包含两个相互错开的节拍,也称S状态周期。机器周期:8051单片机有固定的机器周期,由晶振频率12分频后形成的,即1个机器周期是晶振周期的12倍宽。单片机的基本操作周期为机器周期,每个机器周期包含6个状态,每个状态由两个节拍脉冲(晶振周期)组成。若单片机采用12MHz的晶体振荡器,则一个机器周期为1s;若采用6MHz的晶体振荡器,则一个机器周期为2s。指令周期:CPU执行一条指令所需要的时间。不同指令的执行时间各不

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号