版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章定时器定时器/ /计数器与中计数器与中断系统断系统北京航空航天大学出版社第第4 4章章 单片机的定时单片机的定时/ /计数器计数器 4.2 4.2 定时定时/ /计数器的控制计数器的控制 4.3 4.3 定时定时/ /计数器的工作方式计数器的工作方式4.14.1定时定时/ /计数器的基本概念及结构计数器的基本概念及结构 4.4 4.4 定时定时/ /计数器的应用计数器的应用 SINGLECHIP 4.6 4.6 中断的控制中断的控制 4.5 4.5 中断系统基本概念中断系统基本概念4.8 4.8 中断系统的应用中断系统的应用 4.7 4.7 中断响应中断响应 4.14.1定时定时
2、/ /计数器的基本概念及结构计数器的基本概念及结构 4.1.14.1.1基本概念基本概念 80C5180C51单片机中的两个定时器单片机中的两个定时器/ /计数器都为计数器都为1616位加位加1 1计计数器,它们是同一结构,计数器记录的是单片机外部数器,它们是同一结构,计数器记录的是单片机外部发生的事件,一般是由外部电路提供计数信号;而定发生的事件,一般是由外部电路提供计数信号;而定时器是由单片机内部提供的稳定脉冲(振荡脉冲的时器是由单片机内部提供的稳定脉冲(振荡脉冲的1212分频)为计数信号。分频)为计数信号。 4.1.2 4.1.2 定时定时/ /计数器结构及工作原理计数器结构及工作原理
3、定时器定时器/ /计数器是由两个独立的计数器是由两个独立的8 8位的计数器(其中位的计数器(其中TH1TH1,TL1TL1是是T1T1的计数器,的计数器,TH0TH0,TL0TL0是是T0T0的计数器,的计数器,THXTHX、TLXTLX均属于均属于SFRSFR)拼装而成。)拼装而成。定时定时/ /计数器本质上都是计数器本质上都是1616位加位加1 1计数器。计数器。其计数脉冲有两个来源,一个是来自内部的机器周期其计数脉冲有两个来源,一个是来自内部的机器周期信号(机器周期信号(机器周期=12=12* *振荡周期),另一个是由引脚振荡周期),另一个是由引脚P4.4(T0)P4.4(T0)或或P4
4、.5(T1)P4.5(T1)输入的外部脉冲信号。输入的外部脉冲信号。当定时当定时/ /计数器设置为定时工作方式时,计数器对内计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加部机器周期计数,每过一个机器周期,计数器加1 1,直至计满溢出。直至计满溢出。 续续: :5151核单片机的一个机器周期由核单片机的一个机器周期由1212个振荡脉冲组成,所个振荡脉冲组成,所以,计数频率以,计数频率 。如果单片机系统采用如果单片机系统采用12MHz12MHz晶振,则计数周期为:晶振,则计数周期为:这是最短的定时周期,适当选择定时器的初值可获取这是最短的定时周期,适当选择定时器的
5、初值可获取各种定时时间。各种定时时间。如当计数值从如当计数值从0 0计到计到10001000时,则定时时间为时,则定时时间为1ms1ms。osccf121f s112/110121T6定时计数器结构图定时计数器结构图 CPU_INT1(P3.3)_INT0(P3.2)中断TCON(88H)T1(P3.5)定时器T1定时器T0TH1TL1TH0TL0TMOD(89H)溢出启动(8DH)(8BH)(8CH)(8AH) 7 0 7 0启动内部总线溢出 工作方式工作方式T0(P3.4)77004.2 4.2 定时定时/ /计数器的控制计数器的控制 4.2.1 4.2.1 定时器的工作方式寄存器定时器的
6、工作方式寄存器TMOD TMOD M1M1、M0M0:工作方式选择位。定时器:工作方式选择位。定时器/ /计数器有四种工计数器有四种工作方式,由这两位来定义。作方式,由这两位来定义。 说明说明: : : :定时或计数功能选择位。定时或计数功能选择位。=1=1时,为计数器功能;时,为计数器功能;=0=0时,为定时器功能。一个定时时,为定时器功能。一个定时/ /计数器同一时刻要么作定计数器同一时刻要么作定时用,要么作计数用,不能同时使用。时用,要么作计数用,不能同时使用。GATEGATE:定时器:定时器/ /计数器门控位,用来设置定时计数器门控位,用来设置定时/ /计数器的计数器的启动方式。启动方
7、式。GATE=0GATE=0,只要设置运行控制位,只要设置运行控制位TR0TR0或或TR1TR1为为1 1,就可以,就可以启动定时启动定时/ /计数器计数器T0T0或或T1T1工作(简称为软启动);工作(简称为软启动);GATE=1GATE=1时,除了要设置时,除了要设置TR0TR0或或TR1TR1为为1 1外,还要使对应外,还要使对应的外部中断请求引脚或为高电平,才能启动定时的外部中断请求引脚或为高电平,才能启动定时/ /计计数器(即允许外中断、启动定时器,简称软硬结合启数器(即允许外中断、启动定时器,简称软硬结合启动)。动)。T/C4.2.2 4.2.2 定时器控制寄存器定时器控制寄存器T
8、CON TCON 特殊功能寄存器特殊功能寄存器TCONTCON用于控制定时器的启动、停止,用于控制定时器的启动、停止,标志定时器的溢出和中断情况。它的字节地址为标志定时器的溢出和中断情况。它的字节地址为88H88H,可以进行位寻址。其中位可以进行位寻址。其中位0404与外部中断有关与外部中断有关, ,与定时与定时器有关的各位定义如下。器有关的各位定义如下。 说明说明: :TR0TR0: T0T0的运行控制位。该位置的运行控制位。该位置1 1或清或清0 0用来实现启动计用来实现启动计数或停止计数。数或停止计数。TF0TF0: T0T0的溢出中断标志位。当的溢出中断标志位。当T0T0计数溢出时由硬
9、件自计数溢出时由硬件自动置动置1 1;在;在CPUCPU响应中断后由硬件自动清响应中断后由硬件自动清0 0。TR1TR1: T1T1的运行控制位,功能同的运行控制位,功能同TR0TR0。TF1TF1: T1T1的溢出中断标志位,功能同的溢出中断标志位,功能同TF0TF0。TMODTMOD和和TCONTCON寄存器在复位时其每一位均自动清零。寄存器在复位时其每一位均自动清零。启动定时器或清溢出标志位都可以用位操作指令,如启动定时器或清溢出标志位都可以用位操作指令,如“SETB TR1” SETB TR1” ,“CLR TF1”CLR TF1”分别表示启动分别表示启动T1T1及清及清T1T1溢出标
10、志。溢出标志。4.3 4.3 定时定时/ /计数器的工作方式计数器的工作方式 80C5180C51单片机定时单片机定时/ /计数器计数器T0T0有有4 4种工作方式,而种工作方式,而T1T1只只有有4 4种工作方式(无工作方式种工作方式(无工作方式4 4),),T0T0与与T1T1的的4 4种工作种工作方式(方式方式(方式0 0、1 1、2 2)基本相同,下面仅以)基本相同,下面仅以T0T0为例分为例分别介绍这别介绍这4 4种工作方式。种工作方式。4.3.1 4.3.1 工作方式工作方式0 0当当M1M0=00M1M0=00时,定时时,定时/ /计数器工作于方式计数器工作于方式0 0,构成一个
11、,构成一个1414位定时器位定时器/ /计数器。此时计数器。此时1616位加法计数器(位加法计数器(TH0TH0和和TL0TL0)只用了)只用了1414位,即位,即TH0TH0的高的高8 8位与位与TL0TL0的低的低5 5位(高位(高4 4位未用)。当位未用)。当TL0TL0低低5 5位溢出时自动向位溢出时自动向TH0TH0进位,而进位,而TH0TH0溢出时向中断位溢出时向中断位TF0TF0进位(硬件自动置位),并申请进位(硬件自动置位),并申请中断。中断。4.3.2 4.3.2 工作方式工作方式1 1 方式方式1 1构成一个构成一个1616位定时器位定时器/ /计数器。计数器。 由图可知:
12、由图可知: 当当M1M0=01M1M0=01时,定时时,定时/ /计数器工作于方式计数器工作于方式1 1,构成一个,构成一个1616位定位定时器时器/ /计数器。计数器。1616位加法计数器由两个位加法计数器由两个8 8位寄存器位寄存器TH0TH0和和TL0TL0组成。当组成。当TL0TL0计满溢出时自动向计满溢出时自动向TH0TH0进位,而进位,而TH0TH0溢出时向中断位溢出时向中断位TF0TF0进位。进位。当当= 0= 0时,多路开关连接振荡器时,多路开关连接振荡器1212分频输出,分频输出,T0T0对机器周期对机器周期计数,此时,计数,此时,T0T0为定时器。其定时时间为:为定时器。其
13、定时时间为:当当= 1= 1时,多路开关与时,多路开关与T0T0(P4.3P4.3)相连,外部计数脉冲由)相连,外部计数脉冲由T0T0脚输入,当外部信号电平发生由脚输入,当外部信号电平发生由1 1到到0 0的负跳变时,计数器的负跳变时,计数器加加1 1,此时,此时,T0T0为计数器。为计数器。当当GATE = 0GATE = 0时,或门被封锁,信号无效。时,或门被封锁,信号无效。当当GATE = 1GATE = 1时,与门的输出由的输入电平和时,与门的输出由的输入电平和TR0TR0位的状态来位的状态来确定。确定。12065536120时钟周期初值)(时钟周期初值)(TTM 例例4.14.1用定
14、时器用定时器1 1方式方式0 0实现实训实现实训5 5步骤步骤1 1)中)中1s1s的延时。的延时。1s1s延时子程序如下:延时子程序如下:DELAYDELAY:MOV MOV R4R4,#200#200 MOV MOVTMODTMOD,#00H#00H MOV MOVTH1TH1,#64H#64H MOV MOVTL1TL1,#18H#18H SETB SETBTR1TR1LP1LP1:JBCJBCTF1TF1,LP2 LP2 SJMP SJMPLP1LP1LP2LP2: MOVMOVTH1TH1,#64H #64H MOVMOVTL1TL1,#18H#18H DJNZ DJNZR4R4,L
15、P1LP1 RETRET 4.3.3工作方式2振荡器12TL0(8位)TL0(8位)中断TF0重新输入_C/T=0_C/T=1控制T0TR0GATE&11INT0例例4.24.2试用定时器试用定时器1 1方式方式2 2实现实现1s1s的延时。的延时。 1s1s延时子程序如下:延时子程序如下: DELAYDELAY:MOVMOVR5R5,#28H#28H MOV MOVR6R6,#64H#64HMOVMOVTMODTMOD,#20H#20H MOV MOVTH1TH1,#06H#06HMOVMOVTL1TL1,#06H#06HSETBSETBTR1TR1LP1LP1:JBCJBCTF1TF1,L
16、P2LP2SJMPSJMPLP1LP1LP2LP2:DJNZDJNZR6R6,LP1LP1MOVMOVR6R6,#64H#64HDJNZDJNZR5R5,LP1LP1RET RET 4.3.44.3.4工作方式工作方式3 3 振荡器12 112fOSC 112fOSCTH0(8位)中断TF0_C/T=0_C/T=1控制T0TL0(8位) 112fOSCTR0GATE&11INT0TR1TF1中断4.4 定时/计数器的应用4.4.14.4.1定时器定时器/ /计数器的初始化步骤计数器的初始化步骤: :(1 1)确定工作方式)确定工作方式对对TMODTMOD赋值赋值(2 2)预置定时或计数的初值)
17、预置定时或计数的初值直接将初值写入直接将初值写入TH0TH0、TL0TL0或或TH1TH1、TL1TL1中中(3 3)根据需要开启定时器)根据需要开启定时器/ /计数器中断计数器中断直接对直接对IEIE寄存器赋值寄存器赋值(4 4)启动定时器)启动定时器/ /计数器工作计数器工作将将TR0TR0或或TR1TR1置置“1”1”2 2、计数器初值的计算、计数器初值的计算 定时器定时器/ /计数器可用软件随时随地起动和关闭,起动计数器可用软件随时随地起动和关闭,起动时它就自动进行加时它就自动进行加“1”1”计数,一直到计满,即全为计数,一直到计满,即全为“1”1”,若不停止,计数值从全,若不停止,计
18、数值从全“1”1”变为全变为全“0”0”,同时将计数溢出位置同时将计数溢出位置“1”1”并向并向CPUCPU发出溢出中断申请。发出溢出中断申请。 设计数器从初值开始作加设计数器从初值开始作加1 1计数到计满为全计数到计满为全1 1所需要的所需要的计数值设定为计数值设定为C C和计数初值设定为和计数初值设定为X X,由此便可得到如,由此便可得到如下的计算通式:下的计算通式: 初值初值X=M-X=M-计数值计数值C C式中,式中,M M为计数器模值,该值和计数器工作方式有关。为计数器模值,该值和计数器工作方式有关。在方式在方式1 1时时M M为为216216;在方式;在方式2 2和方式和方式4 4
19、时时M M为为2828。例例1 1:在定时器模式下,计数器由单片机脉冲经在定时器模式下,计数器由单片机脉冲经1212分频后计数。因此,分频后计数。因此,定时器定时时间定时器定时时间T T的计算公式为:的计算公式为:T= T= 计数值计数值C C机器周期机器周期= =(M M初值初值X X)12/f12/fOSCOSC( s s)例例1:1:设方式设方式1 1工作时,定时时间为工作时,定时时间为1ms1ms,时钟振荡频率为,时钟振荡频率为6MHz6MHz, (216216X X)12/6 12/6 S =1ms=1000S =1ms=1000 S S X=216 X=216500=6504650
20、0=65046化成化成1616进制数,高进制数,高8 8位送至位送至TH0TH0,低,低8 8位送至位送至TL0TL0,可用下列指令实,可用下列指令实现。现。MOV DPTR MOV DPTR ,#65046#65046;将;将1010进制数转化为进制数转化为1616进制数进制数MOV TL0MOV TL0,DPLDPL; 低低8 8位送位送TL0TL0寄存器寄存器MOV TH0MOV TH0,DPHDPH; 高位送高位送T T0 0寄存器寄存器例例2 2:若单片机时钟频率若单片机时钟频率fOSCfOSC为为12MHz12MHz,请计算定时,请计算定时2ms2ms所需所需的定时器初值。的定时器
21、初值。 解:由于定时器工作在方式解:由于定时器工作在方式2 2和方式和方式4 4下时的最大下时的最大定时时间只有定时时间只有0.256ms0.256ms,因此要想获得,因此要想获得2ms2ms的定时时间的定时时间定时器必须工作在方式定时器必须工作在方式0 0或方式或方式1 1。若采取方式若采取方式1 1,则有:,则有:TC=216TC=2162mS/12mS/1 s=64546=F840H s=64546=F840H 即:即:TH0TH0应装应装F8HF8H;TL0TL0应装应装40H40H。例例3 3:设设T1T1作定时器,以方式作定时器,以方式1 1工作,定时时间为工作,定时时间为10mS
22、10mS;T0T0作计数器,作计数器,以方式以方式2 2工作,外界发生一次事件即溢出。工作,外界发生一次事件即溢出。解:解:T1T1的时间常数为:的时间常数为: (216-X216-X)2 2 s=10mss=10ms X=EC78H X=EC78H初始化程序:初始化程序:MOV TMODMOV TMOD,#16H #16H MOV TL0MOV TL0,#0FFH #0FFH ;T0T0初值送初值送TL0TL0 MOV TH0 MOV TH0,#0FFH #0FFH ;T0T0初值送初值送TH0TH0 MOV TL1 MOV TL1,#78H #78H ;T1T1初值(低初值(低8 8位)送
23、位)送TL1TL1 MOV TH1 MOV TH1,#0ECH #0ECH ;T1T1初值(高初值(高8 8位)送位)送TH1TH1 SETB TR0 SETB TR0 ;置;置TR0TR0为为1 1允许允许T0T0启动计数启动计数SETB TR1 SETB TR1 ;置;置TR1TR1为为1 1允许允许T1T1启动计数启动计数4.4.24.4.2定时器定时器/ /计数器的应用举例计数器的应用举例 例例1 1、广告灯的左移右移、广告灯的左移右移1 1、功能说明、功能说明 开始时开始时P1.0P1.0亮,延时亮,延时0.20.2秒后左移至秒后左移至P1.1P1.1亮,如此亮,如此左移左移7 7次
24、后至次后至P1.7P1.7亮,再延时亮,再延时0.20.2秒右移至秒右移至P1.6P1.6亮,如亮,如此右移此右移7 7次后至次后至P1.0P1.0亮。亮。 延时时间延时时间0.20.2秒,使用秒,使用TIMER0TIMER0在在MODE0MODE0下工作(时下工作(时钟频率钟频率f fOSCOSC为为12MHz12MHz)。)。程序见下页程序见下页. .程序程序: :ORG 00H ORG 00H ;起始地址;起始地址MOV TMODMOV TMOD,#01H #01H ;设定;设定TIMER0TIMER0工作在工作在MODE1MODE1STARTSTART: CLR C CLR C ;C=
25、0C=0MOV AMOV A,#0FFH #0FFH ;ACC=FFHACC=FFH,左移初值,左移初值MOV R2MOV R2,#08 #08 ;R2=08R2=08,设左移,设左移8 8次次LOOPLOOP: RLC A RLC A ;左移一位;左移一位MOV P1MOV P1,A A ;输出至;输出至P1P1MOV R4MOV R4,#20 #20 ;0.20.2秒秒ACALL DELAY ACALL DELAY ;1000010000微妙微妙DJNZ R2DJNZ R2,LOOP LOOP ;左移;左移8 8次次MOV R2MOV R2,#07 #07 ;R2=07R2=07,设右移,
26、设右移7 7次次LOOP1LOOP1: RRC A RRC A ;右移一位;右移一位MOV P1MOV P1,A A ;输出至;输出至P1P1续续: :MOV R4MOV R4,#20 #20 ;0.20.2秒秒ACALL DELAY ACALL DELAY ;1000010000微妙微妙DJNZ R2DJNZ R2,LOOP1 LOOP1 ;右移;右移7 7次次JMP START JMP START DELAYDELAY: SETB TR0 SETB TR0 ;启动;启动TIMER0TIMER0开始计时开始计时AGAINAGAIN: MOV TL0MOV TL0,#0F0H #0F0H ;设
27、定;设定TL0TL0的值的值MOV TH0MOV TH0,#0D8H #0D8H ;设定;设定TH0TH0的值的值LOOP1LOOP1: JBC TF0JBC TF0,LOOP4 LOOP4 ;TF0TF0是否为是否为1 1,是则跳至,是则跳至LOOP4LOOP4,并清楚,并清楚TF0TF0JMP LOOP1 JMP LOOP1 ;不是则跳到;不是则跳到LOOP1LOOP1LOOP4LOOP4: DJNZ R4DJNZ R4,AGAIN AGAIN ;R4R4是否为是否为0 0?不是;则跳到?不是;则跳到AGAINAGAINCLR TR0 CLR TR0 ;是则停止;是则停止TIMR0TIMR
28、0计数计数RET RET ENDEND4.1.1 4.1.1 中断的基本概念中断的基本概念 中断中断表现为正常的工作过程被突发的事件打断了。表现为正常的工作过程被突发的事件打断了。中断源中断源: :可以引起中断的来源。可以引起中断的来源。AT89S51AT89S51一共有一共有5 5个:两个外部中断,两个定时个:两个外部中断,两个定时/ /计数器中断,计数器中断,一个串行口中断。一个串行口中断。 中断的优先级与嵌套中断的优先级与嵌套优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断申请的情况,一个中断已产
29、生,又有一个中断申请的情况,当当CPUCPU正在处理一个优先级低的中断请求时,又发生另一个优先正在处理一个优先级低的中断请求时,又发生另一个优先级比它高的中断请求,级比它高的中断请求,CPUCPU暂停正在处理的中断源的处理程序,暂停正在处理的中断源的处理程序,转去处理优先级高的中断请求,待处理完以后,再回到原来正在转去处理优先级高的中断请求,待处理完以后,再回到原来正在处理的低级中断程序,这种高级中断源能中断低级中断源的中断处理的低级中断程序,这种高级中断源能中断低级中断源的中断处理称为中断嵌套。处理称为中断嵌套。中断的响应过程中断的响应过程 1 1、保护断点,即保存下一条将要执行的指令的地址
30、,、保护断点,即保存下一条将要执行的指令的地址,方法是把这个地址送入堆栈。方法是把这个地址送入堆栈。2 2、寻找中断入口,根据、寻找中断入口,根据5 5个不同中断源所产生的中断,个不同中断源所产生的中断,查找查找5 5个不同的入口地址。个不同的入口地址。3 3、执行中断处理程序。、执行中断处理程序。4 4、中断返回:执行完中断程序后返回到主程序继续、中断返回:执行完中断程序后返回到主程序继续执行。执行。4.1.2 4.1.2 中断源与中断标志中断源与中断标志 1 1、中断系统的组成、中断系统的组成AT89S51AT89S51单片机中断系统有与中断有关的寄存器,中单片机中断系统有与中断有关的寄存
31、器,中断入口(矢量地址)、顺序查询逻辑电路等组成。断入口(矢量地址)、顺序查询逻辑电路等组成。 n具体有具体有5 5个中断源,提供两个中断优先级(能实现个中断源,提供两个中断优先级(能实现两级中断嵌套),两级中断嵌套),4 4个用于中断控制的寄存器个用于中断控制的寄存器IEIE、IPIP、TCONTCON和和SCONSCON。每一个中断源的优先级的高低可以通过编程来设定。每一个中断源的优先级的高低可以通过编程来设定。中断源的中断请求是否得到响应,受中断允许寄存器中断源的中断请求是否得到响应,受中断允许寄存器IEIE的控制的控制各中断源的优先级可由中断优先级寄存器各中断源的优先级可由中断优先级寄
32、存器IPIP中的各位来中的各位来确定确定同一优先级中的各中断源同时请求中断时,由内部的查同一优先级中的各中断源同时请求中断时,由内部的查询逻辑来确定响应的次序。询逻辑来确定响应的次序。 中断系统结构图:中断系统结构图:1IT0 0IT0 1INT0T0T1TXRXTCONIEEX0EAIPPX01111100000PSPT1PX1PT0SCON中断标志源允许总允许硬件查询矢量地址矢量地址自然优先级自然优先级IT1 0IT1 1INT1IE0TF0IE1TF1TIRIEX0EX11ET1ES优先级高级中断请求PC低级中断请求PC2 2、中断源、中断源 凡是能引起中断的设备或事件均称为中断源。凡是
33、能引起中断的设备或事件均称为中断源。分成外部中断源和内部中断源。分成外部中断源和内部中断源。(1 1)外部中断源)外部中断源2 2个:个:来自:来自P3.2P3.2引脚上的外部中断请求引脚上的外部中断请求( (称为外部中断称为外部中断0)0)。 :来自:来自P3.3P3.3引脚上的外部中断请求引脚上的外部中断请求( (称为外部中断称为外部中断1)1)。(2 2)内部中断源)内部中断源3 3个:个:T0 T0 :片内定时:片内定时/ /计数器计数器0 0溢出(溢出(TF0TF0)中断请求。)中断请求。T1 T1 :片内定时:片内定时/ /计数器计数器1 1溢出(溢出(TF1TF1)中断请求。)中
34、断请求。TXTX或或RXRX:片内串行口发送或接收完一帧数据:片内串行口发送或接收完一帧数据TITI或或RIRI中中断请求。断请求。3、中断标志 定时定时/ /计数器器控制寄存器计数器器控制寄存器TCONTCONTCONTCON是定时是定时/ /计数器计数器0 0和和1 1(T0T0和和T1T1)的控制寄存器,)的控制寄存器,其字节地址为其字节地址为98H98H,它同时也用来锁存,它同时也用来锁存T0T0和和T1T1的溢出的溢出标志和外部中断请求标志。标志和外部中断请求标志。与中断有关的有与中断有关的有6 6位(阴影部分)。位(阴影部分)。 说明:说明: TF1 TF1 :定时:定时/ /计数
35、器计数器1 1(T1T1)的溢出中断标志。)的溢出中断标志。 TF0 TF0 :定时:定时/ /计数器计数器0 0(T0T0)的溢出中断标志。其)的溢出中断标志。其作用同作用同TF1TF1。 IE1 IE1 :外部中断:外部中断1 1中断请求标志。中断请求标志。 IT1 IT1 :外部中断:外部中断1 1() )触发方式控制位。触发方式控制位。 IE0 IE0 :外部中断:外部中断0 0中断请求标志,与中断请求标志,与IE1IE1类同。类同。 IT0 IT0 :外部中断源:外部中断源0 0触发方式控制位,与触发方式控制位,与IT1IT1类同。类同。串行口控制寄存器SCON串行口控制寄存器串行口
36、控制寄存器SCONSCON用于选择串行通信的工作方式用于选择串行通信的工作方式和一些控制功能,其字节地址为和一些控制功能,其字节地址为88H88H。其中的低。其中的低2 2位用位用作串行口中断标志。作串行口中断标志。RI RI 为串行口接收中断标志,为串行口接收中断标志,TITI为为 串行口发送中断标串行口发送中断标志。志。4.2 4.2 中断的控制中断的控制 4.2.14.2.1中断允许和禁止中断允许和禁止中断开放即允许中断(开中断),中断屏蔽即禁止中中断开放即允许中断(开中断),中断屏蔽即禁止中断(关中断),让某中断不起作用。断(关中断),让某中断不起作用。对每一中断源设置一个中断屏蔽(允
37、许)位,设置该对每一中断源设置一个中断屏蔽(允许)位,设置该位为位为“l”l”则处于开中断状态,为则处于开中断状态,为“0”0”则处于关中断则处于关中断状态。状态。 中断允许或禁止是由特殊功能寄存器中断允许或禁止是由特殊功能寄存器IEIE(IEIE也称为中也称为中断允许寄存器)控制的,其字节地址为断允许寄存器)控制的,其字节地址为A8HA8H,可以位,可以位寻址,寻址,IEIE中的各位功能如下:中的各位功能如下: 功能说明功能说明: :EA EA : CPUCPU总中断允许标志,它相当于一个总开关。总中断允许标志,它相当于一个总开关。EA=0EA=0,CPUCPU禁止所有中断,即禁止所有中断,
38、即CPUCPU屏蔽所有的中断请求;屏蔽所有的中断请求;EA=1EA=1,CPUCPU开放中断。开放中断。ESES:串行口中断允许位。:串行口中断允许位。ES=1ES=1,允许串行口中断;,允许串行口中断;ES=0ES=0,禁止串行口中断。,禁止串行口中断。ET1ET1:定时:定时/ /计数器计数器1 1(T1T1)的溢出中断允许位。)的溢出中断允许位。ET1=1ET1=1,允许允许T1T1中断;中断;ET1=0ET1=0,禁止,禁止T1T1中断。中断。EX1EX1:外部中断:外部中断1 1中断允许位。中断允许位。EX1=1EX1=1,允许外部中断,允许外部中断1 1中断;中断;EX1=0EX1
39、=0,禁止外部中断,禁止外部中断1 1中断。中断。ET0ET0:定时:定时/ /计数器计数器0 0(T0T0)的溢出中断允许位,与)的溢出中断允许位,与ET1ET1功能类同。功能类同。EX0EX0:外部中断:外部中断0 0中断允许位,与中断允许位,与EX1EX1功能类同。功能类同。4.2.2 4.2.2 中断优先级控制中断优先级控制 AT89S51AT89S51单片机中断系统提供两个中断优先级,对于单片机中断系统提供两个中断优先级,对于每一个中断请求源都可以编程为高优先级中断源或低每一个中断请求源都可以编程为高优先级中断源或低优先级中断源,以便实现二级中断嵌套。优先级中断源,以便实现二级中断嵌
40、套。中断优先级是由特殊功能寄存器中断优先级是由特殊功能寄存器IPIP(IPIP也称为中断优也称为中断优先级控制寄存器)控制的,其字节地址为先级控制寄存器)控制的,其字节地址为B8HB8H,可以,可以位寻址。位寻址。IPIP寄存器中各位的功能说明如下:寄存器中各位的功能说明如下:功能说明功能说明: :PSPS:串行口中断优先级控制位。:串行口中断优先级控制位。PS=1PS=1,串行口定义为高,串行口定义为高优先级中断源;优先级中断源;PS=0PS=0,串行口定义为低优先级中断源。,串行口定义为低优先级中断源。PT1PT1:T1T1中断优先级控制位。中断优先级控制位。PT1=1PT1=1,定时,定
41、时/ /计数器计数器1 1定义定义为高优先级中断源;为高优先级中断源;PT1=0PT1=0,定时,定时/ /计数器计数器1 1定义为低优定义为低优先级中断源。先级中断源。PX1PX1:外部中断:外部中断1 1中断优先级控制位。中断优先级控制位。PX1=1PX1=1,外中断,外中断1 1定定义为高优先级中断源;义为高优先级中断源;PX1=0PX1=0,外中断,外中断1 1定义为低优先级定义为低优先级中断源。中断源。PT0PT0:定时:定时/ /计数器计数器0 0(T0T0)中断优先级控制位,与)中断优先级控制位,与PT1PT1功功能类同。能类同。PX0PX0:外部中断:外部中断0 0中断优先级控
42、制位。与中断优先级控制位。与PX1PX1功能类同。功能类同。中断优先级中断优先级: : 中断源中断源 同级内的中断优先级同级内的中断优先级 外部中断外部中断0 0 最高最高 定时定时/ /计数器计数器0 0溢出溢出 外部中断外部中断1 1 定时定时/ /计数器计数器1 1溢出溢出 串行口串行口 最低最低中断优先原则概括为四句话:中断优先原则概括为四句话:低级不打断高级;高级不理睬低级;同级不能打断;低级不打断高级;高级不理睬低级;同级不能打断;同级、同时中断,事先约定。同级、同时中断,事先约定。例例1 1 外部中断的设定编程。外部中断的设定编程。 ORG 03HORG 03H(13H13H);
43、()外部中断的起始地址);()外部中断的起始地址 LJMP EXT LJMP EXT ;中断时跳至中断服务子程序;中断时跳至中断服务子程序EXTEXT处处 MOV IEMOV IE,#10000001BH #10000001BH ;开放中断;开放中断 MOV IEMOV IE,#10000100BH #10000100BH ;开放中断;开放中断 MOV IPMOV IP,#00000001BH #00000001BH ;设为高优先级;设为高优先级 MOV IP MOV IP,#00000100BH #00000100BH ; 设为高优先级设为高优先级 MOV TCONMOV TCON,#000
44、00000B #00000000B ;设定、为低电平触发;设定、为低电平触发 MOV TCON MOV TCON,#00000001B#00000001B; ;设定为下降沿触发、为低电平触发设定为下降沿触发、为低电平触发 4.3 4.3 中断响应中断响应 4.3.1 4.3.1 中断响应过程中断响应过程1 1、阻止中断响应的条件、阻止中断响应的条件(1 1)CPUCPU正在处理同级或更高级别的中断请求;正在处理同级或更高级别的中断请求; (2 2)当前的机器周期不是所执行指令的最后一个机)当前的机器周期不是所执行指令的最后一个机器周期。器周期。(3 3)当前正执行的指令是返回指令()当前正执行
45、的指令是返回指令(RETIRETI)或访问)或访问IEIE、IPIP寄存器进行读寄存器进行读/ /写的指令,则写的指令,则CPUCPU至少要再执行至少要再执行一条指令才会响应中断。一条指令才会响应中断。2、中断响应的过程:CPUCPU响应中断时,先激活相应的优先级触发器,以封响应中断时,先激活相应的优先级触发器,以封锁同级和低级的中断,硬件清除相应的中断请求标志锁同级和低级的中断,硬件清除相应的中断请求标志(但对串口中断必须使用软件的方式清除)。然后根(但对串口中断必须使用软件的方式清除)。然后根据中断源的类别,在硬件的控制下,将当前指令的下据中断源的类别,在硬件的控制下,将当前指令的下一条指
46、令的程序指针一条指令的程序指针PCPC的内容(中断返回后将要执行的内容(中断返回后将要执行的指令的指令PCPC)压入堆栈,而把中断服务程序的入口地址)压入堆栈,而把中断服务程序的入口地址送入程序指针,程序自动转向相应的向量入口地址,送入程序指针,程序自动转向相应的向量入口地址,执行中断服务程序。执行中断服务程序。 中断源入口地址中断源入口地址: :五个中断源中断服务程序的入口地址分别是:五个中断源中断服务程序的入口地址分别是: 中断源中断源 入口地址入口地址 外部中断外部中断0 0003H0 0003H定时定时/ /计数器计数器0 000BH0 000BH中断中断1 0013H1 0013H定
47、时定时/ /计数器计数器1 001BH1 001BH串行口串行口 0023H0023H中断的保护现场和恢复现场的格式中断的保护现场和恢复现场的格式: :中断服务程序的最后一条指令必须是中断返回指令中断服务程序的最后一条指令必须是中断返回指令RETIRETI,注意:不能用注意:不能用“RET”RET”指令代替指令代替“RETI”RETI”指令。指令。常见保护现场和恢复现场中断服务程序格式如下:常见保护现场和恢复现场中断服务程序格式如下:INTR0INTR0: PUSH ACC PUSH ACC ;将累加器;将累加器A A的内容存入堆栈保存的内容存入堆栈保存PUSH PSW PUSH PSW ;将
48、;将PSWPSW的内容存入堆栈保存的内容存入堆栈保存SETB RS0 SETB RS0 ;与下一条指令配合切换到工作寄存;与下一条指令配合切换到工作寄存器组器组1 1CLR RS1 CLR RS1 ; CLR RS0 CLR RS0 ;恢复工作寄存器组;恢复工作寄存器组0 0POP PSW POP PSW ;从堆栈中取出;从堆栈中取出PSWPSW的内容的内容POP ACC POP ACC ;从堆栈中取出;从堆栈中取出A A的内容的内容RETI RETI ;中断返回;中断返回 4.3.2 4.3.2 中断响应时间中断响应时间 1 1、中断响应时间、中断响应时间 中断响应时间是指从中断请求标志位置
49、位到中断响应时间是指从中断请求标志位置位到CPUCPU开始开始执行中断服务程序的第一条指令所经历的时间。执行中断服务程序的第一条指令所经历的时间。如果中断请求不能满足前面所述的三个条件而被阻止,如果中断请求不能满足前面所述的三个条件而被阻止,则中断响应时间将延长。则中断响应时间将延长。在系统中只有一个中断源的情况下,响应时间总是在在系统中只有一个中断源的情况下,响应时间总是在3 3个机器周期到个机器周期到8 8个机器周期之间。个机器周期之间。2 2、对中断请求的撤除、对中断请求的撤除 在中断请求被响应前,中断源发出的中断请求是由在中断请求被响应前,中断源发出的中断请求是由CPUCPU锁存在锁存在TCONTCON和和SCONSCON的相应中断标志位中的。一旦的相应中断标志位中的。一旦某个中断请求得到响应,某个中断请求得到响应,CPUCPU必须把它的相应中断标必须把它的相应中断标志位复位成志位复位成“0”0”状态。否则,单片机就会因为中断状态。否则,单片机就会因为中断标志位未能得到及时撤除而重复响应同一中断请求,标志位未能得到及时撤除而重复响应同一中断请求,这会造成错误。这会造成错误。 以中断请求的撤除以中断请求的撤除(1)定时/计数器溢出中断标志的撤除TF0和TF1是定时/计数器溢出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东广州有轨电车有限责任公司校园招聘启动笔试历年典型考点题库附带答案详解试卷3套
- 2025国核自仪系统工程有限公司校园招聘笔试历年备考题库附带答案详解试卷3套
- 2025中钞特种防伪科技有限公司招聘18人笔试历年备考题库附带答案详解试卷3套
- 2025中国信达重庆分公司校园招聘5人笔试历年备考题库附带答案详解试卷3套
- 福建公务员考试邓轩试题及答案
- xx市燃气供排水基础设施建设项目技术方案
- 电大公务员制度考试试题及答案
- 研学基地特色活动设计方案
- 成都市工程类公务员考试试题及答案
- 污水处理设施项目建设工程方案
- 2025年中国铝铸件铸造行业市场前景预测及投资价值评估分析报告
- 质量管理与思政
- 2025年度哈尔滨“丁香人才周”(春季)民兵教练员补充招聘20人笔试考试备考题库及答案解析
- 足疗服务篇培训
- (人教版205新教材)英语三年级上册核心基础知识清单年
- 代谢综合征麻醉管理要点
- 2025年教师资格考试《学科教学论》备考题库及答案解析
- 2025浙江金华市交通投资集团有限公司招聘笔试笔试历年参考题库附带答案详解
- 网吧消防演练方案及流程
- 2025年秋青岛版(五四学制)(2024)小学数学二年级上册《智慧广场-简单的周期问题(一)》教案
- 观赏鱼买卖合同(标准版)
评论
0/150
提交评论