(单片机-汪文)4.输入 输出、中断、定时与串行通信_第1页
(单片机-汪文)4.输入 输出、中断、定时与串行通信_第2页
(单片机-汪文)4.输入 输出、中断、定时与串行通信_第3页
(单片机-汪文)4.输入 输出、中断、定时与串行通信_第4页
(单片机-汪文)4.输入 输出、中断、定时与串行通信_第5页
已阅读5页,还剩160页未读 继续免费阅读

下载本文档

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

文档简介

1、1主要内容:主要内容: 介绍介绍I/OI/O的基本概念、的基本概念、I/OI/O数据传递方式,中数据传递方式,中断的基本概念,串行通信基本概念。主要介绍单断的基本概念,串行通信基本概念。主要介绍单片机中断系统结构、特点及使用方法;片内定时片机中断系统结构、特点及使用方法;片内定时器器/ /计数器结构、原理及使用;片内串行口结构、计数器结构、原理及使用;片内串行口结构、原理以及双机和多机通信实现方法;原理以及双机和多机通信实现方法;PCPC机与单片机与单片机通信实现方法。机通信实现方法。2 4.1.14.1.1输入输入/ /输出的基本概念输出的基本概念 输入输入/ /输出设备又称为计算机外围设输

2、出设备又称为计算机外围设备;简称外设或备;简称外设或I IO O设备。单片机应用系设备。单片机应用系统常用的输入设备有按钮、键盘、各种传统常用的输入设备有按钮、键盘、各种传感器等。常用的输出设备有感器等。常用的输出设备有LED(LED(发光二极发光二极管显示器管显示器) )、LCD(LCD(液晶显示器液晶显示器) )等。等。一、输入一、输入/ /输出设备输出设备3 三、输入三、输入/ /输出接口与端口输出接口与端口 输入输入/ /输出设备与主机的连接部分称为输入输出设备与主机的连接部分称为输入/ /输出接口,简称输出接口,简称I IO O接口。接口。 输入输入/ /输出接口的作用是:输出接口的

3、作用是: 2.2.锁存与缓冲作用:一锁存与缓冲作用:一般用般用D D触发器进行锁存。触发器进行锁存。 1.1.隔离与寻址作用:例隔离与寻址作用:例如右图用三态门组成的接口。如右图用三态门组成的接口。3.3.信号电平或形式变换:信号电平或形式变换:例如例如A/DA/D、D/AD/A、232/485232/485的变换。的变换。4 通常接口电路中可编址并能进行读写操作的寄存器称通常接口电路中可编址并能进行读写操作的寄存器称为端口或简称口。一个接口电路中可能包括多个口,例如为端口或简称口。一个接口电路中可能包括多个口,例如数据口、状态口、控制口,即包含有多个口地址。同一单数据口、状态口、控制口,即包

4、含有多个口地址。同一单片机系列中,片内集成的片机系列中,片内集成的I/OI/O模块各有不同,当片内模块各有不同,当片内I/OI/O不不能满足实际需求时,可扩展外部能满足实际需求时,可扩展外部I/OI/O。 四、四、I/OI/O的分类的分类 按照信号的传递方式,可将按照信号的传递方式,可将I/OI/O分为串行和并行两类。分为串行和并行两类。 按照按照I/OI/O连接的信号大致可分为模拟量、数字量、脉冲连接的信号大致可分为模拟量、数字量、脉冲量量I/OI/O三类。三类。 五、数据总线隔离技术五、数据总线隔离技术 为了正确地进行数据的为了正确地进行数据的I/OI/O传递,必须解决数据总线传递,必须解

5、决数据总线的隔离问题,即在任一时刻,的隔离问题,即在任一时刻,CPUCPU只对一个只对一个I/OI/O进行操作。进行操作。为此,对输出设备的接口电路要使用锁存器,对输入设备为此,对输出设备的接口电路要使用锁存器,对输入设备的接口电路,使用三态缓冲器。的接口电路,使用三态缓冲器。 5六、单片机六、单片机I/OI/O编址方式编址方式 每一个每一个I/OI/O都需要编址,以便都需要编址,以便CPUCPU分别进行寻址。常分别进行寻址。常用的用的I/OI/O编址方式有两种:独立编址方式和统一编址方式。编址方式有两种:独立编址方式和统一编址方式。 独立编址方式独立编址方式: : I/O I/O和存储器分开

6、编址,有各自独立和存储器分开编址,有各自独立的地址空间,采用不同的控制总线,使用不同的指令分别的地址空间,采用不同的控制总线,使用不同的指令分别寻址。寻址。 统一编址方式统一编址方式: : I/O I/O与数据存储器在同一地址空间编与数据存储器在同一地址空间编址,寻址方式相同,采用相同的地址、数据、控制总线,址,寻址方式相同,采用相同的地址、数据、控制总线,使用相同的指令寻址。使用相同的指令寻址。6 单片机系统中有不同类型的单片机系统中有不同类型的I/OI/O设备,由于设备,由于I/OI/O所连接所连接的外设或的外设或I/OI/O接口本身的速度与接口本身的速度与CPUCPU的处理速度相比,通常

7、的处理速度相比,通常低于低于CPUCPU的速度,为了实现数据的正确传输,的速度,为了实现数据的正确传输,CPUCPU通常采用通常采用三种控制方式,即无条件传送方式、查询方式和中断控制三种控制方式,即无条件传送方式、查询方式和中断控制方式。方式。一、无条件传送方式一、无条件传送方式 I/OI/O或与或与I/OI/O连接的外设随时都处于准备好状态,这时连接的外设随时都处于准备好状态,这时CPUCPU不需要测试外设状态,随时直接对其进行操作。不需要测试外设状态,随时直接对其进行操作。 7 Y N 查询状态 就绪? 输入/输出 查询方式流程图 二、查询方式二、查询方式 查询方式是指查询方式是指CPUC

8、PU在执行输入在执行输入输出指令之前,先对外围设备的输出指令之前,先对外围设备的状态进行检测,以判别外设是否状态进行检测,以判别外设是否准备就绪。如果已经准备就绪,准备就绪。如果已经准备就绪,CPUCPU就可以执行输入输出指令。如就可以执行输入输出指令。如果还没有准备就绪,必须继续查果还没有准备就绪,必须继续查询(如右图所示)。询(如右图所示)。 查询方式的特点:实现简单,查询方式的特点:实现简单,通用性强,适合各种设备数据的通用性强,适合各种设备数据的输入输入/ /输出;其缺点是需要占用输出;其缺点是需要占用CPUCPU的时间,外设速度较慢时,效的时间,外设速度较慢时,效率较低。率较低。 8

9、三、中断方式三、中断方式 中断方式下外设的状态信号以中断申请方式输入中断方式下外设的状态信号以中断申请方式输入CPUCPU。 CPUCPU响应中断,暂停正在执行的程序,转而执行中断服务响应中断,暂停正在执行的程序,转而执行中断服务程序,在中断服务程序中对外设进行输入程序,在中断服务程序中对外设进行输入/ /输出操作,中输出操作,中断返回后,再继续执行被中断的程序。断返回后,再继续执行被中断的程序。 中断方式可提高单片机系统的效率。中断方式可提高单片机系统的效率。9 当当CPUCPU正在处理某件事正在处理某件事情的时候,内部或外部发生情的时候,内部或外部发生的某一事件的某一事件( (如一个电平的

10、如一个电平的变化,一个脉冲沿的发生或变化,一个脉冲沿的发生或定时器计数溢出等定时器计数溢出等) )请求请求CPUCPU迅速去处理,于是,迅速去处理,于是,CPUCPU暂暂时中止当前的工作,转去处时中止当前的工作,转去处理所发生的事件。处理完该理所发生的事件。处理完该事件以后,再回到原来被中事件以后,再回到原来被中止的地方,继续原来的工作,止的地方,继续原来的工作,这样的过程称为这样的过程称为中断中断。 请求 主程序 主程序 中断服务 返回 响应 中断流程 10一、中断源一、中断源 中断源是指中断源是指向向CPUCPU申请中断的事件来源申请中断的事件来源。例如。例如外部输入输出设备,定时外部输入

11、输出设备,定时/ /计数器,串行接口都可计数器,串行接口都可以作为中断源。以作为中断源。二、中断优先权二、中断优先权 中断优先权也叫中断排序,是用户根据中断中断优先权也叫中断排序,是用户根据中断源的性质和重要性自行排列的先后次序。在多个源的性质和重要性自行排列的先后次序。在多个中断源同时提出申请时,保证优先权高的中断源中断源同时提出申请时,保证优先权高的中断源首先得到响应,纵使首先得到响应,纵使CPUCPU正在处理一个中断,也要正在处理一个中断,也要暂时停止较低级的中断。响应优先权更高的中断暂时停止较低级的中断。响应优先权更高的中断源请求。这个过程称为源请求。这个过程称为中断嵌套中断嵌套或或多

12、重中断多重中断。 优先权排序可以用软件也可以用硬件实现。优先权排序可以用软件也可以用硬件实现。11三、中断系统的功能:三、中断系统的功能:(1)(1)可实现高速可实现高速CPU CPU 与慢速外设之间的配合。与慢速外设之间的配合。因为许多外围设因为许多外围设备的速度比备的速度比CPUCPU慢,二者间无法同步地进行数据交换。为此慢,二者间无法同步地进行数据交换。为此可通过中断方式实现可通过中断方式实现CPUCPU与外围设备之间的协调工作。与外围设备之间的协调工作。 (2)(2)可实现实时处理。可实现实时处理。实时处理是自动控制系统对计算机提出实时处理是自动控制系统对计算机提出的要求,各控制参量可

13、以随时向的要求,各控制参量可以随时向CPUCPU发出中断申请,而发出中断申请,而CPUCPU也必须做出快速响应和及时处理,以便使被控对象总保也必须做出快速响应和及时处理,以便使被控对象总保持在最佳工作状态。持在最佳工作状态。(3) (3) 实现故障的紧急处理。实现故障的紧急处理。当外围设备或计算机出现故障时,当外围设备或计算机出现故障时,可以利用中断系统请求可以利用中断系统请求CPUCPU及时处理这些故障。及时处理这些故障。(4)(4)便于人机联系。便于人机联系。操作人员可以利用键盘中断等,实现人机操作人员可以利用键盘中断等,实现人机联系,完成人的干预。联系,完成人的干预。12 四、中断响应过

14、程四、中断响应过程 1)1)寻找中断源。(寻找中断源。(中断识别中断识别) 2)2)将当前将当前PCPC值值( (下一条指令的下一条指令的地址地址) )压入堆栈压入堆栈( (即即保护断点保护断点),以),以便中断返回时使用。便中断返回时使用。 3)3)寻找中断入口,以便转向执寻找中断入口,以便转向执行中断服务程序。行中断服务程序。 4)4)保护现场。保护现场。 5)5)执行中断服务程序(执行中断服务程序(中断处中断处理理)。)。 6)6)执行完中断服务程序后执行完中断服务程序后, ,恢恢复现场并返回主程序(复现场并返回主程序(中断返中断返回回)。)。13一、中断源与中断标志位一、中断源与中断标

15、志位8051/80318051/8031型单片机提供了型单片机提供了5 5个中断源:两个外部中断个中断源:两个外部中断源和三个内部中断源。每一个中断源都有一个中断申请标源和三个内部中断源。每一个中断源都有一个中断申请标志,但串行口占两个中断标志位,一共六个中断标志,下志,但串行口占两个中断标志位,一共六个中断标志,下表给出了它们各自的名称。表给出了它们各自的名称。分分 类类中断源名称中断源名称中断申请标志中断申请标志触发方式触发方式中断入口地址中断入口地址外部中断外部中断外部中断外部中断0 0IE0(TCON.1)IE0(TCON.1)INT0(P3.2)INT0(P3.2)引脚上的低引脚上的

16、低电平电平/ /下降沿引起的中断下降沿引起的中断0003H0003H内部中断内部中断T0T0定时器定时器/ /计数器计数器0 0中断中断IF0(TCON.5)IF0(TCON.5)T0T0计数器溢出后引起的计数器溢出后引起的中断中断000BH000BH外部中断外部中断外部中断外部中断1 1IE1(TCON.3)IE1(TCON.3)INT1(P3.3)INT1(P3.3)引脚上的低引脚上的低电平电平/ /下降沿引起的中断下降沿引起的中断0013H0013H内部中断内部中断T1T1定时器定时器/ /计数器计数器1 1中断中断IF1(TCON.7)IF1(TCON.7)T1T1计数器溢出后引起的计

17、数器溢出后引起的中断中断001BH001BH内部中断内部中断串口中断串口中断RI (SCON.0)RI (SCON.0)TI ( SCON.1)TI ( SCON.1)串行口接收完成或发送串行口接收完成或发送完一帧数据后引起的中完一帧数据后引起的中断断0023H0023H中断源和中断申请标志中断源和中断申请标志14MCS - 51MCS - 51中断系统中断系统MCS - 51MCS - 51中断系统结构框图中断系统结构框图 中断源中断源中断选择中断选择中断标志中断标志15 1.1.中断源中断源(1) 1) 外部中断外部中断0 0请求,由请求,由P3.2P3.2引脚输入。可由用户引脚输入。可由

18、用户设定为两种触发方式,(电平触发方式还是边沿触设定为两种触发方式,(电平触发方式还是边沿触发方式)。一旦输入信号有效,则向发方式)。一旦输入信号有效,则向CPUCPU申请中断,申请中断,并且将中断标志并且将中断标志IE0IE0置置1 1。(2) 2) 外部中断外部中断1 1请求,由请求,由P3.3P3.3引脚输入。亦可由用引脚输入。亦可由用户设定为电平触发方式还是边沿触发方式。一旦输户设定为电平触发方式还是边沿触发方式。一旦输人信号有效,则向人信号有效,则向CPUCPU申请中断,并将中断标志申请中断,并将中断标志IE1IE1置置1 1。 (3 3)片内定时器)片内定时器T0T0溢出中断请求。

19、当定时器溢出中断请求。当定时器T0T0产生产生溢出时,溢出时,T0T0中断请求标志中断请求标志TF0 TF0 置置1 1,请求中断处理。,请求中断处理。 (4)4)片内定时器片内定时器T1T1溢出中断请求。当定时器溢出中断请求。当定时器T1T1产生溢产生溢出时,出时,T1T1中断请求标志中断请求标志TF1TF1置置l l,请求中断处理。,请求中断处理。 (5)5)片内串行口发送接收中断请求。当通过串行口片内串行口发送接收中断请求。当通过串行口发送或接收完一帧串行数据时,串行口中断请求标志发送或接收完一帧串行数据时,串行口中断请求标志TITI或或RIRI置置1 1,请求中断处理。,请求中断处理。

20、 INT0 IE0 INT1 IE1 TF0 TF1 RI TI 图 10、 8051中 断 源 16因此,与中断有关的特殊功能寄存器有:因此,与中断有关的特殊功能寄存器有: 中断允许控制寄存器中断允许控制寄存器(IE) (IE) 定时器定时器/ /计数器控制寄存器计数器控制寄存器(TCON) (TCON) 中断优先级控制寄存器中断优先级控制寄存器(IP) (IP) 串行口控制寄存器串行口控制寄存器(SCON )(SCON ) MCS-51 MCS-51单片机的中断系统中,使用何种中断,采用单片机的中断系统中,使用何种中断,采用何种触发方式,可通过定时器何种触发方式,可通过定时器/ /计数器控

21、制寄存器计数器控制寄存器TCONTCON和串行口控制寄存器和串行口控制寄存器SCONSCON的有关位来规定。只要根据这的有关位来规定。只要根据这些位的状态就能确定有无中断请求及中断的来源。些位的状态就能确定有无中断请求及中断的来源。 在中断源与在中断源与CPUCPU之间有二级中断允许控制逻辑电路,之间有二级中断允许控制逻辑电路,一级为总允许,第二级为源允许,由一级为总允许,第二级为源允许,由IEIE控制。控制。 中断优先级由中断优先级由IPIP控制。控制。172.2.中断请求标志中断请求标志 (1)TCON(1)TCON的中断标志的中断标志 TCONTCON是专用寄存器,字节地址为是专用寄存器

22、,字节地址为88H88H,它锁存了外部中,它锁存了外部中断请求标志及断请求标志及T0T0和和T1T1的溢出中断请求标志。的溢出中断请求标志。TCONTCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0TF1TF1TR1TR1TF0TF0TR0TR0IE1IE1IT1IT1IE0IE0IT0IT0 IT0/IT0/ IT1 IT1: 外部中断请求的触发方式选择位:外部中断请求的触发方式选择位: =0=0:在:在INT0/INT1INT0/INT1端申请中断的信号低电平有效端申请中断的信号低电平有效; ; =1 =1:在:在INT0/INT1INT0/INT1端申请中断的信号负

23、跳变有效端申请中断的信号负跳变有效. . IE0/IE1 IE0/IE1:外部中断申请标志位:外部中断申请标志位: =0=0:没有外部中断申请;:没有外部中断申请; =1=1:有外部中断申请。:有外部中断申请。 TF0/TF1TF0/TF1:定时器溢出中断申请标志位:定时器溢出中断申请标志位: =0=0:定时器未溢出;:定时器未溢出; =1=1:定时器溢出申请中断,进中断后自动清零。:定时器溢出申请中断,进中断后自动清零。 TR0/TR1TR0/TR1:定时器运行启停控制位:定时器运行启停控制位: =0=0:定时器停止运行;:定时器停止运行; =1=1:定时器启动运行。:定时器启动运行。18(

24、2)SCON(2)SCON的中断标志的中断标志 SCONSCON是串行口控制寄存器,与中断有关的是它的低两位是串行口控制寄存器,与中断有关的是它的低两位TITI和和RIRI。 TITI(SCON.1SCON.1):串行口发送中断标志位。每发送完一个):串行口发送中断标志位。每发送完一个串行帧,由硬件置位串行帧,由硬件置位TITI。CPUCPU响应中断时,不能清除响应中断时,不能清除TITI,TITI必须由软件清除。必须由软件清除。 RIRI(SCON.0)(SCON.0):串行口接收中断标志位,当允许串行口:串行口接收中断标志位,当允许串行口接收数据时,每接收完一个串行帧,由硬件置位接收数据时

25、,每接收完一个串行帧,由硬件置位RIRI。同样,。同样,RIRI必须由软件清除。必须由软件清除。SCONSCON RIRI TITIRB8RB8RB8TB8TB8TB8RENRENRENSM2SM2SM2SM1SM1SM1SM0SM0SM019二、二、MCSMCS5151的中断管理的中断管理 1 1、中断允许寄存器、中断允许寄存器IEIE中断的允许与开放中断的允许与开放 0:关INT 中断01:开INT 中断00:关T 中断1:开T 中断001:开T 中断0:关T 中断0:关INT 中断1:开INT 中断11110:关T 中断1:开T 中断221:开所有中断0:关所有中断1:开串行口中断0:关

26、串行口中断位地址IEEAAFADETACESABETAAEXA9ETA8EX00112 在中断源与在中断源与CPUCPU之间有两级中断允许控制逻辑电路,一之间有两级中断允许控制逻辑电路,一级为总允许,第二级为源允许,由级为总允许,第二级为源允许,由IEIE控制。控制。 202 2中断优先级寄存器中断优先级寄存器IPIP 中断优先级控制中断优先级控制 内部自然优先级:内部自然优先级: 入口地址入口地址 INT0 高高 0003H T0 000BH INT1 0013H T1 001BH TI/RI 低低 0023H213.3.同一级中的同一级中的5 5个中断源的优先顺序个中断源的优先顺序 /IN

27、T0/INT0中断中断 T0T0溢出中断溢出中断 /INT1/INT1中断中断 T1T1溢出中断溢出中断 串口中断串口中断 高高低低自然优先级自然优先级中断优先原则:中断优先原则:(概括为四句话)(概括为四句话)1)1)低级不中断高级低级不中断高级2)2)高级不睬低级高级不睬低级3)3)同级不能打断同级不能打断4)4)同级、同时中断,按同级、同时中断,按自然优先级自然优先级22MCS - 51MCS - 51中断系统中断系统MCS - 51MCS - 51中断系统结构框图中断系统结构框图 中断源中断源中断选择中断选择中断标志中断标志23 中断处理过程一般分为三个阶段,即中断处理过程一般分为三个

28、阶段,即中断响应、中断处中断响应、中断处理理和和中断返回中断返回。 三、中断三、中断响应响应的条件及过程的条件及过程 1.1.中断响应中断响应(1 1)中断响应的条件:)中断响应的条件: 1 1)有中断源发出请求信号)有中断源发出请求信号 2 2)中断是开放的(总允许、源允许)中断是开放的(总允许、源允许) 3 3)没有封锁(受阻),受阻情况是:)没有封锁(受阻),受阻情况是: CPUCPU正在执行同级或高一级的中断服务程序;正在执行同级或高一级的中断服务程序; 现行机器周期不是正在执行的指令的最后一个机器周期,现行机器周期不是正在执行的指令的最后一个机器周期,即现行指令完成前不响应任何中断请

29、求;即现行指令完成前不响应任何中断请求; 当前正在执行的是中断返回指令当前正在执行的是中断返回指令RETIRETI或访问专用寄存器或访问专用寄存器IEIE或或IPIP的指令。也就是说,在执行的指令。也就是说,在执行RETIRETI或是访问或是访问IEIE、IPIP的指令的指令后,至少需要再执行一条其他指令,才会响应中断请求。后,至少需要再执行一条其他指令,才会响应中断请求。24 (2 2)中断响应过程)中断响应过程 进入中断响应周期。进入中断响应周期。CPUCPU在中断响应周期要完成下列操作:在中断响应周期要完成下列操作: 1) 1) 根据中断请求源的优先级高低,使相应的优先级状态根据中断请求

30、源的优先级高低,使相应的优先级状态触发器置触发器置1 1。 2) 2) 清相应中断请求标志位清相应中断请求标志位IE0IE0、IE1IE1、TF0TF0或或TF1TF1。 3) 3) 保留断点,把保留断点,把PCPC内容压入堆栈保存。内容压入堆栈保存。 4) 4) 把被响应的中断源的服务把被响应的中断源的服务程序入口地址送入程序入口地址送入PCPC,转入相应的,转入相应的中断服务程序。中断服务程序。25(3 3)中断响应时间)中断响应时间 从查询中断请求标志位到转向中断服务入口地址所需的机从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。器周期数。1 1)最快响应时间)最快响应时间

31、以外部中断的电平触发为最快。以外部中断的电平触发为最快。 从查询中断请求信号到中断服务程序需要三个机器周期:从查询中断请求信号到中断服务程序需要三个机器周期: 1 1个周期(查询)个周期(查询)2 2个周期(长调用个周期(长调用LCALLLCALL)2 2)最长时间)最长时间 若当前指令是若当前指令是RETRET、RETIRETI和和IPIP、IEIE指令,紧接着下一条是乘指令,紧接着下一条是乘除指令发生,则最长为除指令发生,则最长为8 8个周期:个周期: 2 2个周期执行当前指令(其中含有个周期执行当前指令(其中含有1 1个周期查询)个周期查询)4 4个周期个周期乘除指令乘除指令2 2个周期

32、长调用个周期长调用8 8个周期。个周期。262.2.中断处理(服务)与返回中断处理(服务)与返回 在编写中断服务程序时加在编写中断服务程序时加注意注意的几点:的几点:(1)(1)因各入口地址之间只相隔因各入口地址之间只相隔8 8个字节,所以通常在中断入口个字节,所以通常在中断入口地址单元处存放一条无条件转移指令,使中断服务程序灵活地址单元处存放一条无条件转移指令,使中断服务程序灵活地安排在地安排在64KB64KB程序存储器的任何空间。程序存储器的任何空间。(2)(2)若要在执行当前中断程序时禁止更高优先级中断,可先用若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭软件关闭CPUCPU

33、中断(全局中断),或禁止某中断源中断中断(全局中断),或禁止某中断源中断(局局部中断部中断),在中断返回前再开放中断。,在中断返回前再开放中断。(3)(3)注意保护现场和恢复现场。注意保护现场和恢复现场。(4(4)中断服务程序的最后一条是返回指令)中断服务程序的最后一条是返回指令RETIRETI,该指令将,该指令将清清除响应中断时被置位的优先级状态触发器除响应中断时被置位的优先级状态触发器,然后自动将断点,然后自动将断点地址从栈顶弹出,装入地址从栈顶弹出,装入PCPC,使程序返回到被中断处,继续向,使程序返回到被中断处,继续向下执行。下执行。 27 关中断 保护现场 开中断 中断服务 关中断

34、恢复现场 开中断 中断返回 中断服务程序流程图中断服务程序流程图283.3.中断请求的撤除中断请求的撤除 CPUCPU响应中断请求后,在中断返回响应中断请求后,在中断返回(RETI)(RETI)前,该中断请求前,该中断请求信号必须撤除,否则会引起另外一次中断。信号必须撤除,否则会引起另外一次中断。注意:注意:(1)(1)采用采用边沿触发边沿触发的外部中断标志的外部中断标志IE0IE0或或IElIEl和定时器中断标和定时器中断标志志TF0TF0或或TFlTFl,CPUCPU响应中断后能用响应中断后能用硬件自动情除硬件自动情除; ;(2)(2)在在电平触发电平触发时,时,IE0IE0或或IElIE

35、l受外部引脚中断信号的直接控受外部引脚中断信号的直接控制,制,CPUCPU无法控制无法控制IE0IE0或或IElIEl,需要另外考虑撤除中断请求信,需要另外考虑撤除中断请求信号的措施,如通过号的措施,如通过外加硬件电路外加硬件电路(见下页所示),(见下页所示),并配合软并配合软件来解决件来解决;(3)(3)串行口中断请求串行口中断请求标志标志TITI和和RIRI也不能由硬件自动清除,需也不能由硬件自动清除,需要在中断服务程序中,要在中断服务程序中,用软件来清除用软件来清除相应的中断请求标志相应的中断请求标志. .。 29 并并在中断服务程序在中断服务程序中增加如下指令,使得的中增加如下指令,使

36、得的/INT0/INT0输入变输入变为高电平。为高电平。ORLORLP1P1,#01H#01HANLANLP1P1,#0FEH#0FEH 外部中断为电平触发时,如果中断响应后,外部中断为电平触发时,如果中断响应后, 管脚仍为低电平,则会重新置位中断请求,为此可以管脚仍为低电平,则会重新置位中断请求,为此可以在系统中增加辅助电路解决。在系统中增加辅助电路解决。 0(1)INTINT301.1.在在CPUCPU已经开放了外部中断允许的前提下;已经开放了外部中断允许的前提下;2.2.在在INT0/INT1INT0/INT1引脚输入一个引脚输入一个负脉冲负脉冲或或低电平低电平; 3.3.TCONTCO

37、N寄存器中的寄存器中的IE0/IE1IE0/IE1标志位自动变标志位自动变“1”1”;4.4.检测到检测到IE0/IE1IE0/IE1变变“1”1”后后, ,将产生指令:将产生指令: LCALL 0003H(/0013H)LCALL 0003H(/0013H)执行中断服务程序;执行中断服务程序;4 4并将并将IE0/IE1IE0/IE1标志位自动清标志位自动清“0”0”或用或用硬件电路撤硬件电路撤除中断请求信号除中断请求信号, ,以备下次申请。以备下次申请。外部中断外部中断(INT0,INT1)(INT0,INT1)申请过程:申请过程:31 AFH ACH ABH AAH A9H A8H IE

38、 (A8H) EA ES ET1 EX1 ET0 EX0 例例1 1 假设允许片内定时器假设允许片内定时器/ /计数器中断,禁止其他中断。计数器中断,禁止其他中断。试根据假设条件设置试根据假设条件设置IEIE的相应值。的相应值。解:解:根据题目要求,要允许内部定时器中断,就需要根据题目要求,要允许内部定时器中断,就需要将将IEIE寄存器的寄存器的EAEA、ET1ET1、ET0ET0置置1 1,其他位清,其他位清0 0,可分别,可分别通过字节寻址或者位寻址进行。通过字节寻址或者位寻址进行。(1) (1) 用字节操作指令:用字节操作指令: MOV IEMOV IE,#8AH #8AH 或或 MOV

39、 A8HMOV A8H,#8AH#8AH(2)(2)用位操作指令:用位操作指令: SETBSETBET0 ET0 ; ;定时器定时器/ /计数器计数器0 0允许中断允许中断 SETBSETBET1 ET1 ; ;定时器定时器/ /计数器计数器1 1允许中断允许中断 SETBSETBEA EA ;CPU;CPU开中断开中断32 BCH BBH BAH B9H B8H IP (B8H) PS PT1 PX1 PT0 PX0 例例2 2 系统要求设定系统要求设定80518051的片外中断为高优先级中断,片的片外中断为高优先级中断,片内中断为低优先级。请写出相应的指令。内中断为低优先级。请写出相应的指

40、令。解:解:根据题目要求,需要将根据题目要求,需要将80518051的外部中断优先级控制的外部中断优先级控制位位PX0PX0、PX1PX1设置为设置为1 1,而内部中断优先级控制位,而内部中断优先级控制位PT0PT0、PT1PT1、PSPS清为清为0 0。(1)(1)用字节操作指令:用字节操作指令: MOV IPMOV IP,#05H#05H(2)(2)用位操作指令:用位操作指令: SETB PX0SETB PX0 SETB PX1 SETB PX1 CLR PS CLR PS CLR PT0 CLR PT0 CLR PT1 CLR PT1334.34.3 MCS-51 MCS-51单片机的定

41、时器单片机的定时器/ /计数器计数器u定时器定时器/ /计数器计数器的结构的结构u定时器定时器/ /计数器计数器的工作方式的工作方式u定时器定时器/ /计数器计数器应用应用34 实现定时或延时控制有三种方法:实现定时或延时控制有三种方法:软件定时、不可编程软件定时、不可编程硬件定时器、可编程硬件定时器。硬件定时器、可编程硬件定时器。 可编程的硬件定时器就是其工作方式、定时值和定时范可编程的硬件定时器就是其工作方式、定时值和定时范围可以很方便地由软件来确定和改变。通常,一个可编程定围可以很方便地由软件来确定和改变。通常,一个可编程定时时/ /计数器的主要用途有:计数器的主要用途有: 以均匀分布的

42、时间间隔中断分时操作系统,以便切换程序。以均匀分布的时间间隔中断分时操作系统,以便切换程序。 向向I/OI/O设备输出精确的定时信号,该信号的周期由程序控制。设备输出精确的定时信号,该信号的周期由程序控制。 用作可编程波特率或速率发生器。用作可编程波特率或速率发生器。 检测外部事件发生的频率或周期。检测外部事件发生的频率或周期。 统计外部事件处理过程中某一事件发生的次数。统计外部事件处理过程中某一事件发生的次数。 在定时或计数达到编程规定的值之后,产生输出信号,向在定时或计数达到编程规定的值之后,产生输出信号,向CPUCPU申请中断。申请中断。 35 51 51系列单片机有两个系列单片机有两个

43、1616位的定时器位的定时器/ /计数器:计数器:T0T0和和T1T1。T0T0由两个由两个8 8位的定时寄存器位的定时寄存器TH0TH0和和TL0TL0构成构成1616位寄存器,同位寄存器,同样,样,T1T1由两个由两个8 8位的定时寄存器位的定时寄存器TH1TH1和和TL1TL1构成构成1616位寄存器,位寄存器,它们分别映射在特殊功能寄存器中。它们分别映射在特殊功能寄存器中。TH0TH0、TL0TL0的地址分别的地址分别为为8CH8CH、8AH8AH,TH1TH1和和TL1TL1的地址分别为的地址分别为8DH8DH和和8BH8BH。 其内部还有其内部还有2 2个个8 8位的专用寄存器位的

44、专用寄存器TMODTMOD(88H88H)和)和TCON TCON (89H89H) 。其中。其中TMODTMOD是定时器的工作方式寄存器,是定时器的工作方式寄存器,TCONTCON是是控制寄存器,主要用于定时控制寄存器,主要用于定时/ /计数器管理与控制。计数器管理与控制。 4.3.1 4.3.1 定时器定时器/ /计数器的结构计数器的结构36CPUTH1TL1P3.5溢出启动中断TCON(88H)TH0TL0溢出启动TMOD(89H)模式模式P3.44480518051单片机的定时器结构单片机的定时器结构T0T137一、定时器一、定时器/ /计数器的定时和计数功能计数器的定时和计数功能 在

45、在TMODTMOD中,各有一个控制位(中,各有一个控制位(C CT T),分别用于控制),分别用于控制定时定时器器/ /计数器计数器T0T0和和T1T1是工作在是工作在定时器定时器方式还是方式还是计数器计数器方式。方式。1. 1. 定时功能定时功能-计数输入信号是内部时钟脉冲,每个计数输入信号是内部时钟脉冲,每个机机器周期器周期使寄存器的值加使寄存器的值加1 1。所以,计数频率是振荡频率的。所以,计数频率是振荡频率的1/121/12。2. 2. 计数功能计数功能-计数脉冲来自相应的计数脉冲来自相应的外部输入引脚,外部输入引脚,T0T0为为P3.4P3.4,T1T1为为P3.5P3.5。即。即对

46、由对由T0/T1T0/T1引脚输入的引脚输入的负脉冲负脉冲进行进行加法计数。加法计数。 定时定时器器/ /计数器的核心部件是计数器的核心部件是二进制加二进制加1 1计数器计数器(TH0(TH0、TL0TL0或或TH1TH1、TL1) TL1) 。其输入的计数脉冲有其输入的计数脉冲有两个来源两个来源(内部时内部时钟脉冲和钟脉冲和外部输入引脚外部输入引脚)。当加到计数器为全)。当加到计数器为全“1”1”时,再时,再输入一个脉冲,就使计数器回零,同时产生溢出脉冲使输入一个脉冲,就使计数器回零,同时产生溢出脉冲使TCONTCON中溢出中断标志中溢出中断标志TF0TF0或或TF1TF1置置1 1,并可向

47、,并可向CPUCPU申请中断。申请中断。38二、定时器计数器的控制寄存器二、定时器计数器的控制寄存器 与定时器计数器有关的控制寄存器有:与定时器计数器有关的控制寄存器有:1 1定时器控制寄存器定时器控制寄存器TCONTCOND7D6D5D4D3D2D1D0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0中断请求标志中断请求标志触发方式选择触发方式选择启动定时器启动定时器/ /计数器计数器0 0 低电平低电平1 1 下降沿下降沿0 0 停止停止1 1 启动启动392 2工作方式控制寄存器工作方式控制寄存器TMODTMOD T1T1控制控制T0T0控制控制M0M1C/TGATEM0M

48、1C/TGATED0D1D2D3D4D5D6D7GATEGATE门控位门控位C/TC/T计数计数/ /定时选择定时选择M1 M0M1 M0工作方式选择工作方式选择用于选定定时用于选定定时/ /计数器的工作方式、启动方式等。计数器的工作方式、启动方式等。40 TMOD TMOD的高的高4 4位用于位用于T1T1控制,低控制,低4 4位用于位用于T0T0控制,符号的控制,符号的定义如下:定义如下: (1) (1) GATEGATE:门控位。门控位。GATEGATE和软件控制位和软件控制位TRTR、外引脚(、外引脚(/INT0/INT0、/INT1/INT1)的状态,共同控制定时器)的状态,共同控制

49、定时器/ /计数器的启动和停止。计数器的启动和停止。 GATE = 0 GATE = 0 普通用法普通用法 TimerTimer的启的启/ /停由软件对停由软件对TRxTRx位写位写“1”/“0”1”/“0”控制。控制。 GATE = 1 GATE = 1 门控用法门控用法 TimerTimer的启的启/ /停由软件对停由软件对TRxTRx位写位写“1”/“0” 1”/“0” 和在和在INTxINTx引脚引脚上出现的信号的高上出现的信号的高/ /低共同控制。低共同控制。(2) (2) C/TC/T:定时定时/ /计数器方式选择位。计数器方式选择位。 C/T C/T 1 1为计数方式;为计数方式

50、; C/T C/T 0 0为定时方式。为定时方式。(3) (3) M1 M0M1 M0:工作方式选择位。工作方式选择位。 M1 M0M1 M00000;方式;方式0 0 M1 M0 M1 M00101;方式;方式1 1 M1 M0 M1 M01010;方式;方式2 2 M1 M0 M1 M01111;方式;方式3 3。41一、一、 方式方式0 0 定时定时/ /计数器工作于计数器工作于方式方式0 0时为一个时为一个1313位的计数器位的计数器。选择定时器选择定时器(T0(T0或或T1)T1)的高的高8 8位和低位和低5 5位组成的一个位组成的一个1313位定位定时器计数器。下图是时器计数器。下

51、图是T0T0在方式在方式0 0时的逻辑电路结构。时的逻辑电路结构。T1T1的模式的模式0 0电路结构与电路结构与T0T0相同。相同。定时器定时器T0T0的方式的方式0 0逻辑电路逻辑电路 MCS-51 MCS-51单片机内部的定时单片机内部的定时/ /计数器是一种可编程器计数器是一种可编程器件,可设置为四种工作方式,由两个件,可设置为四种工作方式,由两个8 8位专用寄存器位专用寄存器TMODTMOD和和TCONTCON进行管理与控制。进行管理与控制。 注:注:此时,此时,/INT0/INT0(须为(须为1 1)不是外部中断请求信号,而不是外部中断请求信号,而只是只是对定时对定时/ /计数器的计

52、数器的一个一个附加控制信号。附加控制信号。42(1 1)加加1 1计数器为计数器为1313位。位。TL0=5TL0=5位,位,TH0=8TH0=8位位(2 2)(GATE+INT0)(GATE+INT0)TR0TR0为真则启动定时器。为真则启动定时器。(3 3)C/T=1C/T=1为计数工作方式,计数脉冲由为计数工作方式,计数脉冲由T0T0引脚输入。引脚输入。 计数个数计数个数 N=N=( 2 21313初值)初值)(4 4)C/T=0C/T=0为定时工作方式,时钟频率为为定时工作方式,时钟频率为fosc/12fosc/12。 定时时间定时时间t=t=(2 21313初值)初值)* *时钟周期

53、时钟周期* *1212 显然:显然:在机器周期固定的情况下,定时时间的长短与计在机器周期固定的情况下,定时时间的长短与计数器事先装入的初值有关,装入的数器事先装入的初值有关,装入的初值越大,定时越短。初值越大,定时越短。 (5 5)计数器溢出,计数器溢出,TF0TF0置置1 1。由硬件申请中断。由硬件申请中断。43二、方式二、方式1 1 定时定时/ /计数器工作于方式计数器工作于方式1 1时为一个时为一个1616位的计数器位的计数器。其逻。其逻辑结构、操作及运行控制几乎与方式辑结构、操作及运行控制几乎与方式0 0完全完全样,差别仅在样,差别仅在于计数器的位数不同。于计数器的位数不同。 在方式在

54、方式1 1中中TL0TL0和和TH0TH0均为均为8 8位,位,TL0TL0和和TH0TH0一起构成了一起构成了l6l6位位计数器。计数器。定时工作方式定时工作方式1 1时,定时时间为:时,定时时间为:定时时间定时时间 t t(2(21616计数初值计数初值) )机器周期机器周期用于计数器工作方式时:用于计数器工作方式时:最大计数值最大计数值为为: 2: 216166553665536。44定时器定时器T0T0的方式的方式1 1逻辑电路逻辑电路45三、三、 方式方式2 2 定时定时/ /计数器工作于方式计数器工作于方式2 2时,将两个时,将两个8 8位计数器位计数器THxTHx、TLxTLx分

55、成独立的两部分,组成一个分成独立的两部分,组成一个可自动重装载的可自动重装载的8 8位定时位定时/ /计数计数器器。其逻辑结构如下图所示。其逻辑结构如下图所示。 方式方式2 2的控制运行与方式的控制运行与方式0 0、方式、方式1 1相同。相同。 用于定时工作方式时,用于定时工作方式时,定时时间定时时间t t为:为: t t(2(28 8-计数初值计数初值X)X)机器周期机器周期 方式方式2 2用于计数工作方式时,最大计数值用于计数工作方式时,最大计数值( (初值初值0 0时时) )是是2 28 8。方式方式2 2特别适合于特别适合于用作较精确的定时和脉冲信号发生器用作较精确的定时和脉冲信号发生

56、器。还常。还常用作用作串行口波特率发生器串行口波特率发生器 。46四、方式四、方式3 3 方式方式3 3只适用于定时器只适用于定时器T0T0。在方式。在方式3 3下,下,T0T0被分成两个相被分成两个相互独立的互独立的8 8位计数器位计数器TL0TL0和和TH0TH0,如下图所示,如下图所示 。(1 1)TH0TH0和和TL0TL0变成变成2 2个分开的独立计数器。个分开的独立计数器。(2 2)TL0TL0占用了全部的定时器控制位(占用了全部的定时器控制位(C/T,GATE,TR0,TF0C/T,GATE,TR0,TF0)。)。(3 3)TH0TH0只能用于定时方式,运行控制位和溢出标志位则借

57、用定只能用于定时方式,运行控制位和溢出标志位则借用定 时器时器1 1的的TR1TR1和和TF1TF1。此时的定时器。此时的定时器1 1用于串行口波特率发生器。用于串行口波特率发生器。 注:注:在在T0T0设置为方式设置为方式3 3工作工作时时,一般是,一般是将定时器将定时器T1T1作为串行口作为串行口波特率发生器,或用于不需要中断的场合。波特率发生器,或用于不需要中断的场合。 47定时器定时器T0T0的方式的方式3 3(a)T0(a)T0方式方式3 3时的时的T1T1方式方式0 0(b)T0(b)T0方式方式3 3时的时的T1T1方式方式1 1484.3.3 4.3.3 定时器定时器/ /计数

58、器应用计数器应用一、定时器一、定时器/ /计数器的计数初始化计数器的计数初始化1. 1. 定时器计数器的初始化方法定时器计数器的初始化方法 初始化的主要内容是对初始化的主要内容是对TCONTCON和和TMODTMOD编程,计算和装载编程,计算和装载T0T0和和T1T1的计数初值。的计数初值。(1 1)确定相关参数确定相关参数1 1)分析定时器计数器的工作方式,将方式字写入)分析定时器计数器的工作方式,将方式字写入TMODTMOD寄存器;寄存器;( 即确定:定即确定:定/ /计、内计、内/ /外启动、工作方式)外启动、工作方式)2)2)计算计算T0T0或或T1T1中的计数初值,并将其写入中的计数

59、初值,并将其写入TH0TH0、TL0TL0或或TH1TH1、TL1TL1;3)3)根据需要开放根据需要开放CPUCPU和定时器计数器的中断,即对和定时器计数器的中断,即对IEIE和和IPIP寄存寄存器编程;器编程;4)4)启动定时器计数器工作:若要求用软件启动,编程时对启动定时器计数器工作:若要求用软件启动,编程时对TCONTCON中的中的TR0TR0或或TR1TR1置位即可启动;若由外部中断引脚电平启动,则对置位即可启动;若由外部中断引脚电平启动,则对TCONTCON中的中的TR0TR0或或TR1TR1置位后,还需给外部引脚加启动电平。置位后,还需给外部引脚加启动电平。49(2 2)计算定时

60、器计算定时器/ /计数器计数器的的初值初值1 1)计数器计数器方式时的方式时的计数初值计数初值 TCTC2 2M MN N (M M为计数器位数,为计数器位数,N N为要求的计数值)为要求的计数值) 方式方式0 0:M M1313,计数器的最大计数值,计数器的最大计数值2 213138192;8192;方式方式1 1:M M1616,计数器的最大计数值,计数器的最大计数值2 216166553665536;方式方式2 2:M M8 8,计数器的最大计数值,计数器的最大计数值2 28 8256256; 方式方式3 3同方式同方式2 2。 例如,设例如,设T0T0工作在计数器方式工作在计数器方式2

温馨提示

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

评论

0/150

提交评论