1、5.1 MCS-51单片机并行单片机并行I/O口口5.2 MCS-51单片机中断系统单片机中断系统5.3 MCS-51单片机定时器单片机定时器/计数器计数器5.4 MCS-51单片机串行接口单片机串行接口5.5 思考与练习题思考与练习题第五章第五章 MCS-51单片机的功能模块单片机的功能模块主要内容:主要内容:介绍介绍5151系列单片机主要内部功能模块:系列单片机主要内部功能模块:有并行有并行I/OI/O口、中断系统、定时口、中断系统、定时/计数器和串行接口。计数器和串行接口。要求:要求:1 1、掌握、掌握5151系列单片机的各功能模块的结构和工作系列单片机的各功能模块的结构和工作原理;原理
2、;2 2、各模块应用程序的编写。、各模块应用程序的编写。5.1 MCS-51单片机单片机并行并行I/O口口 I/OI/O口的作用:口的作用:v1 1 实现实现CPUCPU与外设间的速度匹配;与外设间的速度匹配;v2 2 改变数据的传送方式(并行、串行);改变数据的传送方式(并行、串行);v3 3 改变信号的性质(改变信号的性质(A/DA/D)和信号的电平()和信号的电平(TTLTTL电平与电平与RS232RS232电平)电平)外设的编址:外设的编址:v独立编址独立编址 编址范围编址范围0000H0FFFFH0000H0FFFFH,有专有的传送指,有专有的传送指令;令;v与存储器统一编址与存储器
3、统一编址 编址范围编址范围0FF00H0FFFFH0FF00H0FFFFH,传送指,传送指令令 MOVX AMOVX A,DPTR MOVX DPTRDPTR MOVX DPTR,A A5.1 MCS-51单片机单片机并行并行I/O口口 I/O I/O 数据的四种传送方式数据的四种传送方式v无条件传送(同步传送)无条件传送(同步传送)v条件传送(异步传送)条件传送(异步传送)v中断传送中断传送vDMADMA传送传送5.1 MCS-51单片机单片机并行并行I/O口口 vMCS-51MCS-51单片机具有单片机具有4 4个双向的个双向的8 8位位I/OI/O口口P0P3P0P3,P0P0口为口为三
4、态双向口,负载能力为三态双向口,负载能力为8 8个个TTLTTL电路,电路,P1P3P1P3口为准口为准双向口双向口(用作输入时,口线被拉成高电平,故称为准用作输入时,口线被拉成高电平,故称为准双向口双向口),负载能力为,负载能力为4 4个个TTLTTL电路。电路。v各口中的每一位都是由锁存器(称特殊功能寄存器各口中的每一位都是由锁存器(称特殊功能寄存器SFRSFR)、输出驱动器和输入缓冲器组成。这种结构,)、输出驱动器和输入缓冲器组成。这种结构,在数据输出时可锁存,但对输入信息是不锁存的,所在数据输出时可锁存,但对输入信息是不锁存的,所以从外部输入的信息必须保持到取数指令执行完为止。以从外部
5、输入的信息必须保持到取数指令执行完为止。5.1.1 P05.1.1 P0口口 P0P0口是一个三态双向口,在系统扩展时,口是一个三态双向口,在系统扩展时,可作为低可作为低8 8位地址线和数据总线的分时复用口,位地址线和数据总线的分时复用口,在其他状态下可作为通用在其他状态下可作为通用I/OI/O接口,其接口,其1 1位的结构位的结构原理如图原理如图5.15.1所示,所示,P0P0口由口由8 8个这样的电路组成。个这样的电路组成。5.1.1 P05.1.1 P0口口 图图5.15.1.1 P05.1.1 P0口口 P0P0口是一个多功能口是一个多功能8 8位口,可以字节访问,也可位口,可以字节访
6、问,也可位访问,字节访问地址为位访问,字节访问地址为80H80H,位访问地址为,位访问地址为80H87H80H87H。(1)P0(1)P0口用于口用于I/OI/O口是准双向口是准双向I/OI/O口。口。作为作为I/OI/O口使用时,控制信号应为口使用时,控制信号应为“0”0”,多路,多路开关接通输出锁存器的开关接通输出锁存器的 端。同时与门关闭,上拉端。同时与门关闭,上拉FETFET截止,形成截止,形成P0P0口的输出电路为漏极开路输出。需口的输出电路为漏极开路输出。需要外接上拉电阻。要外接上拉电阻。a)a)作输出口时:作输出口时:不需要条件,可以正确的输出不需要条件,可以正确的输出b)b)作
7、输入口时:作输入口时:当当CPUCPU复位后进行输入操作时,输入信息是正确的。复位后进行输入操作时,输入信息是正确的。当当P0P0口的某位(或整个口的某位(或整个P0P0口)先进行了输出操作,口)先进行了输出操作,而后要由输出变成输入操作方式时,必须先用输出而后要由输出变成输入操作方式时,必须先用输出指令将锁存器置指令将锁存器置“1”1”,才能保证输入信息正确。,才能保证输入信息正确。(即是准双向的含义)(即是准双向的含义)Q5.1.1 P05.1.1 P0口口(2 2)P0P0口用于地址口用于地址/数据分时复用时是真正双向数据分时复用时是真正双向I/OI/O口。口。当控制当控制=1=1时,时
8、,MUXMUX接通地址接通地址/数据输出端。数据输出端。a)a)当地址当地址/数据输出线置数据输出线置1 1时,时,“与与”门输出为门输出为1 1,上拉,上拉FETFET导通,同时地址导通,同时地址/数据输出通过反相器输出数据输出通过反相器输出0 0,控,控制下拉制下拉FETFET截止,这样截止,这样A A点电位上拉,地址点电位上拉,地址/数据输出数据输出线为线为1 1。b)b)当地址当地址/数据输出线置数据输出线置0 0时,时,“与与”门输出为门输出为0 0,上拉,上拉FETFET截止,同时地址截止,同时地址/数据输出通过反相器输出数据输出通过反相器输出1 1,控,控制下拉制下拉FETFET
9、导通,这样导通,这样A A点电位下拉,地址点电位下拉,地址/数据输出数据输出线为线为0 0。输入数据,控制输入数据,控制=0=0,分析同(,分析同(1 1)中的输入中的第一种)中的输入中的第一种情况。情况。通过上述分析可以看出,此时的输出状态随地址通过上述分析可以看出,此时的输出状态随地址/数据数据线而变。因此,线而变。因此,P0P0口可以作为地址口可以作为地址/数据复用总线使数据复用总线使用(需要加地址锁存器)。此时的用(需要加地址锁存器)。此时的P0P0口相当一个双口相当一个双向口。向口。5.1.2 P15.1.2 P1口口vP1P1口是一个口是一个8 8位口,可以字节也可按位访问,位口,
10、可以字节也可按位访问,其字节地址为其字节地址为90H90H,位访问地址为,位访问地址为90H97H90H97H。vP1P1口是一个准双向口是一个准双向I/OI/O口,其口,其1 1位的内部结位的内部结构如图构如图5.25.2所示。所示。5.1.2 P15.1.2 P1口口图图5.25.1.2 P15.1.2 P1口口 它在结构上与P0口的区别在于输出驱动部分,其输出驱动部分由场效应管V1与内部上拉电阻组成。当其某位输出为1时,使输出驱动器中的场效应管截止,该位的输出由内部等效的上拉电阻拉成高电平,输出1。当输出为0时,输出场效应管导通则输出引脚为低电平,输出为0。不必像P0口那样需要外接上拉电
11、阻。5.1.2 P15.1.2 P1口口v在8051/80C51单片机中,P1口只有通用I/O接口一种功能,它的每一位可以分别定义为输入或输出,其输入输出原理特性与P0口作为通用I/O接口使用时一样。P1口具有驱动4个LSTTL负载的能力。v在8052/80C52单片机中,P1口P1.0与P1.1除作为通用I/O接口线外,还具有第二功能,即P1.0可作为定时器/计数器2的外部计数脉冲输入端T2,P1.1可作为定时器/计数器2的外部控制输入端T2EX。5.1.3 P25.1.3 P2口口 P2口也是一个准双向I/O口,其1位内部结构见图5.3。在访问外部存储器时,P2口作为高8位地址输出口,在其
12、他时候作为一般I/O接口使用。5.1.3 P25.1.3 P2口口图图5.35.1.3 P25.1.3 P2口口v当作为准双向通用I/O口使用时,控制信号为低电平无效,多路转换器MUX接通锁存器Q端,锁存器Q端经反相器3接控制场效应管V1,其工作原理与P1相同,负载能力也与P1相同。v当作为外部扩展存储器的高8位地址总线使用时,控制信号应为高电平“1”有效,多路转换开关MUX接通地址信号,来自程序计数器PC的高8位地址PCH,或数据指针DPTR的高8位地址DPH经反相器3和V1反相后复原在P2.x口的引脚上,输出高8位地址A8A15。在上述情况下,口锁存器的内容不受影响,所以,取指或访问外部存
13、储器结束后,由于转换开关又接至左侧,使输出驱动器与锁存器Q端相连,引脚上将恢复原来的数据。5.1.4 P35.1.4 P3口口 P3口是一个多功能的8位口,可以字节访问也可位访问,其字节访问地址为B0H,位访问地址为B0HB7H。P3P3口的功能:口的功能:(1)可作I/O口使用,为准双向口。这方面的功能与P1口一样。(2)每一位均具有第2功能。5.1.4 P35.1.4 P3口口图图5.45.1.4 P35.1.4 P3口口v当P3口作为通用I/O接口时,要求第2功能输出线保持高电平,使与非门3的输出取决于口锁存器的状态。在这种情况下,P3口仍是1个准双向口,它的工作方式、负载能力均与P1、
14、P2口相同。v当P3口作为第2功能(各引脚功能见表5.1)使用时就不能再做通用输出口使用,其锁存器Q端必须为高电平,以允许第2功能输出,在做第2功能输入时,虽仍做通用输入口,但已无实际意义。5.1.5 5.1.5 接口的使用原则接口的使用原则1.I/O1.I/O接口的读、写、修改接口的读、写、修改每个每个I/OI/O口均有两种口均有两种“读读”方式:读引脚和读锁方式:读引脚和读锁存器。存器。读引脚:读引脚:是读外部接口的电平信号,读引脚信号是读外部接口的电平信号,读引脚信号有效。真正读引脚的指令只有有效。真正读引脚的指令只有 MOV AMOV A,PxPx读锁存器读锁存器:是将接口锁存器的:是
15、将接口锁存器的Q Q端信号读回,写端信号读回,写锁存器信号有效。锁存器信号有效。读锁存器指令主要用于读读锁存器指令主要用于读修改修改写指令。写指令。如下列这些指令:如下列这些指令:如:如:ORL ORL、XRL XRL、JBC JBC、CPL CPL、INC INC、DEC DEC、DJNZ DJNZ、MOV PxMOV Px,y ,y、CLR Px.yCLR Px.y和和SET Px.ySET Px.y。5.1.5 5.1.5 接口的使用原则接口的使用原则2.使用原则vMCS-51单片机中的4个I/O口在实际使用中,一般遵循以下用法:P0口一般做系统扩展地址低8位/数据复用口,P1口一般做I
16、/O扩展口,P2口做系统扩展地址高8位和I/O口扩展的地址译码用,P3口做中断输入、串行通用口使用。v在各个口的带负载能力和接口要求上,由于P0口的输出级与P1P3口的输出级在结构上不同,所以,要求也不同。P0口的每一位可驱动8个TTL输入,在做通用I/O口使用时,输出级是开漏电路,故需外部加上拉电阻。在做地址/数据总线使用时,不需要外接上拉电阻。P1P3的输出级内部有高效的上拉电阻,每一位输出可驱动4个TTL输入。v在实际使用中,一般用户在I/O扩展时,很难计算I/O的负载能力。对扩展集成芯片,如74LS系列的一些大规模集成芯片(如8155、8255、8253、8259等),都可与MCS-5
17、1直接接口。其他一些扩展用芯片,使用中可参考器件手册及典型电路。v对于一些线性元件,如键盘、码盘及LED显示等输入/输出设备,由于MCS-51单片机提供不了足够的驱动电流,应尽量设计驱动部分。5.1.5 接口的使用原则接口的使用原则5.2 MCS-515.2 MCS-51单片机中断系统单片机中断系统 5.2 MCS-515.2 MCS-51单片机中断系统单片机中断系统一、中断的基本概念一、中断的基本概念“中断中断”是处理事件的一个是处理事件的一个“过程过程”,这一,这一过程一般是由计算机内部或外部某种紧急事件引过程一般是由计算机内部或外部某种紧急事件引起并向主机发出请求处理的信号,主机在允许情
18、起并向主机发出请求处理的信号,主机在允许情况下响应请求,暂停正在执行的程序,保存好况下响应请求,暂停正在执行的程序,保存好“断点断点”处的现场,转去执行中断处理程序,处理处的现场,转去执行中断处理程序,处理完后恢复现场,自动返回到原断点处,继续执行完后恢复现场,自动返回到原断点处,继续执行原程序。这一处理过程就称为原程序。这一处理过程就称为“中断中断”。5.2 MCS-515.2 MCS-51单片机中断系统单片机中断系统中断程序与子程序的区别:中断程序与子程序的区别:调用中断服务程序的过程类似于调用子程序,调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排其区别在于
19、调用子程序在程序中是事先安排好的,而何时调用中断服务程序事先却无法好的,而何时调用中断服务程序事先却无法确定,因为确定,因为“中断中断”的发生是由外部因素决的发生是由外部因素决定的,程序中无法事先安排调用指令,因此,定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成调用中断服务程序的过程是由硬件自动完成的。的。5.2.1 中断的基本概念图图5.5 中断执行过程中断执行过程1.1.中断源:中断源就是中断请求信号的来源。中断源:中断源就是中断请求信号的来源。2.2.中断响应与返回中断响应与返回3.3.优先级控制优先级控制图图5.6 二级中断嵌套的中断过程二级中断嵌套的中
20、断过程5.2.1 中断的基本概念二、二、中断源和中断请求标志中断源和中断请求标志 中断源是指在计算机系统中向中断源是指在计算机系统中向CPUCPU发出中断请发出中断请求的来源求的来源,中断可以人为设定中断可以人为设定,也可以是为响应也可以是为响应突发性随机事件而设置。通常有突发性随机事件而设置。通常有I/OI/O设备、实时设备、实时控制系统中的随机参数和信息故障源等。可分为控制系统中的随机参数和信息故障源等。可分为外部中断和内部中断。外部中断和内部中断。5.2.2 中断源和中断请求标志5.2.2 中断源和中断请求标志图图5.7 5.7 中断系统结构中断系统结构IT0(IT1)IT0(IT1):
21、外部中断:外部中断0(0(或或1)1)触发方式控制位。触发方式控制位。IT0(IT0(或或IT1)=0IT1)=0,则选择外部中断为电平触发方式,低电平有效;,则选择外部中断为电平触发方式,低电平有效;IT0(IT0(或或IT1)=1IT1)=1,则选择外部中断为边沿触发方式,负跳沿有效。,则选择外部中断为边沿触发方式,负跳沿有效。这两位由用户用根据需要用这两位由用户用根据需要用软件编程软件编程写入写入“1”1”或或“0”0”,进而控制,进而控制外中断请求信号方式。可以使用字节操指令,也可用位操作指令:外中断请求信号方式。可以使用字节操指令,也可用位操作指令:CLR IT0 CLR IT0;定
22、义外中断定义外中断0 0为电平触发方式。为电平触发方式。ORL TCON ORL TCON,#05H#05H;定义两外中断均为脉冲触发方式定义两外中断均为脉冲触发方式5.2.2 中断源和中断请求标志1 1外部中断外部中断由由P3.2P3.2、P3.3P3.3输入中断请求信号,外部中断请求有两种触发方式:输入中断请求信号,外部中断请求有两种触发方式:电平触发及边沿触发电平触发及边沿触发。用户可以通过对特殊功能寄存器。用户可以通过对特殊功能寄存器TCONTCON中中IT0IT0和和IT1IT1位的编程来选择。相应位定义格式如下:位的编程来选择。相应位定义格式如下:0INT1INTIE0(IE1)I
23、E0(IE1):外部中断:外部中断0(0(或或1)1)的中断请求标志位。的中断请求标志位。(硬件置硬件置位、硬件复位位、硬件复位)IE0(IE1)=1 IE0(IE1)=1,表示,表示 ()()检测到有效检测到有效的中断请求信号;的中断请求信号;IE0(IE1)=0IE0(IE1)=0,表示,表示 ()()上无有效的上无有效的中断请求信号。中断请求信号。0INT1INT0INT1INT5.2.2 中断源和中断请求标志2 2内部中断内部中断内部中断有:内部中断有:定时器定时器/计数器计数器T0/T1T0/T1的溢出中断,的溢出中断,串行口的发送串行口的发送/接收中断。接收中断。T0/T1T0/T
24、1的溢出中断标志位的溢出中断标志位TF0TF0、TF1TF1:对外部脉冲计:对外部脉冲计数由数由P3.4 P3.4、P3.5P3.5输入脉冲信号。当输入脉冲信号。当T0/T1T0/T1计数到由全计数到由全1 1变变为全为全0 0时,由时,由硬件自动置位硬件自动置位TCONTCON的的TF0TF0或或TF1TF1,向,向CPUCPU申请申请中断。中断。CPUCPU响应中断后能自动撤除中断请求信号响应中断后能自动撤除中断请求信号(硬件复硬件复位位)。5.2.2 中断源和中断请求标志 串行口的中断标志位串行口的中断标志位TI TI、RIRI:当串行口发送完或接:当串行口发送完或接收完一帧信息后,通过
25、接口硬件收完一帧信息后,通过接口硬件自动置位自动置位SCONSCON的的TITI或或RIRI位向位向CPUCPU申请的。当申请的。当CPUCPU响应中断后,需用户采用响应中断后,需用户采用软件方软件方法清零法清零,以便撤除中断请求信号。,以便撤除中断请求信号。5.2.2 中断源和中断请求标志串行口控制器串行口控制器SCONSCONTITI:串行口发送中断源。发送完一帧,由:串行口发送中断源。发送完一帧,由硬件置位硬件置位。响应。响应中断后,必须用中断后,必须用软件清软件清0 0。RIRI:串行口接收中断源。接收完一帧,由:串行口接收中断源。接收完一帧,由硬件置位硬件置位。响应。响应中断后,必须
26、用中断后,必须用软件清软件清0 0。5.2.2 中断源和中断请求标志三、三、中断系统控制中断系统控制1 1中断允许控制寄存器中断允许控制寄存器 MCS-51MCS-51单片机对各中断源的中断开放单片机对各中断源的中断开放(允许允许)或关闭或关闭(屏屏蔽蔽)是由内部的中断允许寄存器是由内部的中断允许寄存器IEIE的各位来进行两级控制的各位来进行两级控制的。所谓两级控制是指各个中断源的允许控制位与一个中的。所谓两级控制是指各个中断源的允许控制位与一个中断允许总控位断允许总控位EAEA配合实现对中断请求的控制。配合实现对中断请求的控制。EAEA(IE.7IE.7):允许禁止全部中断。当:允许禁止全部
27、中断。当EA=0EA=0,则禁止所有,则禁止所有中断的响应;当中断的响应;当EAEA1 1,则各中断源的响应与否取决于各,则各中断源的响应与否取决于各自的中断控制位的状态。自的中断控制位的状态。5.2.3 中断系统控制5.2.3 中断系统控制 X(IE.6X(IE.6):保留位,无意义。):保留位,无意义。ET2(IE.5ET2(IE.5):定时计数器:定时计数器2 2(80528052型单片机)的溢出或捕型单片机)的溢出或捕获中断响应控制位。获中断响应控制位。ET2=0ET2=0则禁止中断响应(关中断);则禁止中断响应(关中断);ET2=1ET2=1为允许中断响应(开中断)。为允许中断响应(
28、开中断)。ESES(IE.4IE.4):串行通信接收发送中断响应控制位。:串行通信接收发送中断响应控制位。ESES0 0,禁止中断响应(关中断),禁止中断响应(关中断);ES=1ES=1,允许中断响应,允许中断响应(开中断)(开中断)。ETiETi(IE.3,IE.1 IE.3,IE.1):定时器计数器:定时器计数器i(i=0i(i=0、1)1)的溢出的溢出中断响应控制位。中断响应控制位。ETiETi=0=0,禁止中断响应(关中断),禁止中断响应(关中断);ETiETi=1=1,则允许中断响应(开中断),则允许中断响应(开中断)。EXiEXi(IE.2 IE.2、IE.0 IE.0):外部中断
29、:外部中断i i()中断响应控制)中断响应控制位。位。EXiEXi=0=0,禁止中断响应(关中断),禁止中断响应(关中断);EXiEXi=1=1则允则允许中断响应(开中断)许中断响应(开中断)。iINT5.2.3 中断系统控制例如例如:要使要使INT0INT0开中开中(其余关中其余关中),可执行下列指令:,可执行下列指令:MOV IEMOV IE,#1000000lB#1000000lB;或者:或者:SETB EA SETB EA ;SETB EX0 SETB EX0 ;5.2.3 中断系统控制 2 2中断优先级控制中断优先级控制 CPUCPU同一时间只能响应一个中断请求。若同时来了两同一时间
30、只能响应一个中断请求。若同时来了两个或两个以上中断请求,就必须有先有后。个或两个以上中断请求,就必须有先有后。MCS-51MCS-51单片机单片机的中断源有两个用户可控的中断优先级,即的中断源有两个用户可控的中断优先级,即高、低中断优高、低中断优先级先级,从而实现中断嵌套。,从而实现中断嵌套。5.2.3 中断系统控制CPUCPU响应中断的原则是:响应中断的原则是:1 1)先高后低)先高后低 如果多个中断请求同时出现,如果多个中断请求同时出现,CPUCPU首先响应优先级别最首先响应优先级别最高的中断请求;高的中断请求;2 2)高可断低)高可断低 高优先级的中断请求可中断正在执行的低优先级中断服高
31、优先级的中断请求可中断正在执行的低优先级中断服务程序,实现中断嵌套;务程序,实现中断嵌套;3 3)同低不断)同低不断 同级或低优先级的中断请求不能中断正在执行的中断服同级或低优先级的中断请求不能中断正在执行的中断服务程序。如果有两个或两个以上的同一优先级别的中断源务程序。如果有两个或两个以上的同一优先级别的中断源同时向同时向CPUCPU申请中断,则这些同级中断源的中断优先权按申请中断,则这些同级中断源的中断优先权按CPUCPU对内部硬件的查询次序决定对内部硬件的查询次序决定 。5.2.3 中断系统控制IPIP寄存器的格式如下:寄存器的格式如下:(可通过软件设置,定义各中断可通过软件设置,定义各
32、中断源的中断优先级别源的中断优先级别)、(IP.6IP.6、IP.7IP.7):保留位,无定义。):保留位,无定义。PT2PT2(IP.5IP.5):T2T2的中断优先级设置位。通过编程设置的中断优先级设置位。通过编程设置 PT2=1PT2=1,则定义为高优先级中断;设置,则定义为高优先级中断;设置PT2=0PT2=0,则定,则定义为低优先级中断。义为低优先级中断。PSPS(IP.4IP.4):串行通信中断优先级设置位。软件设置:串行通信中断优先级设置位。软件设置 PS=1PS=1,则定义为高优先级中断;设,则定义为高优先级中断;设PS=0PS=0,则定义为,则定义为低优先级中断。低优先级中断
33、。5.2.3 中断系统控制PTiPTi(IP.3IP.3、IP.1IP.1):TiTi中断优先级设置位。软件设中断优先级设置位。软件设置置PTiPTi=1=1,则定义为高优先级中断;设置,则定义为高优先级中断;设置PTiPTi=0=0,则定义为低优先级中断。则定义为低优先级中断。PXiPXi(IP.2IP.2、IP.0IP.0):外部中断:外部中断i i中断优先级设置位。中断优先级设置位。软件设置软件设置PXiPXi=1=1,则定义为高优先级中断;设置,则定义为高优先级中断;设置PXiPXi=0=0,则定义为低优先级中断。,则定义为低优先级中断。例如例如:若要将若要将INT1INT1、串行口设
34、置为高优先级,其余中断、串行口设置为高优先级,其余中断源设置为低优先级,可执行下列指令:源设置为低优先级,可执行下列指令:MOV IPMOV IP,#00010100B#00010100B;5.2.3 中断系统控制 当同时有两个或两个以上优先级相同的中断请求时,当同时有两个或两个以上优先级相同的中断请求时,则由内部按查询优先顺序来确定该响应的中断请求,其优则由内部按查询优先顺序来确定该响应的中断请求,其优先顺序由高向低顺序排列。优先顺序排列如下:先顺序由高向低顺序排列。优先顺序排列如下:中断优先原则:中断优先原则:1 1、低级不打断高级、低级不打断高级2 2、高级不睬低级、高级不睬低级3 3、
35、同级不能打断、同级不能打断4 4、同级、同时中断,、同级、同时中断,事先约定。事先约定。5.2.4 中断处理过程四、四、中断处理过程中断处理过程中断处理过程大致可分为四步:中断请求、中断响中断处理过程大致可分为四步:中断请求、中断响应、中断服务、中断返回。应、中断服务、中断返回。1.1.中断请求中断请求 中断源发出中断请求信号,相应的中断请求标志位中断源发出中断请求信号,相应的中断请求标志位(在中在中断允许控制寄存器断允许控制寄存器IEIE中中)置置“1”1”。5.2.4 中断处理过程2 2中断响应中断响应1)1)响应的条件响应的条件 CPUCPU在每个机器周期的在每个机器周期的S6S6按照优
36、先级查询按照优先级查询中断标志位,当相应中断源有中断请求且满足如下条件之中断标志位,当相应中断源有中断请求且满足如下条件之一时,一时,MSC-51MSC-51单片机响应中断。单片机响应中断。(1)(1)无同级或高级中断正在处理或无同级或高级中断正在处理或CPUCPU处在非中断响应状态,处在非中断响应状态,CPUCPU处于开中断处于开中断(即即EA=1)EA=1)状态且相应中断是开放的状态且相应中断是开放的(中断允中断允许寄存器许寄存器IEIE相应位置相应位置1)1)。(2)(2)若若CPUCPU正在响应某一中断请求时又来了新的中断请求,正在响应某一中断请求时又来了新的中断请求,则应满足高级中断
37、可以中断低级中断,实现中断嵌套;低则应满足高级中断可以中断低级中断,实现中断嵌套;低级中断只能等待现有中断服务完成后再被响应的原则。级中断只能等待现有中断服务完成后再被响应的原则。(3)(3)若若CPUCPU现行执行的指令为现行执行的指令为RETIRETI或任何访问或任何访问IEIE、IP(IP(如如SETB EA)SETB EA)的指令时,则执行完该指令且紧随其后的另一的指令时,则执行完该指令且紧随其后的另一条指令也已执行完毕后才响应该中断请求。条指令也已执行完毕后才响应该中断请求。5.2.4 中断处理过程2)2)中断响应过程中断响应过程 首先首先,根据中断源的优先级高低,对相应的优先级状,
38、根据中断源的优先级高低,对相应的优先级状态触发器置态触发器置1 1;然后然后,保护断点,把当前程序计数器,保护断点,把当前程序计数器PCPC的内容压入堆的内容压入堆栈。栈。其次其次,封锁同级和低级中断,以防在响应中断期间受其,封锁同级和低级中断,以防在响应中断期间受其他中断的干扰,清除相应的中断请求标志位(串行口中断他中断的干扰,清除相应的中断请求标志位(串行口中断请求标志请求标志RIRI和和TITI除外)除外);最后最后,根据中断源入口地址,转入执行相应中断服务程,根据中断源入口地址,转入执行相应中断服务程序,各中断服务程序的入口地址见表序,各中断服务程序的入口地址见表5.15.1。5.2.
39、4 中断处理过程中断源入口地址INT00003HT0000BHINT10013HT1001BHRI/TI0023H表表5.1 5.1 中断源入口地址中断源入口地址5.2.4 中断处理过程3)3)中断响应时间中断响应时间 所谓中断响应时间是指所谓中断响应时间是指CPUCPU检测到中断请求信号到转检测到中断请求信号到转入中断服务程序入口所需要的机器周期数。入中断服务程序入口所需要的机器周期数。MCS-51MCS-51单片机响应中断的最短时间为单片机响应中断的最短时间为3 3个机器周期,个机器周期,时间最长需要时间最长需要8 8个机器周期。个机器周期。5.2.4 中断处理过程3 3 执行中断服务程序
40、执行中断服务程序 中断服务程序应包含以下几部分:中断服务程序应包含以下几部分:保护现场:保护现场:中断时刻单片机存储单元中的数据或状态中断时刻单片机存储单元中的数据或状态.(2)(2)允许中断和禁止中断允许中断和禁止中断 在在CPUCPU执行当前中断服务程序的过程中,往往又会执行当前中断服务程序的过程中,往往又会 有其它中断源的中断请求出现。有其它中断源的中断请求出现。(3)(3)执行中断服务程序主体,完成相应操作执行中断服务程序主体,完成相应操作 (4)(4)恢复现场恢复现场5.2.4 中断处理过程4 4 中断返回中断返回 在中断服务程序最后,必须安排一条中断返回指令在中断服务程序最后,必须
41、安排一条中断返回指令RETIRETI,当,当CPUCPU执行执行RETIRETI指令后,自动完成下列操作:指令后,自动完成下列操作:恢复断点地址。恢复断点地址。开放同级中断,以便允许同级中断源请求中断。开放同级中断,以便允许同级中断源请求中断。5.2.5 中断请求的撤除五、中断请求的撤除五、中断请求的撤除 中断源发出中断请求,相应中断请求标志置中断源发出中断请求,相应中断请求标志置“1”1”。CPUCPU响应中断后,响应中断后,必须必须清除中断请求清除中断请求“1”1”标志。否则中断标志。否则中断响应返回后,将再次进入该中断,引起死循环出错。响应返回后,将再次进入该中断,引起死循环出错。对定时
42、对定时/计数器计数器T0T0、T1T1中断,外中断边沿触发方式,中断,外中断边沿触发方式,CPUCPU响应中断时就用响应中断时就用硬件自动清除硬件自动清除了相应的中断请求标志。了相应的中断请求标志。对外中断电平触发方式,需要采取对外中断电平触发方式,需要采取软硬结合软硬结合的方法消除的方法消除后果。后果。对串行口中断,用户应在串行中断服务程序中用对串行口中断,用户应在串行中断服务程序中用软件清软件清除除TITI或或RIRI。5.2.6 中断的应用及编程六、中断的应用及编程六、中断的应用及编程 中断初始化中断初始化 设置堆栈指针设置堆栈指针SPSP 定义中断优先级定义中断优先级 定义外中断触发方
43、式定义外中断触发方式 开放中断开放中断 安排好等待中断或中断发生前主程序应完安排好等待中断或中断发生前主程序应完成的操作内容。成的操作内容。5.2.6 中断的应用及编程 中断服务主程序中断服务主程序 在中断服务入口地址设置一条跳转指令,转在中断服务入口地址设置一条跳转指令,转移到中断服务程序的实际入口处。移到中断服务程序的实际入口处。根据需要保护现场。根据需要保护现场。中断源请求中断服务要求的操作。中断源请求中断服务要求的操作。恢复现场。与保护现场相对应,注意先进后恢复现场。与保护现场相对应,注意先进后出、后进先出操作原则。出、后进先出操作原则。中断返回,最后一条指令必须是中断返回,最后一条指
44、令必须是RETIRETI。5.2.6 中断的应用及编程例例5-15-1 若要求外部中断若要求外部中断 引脚为边沿触发方式,以及处引脚为边沿触发方式,以及处于高中断优先级,编写中断系统初始化程序。于高中断优先级,编写中断系统初始化程序。解:解:程序的编制有两种方法,一种是采用位操作指令进行程序的编制有两种方法,一种是采用位操作指令进行编制,另一种是字节型指令编制。程序分别如下。编制,另一种是字节型指令编制。程序分别如下。方法一:方法一:SETB EASETB EASETBSETBEX1EX1;开开INT1INT1中断中断SETB PX1SETB PX1;令令INT1INT1为高优先级为高优先级S
45、ETBSETBIT1IT1;令令INT1INT1为边沿触发方式为边沿触发方式方法二:方法二:MOVMOVIE,IE,#84H#84H;开开INT1INT1中断中断ORLORLIP,IP,#04H#04H;令令INT1INT1为高优先级为高优先级ORL TCON,#04HORL TCON,#04H;令令INT1INT1为边沿触发方式为边沿触发方式1INT5.2.6 中断的应用及编程例例5-25-2:单片机通过单片机通过P1P1口以中断方式向外设输出数据,当外设准口以中断方式向外设输出数据,当外设准备好接收数据时,就发出选通信号,经触发器和非门至备好接收数据时,就发出选通信号,经触发器和非门至IN
46、T0INT0,如下图所示。请编制相应程序。如下图所示。请编制相应程序。P1口P3.0QDCP SD外设选通信号接地INT0数据至外设80315.2.6 中断的应用及编程解解:当外设准备好接收一个数据后,发出选通信号,使触:当外设准备好接收一个数据后,发出选通信号,使触发器输出高电平后经非门至发器输出高电平后经非门至INT0INT0引脚,向引脚,向CPUCPU发出中断请发出中断请求,求,CPUCPU响应这个中断请求后,在中断处理程序中先撤除响应这个中断请求后,在中断处理程序中先撤除中断请求信号,中断请求信号,(通过通过P3.0=1P3.0=1,使,使INT0=1)INT0=1)再由再由P1P1口
47、将单片口将单片机内部的数据输出到外设。机内部的数据输出到外设。ORG 0000HORG 0000HSTART:LJMP MAINSTART:LJMP MAIN ORG 0003H ORG 0003H LJMP IINT0 LJMP IINT0 ORG 0030H ;ORG 0030H ;主程序主程序MAIN:CLR IT0 ;MAIN:CLR IT0 ;低电平触发低电平触发 SETB EASETB EA SETB EX0 ;SETB EX0 ;开中断开中断 SETB PX0SETB PX0 ;优先级设置;优先级设置 MOV DPTR,#1000H MOV DPTR,#1000H ;外设首地址;
48、外设首地址 .5.2.6 中断的应用及编程 ORG 0100HORG 0100HIINT0:IINT0:PUSH PSW ;PUSH PSW ;中断处理程序中断处理程序 PUSH ACCPUSH ACC CLR P3.0 CLR P3.0 NOP NOP NOP NOP SETB P3.0 ;SETB P3.0 ;撤除撤除INT0INT0 MOV A,P1 ;MOV A,P1 ;输入数据输入数据 MOVX DPTR,A ;MOVX DPTR,A ;保存数据保存数据 INC DPTRINC DPTR .POP ACC ;POP ACC ;恢复现场恢复现场 POP PSWPOP PSW RETI
49、;RETI ;返回主程序返回主程序5.3 MCS-515.3 MCS-51单片机定时器单片机定时器/计数器计数器5.3 MCS-515.3 MCS-51单片机定时器单片机定时器/计数器计数器软件定时:循环程序,定时准确,无需硬件电软件定时:循环程序,定时准确,无需硬件电路,但增加路,但增加CPUCPU开销开销硬件定时:硬件电路实现,不占用硬件定时:硬件电路实现,不占用CPUCPU时间,时间,使用不够方便使用不够方便可编程定时可编程定时/计数器:对系统计数器:对系统时钟脉冲时钟脉冲的计数的计数定时,计数值通过程序设定,定时准确,使用定时,计数值通过程序设定,定时准确,使用灵活方便灵活方便5.3
50、MCS-515.3 MCS-51单片机定时器单片机定时器/计数器计数器 定时器定时器/计数器可以是独立的集成芯片,也计数器可以是独立的集成芯片,也可以构成于单片机内部,但无论何种形式都具可以构成于单片机内部,但无论何种形式都具有以下共性:有以下共性:1 1、定时、计数器的核心部件是一个、定时、计数器的核心部件是一个加加1 1计数器计数器。两种工作方式的区别在于计数脉冲来。两种工作方式的区别在于计数脉冲来源源,定时器定时器/计数器可以工作于计数方式也可以计数器可以工作于计数方式也可以工作于定时方式。书工作于定时方式。书P81P812 2、定时器、定时器/计数器的计数值在范围内是计数器的计数值在范