教学课件PPT MCS51单片机的硬件结构与工作原理.ppt
第二章 MCS-51单片机的硬件结构与工作原理,主要内容:1.MCS-51单片机组成(结构、引脚功能)2.并行I/O端口结构3.储器组织与操作4.MCS-51单片机的中断系统1)中断系统概述2)中断的处理过程,重点理解:1.MCS-51系列单片机存储器结构特点2.单片机特殊功能寄存器的作用3.不同场合下单片机引脚的复用功能4.单片机的位处理功能及其作用,一、MCS51单片微机的硬件组成,第一节 MCS-51单片机的基本组成,中央处理单元CPU(8位)2.只读存储器ROM 大小:(无、4K、8K、16K、32K、64K)作用:存储应用程序,数表 种类:掩膜ROM、EPROM、EEPROM、FLASH ROM3.随机存取器RAM 大小:(128B、256B、512B)作用:程序运行中存储工作变量和数据,4.并行输入/输出口 I/O(32线):系统总线、扩展外存、I/O接口芯片5.串行输入/输出口 UART(二线):串行通信、扩展I/O接口芯片,6、定时/计数器 T(16位增量可编程)它与CPU之间各自独立工作,当它计数满时向CPU中断7、时钟电路 fosc:分为内部振荡器、外接振荡电路8、中断系统:五源中断、两级优先,可编程进行控制。,8位的CPU,内部RAM:共256个单元,内部ROM:4K字节ROM,2个16位的定时/计数器,4个8位的并行I/O口,一个全双工串行口。,5个中断源的中断系统,时钟电路:产生时钟脉冲序列,二.MCS51单片机的内部结构,三 单片机引脚功能,P3口的第二功能,VCC,VSS,XTAL2XTAL1,RST,P0.0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7,P1.0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7,P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0,ALE,P3.0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7,2、振荡电路:XTAL1、XTAL2,3、复位引脚:RST,4、并行口:P0、P1、P2、P3,7、ALE:地址锁存控制信号,1、电源线:VCC(+5V)、VSS(地),四、振荡器、时钟电路及时序,1.时钟电路 MCS5l单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTALl和XTAL2分别是反相放大器的输入端和输出端,由这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成了一个自激振荡器,如图24所示。这种方式形成的时钟信号称为内部时钟方式。图25所示,为外部时钟方式。,一般使用,2.有关单片机CPU的时序,1)振荡周期:指为单片机提供定时信号的振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。(2)时钟周期:也称为状态周期,用S表示。时钟周期是计算机中最基本的时间单位,在一个时钟周期内,CPU完成一个最基本的动作。MCS51单片机中一个时钟周期为振荡周期的2倍。3)机器周期:完成一个基本操作(例如,取指令、存储器读、存储器写等)所需要的时间称为机器周期。MCS51的一个机器周期含有6个时钟周期。(4)指令周期完成一条指令所需要的时间称为指令周期。MCS5l的指令周期含14个机器周期不等,其中多数为单周期指令,还有2周期和4周期指令。4周期指令只有乘、除两条指令。,时钟周期,第四节 MCS-51存储器组织与操作(重点),MCS51系列单片机其存储结构特点是:将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构的单片微机称为哈佛型结构单片微机。在物理上有4个相互独立的存储空间:片内和片外程序存储器;片内和片外数据存储器。在逻辑上有三个彼此独立的地址空间:1、片内外统一编址的64KB程序存储器地址间;2、256字节的片内数据存储器地址空间;3、64K字节的片外数据存储器地址空间,一、MCS51程序存储器组织结构与地址空间,7个特殊单元:0000H 复位后,PC=0000H.开始执行程序 0003H 外部中断0(INT0)入口 000BH 定时器0中断(TF0)入口 0013H 外部中断1(INT1)入口 001BH 定时器1(TF1)入口 0023H 串行口中断TI/RI入口 002BH 定时计数器2溢出或T2EX输入负跳变(52系列),MCS5l采用16位的程序计数器PC和l6位的地址总线,64KB片内、外的程序存储器空间连续、统一。,二、MCS51数据存储器组织与地址空间,数据存储器地址空间由内部和外部数据存储器空间组成。内部和外部数据存储器空间存在重叠,通过不同指令来区别。内部数据存储器在物理上又可分成三部分:低128字节RAM、高128字节RAM(仅80320852才有)和专用寄存器(SFR)。,1、工作寄存器区,2、20H-2FH 位寻址区既可进行字节寻址,又可进行位寻址。这16个单元共有168128位,3、30H-7FH 通用存储区,4、片外数据存储器 0000HFFFFH范围为64K字节,采用R0、R1或DPTR寄存器间址方式访问。当采用R0、R1间址时只能访问低256字节,采用DPTR间址可访问整个64K字节空间。,数据存储器地址空间,字节地址,位地址,三、特殊功能寄存器地址空间,共有26个专用寄存器SFR(Special Functional Register),它们离散地分布在片内RAM的高128字节地址80H0FFH中。程序计数器PC不占据RAM单元,在除PC外的专用寄存器SFR中,有12个专用寄存器既可字节寻址,又可位寻址。,注意:1)表中共有5个双字节寄存器。(51系列只有3个)2)PC也为双字节寄存器,但是不在80H FFH范围内。3)表中,凡地址能被8整除的寄存器都是可位寻址的寄存器。,位地址的表示法例:位名称 CY、RS0 寄存器名加序号 PSW.7 ACC.1 字节地址加序号 20H.3 直接位地址 00H,1.累加器ACC 累加器A在大部分的算术运算中存放某个操作数和运算结果。2.寄存器B寄存器B主要用于与累加器A配合执行乘法和除法指令的操作。3.程序状态字PSW8位寄存器,用来存放程序状态信息。某些指令的执行结果会自动影响PSW的有关状态标志位,有些状态位可用指令来设置。,特殊功能寄存器,:进位标志位:半进位标:用户标志位:工作寄存器组选择:溢出标志 P:奇偶标志,A中1的个数为奇数 P=1;否则 P=0。,RS1 RS0 寄存器组内部RAM地址0 0 工作寄存器组000H07H0 1 工作寄存器组108H0FH1 0 工作寄存器组210H17H1 1 工作寄存器组318H1FH,4.堆栈指针SP堆栈是一个特殊的存储区,用来暂时存放数据和地址,它是按照“先进后出”的原则存放数据。栈指针SP为一个8位专用寄存器,每存入(或取出)一个字节数据,SP就自动加1(或减1),SP始终指向新的栈顶。系统复位后堆栈指针初始化为07H。,5.数据指针DPTR16位的专用寄存器,由高位字节DPH和低位字节DPL组成。可作为一个16位寄存器使用,也可以作为2个独立的8位寄存器DPH和DPL使用。,6.I/O端口P0P3 专用寄存器P0P3分别是I/O端口P0P3的锁存器。可以把I/O口当作般的专用寄存器来使用,没有专门设置的口操作指令,全部采用统一的MOV指令。,2.2.1 P0口结构,返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,作用:1、外扩芯片时,P0口不再做I/O口使用,而是先传送地址,后传送数据。2、没有外扩芯片时,P0口可以直接作为输入口或输出口使用。,第二节 并行I/O接口,P0口直接做输出口时,输出信息的过程:(将0送到P0.0的过程),返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,0,0,0,1,0,注意:P0口做输出口时,内部数据经过锁存器送到P00-P07上。由于上管始终截止,而当下管也截止时,P00P07被架空,没有标准的高电平,所以P0口作输出口使用时,必须外接上拉电阻。,P0口直接做输入口时,输入信息的过程:(将P0.0处的1送入DB0.0的过程),D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址/数据控制线,+5V,P0.0,转换开关,锁存器,0,0,1,注意:1、P0口作输入口时,P00P07上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。2、CPU对P0口的读操作有2种:读引脚和读改写锁存器。,1,当CPU执行 MOV A,P0或 JB/JNB P0.x,标号 时,产生读引脚控制信号,此时读的是引脚的状态。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,返回,2.2.2 P1口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P1.0,锁存器,作用:P1口只能可以直接作为输入口或输出口使用。,返回,返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P1.0,锁存器,P1口直接做输出口时,输出信息的过程:(将1送到P1.0的过程),1,0,0,1,注意:P1口做输出口时,内部数据经过锁存器送到P10-P17上。由于内部有上拉电阻,所以P1口作输出口使用时,不用外接上拉电阻。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P1.0,锁存器,P1口直接做输入口时,输入信息的过程:(将P1.0处的0送入DB0.0的过程),0,0,注意:1、P1口作输入口时,P10P17上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。2、CPU对P1口的读操作有2种:读引脚和读改写锁存器。,当CPU执行 MOV A,P1或 JB/JNB P1.x,标号 时,产生读引脚控制信号,此时读的是引脚的状态。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,返回,2.2.3 P2口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址控制线,+5V,P2.0,转换开关,锁存器,作用:1、外扩芯片时,P2口不再做I/O口使用,而是传送高8位地址。2、没有外扩芯片时,P2口可以直接作为输入口或输出口使用。,返回,返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,地址控制线,+5V,P2.0,转换开关,锁存器,P2口直接做输出口时,输出信息的过程:(将0送到P2.0的过程),0,0,0,1,0,注意:P2口做输出口时,内部数据经过锁存器送到P20-P27上。由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。,2.2.4 P3口结构,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.0,锁存器,第二功能输出,第二功能输入,作用:1、P3口可以直接作为输入口或输出口使用。2、P3口的引脚又具有第二功能。,1 当使用单片机内部串行口时,若CPU执行MOV A,SBUF指令,则P3.0(RXD)作为接收信号线,接收由外界串行输入的数据;若CPU执行MOV SBUF,A指令,则P3.1(TXD)作为发送信号线,串行发送数据至外界。2当单片机使用外中断时,P3.2(INT0)作为外中断0的中断请求输入线,3.3(INT1)作为外中断1的中断请求输入线。3当单片机使用定时器,且定时器工作于计数方式时,P3.4(T0)作为定时器0的计数脉冲输入线,P3.5(T1)作为定时器1的计数脉冲输入线。4当单片机外扩RAM或I/O接口芯片时,P3.6(WR)作为RAM或I/O接口芯片的写控制信号,P3.7(RD)作为RAM或I/O接口芯片的读控制信号。当P3口的一些引脚没有作为第二功能使用时,这些引脚就被释放,直接作为I/O口线使用。,返回,返回,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.0,锁存器,第二功能输出,第二功能输入,P3口直接做输出口时,输出信息的过程:(将1送到P3.0的过程),1,0,0,1,注意:P3口做输出口时,内部数据经过锁存器送到P30-P37上。由于内部有上拉电阻,所以P2口作输出口使用时,不用外接上拉电阻。,D,CP,Q,Q,读引脚,读锁存,写控制信号,DB0.0,+5V,P3.0,锁存器,第二功能输出,第二功能输入,0,P3口直接做输入口时,输入信息的过程:(将P3.0处的0送入DB0.0的过程),0,注意:1、P3口作输入口时,P30P37上的信号经过缓冲器送到内部数据总线上。在读引脚之前,要先将锁存器置1,否则总是读到0。2、CPU对P3口的读操作有2种:读引脚和读改写锁存器。,当CPU执行 MOV A,P3或 JB/JNB P3.x,标号 时,产生读引脚控制信号,此时读的是引脚的状态。,当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC、SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。,返回,一、并行I/O接口的内部结构,1.P0口的位结构与功能:8位漏极开路型双向并行IO口 使用:P0口为三态双向口,即可作为一般I/O口使用,也可作地址/数据总线口。1)P0口作一般I/O口-“读引脚先写1”“在输入数据时应先把口置1,使两个FET都截止,引脚处于悬浮状态,可作高阻抗输入”2)访问外部存储器时,它是一个复用的地址/数据总线。(分时使用)输出地址总线低8位A7A0(利用ALE信号的下降沿将地址锁存,锁存)作数据总线 D7D0 8。,第二节 并行I/O接口,第二章 2-34,P0口某位的结构图,第二章 2-35,2.P1口的位结构与功能,1)P1口也是个准双向IO口2)应用:通常作一般I/O口用,3.P2口的位结构与功能,1)在结构上比P0口少了一个输出转换控制部分,多路开关MUX的倒向由CPU命令控制,且P2口内部接有固定的上拉电阻。2)P2口既可作为通用IO口使用(先写“1”),又可作为地址总线口,输出高8位地址。(A15A8),第二章 2-36,4.P3口的位结构与功能,P3.0(RXD):串行输入端。P3.1(TXD):串行输出端。P3.2():外部中断0输入端,低电平有效。P3.3():外部中断1输入端,低电平有效。P3.4(T0):定时计数器0外部事件计数输入端。P3.5(T1):定时计数器1外部事件计数输入端。P3.6():外部数据存储器写选通信号,低电平有效。P3.7():外部数据存储器读选通信号,低电平有效。,P3口与Pl口的输出驱动部分及内部上拉电阻相同,但比P1口多了一个第二功能控制部分的逻辑电路。,单片机的片外三总线结构,地址线(DBUS):P0低八位地址,P2高八地址;数据线(ABUS):P0输入输出8位数据;控制线(CBUS):P3口的8位加上/PSEN、ALE共同完成 控制总线。,第二章 2-38,P0P3的功能及使用时的注意事项,1.在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向通用IO端口使用。在具有片外扩展存储器的系统中,P2口作为高8位地址线,P0口作为双向总线,分时作为低8位地址和数据的输入输出线。,2.P0口作为通用双向IO口用时,必须外接上拉电阻。,3.P3口除了作通用IO使用外,它的各位还具有第二功能。当P3口某一位用于第二功能作输出时,则不能再作通用IO使用。,4.当P0P4端口用作输入时,为了避免误读,都必须先向对应的输出锁存器写入“1”,使FET截止。然后再读端口引脚。如:MOV P1,#0FFH;写入“1”MOV A,P1,5.I/O口 可按字节寻址,也可按位寻址,复位是单片机的初始化操作,其作用是使CPU和系统中其它部件都处于一个确定的初始状态,并从这个状态开始工作。在振荡器运行时,RST端至少要保持2个机器周期(24个振荡周期)为高,才完成一次复位。,复位后片内各专用寄存器的状态,第三节 MCS-51单片机的复位,第二章 2-40,几种实用的复位电路,第二章 2-41,MCS51的中断系统,MCS-51及其5l子系列的其它成员都具有相同的中断结构。8051有5个中断源2个外部中断源INT0和INT1,2个片内定时器计数器溢出中断源,1个片内串行口中断源。分为两级高级中断和低级中断。其中任何一个中断源的优先级均可由软件设定为高级或低级,能实现两级中断服务程序嵌套。都是可屏蔽的,由软件设定。,第二章 2-42,一、MCS51的中断源,1.中断源1)外部中断0请求,由P3.2引脚输入。可由用户设定为两种触发方式,(电平触发方式还是边沿触发方式)。一旦输入信号有效,则向CPU申请中断,并且将中断标志IE0置1。2)外部中断1请求,由P3.3引脚输入。亦可由用户设定为电平触发方式还是边沿触发方式。一旦输人信号有效,则向CPU申请中断,并将中断标志IE1置1。,第二章 2-43,3)片内定时器T0溢出中断请求。当定时器T0产生溢出时,T0中断请求标志TF0 置1,请求中断处理。4)片内定时器T1溢出中断请求。当定时器T1产生溢出时,T1中断请求标志TF1置l,请求中断处理。5)片内串行口发送接收中断请求。当通过串行口发送或接收完一帧串行数据时,串行口中断请求标志TI或RI置1,请求中断处理。,2.中断请求标志,(1)TCON的中断标志 TCON是专用寄存器,字节地址为88H,它锁存了外部中断请求标志及T0和T1的溢出中断请求标志,1)IT0:选择外部中断0(INT0)触发方式控位。2)IE0:外部中断0请求标志位。IE01,外部中断0向CPU申请中断。3)IT1:选择外部中断1(INT1)触发方式控制位。4)1E1:外部中断1请求标志位。IE11时,外部中断1向CPU申请中断。5)TF0:片内定时器T0溢出中断请求标志。T0被启动后,从初始值开始进行加1计数,当最高位产生溢出时置TF01,向CPU申请中断,直到CPU响应该中断时,才由硬件自动将TF0清0,也可由软件查询该标志,并用软件清0。6)TF1:片内定时器T1溢出中断请求标志,其操作功能与TF0类同。,2)SCON的中断标志 SCON是串行口控制寄存器,与中断有关的是它的低两位TI和RI。1)TI(SCON.1):串行口发送中断标志位。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能清除TI,TI必须由软件清除。2)RI(SCON.0):串行口接收中断标志位,当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。,SCON,二、MCS51的中断管理,1、中断允许寄存器IE中断的允许与开放,在中断源与CPU之间有二级中断允许控制逻辑电路,一级为总允许,第二级为源允许,由IE控制。,总允许,源允许,2中断优先级寄存器IP 中断优先级控制,内部自然优先级:入口地址 INT0 高 0003H T0 000BH INT1 0013H T1 001BH TI/RI 底 0023H,为什么要有中断优先级?,中断管理逻辑图,同一级中的5个中断源的优先顺序,中断优先原则:(概括为四句话)1)低级不中断高级2)高级不睬低级3)同级不能打断4)同级、同时中断,按自然优先级,中断处理过程一般分为三个阶段,即中断响应、中断处理和中断返回。,三、响应中断的条件及过程,1.中断响应(1)中断响应的条件 1)有中断源发出请求信号 2)中断是开放的(总允许、源允许)3)没有封锁(受阻),受阻情况是:CPU正在执行同级或高一级的中断服务程序;现行机器周期不是正在执行的指令的最后一个机器周期,即现行指令完成前不响应任何中断请求;当前正在执行的是中断返回指令RETI或访问专用寄存器IE或IP的指令。也就是说,在执行RETI或是访问IE、IP的指令后,至少需要再执行条其他指令,才会响应中断请求。,2)中断响应过程 进入中断响应周期。CPU在中断响应周期要完成下列操作:1)根据中断请求源的优先级高低,使相应的优先级状态触发器置1。2)清相应中断请求标志位IE0、IE1、TF0或TF1 3)保留断点,把PC内容压入堆 保存。4)把被响应的中断源服务程序入口地址送入PC,输入相应中断服务程序。,2.中断服务与返回 在编写中断服务程序时加注意的几点:1)因各入口地址之间只相隔8个字节,一般的中断服务程序是存放不下的。所以通常在中断入口地址单元处存放条无条件转移指令,这样就可使中断服务程序灵活地安排在64KB程序存储器的任何空间。2)若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭CPU中断,或禁止某中断源中断,在中断返回前再开放中断。3)注意保护现场和恢复现场。4)中断服务程序的最后一条是返回指令RETI,该指令将清除响应中断时被置位的优先级状态触发器,然后自动将断点地址从栈顶弹出,装入程序计数器PC,使程序返回到被中断的程序断点处,继续向下执行。,3.中断请求的撤除CPU响应中断请求后,在中断返回(RETI)前,该中断请求信号必须撤除,否则会引起另外一次中断。注意:采用边沿触发的外部中断标志IE0或IEl和定时器中断标志TF0或TFl,CPU响应中断后能用硬件自动情除。但在电平触发时,IE0或IEl受外部引脚中断信号(或)的直接控制,CPU无法控制IE0或IEl,需要另外考虑撤除中断请求信号的措施,如通过外加硬件电路,并配合软件来解决;串行口中断请求标志TI和RI也不能由硬件自动清除,需要在中断服务程序中,用软件来清除相应的中断请求标志。,小结:1、硬件构成 2、存储器组织 3、中断系统,单片机,D触发器,D,CLK,/INT0,Q,P1.0,/S,外部中断请求,课间休息,第三章 6-24,