单片机原理第四章输入输出中断定时与串行通信.ppt
《单片机原理第四章输入输出中断定时与串行通信.ppt》由会员分享,可在线阅读,更多相关《单片机原理第四章输入输出中断定时与串行通信.ppt(71页珍藏版)》请在三一办公上搜索。
1、第4章 输入/输出、中断、定时与串行通信,4.1 I/O概述 4.2 MCS-51单片机的中断系统 4.3 定时器/计数器 4.4 单片机串行通信 4.5 PC机与单片机的通信,本章内容提要,介绍I/O的基本概念、I/O数据传递方式,中断的基本概念,串行通信基本概念。主要介绍单片机中断系统结构、特点及使用方法;片内定时器/计数器结构、原理及使用;片内串行口结构、原理以及双机和多机通信实现方法;PC机与单片机通信实现方法。,4.1 I/O概述4.1.1 I/O的概念 在单片机内部结构中,除了CPU之外,单片机集成有内部数据寄存器、程序存储器、定时器/计数器、并行I/O口、串行口、中断控制系统等。
2、CPU通过内部总线与片内的I/O连接,通过片内I/O,单片机可与外设或单片机系统交换信息。此外,单片机可以由P0、P2和P3口构成外部总线,扩展外部I/O,构成更加复杂的系统,满足实际应用的需求。1.接口与端口 接口是CPU与外设之间交换信息的连接部件,也称为接口电路。接口电路通常包含有数据寄存器用来保存输入/输出数据、状态寄存器保存接口的状态信息、控制寄存器保存单片机的控制命令等。数据的I/O操作通过数据寄存器的操作完成。通常接口电路中可编址并能进行读写操作的寄存器称为端口或简称口。一个接口电路中可能包括多个口,例如数据口、状态口、控制口,即包含有多个口地址。同一单片机系列中,片内集成的I/
3、O模块各有不同,当片内I/O不能满足实际需求时,可扩展外部I/O。2.I/O的分类 按照信号的传递方式,可将I/O分为串行和并行两类。按照I/O连接的信号大致可分为模拟量、数字量、脉冲量I/O三类。3.数据总线隔离技术 为了正确地进行数据的I/O传递,必须解决数据总线的隔离问题,即在任一时刻,CPU只对一个I/O进行操作。为此,对输出设备的接口电路要使用锁存器,对输入设备的接口电路,使用三态缓冲器。,4 单片机I/O编址方式 每一个I/O都需要编址,以便CPU分别进行寻址。常用的I/O编址方式有两种:独立编址方式和统一编址方式。独立编址方式:I/O和存储器分开编址,有各自独立的地址空间,采用不
4、同的控制总线,使用不同的指令分别寻址。统一编址方式:I/O与数据存储器在同一地址空间编址,寻址方式相同,采用相同的地址、数据、控制总线,使用相同的指令寻址。4.1.2 输入/输出的传递方式 单片机系统中有不同类型的I/O,由于I/O所连接的外设或I/O接口本身的速度与CPU的处理速度相比,通常低于CPU的速度,为了实现数据的正确传输,CPU通常采用三种控制方式,即无条件传送方式、查询方式和中断控制方式。1.无条件传送方式 I/O或与I/O连接的外设随时都处于准备好状态,这时CPU不需要测试外设状态,随时直接对其进行操作。2.查询方式 I/O接口或外设的状态以适当的方式输入CPU,CPU通过对状
5、态信号的查询,在判别外设准备好之后,对其进行输入/输出操作。查询方式的特点:实现简单,通用性强,适合各种设备数据的输入/输出;其缺点是需要占用CPU的时间,外设速度较慢时,效率较低。,图4.1 查询方式流程图,3.中断方式 中断方式下外设的状态信号以中断申请方式输入CPU。CPU响应中断,暂停正在执行的程序,转而执行中断服务程序,在中断服务程序中对外设进行输入/输出操作,中断返回后,再继续执行被中断的程序。中断方式可提高单片机系统的效率,特别适用于电池供电的低功耗系统。,4.2 MCS-51单片机的中断系统 中断是一项重要的计算机技术。当CPU正在处理某件事时,外界发生了紧急事件请求,要求CP
6、U暂停当前的工作,转而去处理这个紧急事件。处理完后再回到原来被中断的位置,继续原来的工作,这一过程称为中断,实现这种功能的部件称为中断系统。当多个中断源同时向CPU申请中断时,CPU将根据每个中断源的优先级,优先响应级别最高的中断请求。当中断系统有多个中断优先级时,CPU暂停较低级的中断服务程序,转而处理优先级更高的中断请求源,处理完后再处理较低级的中断服务程序,这样的过程称为中断嵌套。这样的中断系统称为多级中断系统。51系列单片机的中断系统有5个中断源:2个外部中断源、2个定时器中断源和一个串行口中断源,具有两个中断优先级,可实现两级中断服务程序嵌套。,图4.2 二级中断嵌套,4.2.1 中
7、断系统的结构 单片机中断控制系统的结构如图4.3,中断控制系统由中断源、中断选择、中断标志、中断允许寄存器(中断源允许、全局中断允许)、中断优先级寄存器和查询电路组成。,图4.3 中断控制系统的结构,5个中断源符号、名称及产生条件分别为:(1)INT0.:外部中断0,由P3.2管脚输入,低电平或下降沿有效。通过设置定时器控制寄存器TCON的相应控制位选择。(2)INT1:外部中断1,由P3.3管脚输入,低电平或下降沿有效。通过设置定时器控制寄存器TCON的相应控制位选择。(3)T0:定时器/计数器0中断,由T0回零溢出有效。(4)T1:定时器/计数器1中断,由T1回零溢出有效。(5)TI/RI
8、:串行口完成一帧数据的发送/接收后有效。中断产生时,对应的中断标志位被置位为“1”,当中断响应时,由硬件复位或在中断服务程序中,用软件复位清除中断标志。串行口中断为发送和接收共用,当串行口中断时,通过查询定时器工作方式控制寄存器TMOD中的TI和RI判别是发送还是接收中断,并用软件复位中断标志。中断系统的控制通过对特殊功能寄存器的操作完成。1.定时器控制寄存器TCON TCON为特殊功能寄存器,字节地址为88H,可位操作,位地址由低位到高位为88H8FH。对TCON的设置可完成定时器的运行控制和外部中断触发方式的选择,同时,定时器和外部中断发生时,会影响TCON的中断请求标志位。TCON的格式
9、如下:,TCON每一位的功能如下:(1)IT0(TCON.0)和IT1(TCON.2):外部中断中断触发方式控制位。IT0(IT1)=0,电平触发方式,低电平触发;IT0(IT1)=1,脉冲触发方式,下降沿触发。(2)IE0(TCON.1)和IE1(TCON.3):外部中断请求标志位。IE0(IE1)=0,无中断请求;IE0(IE1)=1,有中断请求。当中断触发信号为下降沿有效时,IE0(IE1)由硬件置位为“1”,中断响应时,硬件自动复位为“0”;电平触发方式下,IE0(IE1)标志由外部触发信号控制,不由片内硬件控制。当中断触发信号为低电平信号时,IE0(IE1)=1,当中断触发信号为高电
10、平信号时,IE0(IE1)=0。(3)TF0(TCON.5)和TF1(TCON.7):定时器/计数器0和定时器/计数器1溢出中断请求标志位。TF0(TF1)=0,无中断请求;TF0(TF1)=1,有中断请求。当定时器/计数器0(定时器/计数器1)溢出时,硬件置位TF0(TF1)=1,中断响应时片内硬件自动复位TF0(TF1)=0。查询TF0(TF1)时,需用软件复位TF0(TF1)=0。(4)TR0(TCON.4)和TR1(TCON.6):定时器/计数器0和定时器/计数器1运行控制位。TR0(TR1)=0,关闭定时器/计数器;TR0(TR1)=1,打开定时器/计数器。2.中断允许寄存器IE 中
11、断允许寄存器IE为两级允许控制(如图4.3所示):第一级为局部中断允许,可选择某个或几个中断源允许中断,第二级为全局允许。只有当全局中断允许有效时,局部中断允许的中断信号才可以申请中断。IE在特殊功能寄存器中,可位操作。字节地址为0A8H,位地址由低位到高位为A8HAFH。IE的格式如下:,IE寄存器的每个位信号定义为:(1)EX0(IE.0)和EX1(IE.2):外部中断允许控制位。EX0(EX1)=0,外部中断禁止;EX0(EX1)=1,外部中断允许。(2)ET0(IE.1)和ET1(IE.3):定时器/计数器0和定时器/计数器1中断允许控制位。ET0(ET1)=0,定时器/计数器禁止中断
12、;ET0(ET1)=1,定时器/计数器允许中断。(3)ES(IE.4):串行口中断允许控制位。ES=0,串行口禁止中断;ES=1,串行口允许中断。(4)EA(IE.7):全局中断允许控制位。EA=0,禁止全局中断;EA=1,允许全局中断。(5)IE.5、IE.6:保留位。3.串行口控制寄存器SCON 串行口控制寄存器SCON在特殊功能寄存器中,可位操作。字节地址为98H,位地址由低位到高位为98H9FH。SCON的格式如下:,与中断有关的控制位有2位:(1)RI(SCON.0):串行口接收中断标志位。当接收完一帧数据后,由硬件置位为“1”。中断响应后,在中断服务程序中须用软件复位为“0”。(2
13、)TI(SCON.1):串行口发送中断标志位。当发送完一帧数据后,由硬件置位为“1”。中断响应后,在中断服务程序中须用软件复位为“0”。,4.中断优先级控制寄存器IP 每个中断源有两个优先级,可用程序对中断优先级控制寄存器IP的控制位置位或复位来选择。特殊功能寄存器IP的字节地址为B8H,位地址由低位到高位为B8HBFH。IP的格式如下:,与中断优先级有关的控制位有5位:(1)PX0(IP.0)和PX1(IP.2):外部中断0和外部中断1中断优先级控制位。PX0(PX1)=0,低优先级;PX0(PX1)=1,高优先级。(2)PT0(IP.1)和PT1(IP.3):定时器/计数器0和定时器/计数
14、器1中断优先级控制位。PT0(PT1)=0,低优先级;PT0(PT1)=1,高优先级。(3)PS(IP.4):串行口中断优先级控制位。PS=0,低优先级;PS=1,高优先级。(4)IP.5IP.7:保留位。51系列单片机中,两个优先级的结构可实现中断嵌套服务,中断优先级的控制原则:(1)高优先级中断请求可以打断低优先级中断服务形成中断嵌套(2)同级中断之间不能形成中断嵌套(3)同级中断源有多个同时向CPU请求中断时,CPU的响应顺序为:外部中断0定时中断0外部中断1定时中断1串行口中断,4.2.2 中断系统的初始化与中断控制寄存器的设置 中断控制系统中,系统上电或复位时,控制寄存器均被复位,所
15、有中断均被禁止。因此,用户需根据自己的需要对上述4个控制寄存器赋值,即通过程序对中断系统进行初始化设置,以便使用中断系统。例如,外部中断初始化包括:外部中断触发方式设定、外部中断允许、全局中断允许,以及中断优先级控制。假设对外部中断0的初始化使用如下指令:MOVIE,#81H 或使用位操作指令:SETBEA SETBEX0 则结合复位时控制寄存器的状态,外部中断0被设置为低电平触发的低级中断源。4.2.3 中断响应过程 1.中断采样 单片机在每个机器周期的S5P2对中断标志进行采样,在下一个机器周期根据优先级顺序查询中断标志。如果中断标志在前一个机器周期的S5P2被置位,则后一个周期中断系统就
16、可以发现这个中断请求信号。外部中断源为脉冲触发时,若INT0(INT1)管脚在一个机器周期为高电平,另一个机器周期为低电平,则TCON寄存器的中断请求标志IE0(IE1)将置位,标志位IE0(IE1)请求中断。由于外部中断管脚每个机器周期采样一次,因此,管脚上的高电平和低电平至少都要持续一个机器周期以上,以保证下降沿被采样到。,2.中断响应 中断系统查询到有中断请求时,如果处于以下情形,系统将阻止长调用LCALL指令的执行而不运行中断服务程序:(1)同级或高优先级的中断响应正在执行中(2)正在执行的指令未到指令最后一个周期,即当前指令未执行完(3)当前指令是RETI或访问IE、IP寄存器 条件
17、(2)保证在得到中断向量之前,运行指令必须完整执行。条件(3)保证执行RETI或访问IE、IP寄存器后,至少还要执行一条指令才能响应中断。在上述情形之外,当CPU查询到有效中断请求时,系统硬件将产生一条长调用指令LCALL,即将程序计数器值PC压入堆栈,把相应的中断入口地址装入PC,转到相应中断服务程序中去执行。各中断源的入口地址是:由于各中断入口地址之间仅相隔8个字节,不能存储较长的中断服务程序,通常在中断入口地址开始的单元中,安排一条转移指令,转移到相应中断源的中断服务程序中。,3.中断响应时间 外部中断电平有效时,在机器周期的S5P2采样后锁存到IE0(IE1),IE0(IE1)在下一个
18、机器周期由电路查询,如果中断请求立刻响应,则中断服务程序成为下一条执行的指令。长调用指令自身需要2个机器周期,因此,从外部中断触发到中断服务程序第一条指令开始执行最少需要3个完整的机器周期。当前面所述的三个条件不满足,则中断响应需要更长的时间。如果指令是RETI或对寄存器IE和IP操作,则附加的等待时间不会多于5个周期,即最多一个周期完成当前指令,下一条指令为MUL或DIV再加4个周期。所以,一个中断发生时,中断响应时间为38个周期。4.中断请求的撤销 中断请求标志在中断响应后应当清除,以免一次中断申请被多次重复查询和响应。串行口中断请求标志需要在中断服务程序中用软件清除,定时器和外部中断的中
19、断标志在响应后硬件自动复位清除。但外部中断为电平触发时,如果中断响应后,管脚仍为低电平,则会重新置位中断请求,为此可以在系统中增加辅助电路解决。图4.4 电平方式外部中断请求的撤销电路,并在中断服务程序中增加如下指令,使得的INT0输入变为高电平。ORLP1,#01HANLP1,#0FEH 5.软件模拟第三优先级中断 在某些应用中需要三个中断优先级,这时可用简单的软件方法产生第三优先级效果。首先,通过中断优先级寄存器IP可设置高优先级和低优先级分别为第一、第二优先级中断,然后在第二级中断服务程序中包含如下程序:PUSHIEMOVIE,#MASKCALLLABEL*执行第三级中断服务程序*POP
20、RET LABEL:RETI 只要有中断响应,中断允许寄存器重新定义,禁止除第一优先级以外的中断,然后用CALL指令调用RETI指令,清除第二优先级中断标志位,则第二优先级中断允许中断服务。用POP指令恢复IE寄存器,RET终止中断服务程序。当晶振为12MHz时,附加的指令需要10s。,4.3 定时器/计数器 定时器/计数器通常用于定时采样、顺序控制、数字时钟等。51系列单片机有两个16位的定时器/计数器:T0和T1。T0由两个8位的定时寄存器TH0和TL0构成16位寄存器,同样,T1由两个8位的定时寄存器TH1和TL1构成16位寄存器,它们分别映射在特殊功能寄存器中。TH0、TL0的地址分别
21、为8CH、8AH,TH1和TL1的地址分别为8DH和8BH。(1)定时功能,定时寄存器每个机器周期自动加1,可以看作是机器周期的计数器。由于每个机器周期为12个时钟振荡周期,所以计数频率为振荡频率的1/12。(2)计数功能,定时寄存器在单片机外部引脚T0或T1有“1”到“0”的跳变时自动加1。外部输入在每个机器周期的S5P2被采样,当前一个机器周期采样为高电平,后一个机器周期采样为低电平时,计数器在下一个机器周期S3P1进行计数。由于一个下降沿的识别需要2个机器周期,故计数器最高计数频率为振荡频率的1/24。4.3.1 工作方式 无论作为定时器还是计数器,T0和T1都有4种工作方式:方式0、方
22、式1、方式2和方式3。其中,T0和T1的前三种工作方式相同,方式3不同。下面以定时/计数器1为例分述四种工作方式的特点和用法。1方式0 13位计数方式。在方式0中,时间寄存器配置为13位寄存器,是为与MCS-48兼容而设置,由TH1的全部8位和TL1的低5位构成,TL1的高三位弃之不用,当寄存器中所有13位中的全“1”翻转为“0”时,设置定时器中断标志TF1。图4.5是定时器/计数器1在工作方式0的逻辑结构图。,图4.5 定时器/计数器1方式0:13位计数器 C/T:定时/计数选择,由定时器工作方式特殊功能寄存器TMOD的位设置选择 C/T=0,T1为定时器,计数器对机器周期进行计数实现定时
23、C/T=1,T1为计数器,计数来自引脚T1的外部脉冲数 定时器/计数器是否启动受TR1、GATE和 引脚的控制,GATE和TR1由定时器工作方式控制寄存器TMOD和控制寄存TCON中相应的位状态确定。由图4.5中的逻辑电路可知:要启动定时/计数器,必须TR1=1,同时GATE=0或 引脚=1。通常设置GATE=0,用TR1的状态控制T1的工作。当GATE=1,TR1=1时,T1能否计数由引脚的输入状态控制,可以对INT1输入高电平脉冲宽度进行测量。,定时器启动后,定时或计数脉冲加到TL1的低5位,从预先设置的初值(时间常数)开始计数,TL1计满后,向TH1进位,当TL1、TH1的13位都为1变
24、为全0,即计数器溢出时,中断标志位TF1置“1”,表明定时时间或计数次数已到。在中断系统允许时,向CPU请求中断。方式0没有时间常数自动重装功能,如果需进一步定时/计数,需用指令重装时间常数。2工作方式1 16位计数方式。计数器由8位TL1和8位TH1构成,工作方式1与方式0仅计数器长度不同,其他均相同,如图4.6。,图4.6 定时器/计数器1方式1:16位计数器,3工作方式2 8位计数器带时间常数自动重装功能。如图4.7。工作方式2与工作方式0、1的功能相同,只是由TL1构成8位计数器,TH1用来存放时间常数。,图4.7 定时器/计数器1方式2:8位自动重装,启动时,TL1和TH1均装入相同
25、的时间常数,当TL1计数器溢出时,中断标志TF1置“1”,同时,控制将TH1中的时间常数重新装入TL1中。与方式0和方式1相比,方式2采用的硬件重装时间常数,提高了定时精度,操作简便。缺点是定时/计数范围较小。,4工作方式3 当T0为工作方式3时,TL0和TH0分别作为两个独立的8位计数器,其硬件逻辑框图如图4.8。TL0既可作定时器也可作计数器,并使用定时器0的控制位:C/T、GATE、TR0、和TF0。TH0锁定为定时器功能,并使用定时器1的控制位TR1和TH1,这时,TH0控制了“定时器1”的中断。,图4.8 定时器/计数器0方式3:两个8位计数器 当定时器0工作于方式3时,单片机可看作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 第四 输入输出 中断 定时 串行 通信
链接地址:https://www.31ppt.com/p-5812139.html