输入输出中断与定时计数器精品文稿.ppt
输入输出中断与定时计数器第1页,本讲稿共51页5.1 I/O 概述CPUCPU和和I IO O设备的连接都是通过接口电路实设备的连接都是通过接口电路实现的现的I IO O接口电路的作用接口电路的作用 速度协调 数据锁存 三态缓冲 数据转换第2页,本讲稿共51页接口与端口接口接口:指计算机与外设之间在数据传送方面的联系,其主要功能是通过电路实现的,称接口电路,简称接口。第3页,本讲稿共51页端口端口:指在接口电路中用以完成某种信息传送,并可由编程人员寻址进行读写操作的寄存器,端口也简称口。一个接口可含有多个端口,数据端口、状态端口、命令端口等。每个端口都有自己的端口地址 CPU寻址外设是以端口作为地址单元第4页,本讲稿共51页IO 口的编址方式 独立编址 统一编址端口第5页,本讲稿共51页输入输出传送方式无条件传送方式查询传送方式中断传送方式读入状态信息准备好?数据传送YN查询方式流程图第6页,本讲稿共51页5.3 MCS51单片机的中断系统第7页,本讲稿共51页中断的概念中断技术:中断是指计算机在执行程序的过程中,由于计算机系统内、外的某种原因使其暂时中止原程序的执行而转去为该突发事件服务在处理完成后再返回原程序继续执行的过程。第8页,本讲稿共51页中断的概念 中断执行类似于子程序的调用,区别在于中断的发生是随机的,其对中断服务程序的调用是在检测到中断请求信号后自动完成的;而子程序的调用是由编程人员事先安排好的。因此,中断又可定义为CPU自动执行中断服务程序并返回原程序执行的过程。第9页,本讲稿共51页中断技术的优点v 可以提高CPU的工作效率 v 便于实时处理v 便于故障的及时发现,提高系统的可靠性中断系统的组成包括:中断源产生、中断判优、中断响应、中断查询、中断处理等实现这样一个全过程的硬件和软件。第10页,本讲稿共51页中断源MCS-51的五个中断源:的五个中断源:2个外部中断请求INT0、INT1;2个定时计数器T0和T1的溢出中断请求TF0、TF1串行口中断请求TI、RI。中断源:引起中断的原因或发出中断请中断源:引起中断的原因或发出中断请求的来源求的来源第11页,本讲稿共51页中断请求标志TCONTCON:定时器控制寄存器,该寄存器字节地址为88H,是可位寻址的特殊功能寄存器。第12页,本讲稿共51页D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0 IE0IE1:外部中断INT0/INT1请求标志位。当CPU采样到有效中断请求号时,由硬件电路将对应位置1。IT0IT1:外部中断请求信号方式控制拉。若其等于1,则对应外部中断为脉冲下降沿触发方式,否则就是电平触发方式。TF0TFl:T0T1计数溢出中断请求标志位。若其为1表示对应定时器T0T1的计数值已由全1变为全0,在向CPU申请中断。TCON格式字第13页,本讲稿共51页SCON:串行口控制寄存器D7D6D5D4D3D2D1D099H98HTIRITI:串行口发送中断请求标志位。RI:串行口接收中断请求标志位。第14页,本讲稿共51页中断优先级IP:中断优先级控制寄存器,寄存器字节地址为B8H,可位寻址。D7D6D5D4D3D2D1D0BCH BBH BAH B9HB8HPSPT1PX1PT0PX0PX0:外部中断:外部中断0优先级设定控制位。优先级设定控制位。PX01 高高 优先级;优先级;PX00低优先级。低优先级。PT0:T0中断优先级设定控制值。PT01 高优 先级中断:PT00低优先级中断。PX1:外部中断1优先级设定控制位。若PX11 高优先级中断;PX10低优先级中断。PTl:T1中断优先级设定控制值。若中断优先级设定控制值。若PTl1 高优高优 先级中断;先级中断;PTl0低优先级中断。低优先级中断。PS:串行口中断优先级设定控制位。:串行口中断优先级设定控制位。PS1,高,高 优先级,优先级,PS0,低优先级。,低优先级。第15页,本讲稿共51页中断优先级控制原则如果多个中断源同时申请中断,则CPU响应顺序为先高后低。低优先级中断请求不能打断高优先级的中断服务,但高优先级中断请求可以打断低优先级的中断服务。同级中断请求不能打断同级中断服务。第16页,本讲稿共51页中断优先级控制原则如果多个同级中断源同时申请中断,则CPU按如下默认顺序默认顺序响应:外部中断0-定时计数器T0外部中断1-定时计数器T1-串行中断。第17页,本讲稿共51页中断响应的条件D7D6D5D4D3D2D1D0EAESET1EX1ET0EX0EA:中断允许总控位。如果EA0,则所有中断请求均被禁止;若EA1,则是否允许中断由各个中断控制位决定。EX0EX1:外部中断0外部中断1中断允许位。ET0ETl:T0T1中断允许控制位。ES:串行口中断允许控制位IE-中断允许控制寄存器第18页,本讲稿共51页中断响应的条件EA1,且对应的中断允许控制位等于1。这样CPU就在每个机器周期对该中断源进行检测。如果它提出中断申请,则只要满足下列条件就可立即响应。1)无同级或高级中断正在服务。2)检测到有中断请求到来的机器周期是当前正在执行指令的最后1个机器周期且已结束,这样可保证当前指令的完整执行。第19页,本讲稿共51页中断响应的条件3)检测到有中断请求到来的指令是访问IE、IP寄存器的指令或RETI指令时,该指令己执行完毕并且又执行完了一条指令。第20页,本讲稿共51页中断响应过程 中断响应的主要操作就是执行由硬件电路中断响应的主要操作就是执行由硬件电路中断响应的主要操作就是执行由硬件电路中断响应的主要操作就是执行由硬件电路自动生成的一条自动生成的一条自动生成的一条自动生成的一条LCALLLCALL指令。其中,指令。其中,指令。其中,指令。其中,addrl6addrl6就就就就是中断源的中断入口地址。首先将断点地址入栈是中断源的中断入口地址。首先将断点地址入栈是中断源的中断入口地址。首先将断点地址入栈是中断源的中断入口地址。首先将断点地址入栈保护,然后把保护,然后把保护,然后把保护,然后把addrl6addrl6送人送人送人送人PCPC中,使程序自动转中,使程序自动转中,使程序自动转中,使程序自动转到相应的中断人口处执行中断服务程序。到相应的中断人口处执行中断服务程序。到相应的中断人口处执行中断服务程序。到相应的中断人口处执行中断服务程序。第21页,本讲稿共51页中断服务程序的入口地址(中断矢量)外部中断INT0定时器T0中断外部中断INT1定时器T1中断串行口中断0003H000BH0013H001BH0023H第22页,本讲稿共51页中断响应时间 从检测到中断到转去执行中断服务程序所需的时间称为中断响应时间。理想情况是检测到中断到来的机器周期是当前正在执行指令的最后一个机器周期,接着用2个机器周期的时间执行自动生成的LCALL指令,共需要3个机器周期。其他情况下中断的响应时间一般在38个机器周期。第23页,本讲稿共51页中断系统的总体结构中断系统的总体结构第24页,本讲稿共51页中断请求的撤除(1)定时器计数器的中断请求标志TF0TFl是在响应中断后由硬件自动清除的。(2)对于串行口中断请求标志TIRI则应在中断服务程序中由软件清除(3)对于外部中断请求标志IE0IE1也是在响应中断后由硬件自动清除的。(4)如果外部中断是以电平触发方式申请中断,当本次中断请求已被响应后若INT0管脚的低电平没有及时撤除,则有可能再次引起中断。第25页,本讲稿共51页中断请求的撤除为了解决这个问题可以采用下图所示方法,并在中断服务程序中增加如下两条指令:ANL P1,0FEH ;P1.0=0 ORL P1,01H ;P1.0=1如果外部中断工作在脉冲下降沿触发方式下,则IE0IE1被清零后就可以了,不存在信号撤除问题。第26页,本讲稿共51页第27页,本讲稿共51页中断程序举例中断系统初始化:(IE,IP,TCON,SP)(1)开中断和允许中断源中断SETB EASETB EX0 (EX1,ET0,ET1,ES)(2)确定各中断源的优先级 SETB PX0 (PX1,PT0,PT1,PS)CLR PX0 (PX1,PT0,PT1,PS)第28页,本讲稿共51页中断系统初始化(3)对外部中断,则应规定是电平触发或边沿触发。SETB IT0(IT1)CLR IT0 (IT1)第29页,本讲稿共51页中断程序举例例:规定外部中断0为电平触发方式,高优先级,写出初始化程序。SETB EASETB EX0SETB PX0CLR IT0第30页,本讲稿共51页5.4 定时计数器第31页,本讲稿共51页定时计数器T0、T116位计数器,既可用于定时也可用于计数都是加1计数器。其工作方式的设定是通过一些控制寄存器实现的。计数时对T0或T1引脚输入的脉冲个数进行计数;定时时对内部脉冲计数第32页,本讲稿共51页与定时与定时/计数器有关的计数器有关的SFR16位加位加1计数器计数器 T0、T1(TH0,TL0和和TH1,TL1)定时器控制寄存器定时器控制寄存器TCON工作方式寄存器工作方式寄存器TMOD第33页,本讲稿共51页计数器 T0 T0(TH0TH0,TL0TL0)-字节地址字节地址字节地址字节地址8CH8CH,8AH8AH T1 T1(TH1TH1,TL1TL1)-字节地址字节地址字节地址字节地址8DH8DH,8BH8BH基本功能:基本功能:基本功能:基本功能:(1 1)计数)计数)计数)计数(2 2)溢出后自动置位中断标志位)溢出后自动置位中断标志位)溢出后自动置位中断标志位)溢出后自动置位中断标志位(3 3)对计数器)对计数器)对计数器)对计数器T0T0和和和和T1T1都可以进行都可以进行都可以进行都可以进行读写读写读写读写操作操作操作操作(4 4)复位后都为)复位后都为)复位后都为)复位后都为00H00H第34页,本讲稿共51页定时器控制寄存器(TCON)D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0TR0TRl:定时计数器运行控制位。若其0,则停止定时器计数器工作。如果该位为1,则允许启动定时器计数器可以位寻址,复位后为可以位寻址,复位后为00H第35页,本讲稿共51页工作方式控制寄存器工作方式控制寄存器(TMOD)D7 D6D5D4D3D2D1D0GATECTM1M0 GATE CTM1M0T0控制位T1控制位 GATE:门控位:门控位 GATE=0时时 P3.2(INT0)引脚)引脚不参与不参与启动或停止启动或停止T0 GATE=1时时 P3.2(INT0)引脚)引脚参与参与启动或停止启动或停止T0M1M0;工作方式选择位。M1M000方式方式0,13位定时/计数器 M1M001,方式方式1,16位定时/计数器 M1M010,方式方式2,可自动装入初值的8 位定时/计数器 M1M011,方式方式3,两个8位定时/计数器CT:定时方式计数方式选择控制位。第36页,本讲稿共51页定时器计数器的工作方式T0与T1除了工作方式3不同外,其余3种工作方式基本相同(1)工作方式0:是13位位的计数器结构,其13位计数器由TH0和和TL0的低的低5位位构成 T0在工作方式0下的逻辑电路结构如图所示。第37页,本讲稿共51页定时时间为:T(213T0的初值)机器周期计数脉冲个数为 S213 T0的初值第38页,本讲稿共51页(2)工作方式1 与工作方式0基本相同,只是其可以实现16位定时计数,即在这种方式下使用TH0与TL0的全部16位。定时时间为:定时时间为:定时时间为:定时时间为:T T(2(21616T0T0的初值)的初值)的初值)的初值)机器周期机器周期机器周期机器周期计数脉冲个数为计数脉冲个数为计数脉冲个数为计数脉冲个数为 S S2 21616 T0 T0的初值的初值的初值的初值第39页,本讲稿共51页(3)工作方式2 工作方式2具有自动加载初始值的功能,可以解决方式0与方式1的缺点。T0方式2的电路结构框图如图所示。第40页,本讲稿共51页定时时间为:T(28T0的初值)机器周期计数脉冲个数为 S28 T0的初值第41页,本讲稿共51页(3)方式3 只有T0才有方式3,此时T0被拆成两个独立的部分。其中TL0仍然使用T0的各控制位、引脚和中断溢出标志、而TH0要占用T1的TR1和TF1。此时此时T1仍可工作在方式仍可工作在方式0,方式方式1,方式方式2但不能使用中断但不能使用中断,设设置好工作参数后可自行运动置好工作参数后可自行运动,设置成方式设置成方式3停止工作。停止工作。第42页,本讲稿共51页T0的方式的方式3第43页,本讲稿共51页定时计数器应用举例定时计数器应用举例1、初始化、初始化(1)确定工作方式,对TMOD赋值。(2)确定计数初值,并写入TH0,TL0或TH1,TL1(3)开中断(4)启动T0或T1第44页,本讲稿共51页2、计数初值的计算、计数初值的计算定时方式下初值:定时方式下初值:X2nTTP计数方式下初值:计数方式下初值:X2nN第45页,本讲稿共51页例:已知某单片机控制系统的晶振频率为6MHZ,要求T0产生100ms定时,确定计数初值及TMOD寄存器的内容。T=100msTp=2sT(2n X)*TPX=3CB0H使用指令:使用指令:MOV TH0,#3CHMOV TL0,#0B0H第46页,本讲稿共51页D7 D6D5D4D3D2D1D0GATECTM1M0 GATE CTM1M000000001TMOD=01H使用指令:使用指令:MOV TMOD,#01H或:或:ANL TMOD,#F0H ORL TMOD,#01H第47页,本讲稿共51页例:已知某单片机控制系统的晶振频率为12MHZ现需要在P1.0脚输出周期为2ms的方波请为该系统设计相关程序。解题思路:定时器和中断结合解题思路:定时器和中断结合主:初始化,启动定时器及其中断中:CPL P1.0第48页,本讲稿共51页(1)计算初值(2)确定工作方式(3)程序设计第49页,本讲稿共51页 ORG 0000H LJMP MAIN ORG 000BH LJMP INT ORG 2000HMAIN:MOV TMOD,#00H MOV TH0,#0E0H MOV TL0,#18H SETB EA SETB ET0 SETB TR0HALT:SJMP HALTINT:CPL P1.0 MOV TH0,#0E0H MOV TL0,#18H RETI第50页,本讲稿共51页采用查询的方法编程采用查询的方法编程MAIN:MOV TMOD,#00H MOV TH0,#E0H MOV TL0,#18H MOV IE,#00H SETB TR0LOOP:JBC TF0 LOOP1 SJMP LOOPLOOP1:CPL P1.0 MOV TH0,#E0H MOV TL0,#18H SJMP LOOP第51页,本讲稿共51页