单片机第四章定时器串行口及中断系统.ppt
《单片机第四章定时器串行口及中断系统.ppt》由会员分享,可在线阅读,更多相关《单片机第四章定时器串行口及中断系统.ppt(115页珍藏版)》请在三一办公上搜索。
1、第4章定时器、串行口及中断系统,4.1 MCS-51单片机的中断系统4.2 MCS-51单片机片内定时器/计数4.3 MCS-51单片机片内串行口,定时/计数器(Timer/Counter)是单片机的一个重要组成部分,在实际的应用中,通过定时或计数可以实现很多重要的功能。单片机应用系统中,经常需要和其它计算机进行数据通信。MCS-51片内设立了一个可编程的全双工串行通信接口,可作为通用异步接收/发送器UART,也可作为同步移位寄存器。中断是指CPU正在处理某任务的过程中,由于计算机系统内、外的某种原因,发生的某一事件请求CPU及时处理,于是CPU暂时中止当前的工作,自动转去处理所发生的事件。处
2、理完该事件后,再返回到原来被中止的断点处继续工作,这样的过程称为中断。,4.1 MCS-51单片机的中断系统,4.1.1 中断的概念4.1.1.1 中断系统的基本概念 中断是指CPU正在处理某任务的过程中,由于计算机系统内、外的某种原因,发生的某一事件请求CPU及时处理,于是CPU暂时中止当前的工作,自动转去处理所发生的事件。处理完该事件后,再返回到原来被中止的断点处继续工作,这样的过程称为中断。,当CPU正在处理一个中断请求的时候,外部又发生了一个优先级比它高的中断事件,请求CPU及时处理。于是,CPU暂时中断当前的中断服务工作,转而处理所发生的事件。处理完毕,再回到原来被中断的地方,继续原
3、来的中断处理工作。这样的过程,称为中断嵌套,这样的中断系统称为多级中断系统。,MCS-51具有2个中断优先级,可以实现2级中断嵌套。,与中断相关的名词介绍如下:(1)中断系统:实现中断功能的硬件系统和软件系统统称为中断系统(2)中断源:产生中断的请求源称为中断源。(3)中断请求:中断源向CPU提出的处理请求,称为中断请求或中断申请。(4)中断响应过程:CPU暂时中止自身的事物,转去处理事件的过程,称为CPU的中断响应过程。(5)中断服务:对事件的整个处理过程,称为中断服务(或中断处理)。(6)中断返回:中断处理完毕,在返回到原来被中止的地方,称为中断返回。,中断系统的优势,中断系统是计算机的重
4、要组成部分,中断的使用消除了CPU在查询方式中的等待现象,大大提高了CPU的工作效率,改善了计算机的性能,具体表现在以下几个方面:(1)有效地解决了快速CPU与慢速外设之间的通信矛盾,可使CPU与多个外设并行工作,大大提高了工作效率。(2)在实时控制系统中,外设对CPU的服务请求是随机的。中断系统可以及时处理控制系统中许多随机产生的数据与信息,使系统具备实时处理的能力,提高了控制系统的性能。(3)系统工作时会出现一些如电源断电之类的突发故障,中断系统可以使故障发生时自动运行处理程序,系统具备了处理故障的能力,提高了系统自身的可靠性。,4.1.2 MCS-51中断系统的结构及中断控制,4.1.2
5、.1 MCS-51中断系统结构MCS-51中断系统的结构如图所示:,MCS-51的中断系统有5个中断源(MCS-52有 6个),2个优先级。5个中断源分别为:(1)2个外部中断请求:外部中断0()、外部中断1(),分别由从P3.2、P3.2引脚引入,低电平有效、脉冲下降沿有效可选。(2)2个片内定时器/计数器溢出中断请求:定时器/计数器0溢出中断(T0)、定时器/计数器1溢出中断(T1),分别在定时器T0、T1溢出时发出中断申请。(3)串行中断(TXD/RXD),一次串行发送/接收完成后,发出中断申请。5个中断均可由软件设定为允许中断或禁止中断。,4.1.2.2 MCS-51中断控制,1、中断
6、允许控制CPU对中断系统所有中断,以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。IE字节地址A8H,位地址为AFHA8H,IE位结构如下表所示:,各位的含义如下:EX0(IE.0)外部中断0允许位。EX0=0,禁止外部中断0中断;EX0=1允许外部中断0中断。ET0(IE.1)定时/计数器T0中断允许位。ET0=0,禁止T0中断;ET0=1,允许T0中断。EX1(IE.2)外部中断1允许位。EX1=0,禁止外部中断1中断;EX1=1,允许外部中断1中断。ET1(IE.3)定时/计数器T1中断允许位。ET1=0,禁止T1中断;ET1=1,允许T1中断。ES(IE.4)串行口中断允许位。
7、ES=0,禁止串行口中断;ES=1允许串行口中断。EA(IE.7)CPU中断允许(总允许)位。EA=0,屏蔽所有的中断请求;EA=1,开放中断。通过EA可以使中断允许形成两级控制,即各中断源首先受EA位的控制其次受各中断源各自的中断允许控制位控制(IE低5位)。,2、中断优先级控制 MCS-51单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来规定的,相应位置“1”,为高优先级。相应位置“0”,为低优先级。中断优先级控制寄存器IP的字节地址B8H,位地址BFHB8H,。IP位结构如下表所示:,各位的含义如下:PX0(IP.0):
8、外部中断0优先级控制位.PT0(IP.1):定时/计数器T0优先级控制位.PX1(IP.2):外部中断1优先级控制位.PT1(IP.3):定时/计数器T1优先级控制位.PS(IP.4):串行口优先级控制位.对同时发生多个中断申请时CPU按以下原则处理:不同优先级的中断同时申请先高后低相同优先级的中断同时申请事先规定正处理低优先级中断又接到高级别中断停低转高正处理高优先级中断又接到低级别中断高不理低,同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如下表所示:,3、中断标志与方式控制寄存器MCS-51单片机的5个中断
9、源的中断请求信号分别锁存在特殊功能寄存器TCON和SCON中。1)TCONTCON为定时/计数器控制寄存器,字节地址为88H,其中的中断源请求标志位如下表所示:,各位的含义如下:定时器/计数器T1的溢出中断请求标志位(TF1):当启动T1计数后,如果T1计数器产生溢出,会由硬件使TF1置1,向CPU发中断请求。如果CPU响应中断请求,会自动由硬件将TF1清零。定时器/计数器T0的溢出中断请求标志位(TF0):含义与TF1相同。外部中断1的中断请求标志(IE1):如果检测到外部中断引脚P3.3上存在有效的中断请求信号,就由硬件将IE1置1。如果CPU响应该中断请求,则自动由硬件将IE1清零。外部
10、中断0的中断请求标志位(IE0):其含义与IE1类同。外部中断1的中断触发方式控制位(IT1):IT1为1时,外部中断1为边沿触发方式,若CPU检测到外部中断1的引脚P3.3有由高到低的跳变,就使IE1置1,请求中断。IT1为0时,外部中断1为电平触发方式,若CPU检测到外部中断1的引脚P3.3为低电平,则使IE1置1,请求中断;如果P3.3为高电平,则使IE1置0。外部中断0的中断触发方式控制位(IT0):其含义与IT1类同。,2、SCON两个串行口发送接收中断标志占用了SCON寄存器中的2位(TI和RI)。SCON是串行口控制寄存器,字节地址为98H。SCON寄存器的位格式如下表所示:,各
11、位的含义如下:串行口内部发送中断请求标志位(TI):当串行口发送完一个字符后,由内部硬件使发送中断标志TI置位。产生中断请求标志,CPU响应中断时,并不复位TI,TI必须由用户在中断服务程序中用软件清0(如:CLR TI)。串行口内部接收中断请求标志位(RI):当串行口接收到一个字符后,由内部硬件使接收中断请求标志位RI置位。产生中断请求标志,同样CPU响应中断时,并不复位RI,RI必须由用户在中断服务程序中用软件清0(如:CLR RI)。,4.1.2.3 MCS-51中断响应及中断处理过程,CPU响应中断的条件包括:(1)中断源有请求,CPU开中断(即IE的EA=1,中断允许寄存器IE相应位
12、置1)。满足这个条件后,单片机CPU在每个机器周期对所有中断源进行检测,并可在任1个周期的S6期间,找到所有有效的中断请求,对其按优先级排队。(2)无同级或高级中断正在处理。(3)现行指令执行到最后1个机器周期且已结束。(4)若现行指令为访问IE、IP的指令或RETI(中断返回指令),则要求该指令和紧随其后的另一条指令也已执行完毕。,1、MCS-51中断矢量表中断矢量指示中断源的入口地址,CPU一旦响应中断,中断服务程序便从中断矢量地址开始执行。MCS51中断系统的各个中断的中断矢量地址如下,2、MCS-51中断响应的过程 如果满足中断响应的条件,单片机CPU便在紧接着中断申请的下1个机器周期
13、的S1期间响应中断,否则,将丢弃中断查询的结果。1)CPU响应中断的操作步骤:(1)将程序计数器PC的内容(断点地址)压入堆栈。(2)将相应的中断矢量地址(或中断入口地址)装入程序计数器PC,转入相应的中断服务程序,进行中断处理。(3)中断服务程序结束位置,执行一条RETI指令,将堆栈中的断点地址恢复到PC程序计数器中,使程序恢复到断点发生处继续执行。,2)中断撤销 在中断服务程序结束之前应撤销中断请求,否则返回后将再一次引起中断。对于某些中断,中断响应后,计算机将自动清除有关的中断标志位。如:定时器溢出标志TF0,TF1,以及边沿触发方式下的外部中断标志IE0、IE1;而有些中断标志位不会自
14、动清除,由用户在中断服务程序中软件清除,如:串行口的发送和接收标志TI和RI。对于电平触发方式下的外部中断标志IE0和IE1,根据INT0和INT1的电平变化,CPU无法直接干预,必须由外部设置硬件清除。,3)现场保护 MCS-51单片机响应中断后,只保护断点而不保护现场。所谓的现场,是指如:累加器A、程序状态字PSW、工作寄存器Rn等寄存器在发生中断时的值。当在中断服务程序中需要使用这些寄存器时,应该在使用之前先将所需要使用的寄存器的内容压栈,在结束中断服务程序之前再将这些寄存器的内容恢复出来,这也就是现场保护。现场保护时要注意入栈和出站的顺序,要保证一一对应,“对称”使用。否则容易造成现场
15、破坏,甚至使程序发生“紊乱”。,4)中断响应时间MCS-51单片机响应时序如下图所示:最短响应时间:若M1周期的S5P2前某中断生效,在S5P2期间其中断请求被锁存到相应的标志位中去;M2恰逢指令的最后一个机器周期,且该指令不是RETI或访问IE、IP的指令。于是,M3和M4便可以执行硬件LCALL指令,M5周期将进入了中断服务程序。因此,MCS-51的中断响应时间(从标志置1到进入相应的中断服务),至少要3个完整的机器周期。最长响应时间:若中断查询时,正在执行RETI或者访问IE或IP指令的第1个机器周期,这样查询到中断需要2个机器周期。根据前面分析,我们知道,这种情况下的中断申请,需要在执
16、行完指令后的一条指令时才能响应中断,如果这条指令是乘除指令,则需要4个机器周期,另外,响应中断时,还需要执行2个机器周期的断点保护,因此,MCS-51的中断响应时间(从标志置1到进入相应的中断服务),最长要用2+4+2=8个完整的机器周期。,5)中断服务程序 由于两个中断源的入口矢量地址之间仅仅相隔8个单元,很难容纳下一个中断服务子程序。所以,首先需要在中断入口地址单元处放一条无条件转移指令,使程序跳转到存储器的某个空间去,在这个空间中放置功能完善的中断服务程序。由于51在响应中断时,只是自动保存了断点,所以系统的状态寄存器PSW、工作寄存器,SFR寄存器的保护和恢复必须由用户自己在中断服务子
17、程序中安排。另外,在保护现场和恢复现场之前应当关闭中断,以保证在保护和恢复现场的时候CPU不去响应新的中断请求,从而使得现场数据的正确性不受到影响。当然,为了使系统在执行某个中断服务子程序的时候能够响应更高级的中断,应当在保护现场和恢复现场之后打开中断。,【例4.1】若规定外部中断1为边沿触发方式,高优先级,在中断服务程序中将寄存器B的内容进行半字节交换,B的初值设为21H。试编写主程序与中断服务程序。ORG 0000H LJMP MAIN ORG 0013H;中断矢量 LJMP INTS ORG 0030HMAIN:SETB EA;总中断允许“开”SETB EX1;外部中断1允许“开”SET
18、B PX1;设置为高优先级 SETB IT1;边沿触发方式 MOV B,#21H;给 B 寄存器赋初值HERE:SJMP HERE;原地等待中断申请INTS:MOV A,B;自B寄存器中取数 SWAP A;半字节交换 MOV B,A;存回B RETI;中断返回 思考:此例中中断服务程序是否可以直接安排在中断服务入口?,【例4.2】电路结构如下图所示,要求每次按动按键,使外接发光二极管LED改变一次亮灭状态,输入按键信号,P1.0输出改变LED状态,对于外部中断,可以有两种方式:边沿触发方式和电平触发方式。这里分两种情况分别介绍。,(1)边沿触发方式:每次按键K1按下,产生的一次跳变,引起一次外
19、部中断0请求,在外部中断0服务程序中,将P1.0的输出状态反转,为了避免开关抖动引起的多次中断可以考虑利用软件延时或者硬件去抖动法。,ORG 0000H;复位入口 AJMP MAINORG 0003H;中断入口AJMP PINT0ORG 0100H;主程序MAIN:MOV SP,#40H;设栈底SETB EA;开总允许开关SETB EX0;开INT0中断SETB IT0;负跳变触发中断H:SJMP H;等待(执行其它任务)ORG 0200H;中断服务程序PINT0:CPL P1.0;改变LEDLCALL Delay10ms;软件延时去开关抖动 RETI;返回主程序,(2)电平触发:为了避免一次
20、按键引起多次中断响应,应该在每次按键按下引起的中断服务程序中执行完P1.0的电平反转后先不退出中断服务程序,而是利用软件等待按键释放,按键释放后才结束中断服务程序。,ORG 0000H;复位入口AJMP MAINORG0003H;中断入口AJMP PINT0ORG0100H;主程序MAIN:MOV SP,#40H;设栈底SETB EA;开总允许开关SETB EX0;开INT0中断CLR IT0;低电平触发中断H:SJMP H;等待(执行其它任务)ORG 0200H;中断服务程序PINT0:CPL P1.0;改变LEDWAIT:JNB P3.2,WAIT;等按键释放RETI;返回主程序,4.2
21、MCS-51单片机片内定时器/计数器,4.2.1 定时器/计数器的结构及基本原理4.2.1.1 定时器/计数器的结构及其工作原理MCS-51单片机的定时/计数器的结构如下图所示。,MCS-51单片机内部有两个16位的可编程定时/计数器,称为定时器0(T0)和定时器1(T1)。定时器0由两个8位专用寄存器TH0(作T0的高8位)和TL0(作T0的低8位)组成,定时器1由两个8位专用寄存器TH1和TL1组成。定时/计数器本质上是加1计数器,加1计数器的初值可以由程序设定,设置的初值不同,定时的时间或计数值就不同。可以通过软件设置定时/计数器为定时工作方式和计数工作方式。当定时/计数器设置为定时工作
22、方式时,加1计数器对内部机器周期计数,每个机器周期计数器加1,直至计满溢出,发出定时器溢出中断请求信号。这时,定时器的计数频率是片内振荡器频率的十二分之一,计数值N乘以机器周期Tcy就是定时时间t。,当定时/计数器设置为计数工作方式时,加1计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部脉冲信号计数,在每个机器周期的S5P2期间采样外部脉冲,若前一个机器周期采样到高电平,后一个机器周期采样到低电平,则将触发计数器加1,更新的计数值将在下一个机器周期的S3P1期间装入计数器。因此,单片机检测一个从高电平到低电平的下降沿需要2个机器周期,要使下降沿能被检测到,就得保证被采样高、低电平分
23、别至少维持一个机器周期的时间,即外部输入信号的频率不超过晶振频率的1/24。如:当晶振频率为12MHz时,最高计数频率不超过0.5MHz,即计数脉冲的周期要大于2微秒。,4.2.1.2 定时/计数器的工作方式寄存器和控制寄存器,MCS-51单片机的可编程定时/计数器,除了具有计数寄存器THx和TLx以外,还有两个寄存器TMOD和TCON用来控制其工作模式或者反映其工作状态。1.工作方式寄存器TMOD TMOD为定时/计数器T0、T1的工作方式控制寄存器,字节地址89H,只能按字节对它寻址。TMOD的位结构如下表所示:,定时器T1,定时器T0,TMOD(89H),D7 D6 D5 D4 D3 D
24、2 D1 D0,工作模式寄存器TMOD的位定义,TMOD各位定义及具体的意义,GATE:门控位,决定定时器/计数器的启动开关信号(图中的K2)是否受外部中断请求信号的影响。GATE=0,只要用软件使TR0(或TR1)置1就可以启动定时器,而不管INT0(或INT1)的电平是高还是低。GATE=1,只有INT0(或INT1)引脚为高电平且由软件使TR0(或TR1)置1时,才能启动定时器工作。门控位对定时计数器启动开关信号的控制作用如下图所示:,C/T:定时或计数功能选择位 当C/T=1时为计数方式;当C/T=0时为定时方式。M1、M0:定时器/计数器工作方式选择位,其值与工作方式对应关系如下表所
25、示。系统复位时,寄存器TMOD的所有位被清零。,2.控制寄存器TCON TCON是定时/计数器T0、T1的控制寄存器,字节地址88H,可以位寻址,TMOD的位结构如下表所示:各位的含义如下:TF1:定时器1溢出标志位。当定时器1计满数产生溢出时,由硬件自动置TF1为1,(在允许中断的情况下)向CPU发出中断请求信号。如果CPU响应中断则转向中断服务程序,硬件自动将该位清零。在中断屏蔽时,CPU不响应中断无法用硬件将该位清零,可以用软件对其清零。,TR1:定时器1运行控制位。使用软件编程将TR1置1或清0可以控制定时/计数器的启动与关闭。但是当GATE1,需要同时满足 为高电平的条件,将TR1置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 第四 定时器 串行口 中断 系统
链接地址:https://www.31ppt.com/p-6460205.html