《计数器串行口和中断器.ppt》由会员分享,可在线阅读,更多相关《计数器串行口和中断器.ppt(77页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第五章第五章 MCS-51定时定时/计数器,串行口计数器,串行口及中断系统及中断系统5.1 MCS-51定时定时/计数器计数器5.2 MCS-51 串行口串行口5.3 MCS-51单片机中断系统单片机中断系统2一、定时定时/计数器结构计数器结构 2个个16位定时位定时/计数器计数器T0和和T1分别由分别由8位寄存器位寄存器TH0,TL0和和TH1,TL1构成,它们是以构成,它们是以“加加1”的方式完成的方式完成计数,计数寄存器满则溢出,并向计数,计数寄存器满则溢出,并向CPU 发出中断。发出中断。31方式控制寄存器方式控制寄存器TMOD GATE:门控位,与:门控位,与INTX有关,当有关,
2、当GATE=1,TRX=1 时,时,INTX=1开始计数,而开始计数,而INTX=0时则终止计数。时则终止计数。C/T:计数器方式还是定时器方式选择位。:计数器方式还是定时器方式选择位。M1M0:操作方式选择位,对应:操作方式选择位,对应4种操作方式,如下表:种操作方式,如下表:是一个是一个8位位SFR,不可以位寻址,各位定义如下,不可以位寻址,各位定义如下,4二:定时器控制寄存器二:定时器控制寄存器TCONTCONTF1:T1溢出标志。当溢出标志。当T1产生溢出,由硬件置产生溢出,由硬件置“1”,可向,可向CPU发出中断请求,发出中断请求,CPU响应中断后被硬件自动清响应中断后被硬件自动清0
3、,也,也可由程序查询清可由程序查询清0。TR1:T1运行控制位。由软件置运行控制位。由软件置“1”或置或置“0”来启动或关来启动或关闭闭T1工作,因而又称启工作,因而又称启/停控制位。停控制位。TF0:T0溢出标志。溢出标志。TR0:T0运行控制位。运行控制位。是一个是一个8位位SFR,可以位寻址,各位定义如下,可以位寻址,各位定义如下55.1.3 定时定时/计数器的计数器的4种工作方式种工作方式一:方式一:方式0 当编程使当编程使TMOD中的中的M1M0=0时,计数器按时,计数器按13位工作,由位工作,由TL的低的低5位(高三位未用)和位(高三位未用)和TH的的高高8位构成位构成13位计数器
4、,其逻辑图如下位计数器,其逻辑图如下6工作方式工作方式二二:方式方式1 当编程使方式寄存器当编程使方式寄存器TMOD中中M1M0=10时,定时时,定时/计计数器按数器按16位工作,其操作方式与方式位工作,其操作方式与方式0完全相同。完全相同。7工作方式工作方式三三:方式方式2 当当M1M0=10时,定时时,定时/计数器成为可自动装载计数初计数器成为可自动装载计数初值的值的8位寄存器。位寄存器。TL1或或TL0定义为计数器,而其高定义为计数器,而其高8位位TH1和和TH0为赋值寄存器(装计数初值),在为赋值寄存器(装计数初值),在TL1,TL0溢出后,重新装入溢出后,重新装入TH1,TH0的内容
5、,而的内容,而TH1,TH0的内容不变。的内容不变。8工作方式工作方式四四:方式方式3 当当M1M0=11时,内部控制逻辑把时,内部控制逻辑把TL0和和TL1配置成配置成2个互相独立的个互相独立的8位计数器。位计数器。9工作方式工作方式3 TL08位计数位计数/定时器。工作方式与方定时器。工作方式与方式式0完全相同。完全相同。TH08位定时器。位定时器。105.1.5 定时定时/计数器的初始化计数器的初始化一:定时一:定时/计数器的初始化步骤计数器的初始化步骤1:确定工作方式:确定工作方式-对方式寄存器对方式寄存器TMOD赋值。赋值。2:预置定时器:预置定时器/计数器初值,直接将初值写入计数器
6、初值,直接将初值写入TL0,TH1或或TL1,TH1中。中。3:开启或禁止定时:开启或禁止定时/计数器中断:计数器中断:SET ET0。4:启动定时器:启动定时器/计数器:对计数器:对TCON 中的中的TR1或或TR0置置1。11二二:计数器初值的计算计数器初值的计算1:计数器最大计数值计数器最大计数值:选择不同的工作方式,最大:选择不同的工作方式,最大计数值计数值M不同。不同。方式方式0:M=213=8192 方式方式1:M=216=65536 方式方式2,3:M=28=2562:计数初值计数初值X的计算:的计算:(1)计数方式时:)计数方式时:X=M-计数值计数值(2)定时方式时:()定时
7、方式时:(M-X)T=定时值定时值故,故,X=M-定时值定时值/T (其中其中T为计数周期,是单片为计数周期,是单片机时钟的机时钟的12分频)。分频)。12例例5-1 若单片机晶振为若单片机晶振为12MHZ,要求产生,要求产生500US定时,试计算定时,试计算X的初的初值。值。由于T=1s,产生500s定时,需要“+1”500次,定时器方能产生溢出。采用方式0:(13位计数器)X=213(50010-6/10-6)=8192 500=7692=1E0CH=F00CH采用方式1:(16位计数器)X=216(50010-6/10-6)=65036=FE0CH?1 1 1 1 0 0 0 00 0
8、0 0 1 1 0 0THiTLiD7D6D50 0 0不用F00CH=?暂时写成解:晶振为12MHz,则T=12/12=1s。135.1.6 定时定时/计数器应用举例计数器应用举例1、定时器定时器2、计数器计数器14定时器应用举例定时器应用举例解解1:方式:方式0:用用P1.0做方波输出信号,周期为做方波输出信号,周期为2MS的方波即每的方波即每1MS改变一次电平,故定时值应为改变一次电平,故定时值应为1ms,可作,可作“+1”运算运算1000次,使次,使T1作定时器工作在方式作定时器工作在方式0,即,即13位计数器。位计数器。定时初值:定时初值:X=M-计数次数计数次数=8192-1000
9、=7192=1C18H 由于由于TL1的高的高3位不用,位不用,1C18H应插入未用的三位,应插入未用的三位,11100000 000 11000 B=E018H TH1初值为初值为E0H,TL1的初值为的初值为18H。例例5-2 设主频为设主频为12MHZ,利用定时器,利用定时器T1定时,使定时,使P1.0输输出周期为出周期为2MS的方波。的方波。方式控制字的设定方式控制字的设定MOV TMOD,#00HMOV TH1,#0E0HMOV TL1,#18HSETB EASETB ET1SETB TR1SJMP$;T1按方式0工作;给计数器赋初值;CPU开总中断;T1允许中断;启动T1;模拟主程
10、序程序:16ORG 001BHAJMP BR1BR1:MOV TH1,#0E0HMOV TL1,#18HCPL P1.0RETI;T1中断入口;转T1中断服务;重装T1的初值;输出方波;返回ORG 0100H17方式方式1 若定时器若定时器T1T1按方式按方式1 1工作,即工作,即1616位计数器,则位计数器,则定时初值:定时初值:X=M-X=M-计数次数计数次数=65536-1000=FC18H=65536-1000=FC18H TH1 TH1初值为初值为FCHFCH,TL1TL1初值为初值为18H18H。其他编程与方。其他编程与方式式0 0类同。类同。18例例5-3 根据例根据例5-2要求
11、产生周期为要求产生周期为2MS方波,但不用中断方波,但不用中断方式,而用查询方式工作,查询标志为方式,而用查询方式工作,查询标志为TF1。18MOV TMOD,#10HSETB TR1 LOOP:MOV TH1,#0FCHMOV TL1,#18HJNB TF1,$CPL P1.0CLR TF1SJMP LOOP;T1按方式1工作;启动T1定时;给计数器赋初值;TF10;输出方波;返回解:利用方式解:利用方式1,16位计数器;位计数器;当定时时间到,当定时时间到,T1计数器溢出使计数器溢出使TF1置置“1”由于不采用中断方式,由于不采用中断方式,TF1置置“1”后不会自动复后不会自动复“0”,故
12、需要指令给,故需要指令给TF1清清”0“。192.作计数器用作计数器用计数器方式计数器方式2的应用的应用例例5-4 用用T0监视一生产流水线,每生产监视一生产流水线,每生产100个工件,个工件,发出一包装命令,包装成一箱,并记录其箱数。发出一包装命令,包装成一箱,并记录其箱数。解解 硬件电路如图所示硬件电路如图所示:P1.0 T0Vcc包装机包装命令100个光源光敏20GATE C/TM1M0控制T1控制T0TMOD选方式2选计数器INT0不参与控制0 1 1 0 计数初值X=M64H=9CH 用P1.0启动外设发包装命令 用R5R4作箱数计数器 方式字TMOD=06H21程序:MOV TMO
13、D,#6MOV P1.0,#0MOV R5,#0MOV R4,#0MOV TH0,#9CHMOV TL0,#9CHSETB EASETB ET0SETB TR0SJMP$ORG 000BHAJMP COUNT;P1.0为低;箱数计数器清“0”;置T0工作方式;T0开中断;CPU开中断;启动T0;模拟主程序;T0中断入口;转向中断服务22 COUNT:MOV A,R4ADD A,#1MOV R4,AMOV A,R5ADDC A,#0MOV R5,ASETB P1.0MOV R3,#100 DLY:NOPDJNZ R3,DLYCLR P1.0RETI中断服务:;箱计数器加“1”;启动外设包装;给外
14、设足够时间;延时;停止包装;中断返回;先在低字节加“1”ORG 0100H23门控位门控位GATE的应用的应用GATE C/TM1M0控制T1控制T0TMOD选方式1选定时器方式INT1为高时,T1开始计数1 0 0 124门控位门控位GATE的应用的应用例例5-5 用用GATE控制位,测量控制位,测量INT1(P3.3)引脚上正脉冲的)引脚上正脉冲的宽度(设晶振位宽度(设晶振位12MHZ,正脉冲宽度小于,正脉冲宽度小于65MS)。)。25 执行完执行完CLR TR1后停止计数,此时后停止计数,此时TH1,TL1的内容即为正脉冲宽度(单位:的内容即为正脉冲宽度(单位:US)。)。MOV TMO
15、D,#90HMOV TL1,#0MOV TH1,#0 JB P3.3,$SETB TR1JNB P3.3,$JB P3.3,$CLR TR1:程序:;置T1方式控制字;T1从0开始计数;等INT1低电平;T1允许计数;等INT1高电平;等INT1低电平;停止计数“与”计数时间265.2 MCS-51 串行口串行口51系列有一个可编程的全双工的串行系列有一个可编程的全双工的串行I/O口。口。串行通信:是指数据一位一位地按顺序传送的通信方式。串行通信:是指数据一位一位地按顺序传送的通信方式。并行通信:并行通信:8位数据同时传递。位数据同时传递。特点:特点:串行通信:只需一根数据线,线路简单,成本低
16、,但传递串行通信:只需一根数据线,线路简单,成本低,但传递速率慢,传递距离长。速率慢,传递距离长。并行通信:需要并行通信:需要8根数据线,传递速度快,传递距离短。根数据线,传递速度快,传递距离短。波特率:每秒钟内能发送或接收的二进制位数称为波特率。波特率:每秒钟内能发送或接收的二进制位数称为波特率。单位是:单位是:位位/秒秒(bps)。它表示串行通信传输的快慢。通常为:。它表示串行通信传输的快慢。通常为:1400,2800,3200,7200,9600每位的传输时间每位的传输时间Td=1/波特率波特率27单工串行口,半双工串行口单工串行口,半双工串行口和全双工串行口和全双工串行口按照串行进行交
17、换的方式可分为单工串行口,半双工串行按照串行进行交换的方式可分为单工串行口,半双工串行口和全双工串行口。(口和全双工串行口。(9Q314)单工串行口:只能发送。单工串行口:只能发送。双工串行口:既能发送,又能接受。双工串行口:既能发送,又能接受。半双工:发送和接受不能同时进行。半双工:发送和接受不能同时进行。全双工:发送和接受可以同时进行。全双工:发送和接受可以同时进行。285.2.1 5.2.1 串行通信的两种基本方式串行通信的两种基本方式异步传送方式:发送端与接受端可以有各自的时异步传送方式:发送端与接受端可以有各自的时钟来控制数据的发送和接收,这两个时钟源彼此钟来控制数据的发送和接收,这
18、两个时钟源彼此独立,互不同步。字符的发送是随机进行的,因独立,互不同步。字符的发送是随机进行的,因而,在异步通信时,对传送的字符必须规定一定而,在异步通信时,对传送的字符必须规定一定的格式。的格式。同步传送方式:发送时钟和接收时钟保持严格同同步传送方式:发送时钟和接收时钟保持严格同步。步。29异步传送方式一个字符在异步传送中又称为一帧数据,一帧数据由四部分组一个字符在异步传送中又称为一帧数据,一帧数据由四部分组成:成:起始位起始位:为逻辑:为逻辑“0”信号,占用一位,用来通知接收设备,信号,占用一位,用来通知接收设备,一个新的字符开始了。一个新的字符开始了。数据位数据位:紧跟着起始位的是:紧跟
19、着起始位的是 58 位数据的最低位位数据的最低位 LSB。异步。异步传送规定低位在前,高位在后。传送规定低位在前,高位在后。30异步传送方式奇偶位奇偶位:紧跟在数据最高位:紧跟在数据最高位 MSB 之后,占用一位,奇偶校验之后,占用一位,奇偶校验时,根据协议置时,根据协议置“1”或或“0”(可省去)。(可省去)。停止位停止位:为逻辑:为逻辑“1”信号,可占用一位,也可占用两位。接信号,可占用一位,也可占用两位。接收端收到停止位时,表示一帧数据结束。同时为接收下一帧数收端收到停止位时,表示一帧数据结束。同时为接收下一帧数据作好准备,只要再收到一个逻辑据作好准备,只要再收到一个逻辑“0”就是一个新
20、字符开始就是一个新字符开始了。了。31异步传送方式 因此,在异步通信时,收发双方需达成协议,一是规定因此,在异步通信时,收发双方需达成协议,一是规定字符格式:即采用几位数据,是否要奇偶校验位,是奇校验字符格式:即采用几位数据,是否要奇偶校验位,是奇校验还是偶校验,几位停止位等。二是规定波特率,以及时钟频还是偶校验,几位停止位等。二是规定波特率,以及时钟频率与波特率之间的比例关系等。率与波特率之间的比例关系等。由于异步通信按即定的字符格式和波特率传送数据,因由于异步通信按即定的字符格式和波特率传送数据,因而硬件线路简单,实现方便。缺点是数据帧中要插入起始位而硬件线路简单,实现方便。缺点是数据帧中
21、要插入起始位和停止位等附加位以实现同步,从而降低了有效数据位的传和停止位等附加位以实现同步,从而降低了有效数据位的传送速率。送速率。32同步传送方式同步传送方式发送时钟和接收时钟保持严格同步。发送时钟和接收时钟保持严格同步。数据块传递开始有数据块传递开始有12个同步字符来指示。个同步字符来指示。同步传送的数据一般叫信息帧,信息帧由同步传送的数据一般叫信息帧,信息帧由“同步字符同步字符+一串数据字符一串数据字符+校验字符校验字符”组组成。成。同步传送的传送速度快,但硬件要求高。同步传送的传送速度快,但硬件要求高。331.数据缓冲器数据缓冲器SBUF 串行口有两个物理空间上各自独立的串行口有两个物
22、理空间上各自独立的发送缓冲器(只写不读)发送缓冲器(只写不读)接收缓冲器(只读不写)接收缓冲器(只读不写)它们使用了同一地址它们使用了同一地址99H,(一般还是用其标,(一般还是用其标号号SBUF),通过不同的指令就可以分别访问),通过不同的指令就可以分别访问这两个缓冲器。这两个缓冲器。接受缓冲器是双缓冲的,以避免两帧数据的重叠接受缓冲器是双缓冲的,以避免两帧数据的重叠问题。问题。5.2.2 MCS-51串行口结构串行口结构342.串行口控制寄存器串行口控制寄存器SCON和和PCON1:SCON各位的定义各位的定义35SCON各位的定义各位的定义SM0,SM1:串行口方式选择位,:串行口方式选
23、择位,见下表见下表。SM2:方式方式2和方式和方式3多机通信控制位。多机通信控制位。在方式在方式2,3下下:SM2=1时:必须接受到的第九位数据时:必须接受到的第九位数据RB8=1才才使中断标志使中断标志RI置置1,提请中断。,提请中断。SM2=0时:无论时:无论RB8为何值,均可使为何值,均可使RI置置1,提请中断。提请中断。在方式在方式0和方式和方式1时,一般将时,一般将SM2置置036SCON各位的定义各位的定义 REN:允许接收控制位。由软件置:允许接收控制位。由软件置“1”时,允许时,允许接收,置接收,置“0”时,禁止接收。时,禁止接收。TB8:在方式:在方式2和和3中要发送的第中要
24、发送的第9位数据,需要时位数据,需要时由软件置位或复位。由软件置位或复位。RB8:在方式:在方式2和和3中接收到的第中接收到的第9位数据,在方式位数据,在方式1时,如时,如SM2=0,RB8是接收到的停止位。在方式是接收到的停止位。在方式0中,中,不使用不使用RB8。TI:发送中断标志。在发送停止位时硬件置:发送中断标志。在发送停止位时硬件置“1”,必须由软件清必须由软件清0。RI:接收中断标志。在接收到停止位时由硬件置:接收中断标志。在接收到停止位时由硬件置“1”,软件清软件清037串行口工作方式串行口工作方式38特殊功能寄存器特殊功能寄存器PCON字节地址为:字节地址为:87H与串口有关的
25、只有与串口有关的只有PCON的最高位的最高位SMOD。SMOD:波特率选择位。:波特率选择位。SMOD=1,波特率加倍。,波特率加倍。39串行口工作方式串行口工作方式一:方式一:方式0:移位寄存器方式,可外接移位寄存器,:移位寄存器方式,可外接移位寄存器,以扩展以扩展I/O口。口。1:波特率:固定为时钟频率的:波特率:固定为时钟频率的12分频。分频。2:方式:方式0的发送过程:的发送过程:当当TI=0时,执行时,执行MOV SBUF,A启动启动RXD线发出线发出8位数据位数据TXD线发送同步脉冲线发送同步脉冲8位数据发送完后,位数据发送完后,TI由硬件置位,向由硬件置位,向CPU请求中断请求中
26、断(若中断开放)。(若中断开放)。CPU响应中断后响应中断后用软件使用软件使TI清零清零40方式0发送时序ALEWRITE TO SBUFSENDD0D1D2D3D4D5D6D7SHIFTRXDTIS6P2TXDS3P1S5P141方式方式0硬件逻辑图硬件逻辑图423:方式:方式0的接收过程的接收过程方式0接收时序ALEWRITE TO SBUFRECEIVESHIFTRXDTXDRID0D1D3D4D5D6D7D2S5P243二:方式二:方式1:8位位UART,波特率可变,波特率可变传送帧的数据为传送帧的数据为10位,其中一位起始位,位,其中一位起始位,8位数据位数据位,位,1位停止位。位停
27、止位。波特率波特率=2SMOD/32(T1溢出率)溢出率)=2SMOD fosc/32 12(2K-初值)初值)1:传送波特率:传送波特率=T1溢出率溢出率/32(若(若SMOD=1,则加倍为,则加倍为T1溢出率溢出率/16)T1溢出频率的计算:溢出频率的计算:和其工作方式有关。和其工作方式有关。441)当)当C/T=1时,时,T1被选择为计数器方式:被选择为计数器方式:T1溢出率溢出率=计数速度计数速度/(2K-初值)初值)其中其中K为定时器为定时器T1的位数:的位数:方式方式0,K=13方式方式1,K=16方式方式2,K=8其中计数速度为外部其中计数速度为外部T1(P3.5)的输入时钟频率
28、,)的输入时钟频率,该频率不超过该频率不超过fosc/24。452)当)当C/T=0时,时,T1被选择为定时器方式被选择为定时器方式T1溢出率溢出率=fosc/12(2K-初值)初值)计数速度为计数速度为fosc/12,即每个机器周期计数一次。,即每个机器周期计数一次。在串行通信时,定时器在串行通信时,定时器T1作波特率发生器,经常作波特率发生器,经常采用采用8位自动装载方式(方式位自动装载方式(方式2),这时:),这时:2、方式1波特率可变的8位异步通信接口方式。波特率=2SMOD/32T1溢出率1)方式1发送CPU 执行一条写SBUF指令,就启动了串口发送。当SEND和DATA有效时,数据
29、从TXD输出。2)方式1接收 允许接收位REN被置“1”后,接收器就开始工作,跳变检测器以波特率16倍的速率采样RXD端的电平,RXD引脚上发生由“1”到“0”的跳变,接收器开始接收。TX CLOCKWRITE TO SBUFSENDDATAD0D1D2D3D4D5D6D7START BITSTOP BITSHIFTTXDTI 方式1发送时序TX CLOCKSTART BITSTOP BITSHIFTRXDD0D1D2D3D4D5D6D7BIT DETECTOR SAMPLE TIMESRI方式1接收时序3、方式29位异步通信接口方式。传送一帧数据信息为11位。波特率=2SMOD/64fosc
30、1)方式2发送 数据由TXD端输出,附加的第9位数据由SCON中的TB8提供。CPU 执行一条写SBUF指令,就启动了串口发送,发送完TI置1。2)方式2接收 与方式1相似,REN被置“1”后,跳变检测器以波特率16倍的速率采样RXD端的电平,RXD引脚上发生由“1”到“0”的跳变,接收器开始接收。三、方式二STOP BIT方式2发送时序TX CLOCKWRITE TO SBUFSENDDATAD0D1D2D3D4D5D6D7START BITSHIFTTXDTITB8方式2接收时序TX CLOCKSTART BITSTOP BITSHIFTRXDD0D1D2D3D4D5D6D7BIT DET
31、ECTOR SAMPLE TIMESRIRB84、方式39位异步通信接口方式。波特率=2SMOD/32T1的溢出率其他与方式2类似四、方式三525.2.5 串行口的应用串行口的应用1:方式:方式0的应用的应用例:应用串行口方式例:应用串行口方式0输出,在串行口外接移位寄存器,构成显示器接输出,在串行口外接移位寄存器,构成显示器接口。如图口。如图 所示。所示。3 片(理论上可以为片(理论上可以为 n 片,为举例方便而用片,为举例方便而用 3 片)片)74LS164 串接成串接成 24 位并行输出移位寄存器,每片位并行输出移位寄存器,每片 74LS164 接一个共接一个共阳极阳极 8 段段 LED
32、 显示器,构成三位数据显示,这里显示器,构成三位数据显示,这里 P1.0 作串行输出作串行输出选择信号(只有选择信号(只有 P1.0 为高时,串行同步信号为高时,串行同步信号 TXD 才能输出),这才能输出),这种显示器称为静态显示(非动态扫描式显示),种显示器称为静态显示(非动态扫描式显示),CPU 不必为显示服不必为显示服务而频繁执行扫描任务。务而频繁执行扫描任务。53程序中程序中 TABLE 是字形码表首地址,是字形码表首地址,ADD A,#13 是地址调整指是地址调整指令,以查字形表,这里令,以查字形表,这里#13 是指查表指令与字形码表首地址是指查表指令与字形码表首地址 TABLE
33、的距离,即相隔的字节数。的距离,即相隔的字节数。542 2:方式:方式2 2或方式或方式3 3的应用的应用 设一台多机系统,有一个主机,有三个从机,设一台多机系统,有一个主机,有三个从机,从机的地址编号为从机的地址编号为01H01H,02H02H,03H03H,主从机设置为相同的,主从机设置为相同的工作方式(方式工作方式(方式2 2或方式或方式3 3)和相同的波特率,主机发送并)和相同的波特率,主机发送并为从机接收的信息有两类:一类是地址,用于指示需要和为从机接收的信息有两类:一类是地址,用于指示需要和主机通信的从机地址,由串行数据的第主机通信的从机地址,由串行数据的第9 9位为位为“1 1”
34、标志。标志。第二类是数据,由串行口数据第第二类是数据,由串行口数据第9 9位为位为0 0标志。标志。55多机系统的通信过程多机系统的通信过程565.3 MCS-51单片机中断系统单片机中断系统 CPU与外部设备交换信息通常有以下几种与外部设备交换信息通常有以下几种方式:方式:程序控制传送方式程序控制传送方式,又分为无条件传送方式和,又分为无条件传送方式和查询传送方式。查询传送方式。直接存储器存取(直接存储器存取(DMA)方式)方式。中断传送方式中断传送方式。57程序控制传送方式优点:通用性好,可优点:通用性好,可以用于各类外部设备以用于各类外部设备和和CPU间的数据传送。间的数据传送。缺点:需
35、要有一个等缺点:需要有一个等待过程,响应速度较待过程,响应速度较慢。慢。58中断传送方式中断传送方式 中断方式完全消除了中断方式完全消除了CPU在查询方在查询方式中的等待现象,大大提高了式中的等待现象,大大提高了CPU的工作效率。的工作效率。中断方式的另一个应用领域是实时中断方式的另一个应用领域是实时控制。控制。中断过程中断过程4个阶段个阶段请求请求响应响应断点地址保护,获取断点地址保护,获取中断服务程序入口地址中断服务程序入口地址处理处理保护现场,执行,恢保护现场,执行,恢复现场复现场中断返回中断返回RETI59直接存储器存取(直接存储器存取(DMA)方式)方式 DMA(Direct Mem
36、ory Access)方式是)方式是CPU让出数据总线(悬浮状态),使外部让出数据总线(悬浮状态),使外部设备和存储器之间直接传送(不通过设备和存储器之间直接传送(不通过CPU)数据的方式。在下述两种情况时可)数据的方式。在下述两种情况时可考虑采用考虑采用DMA方式;方式;外设和存储器之间有大量的数据需要传送。外设和存储器之间有大量的数据需要传送。外部设备的工作速度很快的憎况。外部设备的工作速度很快的憎况。605.3.1 中断的一般功能:中断的一般功能:中断请求源中断请求源:五个中断源五个中断源中断的屏蔽与开放:只有在开中断的情况下,中断的屏蔽与开放:只有在开中断的情况下,CPU才能响应中断源
37、的中断请求,一般在中断才能响应中断源的中断请求,一般在中断允许寄存器允许寄存器IE里对各中断源指定的位置里对各中断源指定的位置1为开中为开中断,置断,置0为禁止中断。为禁止中断。中断响应和中断返回:入口地址和现场保护与中断响应和中断返回:入口地址和现场保护与恢复。恢复。中断优先:两个优先级中断优先:两个优先级中断嵌套中断嵌套618051中中断断系系统统结结构构及及中中断断控控制制五个中断请求源五个中断请求源四个用于中断控制的寄存器四个用于中断控制的寄存器IE,IP,TCON(用(用六位)和六位)和SCON(用二位),用来控制中断的类(用二位),用来控制中断的类型、中断的开关和各种中断源的优先级
38、别。型、中断的开关和各种中断源的优先级别。五个中断源有两个中断优先级(高优先级或低优五个中断源有两个中断优先级(高优先级或低优先级),可以实现二级中断服务程序嵌套。先级),可以实现二级中断服务程序嵌套。62中断源中断源 每个中断源都对应一个中断请求标志位,它们设置在特殊每个中断源都对应一个中断请求标志位,它们设置在特殊功能寄存器功能寄存器TCON和和SCON中。中。当这些中断源请求中断时,相应的标志分别由当这些中断源请求中断时,相应的标志分别由TCON和和SCON中的相应位来锁存。中的相应位来锁存。8051中断系统的五个中断源为中断系统的五个中断源为INT0外部中断外部中断0请求,低电平有效。
39、通过请求,低电平有效。通过P3.2引脚输引脚输入。入。INT1 外部中断外部中断1请求,低电平有效。通过请求,低电平有效。通过P3.3引脚输引脚输入。入。T0 定时器定时器/计数器计数器0溢出中断请求。溢出中断请求。T1 定时器定时器/计数器计数器1溢出中断请求。溢出中断请求。TX/RX 串行口中断请求。当串行口完成一帧数据的发串行口中断请求。当串行口完成一帧数据的发送或接收时,便请求中断。送或接收时,便请求中断。63中断控制中断控制8051中断系统有以下四个特殊功能寄存器中断系统有以下四个特殊功能寄存器:1.定时器控制寄存器定时器控制寄存器TCON(用六位用六位)。2.串行口控制寄存器串行口
40、控制寄存器SCON(用二位用二位)。3.中断允许寄存器中断允许寄存器IE。4.中断优先级寄存器中断优先级寄存器IP。641.定时定时/计数器控制寄存器计数器控制寄存器TCON652:串行口控制寄存器串行口控制寄存器SCONTI:串行口发送中断标志位。串行口发送中断标志位。当发送出去一帧数据后,由硬件置当发送出去一帧数据后,由硬件置”1“TI标志位,表标志位,表示串行口向示串行口向CPU请求中断,请求发送下一帧数据。请求中断,请求发送下一帧数据。硬件不能自动清硬件不能自动清”0“TI标志,须在中断服务子程序里标志,须在中断服务子程序里软件清软件清”0“。RI:串行口接收中断标志:串行口接收中断标
41、志当当REN=1,串行口接收到一帧数据后,置,串行口接收到一帧数据后,置”1“RI标志,标志,表示串行口接收器正向表示串行口接收器正向CPU 请求中断,请求请求中断,请求CPU 到接到接收数据缓冲器读取数据。收数据缓冲器读取数据。RI标志必须在用户中断服务中由指令清标志必须在用户中断服务中由指令清”0“。663:中断允许寄存器:中断允许寄存器IE67 4:中断优先寄存器:中断优先寄存器IP(可位寻址):(可位寻址):IP中的各位分别是五个中断源的优先级设定位:中的各位分别是五个中断源的优先级设定位:当为当为“1”时,设定为高优先级;时,设定为高优先级;当为当为“0”时,设定为低优先级。时,设定
42、为低优先级。683:优先级结构:优先级结构原则:原则:正在执行的低级中断服务程序,能被高优先级正在执行的低级中断服务程序,能被高优先级中断请求所中断,但不能被同级中断请求所中中断请求所中断,但不能被同级中断请求所中断。断。正在执行的高优先级中断服务程序,不能被任正在执行的高优先级中断服务程序,不能被任何中断请求所中断。只能在返回主程序后再执何中断请求所中断。只能在返回主程序后再执行一条新的指令后才能响应中断。行一条新的指令后才能响应中断。CPU对同级中断源同时请求中断时的处理对同级中断源同时请求中断时的处理顺序:顺序:INT0 T0 INT1 T1 串口串口 T2695.3.4 中断响应过程中
43、断响应过程一:中断响应需要满足的条件之一一:中断响应需要满足的条件之一1:CPU处在非响应中断状态并且相应中断是开处在非响应中断状态并且相应中断是开放的。放的。2:CPU正处在响应某一中断请求时又来了新的正处在响应某一中断请求时又来了新的优先级更高的中断请求,优先级更高的中断请求,CPU会立即响应更高会立即响应更高级中断而实现中断嵌套。级中断而实现中断嵌套。3:CPU正在执行正在执行RETI或任何访问或任何访问IE/IP的指令的指令(如:(如:SETB EA)时刻,则)时刻,则CPU 必须等待执必须等待执行完下条指令才响应中断请求。行完下条指令才响应中断请求。70CPU响应中断后,必须作的几件
44、事:响应中断后,必须作的几件事:1:自动置位相应的:自动置位相应的“优先级状态优先级状态”触发器,以阻断触发器,以阻断同级或低级中断请求。同级或低级中断请求。2:关闭中断:自动清除相应中断标志(:关闭中断:自动清除相应中断标志(TI和和RI用用软件清除)软件清除)3:保护断点地址:保护断点地址:PC自动入栈。自动入栈。4:根据中断源自动将相应的中断矢量单元地址装入:根据中断源自动将相应的中断矢量单元地址装入PC中,这些中断矢量就是相应中断子程序的入口中,这些中断矢量就是相应中断子程序的入口地址。地址。71中断矢量中断矢量中断源中断源中断矢量中断矢量外部中断外部中断INT00003H定时定时/计
45、数器计数器T0溢出溢出000BH外部中断外部中断INT10013H定时定时/计数器计数器T1溢出溢出001BH串行口串行口0023H定时定时/计数器计数器T2溢出溢出002BH(中断服务程序入口地址)(中断服务程序入口地址)72 一般是在中断矢量单元放一条无条件转移一般是在中断矢量单元放一条无条件转移指令,转移目标地址就是中断服务子程序的入指令,转移目标地址就是中断服务子程序的入口地址。口地址。如:如:ORG 0003HLJMP 2000H73外部中断的响应时间与触发方式外部中断的响应时间与触发方式1:外部中断的响应时间:外部中断的响应时间中断响应时间:中断响应时间:38个机器周期个机器周期
46、2:外部中断触发方式:外部中断触发方式电平触发方式:低电平电平触发方式:低电平脉冲触发方式:负脉冲宽度脉冲触发方式:负脉冲宽度12个时钟周期。个时钟周期。74中断应用举例中断应用举例例例6-2设主频为设主频为12MHZ,利用定时器,利用定时器T1定定时,使时,使P1.0输出周期为输出周期为2MS的方波。的方波。75765.3.6 外部中断源的扩展设计外部中断源的扩展设计一:利用定时一:利用定时/计数器作外部中断输入使用的方法计数器作外部中断输入使用的方法 将外部时钟引脚将外部时钟引脚P3.4,P3.5作外部中断请求输入线,而溢作外部中断请求输入线,而溢出标志出标志TF0和和TF1作中断请求标志,将计数初值设为作中断请求标志,将计数初值设为FFH,采用自动装载方式,仅需,采用自动装载方式,仅需P3.4或或P3.5上一个脉冲则计数上一个脉冲则计数器产生溢出中断。器产生溢出中断。77二:中断与查询相结合扩展外部中断。二:中断与查询相结合扩展外部中断。