第4章 中断、定时计数器与串行口_第1页
第4章 中断、定时计数器与串行口_第2页
第4章 中断、定时计数器与串行口_第3页
第4章 中断、定时计数器与串行口_第4页
第4章 中断、定时计数器与串行口_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4 4章中断、定时章中断、定时/ /计数器与串行口计数器与串行口u教学提示教学提示:5151子系列单片机应用广泛的一个重要原因是它子系列单片机应用广泛的一个重要原因是它在一个芯片里集成了应用系统所需的大部分在一个芯片里集成了应用系统所需的大部分( (或所有或所有) )硬件功能,硬件功能,本章叙述的是完成这些硬件功能的内部标准功能单元,构成了本章叙述的是完成这些硬件功能的内部标准功能单元,构成了5151子系列单片机的核心体系结构。子系列单片机的核心体系结构。u教学要求教学要求:本章让学生掌握内部标准功能单元中断系统、本章让学生掌握内部标准功能单元中断系统、定时定时/计数器和串行通信接口的逻辑

2、结构、功能和应用设计方法。计数器和串行通信接口的逻辑结构、功能和应用设计方法。 4.1 MCS-51的中断系统的中断系统 4.2 MCS-51的定时的定时/计数器计数器 4.3 MCS-51的串行接口的串行接口 4.5本章小结本章小结内容提要内容提要4.1.1 4.1.1 中断系统的概念中断系统的概念l 中断系统的概念和基本结构中断系统的概念和基本结构 中断发生:中断发生:CPU正在处理某一程序时,发生了另一突发正在处理某一程序时,发生了另一突发 事件请求事件请求CPU迅速去处理;迅速去处理; 中断响应:中断响应: CPU暂时停止当前的工作,转到需要处理的暂时停止当前的工作,转到需要处理的 中

3、断源的服务程序的入口,一般在入口处执行中断源的服务程序的入口,一般在入口处执行 一跳转指令转去处理中断事件一跳转指令转去处理中断事件(中断服务中断服务); 中断返回:中断返回:待待CPU将中断事件处理完毕后,再回到原来将中断事件处理完毕后,再回到原来 程序被中断的地方继续处理执行程序,这一处程序被中断的地方继续处理执行程序,这一处 理过程称为中断返回。理过程称为中断返回。 4.1 中中 断断l 中断系统的概念和基本结构 中断过程示意图中断过程示意图l 为什么要用中断为什么要用中断? 当当CPUCPU与外设交换信息时,由于外设的速度比较与外设交换信息时,由于外设的速度比较慢,若用查询的方式,则慢

4、,若用查询的方式,则CPUCPU就要浪费很多时间去等待就要浪费很多时间去等待外设。这样就存在外设。这样就存在一个快速的一个快速的CPUCPU与慢速的外设之间的与慢速的外设之间的矛盾矛盾。为了解决这个问题,就发展了中断的概念。为了解决这个问题,就发展了中断的概念。 l 中断的优点 分时操作分时操作 有了中断功能,就可以使有了中断功能,就可以使CPU和外设同时工作。提高和外设同时工作。提高了了CPU的利用率。的利用率。 实时处理实时处理 实时控制时,需要现场的各种参数、信息,可在任实时控制时,需要现场的各种参数、信息,可在任何时间发出中断申请,何时间发出中断申请,CPU就可以马上响应加以处理。就可

5、以马上响应加以处理。 故障处理故障处理 计算机在运行过程中,往往会出现事先预料不到的计算机在运行过程中,往往会出现事先预料不到的情况,或出现一些故障。情况,或出现一些故障。l 中断源 引起中断的原因,或能发出中断申请的来源,称引起中断的原因,或能发出中断申请的来源,称为中断源。通常中断源有以下几种:为中断源。通常中断源有以下几种:外部输入、输出设备外部输入、输出设备故障源故障源 控制对象控制对象 定时定时/ /计数脉冲计数脉冲,当定时当定时/ /计数器溢出时产生中断请求。计数器溢出时产生中断请求。 对于每种中断事件,要求其能够发出中断请求信对于每种中断事件,要求其能够发出中断请求信号,而且要符

6、合号,而且要符合CPU响应中断的条件,即要明确属于哪响应中断的条件,即要明确属于哪种中断源。中断源是系统规定的可引起中断的部件或来种中断源。中断源是系统规定的可引起中断的部件或来源。源。l中断系统的功能中断系统的功能实现中断及返回实现中断及返回能实现优先权排队能实现优先权排队高级中断源能中断低级的中断处理高级中断源能中断低级的中断处理 l MCS-51单片机的中断系统提供单片机的中断系统提供5个中断申请源个中断申请源 外部中断外部中断0和外部中断和外部中断1; 定时定时/计数器计数器(T0)和和(T1)的溢出中断;的溢出中断; 串行接口的接收和发送中断。串行接口的接收和发送中断。这这5个中断源

7、可分为两个优先级,可实现两级中断服务个中断源可分为两个优先级,可实现两级中断服务程序嵌套。程序嵌套。4.1.2 MCS-514.1.2 MCS-51单片机的中断系统单片机的中断系统l MCS-51单片机的中断系统结构示意图单片机的中断系统结构示意图4.1.3 4.1.3 中断系统的控制与实现中断系统的控制与实现u MCS-51单片机的中断系统可以提供单片机的中断系统可以提供5个中断申请个中断申请源,它们的控制与实现由片内源,它们的控制与实现由片内4个个SFR来完成。来完成。 定时定时/计数器的控制寄存器计数器的控制寄存器(TCON)和串行接口控制寄存器和串行接口控制寄存器(SCON)的相应位规

8、定的相应位规定中断类型和触发方式中断类型和触发方式; 中断允许寄存器中断允许寄存器(IE)控制控制CPU是否响应中断请求是否响应中断请求; 中断优先级寄存器中断优先级寄存器(IP)安排各安排各中断源的优先级中断源的优先级,同一优先,同一优先级内各中断同时提出中断请求时,由内部的查询逻辑按规级内各中断同时提出中断请求时,由内部的查询逻辑按规定的自然优先级确定定的自然优先级确定其响应次序其响应次序。l MCS-51的中断源的中断源 外部中断外部中断0 0:来自来自P3.2引脚上的外部中断请求;引脚上的外部中断请求; 外部中断外部中断1 1:来自来自P3.3引脚上的外部中断请求;引脚上的外部中断请求

9、; T0T0:片内定时:片内定时/计数器计数器0溢出溢出(TF0)中断请求;中断请求; T1T1:片内定时片内定时/计数器计数器1溢出溢出(TF1)中断请求;中断请求; 串行接口串行接口:片内串行接口完成一帧数据的发送或接收后,产片内串行接口完成一帧数据的发送或接收后,产生中断请求生中断请求TI或或RI。l 和中断有关的特殊功能寄存器和中断有关的特殊功能寄存器 定时定时/计数器控制寄存器计数器控制寄存器TCON(88H) TCON:它锁存:它锁存2个定时个定时/计数器的溢出中断标志及外计数器的溢出中断标志及外部中断部中断( )和和( )的中断标志,与中断有关的各位的中断标志,与中断有关的各位定

10、义如下:定义如下:INT0INT1 位位D7D6D5D4D3D2D1D0字节地址字节地址TCONTF1TR1TF0TR0IE1IT1IE0IT088H位地址位地址8FH8EH8DH8CH8BH8AH89H88HIT0:外部中断:外部中断0触发方式控制位。触发方式控制位。 当IT0=0,外部中断0选择为电平触发方式(低电平有效)当IT0=1外部中断0选择为边沿触发方式(下降沿有效)。 IE0:外部中断:外部中断0中断请求标志位。中断请求标志位。 IE0=1时,表示向CPU请求中断。IT1:外部中断:外部中断1触发方式控制位。触发方式控制位。IE1:外部中断:外部中断1中断请求标志位。中断请求标志

11、位。TF0:定时:定时/计数器计数器T0溢出中断请求标志位。溢出中断请求标志位。 在T0启动后就开始由初值加“1”计数,直至最高位产生溢出由硬件置位(TF0),向CPU请求中断。CPU响应中断时,TF0由硬件自动清“0”。TF1:定时:定时/计数器计数器T1溢出中断请求标志位。溢出中断请求标志位。 串行接口控制寄存器串行接口控制寄存器(98H) SCON是串行接口控制寄存器,与中断有关的是它的是串行接口控制寄存器,与中断有关的是它的低位低位TI和和RI。 位位D7D6D5D4D3D2D1D0字节地址字节地址SCONTIRI98H位地址位地址9FH9EH9DH9CH9BH9AH99H98H RI

12、RI:串行接口接收中断标志位。串行接口接收中断标志位。 当允许串行接口接收数据时,每接收完一个串行帧,由当允许串行接口接收数据时,每接收完一个串行帧,由硬件置位硬件置位RI,向,向CPU请求中断。请求中断。CPU响应中断时,不能响应中断时,不能自动清除自动清除RI,RI必须由软件清除。必须由软件清除。 TITI:串行接口发送中断标志位。串行接口发送中断标志位。 当当CPU将一个发送数据写入串行接口发送缓冲器时,就将一个发送数据写入串行接口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置位启动了发送过程。每发送完一个串行帧,由硬件置位(TI),向,向CPU请求中断。同样,请求中断。同

13、样,TI必须由软件清除。必须由软件清除。 中断允许寄存器中断允许寄存器IE(A8H)IE(A8H) CPU对中断系统所有中断以及某个中断源的开放和屏蔽是对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器由中断允许寄存器(IE)控制的。控制的。 IE的状态可通过程序由软件设定;的状态可通过程序由软件设定; 某位设定为某位设定为“1”,相应的中断源中断允许;,相应的中断源中断允许; 某位设定为某位设定为“0”,相应的中断源中断屏蔽;,相应的中断源中断屏蔽; CPU复位时,复位时,IE各位清各位清“0”,禁止所有中断。,禁止所有中断。 IEIE各位的定义如下:各位的定义如下: EX0:外

14、部中断:外部中断(0)中断允许位;中断允许位;ET0:定时:定时/计数器计数器T0中断允许位;中断允许位;EX1:外部中断:外部中断(1)中断允许位;中断允许位;ET1:定时:定时/计数器计数器(T1)中断允许位;中断允许位;ES: 串行接口中断允许位;串行接口中断允许位;EA: CPU中断总允许位。中断总允许位。 位位D7D6D5D4D3D2D1D0字节地址字节地址 IEEAESET1EX1ET0EX0A8H位地址位地址AFHAEHADHACHABHAAHA9HA8H 中断优先级寄存器中断优先级寄存器IP(B8H) MCS-51单片机有两个中断优先级,即可实现二级中断服单片机有两个中断优先级

15、,即可实现二级中断服务嵌套。务嵌套。 每个中断源的中断优先级都是由中断优先级寄存器每个中断源的中断优先级都是由中断优先级寄存器(IP)中中的相应位的状态来规定的。的相应位的状态来规定的。 某位设定为某位设定为“1”,则相应的中断源为高优先级中断;,则相应的中断源为高优先级中断; 某位设定为某位设定为“0”,则相应的中断源为低优先级中断。,则相应的中断源为低优先级中断。 单片机复位时,单片机复位时,IP各位清各位清“0”,各中断源同为低优先级中,各中断源同为低优先级中断。断。 PX0:外部中断:外部中断0中断优先级设定位;中断优先级设定位; PT0:定时:定时/计数器计数器T0中断优先级设定位;

16、中断优先级设定位; PX1:外部中断:外部中断1中断优先级设定位;中断优先级设定位; PT1:定时:定时/计数器计数器T1中断优先级设定位;中断优先级设定位; PS:串行接口中断优先级设定位。:串行接口中断优先级设定位。 位位D7D6D5D4D3D2D1D0字节地址字节地址 IPPSPT1PX1PT0PX0B8H 位地址位地址BFHBEHBDHBCHBBHBAHB9HB8H IP寄存器寄存器各位的定义如下各位的定义如下 同一优先级的中断优先权排队,由中断系统硬件同一优先级的中断优先权排队,由中断系统硬件 确定的自然优先级形成,其排列如下表所示。确定的自然优先级形成,其排列如下表所示。中断源中断

17、源中断标志中断标志中断服务程序入口中断服务程序入口优先级顺序优先级顺序外部中断外部中断IE00003H高高定时定时/计数器计数器0(T0)TF0000BH外部中断外部中断IE10013H定时定时/计数器计数器1(T1)TF1001BH串行口串行口RI或或TI0023H低低 MCS-51单片机的中断优先级控制原则单片机的中断优先级控制原则 不同级的中断源同时申请中断时,先响应高级后响应低不同级的中断源同时申请中断时,先响应高级后响应低级。级。 同级的中断源同时申请中断时,按事先规定执行。即同级的中断源同时申请中断时,按事先规定执行。即MCS-51单片机中规定的同级中断优先顺序。单片机中规定的同级

18、中断优先顺序。 处理低级中断又收到高级中断请求时,停止低级转去先处理低级中断又收到高级中断请求时,停止低级转去先执行高级。执行高级。 处理高级中断又收到低级中断请求时,不响应它,等待处理高级中断又收到低级中断请求时,不响应它,等待做完高级处理后再处理低级中断做完高级处理后再处理低级中断。4.1.4 4.1.4 中断响应的条件、过程和时间中断响应的条件、过程和时间 中断处理过程分为中断处理过程分为4个阶段:中断请求个阶段:中断请求中断响应中断响应中中断服务断服务中断返回。中断返回。l 中断响应条件中断响应条件 CPUCPU在每个机器周期的在每个机器周期的S5P2S5P2时刻对各个中断源的中断标志

19、进时刻对各个中断源的中断标志进行行采样采样。 这些采样值在下一个机器周期内按优先级和内部顺序被依这些采样值在下一个机器周期内按优先级和内部顺序被依次查询。如果次查询。如果某个中断标志在上一个机器周期的某个中断标志在上一个机器周期的S5P2S5P2被置被置成了成了“1”1”,那么它将于现在的查询周期中及时被发现,那么它将于现在的查询周期中及时被发现。 接着接着CPUCPU便执行一条由中断系统提供的硬件便执行一条由中断系统提供的硬件LCALLLCALL指令指令,转,转向被称作中断向量的向被称作中断向量的特定入口地址特定入口地址,进入相应的中断服务,进入相应的中断服务程序。程序。l中断响应必须满足下

20、列条件:中断响应必须满足下列条件: 无同级或高级中断正在服务;无同级或高级中断正在服务; 现行指令执行到最后现行指令执行到最后1个机器周期且已结束;个机器周期且已结束; 若现行指令为若现行指令为RETI或需访问特殊功能寄存器或需访问特殊功能寄存器IE或或IP的指令时,执行完该指令且紧随其后的另的指令时,执行完该指令且紧随其后的另1条指令也已条指令也已执行完。执行完。 单片机便在紧接的下一个机器周期的单片机便在紧接的下一个机器周期的S1期间响应期间响应中断,否则,将丢弃中断查询的结果!中断,否则,将丢弃中断查询的结果!l 中断响应过程中断响应过程 将相应的优先级状态触发器置将相应的优先级状态触发

21、器置“1”(以阻断后来的同级以阻断后来的同级或低级的中断请求或低级的中断请求); 执行一条硬件执行一条硬件LCALL指令,把程序计数器指令,把程序计数器(PC)的内容的内容压入堆栈保存,再将相应的中断服务程序的入口地址压入堆栈保存,再将相应的中断服务程序的入口地址送入送入PC; 进入中断服务程序后,进入中断服务程序后,CPU自动清除中断请求标志自动清除中断请求标志TF0、TF1、IE0、IE1,但不能清除,但不能清除TI和和RI。中断响应过程 l执行中断服务程序 在主程序中事先进行中断初始化;在主程序中事先进行中断初始化; 在中断服务程序入口地址单元放一条长转移指令在中断服务程序入口地址单元放

22、一条长转移指令LJMP,这样中断服务程序能灵活地安排这样中断服务程序能灵活地安排64KB程序存储器的任何程序存储器的任何 地方;地方; 在中断服务程序中,首先用在中断服务程序中,首先用软件保护现场软件保护现场,在中断服务,在中断服务之后、之后、中断返回前恢复现场中断返回前恢复现场,以防止中断返回后,丢失原,以防止中断返回后,丢失原寄存器的内容。寄存器的内容。l 中断返回中断返回 中断服务程序的最后一条指令必须是中断返回指令中断服务程序的最后一条指令必须是中断返回指令RETIRETI。RETIRETI指令能使指令能使CPUCPU结束中断服务程序的执行,返回结束中断服务程序的执行,返回到曾经被中断

23、过的程序处,继续执行主程序。到曾经被中断过的程序处,继续执行主程序。 RETIRETI指令的具体功能是指令的具体功能是: 将中断响应时压入堆栈保存的断点地址从栈顶弹出送回将中断响应时压入堆栈保存的断点地址从栈顶弹出送回PCPC,CPUCPU从原来中断的地方继续执行程序;从原来中断的地方继续执行程序; 将相应将相应中断优先级状态触发器清中断优先级状态触发器清“0”0”,通知中断系统,通知中断系统,中断服务程序已执行完毕。中断服务程序已执行完毕。中断处理过程(汇总中断响应中断处理过程(汇总中断响应中断服务中断服务 中断返回)中断返回)(1 1)CPUCPU在每个机器周期的在每个机器周期的S5P2S

24、5P2时刻对各个中断源的中断标志时刻对各个中断源的中断标志 进行采样。进行采样。(2 2)这些采样值在)这些采样值在下一个机器周期下一个机器周期内按优先级和内部顺序被内按优先级和内部顺序被 依次查询。如果某个中断标志在上一个机器周期的依次查询。如果某个中断标志在上一个机器周期的S5P2S5P2 被置成了被置成了1 1,那么它将于现在的查询周期中及时被发现。,那么它将于现在的查询周期中及时被发现。(3) 3) 将相应的优先级状态触发器置将相应的优先级状态触发器置“1”(1”(以阻断后来的以阻断后来的 同级或低级的中断请求同级或低级的中断请求) ); (4) (4) 执行一条硬件执行一条硬件LCA

25、LLLCALL指令,把程序计数器指令,把程序计数器(PC)(PC)的内容压入的内容压入 堆栈保存,再将相应中断服务程序的入口地址送入堆栈保存,再将相应中断服务程序的入口地址送入PCPC; (5) (5) 进入中断服务程序后,进入中断服务程序后,CPUCPU自动清除中断请求标志自动清除中断请求标志TF0TF0、 TF1TF1、IE0IE0、IE1IE1,但不能清除,但不能清除TITI和和RIRI。中断响应过程中断响应过程(6)(6)在主程序中事先进行中断初始化,在在主程序中事先进行中断初始化,在中断服务程序中断服务程序 入口地址单元放一条长转移指令入口地址单元放一条长转移指令LJMPLJMP,这

26、样中断服,这样中断服 务程序能灵活地安排务程序能灵活地安排64KB64KB程序存储器的任何地方。程序存储器的任何地方。(7) (7) 在中断服务程序中,首先用软件保护现场,在中断服在中断服务程序中,首先用软件保护现场,在中断服 务之后、中断返回前恢复现场,以防止中断返回后,务之后、中断返回前恢复现场,以防止中断返回后, 丢失原寄存器的内容。丢失原寄存器的内容。(8) (8) 当执行到当执行到RET1RET1时,中断服务程序结束。时,中断服务程序结束。(9) (9) 将中断响应时压入堆栈保存的断点地址从栈顶弹出送将中断响应时压入堆栈保存的断点地址从栈顶弹出送 回回PCPC,CPUCPU从原来中断

27、的地方继续执行程序;从原来中断的地方继续执行程序;(10)(10)将相应中断优先级状态触发器清将相应中断优先级状态触发器清“0”0”,通知中断系,通知中断系 统,中断服务程序已执行完毕。统,中断服务程序已执行完毕。中断服务过程中断服务过程中断返回中断返回l中断响应时间中断响应时间所谓中断响应时间,所谓中断响应时间,是指从是指从查询中断请求标志位到转入查询中断请求标志位到转入中断服务程序入口地址所需的机器周期数中断服务程序入口地址所需的机器周期数(对单一中断源而言)。响应中断最短需要响应中断最短需要3个机器周期。个机器周期。若若CPU查询中断请求查询中断请求标志的周期正好是执行标志的周期正好是执

28、行1条指令的最后条指令的最后1个机器周期,则不个机器周期,则不需等待就可响应。响应中断执行需等待就可响应。响应中断执行1条长调用指令需要条长调用指令需要2个机个机器周期,加上查询的器周期,加上查询的1个机器周期个机器周期,共需要,共需要3个机器周期个机器周期才才开始执行中断服务程序。开始执行中断服务程序。中断响应的最长时间由下列情况所决定:若中断查询中断响应的最长时间由下列情况所决定:若中断查询时正在执行时正在执行RETI或者访问或者访问IE(或或IP)指令的第指令的第1个机器周期个机器周期,则连查询在内需要,则连查询在内需要2个机器周期个机器周期(以上以上3条指令均需条指令均需2个机个机器周

29、期器周期);若紧接着要执行的指令正好是;若紧接着要执行的指令正好是MUL或或DIV指令指令(两者均为两者均为4周期指令周期指令),则需等该指令执行完后才能进入中断,则需等该指令执行完后才能进入中断响应周期,再用响应周期,再用2个机器周期执行个机器周期执行1条长调用指令转入中断条长调用指令转入中断服务程序,这样一来总共服务程序,这样一来总共需要需要8个机器周期个机器周期。其他情况下的。其他情况下的中断响应时间一般在中断响应时间一般在38个机器周期之间。个机器周期之间。4.1.5 外部中断的请求与撤除外部中断的请求与撤除1外部中断外部中断4.1.4节已经介绍了节已经介绍了MCS-51单片机的中断系

30、单片机的中断系统的统的2个外部中断源的工作过程,它有两种触发方个外部中断源的工作过程,它有两种触发方式,即电平触发和边沿触发。可通过将式,即电平触发和边沿触发。可通过将TCON寄存寄存器中的器中的IT0位和位和IT1位清位清0使其工作在电平触发方使其工作在电平触发方式,或置为式,或置为1使其工作在边沿触发方式。使其工作在边沿触发方式。在电平触发方式下,单片机在每个机器周期在电平触发方式下,单片机在每个机器周期的的S5P2期间采样中断输入信号,若为低电平,则期间采样中断输入信号,若为低电平,则可直接触发外部中断。在这种触发方式中,中断源可直接触发外部中断。在这种触发方式中,中断源必须持续请求,直

31、至中断产生为止,且要求在中断必须持续请求,直至中断产生为止,且要求在中断服务程序返回之前,必须撤除中断请求信号,否则服务程序返回之前,必须撤除中断请求信号,否则机器将认为又发生了另一次中断请求。因此,电平机器将认为又发生了另一次中断请求。因此,电平触发方式适合于外部中断输入为低电平,且在中断触发方式适合于外部中断输入为低电平,且在中断服务程序中能清除该中断源的申请信号的情况。服务程序中能清除该中断源的申请信号的情况。在边沿触发方式中,单片机在采样中断输入信号时,在边沿触发方式中,单片机在采样中断输入信号时,如果连续采样到如果连续采样到1个周期的高电平和紧接着个周期的高电平和紧接着1个周期的低电

32、个周期的低电平,则中断请求标志位就被置位,并请求中断。平,则中断请求标志位就被置位,并请求中断。这种方式下这种方式下,CPU响应中断进入中断服务程序时,请求标志位会被响应中断进入中断服务程序时,请求标志位会被CPU自动清除。所以该方式适合于以负脉冲形式输入的外部自动清除。所以该方式适合于以负脉冲形式输入的外部中断请求。中断请求。由于外部中断源在每个机器周期被采样由于外部中断源在每个机器周期被采样1次,所以输入次,所以输入的高电平或低电平必须至少保持的高电平或低电平必须至少保持12个振荡周期,以保证能个振荡周期,以保证能被采样到。被采样到。2中断请求的撤除中断请求的撤除CPU响应中断请求后,在中

33、断返回前,必须响应中断请求后,在中断返回前,必须撤除请求,否则会错误地再一次引起中断过程。如撤除请求,否则会错误地再一次引起中断过程。如前所述,对于定时器前所述,对于定时器T0与与T1的中断请求及边沿触的中断请求及边沿触发方式的外部中断发方式的外部中断0和和1来说,来说,CPU在响应中断后在响应中断后用硬件清除了相应的中断请求标志用硬件清除了相应的中断请求标志TF0、TF1、IE0与与IE1,即自动撤除了中断请求。,即自动撤除了中断请求。对于串行口中断,对于串行口中断,CPU响应中断后没有用硬件清除响应中断后没有用硬件清除中断标志位,必须由用户编制的中断外部服务程序来清除相中断标志位,必须由用

34、户编制的中断外部服务程序来清除相应的中断标志,如用指令应的中断标志,如用指令CLR TI或或CLR RI来清除串行发来清除串行发送或串行接收中断标志。对于电平触发的外部中断,由于送或串行接收中断标志。对于电平触发的外部中断,由于CPU对外部中断对外部中断0和和1引脚没有控制作用,因此需要外接电引脚没有控制作用,因此需要外接电路来撤除中断请求信号。路来撤除中断请求信号。下图描述了一种外部中断撤出的可行性方案。该外部中下图描述了一种外部中断撤出的可行性方案。该外部中断请求信号通过断请求信号通过D触发器加到单片机外部中断触发器加到单片机外部中断0或或1引脚上。引脚上。当外部中断信号使当外部中断信号使

35、D触发器的触发器的CLK端发生正跳变时,由于端发生正跳变时,由于D端接地,端接地,Q端输出为端输出为0,因此向单片机发出中断请求。,因此向单片机发出中断请求。CPU响应中断后,利用响应中断后,利用1根口线根口线(如如P1.0)作应答线。作应答线。图4.3 外部中断请求(电平触发方式)的撤除图在中断服务程序中用以下两条指令来撤除中断请求:在中断服务程序中用以下两条指令来撤除中断请求:ANL P1,#0FEH;P1.0=0,则,则S=1,D触发器触发器置位,置位,Q=1 ORL P1,#01H;P1.0=1,则,则S=0,D触发器接收信号触发器接收信号第第1条指令使条指令使P1.0为为0,而,而P

36、1口其他各位的状态不变口其他各位的状态不变。由于。由于P1.0接至接至D触发器的置触发器的置“1”端端(S),所以,所以D触发器的触发器的Q=1,从而撤除了中断请求信号。第,从而撤除了中断请求信号。第2条指令又使条指令又使P1.0为为1,即,即S=0,以便能继续接收新的外部中断请求信号。,以便能继续接收新的外部中断请求信号。4.1.6 4.1.6 中断系统设计举例中断系统设计举例l 中断系统的设计过程通常由以下几个部分构成中断系统的设计过程通常由以下几个部分构成(1) 中断初始化,在主程序中完成;中断初始化,在主程序中完成;(2) 在中断入口地址处安排一跳转指令,跳转至中断在中断入口地址处安排

37、一跳转指令,跳转至中断 服务子程序入口;服务子程序入口;(3) 中断服务子程序开始保护现场,保护与主程序或中断服务子程序开始保护现场,保护与主程序或 其他中断系统共享的资源,如其他中断系统共享的资源,如A,PSW,DPTR, Rn等,如果没有共享资源,可以不必保护;等,如果没有共享资源,可以不必保护;(4) 编制中断服务子程序功能主体;编制中断服务子程序功能主体;(5) 恢复现场;恢复现场;【例例4.14.1】试编写设置外部中断试编写设置外部中断0 0和串行接口中断为高优和串行接口中断为高优先级,外部中断先级,外部中断1 1为低为低优先级优先级,并屏蔽,并屏蔽T0T0和和T1T1中断请求中断请

38、求的初始化程序段。的初始化程序段。解:根据题目要求,只要能将中断请求优先级寄存器解:根据题目要求,只要能将中断请求优先级寄存器IP的第的第0、4位置位置“l”。其余位置。其余位置“0”,将中断请,将中断请求允许寄存器的第求允许寄存器的第0、2、4、7位置位置“l”,其余位,其余位置置“0”就可以了。就可以了。 ORG 0000H SJMP MAIN ORG 0003H ;外部中断外部中断0的入口地址的入口地址 LJMP INT0INT ;跳转到外部中断跳转到外部中断0的中断服务程序的中断服务程序 ORG 0013H ;外部中断外部中断1的入口地址的入口地址 LJMP INT1INT ;跳转到外

39、部中断跳转到外部中断1的中断服务程序的中断服务程序 ORG 0023 ;串口中断的入口地址串口中断的入口地址 LJMP SIOINT ;跳转到串口中断的中断服务程序跳转到串口中断的中断服务程序 ORG 0030H MAIN: ;编写主程序编写主程序 MOV IP,#00010001B ;设外部中断和;串行口中断设外部中断和;串行口中断 ;为高优先级为高优先级 MOV IE,#10010101B ;允许允许INT0、串行口中断,开、串行口中断,开CPU中断中断 思考:思考: 试写一段中断初始化程序,使其允许试写一段中断初始化程序,使其允许T0、T1和串口中和串口中 断,且断,且INT0为边沿触发

40、方式,串口为高优先级中断。为边沿触发方式,串口为高优先级中断。【例例4.24.2】利用单片机的定时器计数来产生中断,假定单片机晶振选择12MHZ,选择使用T0每1mS产生一次中断请求,用于调用动态显示程序DISP,即显示程序在此属于中断服务程序。 解:先安排好不同程序的入口地址,在主程序中完成解:先安排好不同程序的入口地址,在主程序中完成定时定时器和中断的初始化器和中断的初始化,然后打开对应,然后打开对应中断允许位和总中断允中断允许位和总中断允许位许位,在中断服务程序中要,在中断服务程序中要注意保护和恢复现场注意保护和恢复现场。;主程序如下;主程序如下ORG 0000HLJMP MAIN ;跳

41、转到主程序入口;跳转到主程序入口ORG 000BHLJMP DISP;跳转到定时器;跳转到定时器T0中断入口地址中断入口地址 ORG 0030HMAIN: ;=进行定时器初始化进行定时器初始化= MOV TMOD,#00000001B ;设置;设置T0工作在模式工作在模式1 MOV TH0,#0FCH ; MOV TL0,#18H ; 设置计数初值设置计数初值FC18H=64536=65536-1000 SETB TR0 ; TR0=1,启动定时器,启动定时器T0 开始计数开始计数 SETB ET0 ; 开放定时器开放定时器T0 中断允许位中断允许位 SETB EA ;开放总中断允许位,等待;

42、开放总中断允许位,等待T0 计数满溢出;计数满溢出; 略略 ;中断服务程序代码:;中断服务程序代码: DISP: PUSH ACC PUSH PSW ;保护现场;保护现场; CLR TR0 ;因为已经响应中断请求,故停止定时器;因为已经响应中断请求,故停止定时器T0 MOV TH0,#0FCH MOV TL0,#18H ;重新赋计数初值;重新赋计数初值 SETB TR0 ;重新启动定时器;重新启动定时器T0 . ;显示程序代码(略);显示程序代码(略). POP PSW POP ACC ;按先入后出次序恢复现场;按先入后出次序恢复现场; RETI ; 中断服务程序结束,返回断点,必须用中断服务

43、程序结束,返回断点,必须用RETI指令;指令;【例例4.34.3】如下图所示,按如下图所示,按S接至外部中断,按一次键接至外部中断,按一次键LED点点亮,蜂鸣器发声,再按一次键亮,蜂鸣器发声,再按一次键LED灭,蜂鸣器关闭,循环灭,蜂鸣器关闭,循环往复。往复。图图 按键控制声光电路按键控制声光电路 实现程序ORG 0000HLED BITP0.0BUZZER BITP2.7LJMP MAIN;跳转至主程序;跳转至主程序ORG0003HLJMP INT1_INT;跳转至中断服务程序;跳转至中断服务程序ORG0100HMAIN: SETB IT1;外中断采用下降沿触发;外中断采用下降沿触发SETB

44、 EX1;允许中断;允许中断SETB EA;开总中断;开总中断SETB F0;按键切换标志,;按键切换标志,F0=1,LED灭;灭; ;F0=0,LED亮亮 INT1_INT:CPL F0 ;不需保护现;不需保护现MOVC,F0MOVLED,C;控制;控制LED输出输出MOVBUZZER,C;控制蜂鸣器输出;控制蜂鸣器输出RETI;中断返回;中断返回 另:请考虑用查询方式实现该功能,如何编程?二者有何差异?另:请考虑用查询方式实现该功能,如何编程?二者有何差异?l中断总结中断总结 51单片机共有5个中断源,由4个SFR(TCON、 SCON、IE和IP)进行管理和控制。 初始化时,需要对5个内

45、容进行设置: 1)中断服务程序入口地址的设定; 2)某一中断源中断请求的允许和禁止; 3)对于外部中断请求,还需进行触发方式的设定; 4)各中断优先级别的设定; 5)CPU开中断与关中断。4.2 MCS-514.2 MCS-51的定时的定时/ /计数器计数器 u 在工业检测、控制中,许多场合都要用到计数或定时功能。在工业检测、控制中,许多场合都要用到计数或定时功能。例如,对某个外部事件进行计数、定时巡回检测物理参数、例如,对某个外部事件进行计数、定时巡回检测物理参数、按一定的时间间隔进行现场控制等。按一定的时间间隔进行现场控制等。u 单片机片内集成有单片机片内集成有两个两个16位可编程的定时位

46、可编程的定时/计数器计数器:T0和和T1,通过对它们的特殊功能寄存器,通过对它们的特殊功能寄存器(SFR)的编程,可以用的编程,可以用作定时或计数器,此外,作定时或计数器,此外,T1还可以用作为串行口的波特率还可以用作为串行口的波特率发生器。发生器。 4.2.1 4.2.1 定时定时/ /计数器的基本结构计数器的基本结构l 1. 定时定时/计数器的结构计数器的结构 基本部件是两个基本部件是两个16位位寄存器寄存器T0和和T1,每个分成两个,每个分成两个8位寄存器位寄存器(例:例:T0由高由高8位位TH0和低和低8位位TL0组成)组成) TMOD:定时:定时/计数器的工作方式寄存器,由它确定定计

47、数器的工作方式寄存器,由它确定定时时/计数器的工作方式和功能;计数器的工作方式和功能; TCON:定时:定时/计数器的控制寄存器,用于控制计数器的控制寄存器,用于控制T0、T1的启动和停止以及设置溢出标志的启动和停止以及设置溢出标志。 定时定时/计数器的结构框图计数器的结构框图l 2. 2. 定时定时/ /计数器的工作原理计数器的工作原理 定时定时/计数器计数器T0和和T1的实质是的实质是加加“1”计数器计数器,即每输入,即每输入一个脉冲,计数器加一个脉冲,计数器加“1”,当加到计数器全为,当加到计数器全为“1”时,时,再输入一个脉冲,就使计数器回零,且计数器的溢出使再输入一个脉冲,就使计数器

48、回零,且计数器的溢出使TCON中的标志位中的标志位TF0或或TF1置置“1”,向,向CPU发出中断发出中断请求请求(定时定时/计数器中断允许时计数器中断允许时)。 区别:作定时器时脉冲来自于内部时钟振荡器,作计数器区别:作定时器时脉冲来自于内部时钟振荡器,作计数器时脉冲来自于外部引脚。时脉冲来自于外部引脚。1) 定时器模式定时器模式 此时输入脉冲是由内部时钟振荡器的输出经此时输入脉冲是由内部时钟振荡器的输出经12分频后送分频后送来的。来的。 如果晶振频率为如果晶振频率为12MHz,则一个机器周期是,则一个机器周期是1us,定,定时器每接收一个输入脉冲的时间为时器每接收一个输入脉冲的时间为1us

49、。 要定一段时间,只需计算一下脉冲个数即可。要定一段时间,只需计算一下脉冲个数即可。2) 计数器模式计数器模式 此时输入脉冲是由外部引脚此时输入脉冲是由外部引脚P3.4(T0)或或P3.5(T1)输输入到计数器的。入到计数器的。 在每个机器周期的在每个机器周期的S5P2期间采样期间采样T0、T1引脚电平。当引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加平时,则计数器加“1”。 由于检测一个从由于检测一个从“1”到到“0”的下降沿需要的下降沿需要2个机器周期个机器周期,因此要求被采样的电平至少要维持一个机器周期,因

50、此要求被采样的电平至少要维持一个机器周期,否则否则会出现漏计数现象,所以最高计数频率为晶振频率的会出现漏计数现象,所以最高计数频率为晶振频率的1/24。 当晶振频率为当晶振频率为12MHz时,最高计数频率不超时,最高计数频率不超500kHz,即计数脉冲的周期要大于即计数脉冲的周期要大于2us。4.2.2 4.2.2 定时定时/ /计数器的控制与实现计数器的控制与实现 l MCS-51单片机定时单片机定时/计数器的控制与实现由两个特殊功计数器的控制与实现由两个特殊功能寄存器能寄存器TMOD、 TCON完成。完成。 1. 工作方式寄存器工作方式寄存器 TMOD(89H) 用于设置定时用于设置定时/

51、计数器的工作方式,低计数器的工作方式,低4位用于位用于T0,高,高4位位用于用于T1。其格式如下。其格式如下 位位D7D6D5D4D3D2D1D0字节地址字节地址TMODGATEC/M1M0GATE C/M1M089HTT(1) GATE:门控位。:门控位。 GATE0时,当软件使时,当软件使TCON中的中的TR0或或TR1设置为设置为“1”,则启动定时,则启动定时/计数器工作;计数器工作; GATA1时,软件使时,软件使TR0或或TR1设置为设置为“1”,同时外部,同时外部中断引脚或也为高电平时,才能启动定时中断引脚或也为高电平时,才能启动定时/计数器工作。计数器工作。(2) C/T :定时

52、:定时/计数模式选择位。计数模式选择位。 C/T0为定时模式;为定时模式; C/T=1为计数模式。为计数模式。(3) M1M0 :工作方式设置位。定时:工作方式设置位。定时/计数器有计数器有4种工作方式种工作方式,由,由M1M0进行设置进行设置 ,如表如表下表下表所示。所示。 T定时定时/计数器工作方式设置表计数器工作方式设置表M1M0工作方式工作方式功能说明功能说明00方式方式013位定时位定时/计数器计数器01方式方式116位定时位定时/计数器计数器10方式方式28位自动重装初值定时位自动重装初值定时/计数器计数器11方式方式3T0分成两个独立的分成两个独立的8位定时位定时/计数器;计数器

53、;T1此方式停止计数此方式停止计数2. 控制寄存器TCON (88H) TCONTCON的低的低4 4位用于控制外部中断,位用于控制外部中断,TCONTCON的高的高4 4位用于位用于控制定时控制定时/ /计数器的启动和中断申请。计数器的启动和中断申请。位位D7D6D5D4D3D2D1D0字节地址字节地址TCONTF1TR1TF0TR088H位地址位地址8FH8EH8DH8CH8BH8AH89H88H(1)(1) TF1TF1:定时:定时/ /计数器计数器T1T1溢出中断请求标志位。溢出中断请求标志位。T1T1计数溢出计数溢出 时由硬件自动置时由硬件自动置TF1TF1为为“1”1”。在进入中断

54、服务程序后。在进入中断服务程序后TF1TF1由硬件自动清由硬件自动清“0”0”;若用于查询方式,此位可作为状态;若用于查询方式,此位可作为状态位供查询,但应注意查询后由软件清位供查询,但应注意查询后由软件清“0”0”。(2) (2) TR1TR1:定时:定时/ /计数器计数器T1T1运行控制位。运行控制位。TR1TR1置置“1”1”时,定时时,定时/ / 计数器计数器T1T1开始工作;开始工作;TR1TR1置置“0”0”时,定时时,定时/ /计数器计数器T1T1停止停止 工作。工作。TR1TR1由软件置由软件置“1”1”或清或清“0”0”。 (3) (3) TF0TF0 :定时:定时/ /计数

55、器计数器T0T0溢出中断请求标志位,其功能与溢出中断请求标志位,其功能与 TF1 TF1类同。类同。(4) (4) TR0TR0 :定时:定时/ /计数器计数器T0T0运行控制位,其功能与运行控制位,其功能与TR1TR1类同。类同。4.2.3 4.2.3 定时定时/ /计数器的工作方式计数器的工作方式 MCS-51单片机定时单片机定时/计数器计数器T0有有4种工作方式种工作方式(方式方式0、1、2、3); T1有有3种工作方式种工作方式(方式方式0、1、2); T1还可作为串行通信接口的波特率发生器;还可作为串行通信接口的波特率发生器; 若错将若错将T1设置为方式设置为方式3,则,则T1将停止

56、工作;将停止工作; 下面以定时下面以定时/计数器计数器T0为例进行介绍为例进行介绍 。o 1. 方式0当TMOD的M1M0为00时,定时/计数器工作于方式0,如图所示。方式0的逻辑结构 方式方式0 0为为1313位计数,由位计数,由TL0TL0的低的低5 5位位( (高高3 3位未用位未用) )和和TH0TH0的的8 8位位组成。组成。 TL0TL0的低的低5 5位溢出时向位溢出时向TH0TH0进位,进位,TH0TH0溢出时,置位溢出时,置位TCONTCON中的中的TF0TF0标志,向标志,向CPUCPU发出中断请求。发出中断请求。 1313位定时位定时/ /计数器是为了与计数器是为了与Int

57、elIntel公司早期的产品公司早期的产品MCS-48MCS-48系系列兼容,该系列已过时,且计数初值装入易出错,所以在列兼容,该系列已过时,且计数初值装入易出错,所以在实际应用中常由实际应用中常由1616位的方式位的方式1 1取代。取代。o 2. 方式方式1 当当M1M0为为01时,定时时,定时/计数器工作于方式计数器工作于方式1,如图所示。,如图所示。 方式1的逻辑结构 方式方式1的计数位数是的计数位数是16位,由位,由TL0作为低作为低8位、位、TH0 作为高作为高8位,组成了位,组成了16位加位加“1”计数器。计数器。 计数个数计数个数M与计数初值与计数初值N的关系为的关系为M216N

58、。 用于定时功能时,定时时间用于定时功能时,定时时间t的计算公式为:的计算公式为:t=M机器周期机器周期=(216N )机器周期机器周期 若晶振频率为若晶振频率为12MHz,机器周期,机器周期=1us,初值,初值N=0 65535范围时,则可定时范围为范围时,则可定时范围为165.536ms。 用于计数功能时,初值用于计数功能时,初值N=065535范围时,计数范围时,计数 范围为范围为165536。o 3. 方式方式2 当当M1M0为为10时,定时时,定时/计数器工作在方式计数器工作在方式2,其逻,其逻辑结构如图所示。辑结构如图所示。方式2的逻辑结构 方式方式2为为自动重装初值的自动重装初值

59、的8位计数方式位计数方式。 TL0作为作为8位定时位定时/计数器使用,计数器使用,TH0为为8位初值寄存位初值寄存器,保持不变。器,保持不变。 当当TL0计满溢出时,由硬件使计满溢出时,由硬件使TF0置置“1”,向,向CPU发发出中断请求,而溢出脉冲打开出中断请求,而溢出脉冲打开TL0与与TH0之间的三态之间的三态门,将门,将TH0中的计数初值自动送入中的计数初值自动送入TL0。TL0从初值从初值重新进行加重新进行加“1”计数。周而复始,直至计数。周而复始,直至TR0=0才会才会停止。停止。 计数个数计数个数M与计数初值与计数初值N的关系为的关系为M28N。 用于定时功能时,定时时间用于定时功

60、能时,定时时间t的计算公式为的计算公式为t=M机器周期机器周期=(28N )机器周期机器周期若晶振频率为若晶振频率为12MHz,机器周期,机器周期=1,初值,初值N=0255范范围时,则可定时范围为围时,则可定时范围为1256。 用于计数功能时,初值用于计数功能时,初值N=0255范围时,计数范围为范围时,计数范围为1256。o 由于工作方式由于工作方式2省去了重装常数的程序,特别适合于用作省去了重装常数的程序,特别适合于用作波特率发生器。波特率发生器。o 4. 方式方式3 当当M1M0为为11时,时,T0被设置为方式被设置为方式3,其逻辑结构,其逻辑结构如图所示。如图所示。 T0方式方式3的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论