《C中断系统及定时计数器讲诉实用.pptx》由会员分享,可在线阅读,更多相关《C中断系统及定时计数器讲诉实用.pptx(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第五章第五章 80C51的中断系统及定时的中断系统及定时/计数计数器器5.1 80C51的中断系统的中断系统5.2 80C51的中断处理过程的中断处理过程5.3 80C51的定时的定时/计数器计数器第1页/共53页25.1 80C51的中断系统的中断系统 5.1.1 80C51的中断系统结构的中断系统结构某人看书某人看书某人正在处理一件事某人正在处理一件事A电话铃响电话铃响出现另一件须立即解决的事出现另一件须立即解决的事B暂停看书暂停看书中止中止A 书中作记号书中作记号记录断点,便于接续记录断点,便于接续 电话谈话电话谈话处理处理B继续看书继续看书继续继续A的工作的工作保护断点中断响应中断请
2、求中断返回1.中断的概念中断的概念 (1)现实生活中的中断:)现实生活中的中断:第2页/共53页3 中断原因:中断原因:一个人不可能同时一个人不可能同时完成两项任务。完成两项任务。单片机单片机只有一个只有一个CPU,一旦面临,一旦面临多任务,它也会多任务,它也会中断吗?中断吗?先接电话,然先接电话,然后再继续看书,后再继续看书,这样效率最高这样效率最高!第3页/共53页4 CPU在处理某一事件在处理某一事件A时,发生了另一事件时,发生了另一事件B请请求求CPU迅速去处理(迅速去处理(中断发生中断发生););CPU暂时中断当前的工作,转去处理事件暂时中断当前的工作,转去处理事件B(中中断响应和中
3、断服务断响应和中断服务););待待CPU将事件将事件B处理完毕后,再回到原来事件处理完毕后,再回到原来事件A被被中断的地方继续处理事件中断的地方继续处理事件A(中断返回中断返回),这一过),这一过程称为程称为中断中断。(2)单片机中的中断)单片机中的中断第4页/共53页5引起引起CPU中断的根源,称为中断的根源,称为中断源中断源。中断源向。中断源向CPU提出的提出的中断请求中断请求。CPU暂时中断原来的事务暂时中断原来的事务A,转去处,转去处理事件理事件B。对事件。对事件B处理(处理(终端服务终端服务)完毕后,再回到)完毕后,再回到原来被中断的地方(即原来被中断的地方(即断点断点),称为),称
4、为中断返回中断返回。实现上。实现上述中断功能的部件称为述中断功能的部件称为中断系统中断系统(中断机构)。(中断机构)。第5页/共53页6 随着计算机技术的应用,人们发现中断技术不随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速仅解决了快速主机与慢速I/O设备的数据传送问设备的数据传送问题,而且还具有如下优点:题,而且还具有如下优点:分时操作分时操作。CPU可以分时为多个可以分时为多个I/O设备服务,设备服务,提高了计算机的利用率;提高了计算机的利用率;实时响应实时响应。CPU能够及时处理应用系统的随机事能够及时处理应用系统的随机事件,系统的实时性大大增强;件,系统的实时性大大增强
5、;可靠性高可靠性高。CPU具有处理设备故障及掉电等突发具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。性事件能力,从而使系统可靠性提高。第6页/共53页72、80C51中断系统的结构中断系统的结构 80C51的中断系统有的中断系统有5个中断源,个中断源,2个优先级,个优先级,可实现二级中断嵌套可实现二级中断嵌套。第7页/共53页85.1.2 80C51的中断源的中断源 一、中断源一、中断源能够向CPU发出中断申请的部件称为中断源。80C51单片机有5个中断源。见下表 那些部件可以那些部件可以向向CPU申请申请中断中断呢?呢?中断源中断源 说明说明 外部中断外部中断 从从P3.2引
6、脚引入的外部中断申请引脚引入的外部中断申请定时器定时器T0中断中断 定时器定时器T0溢出时引发中断申请溢出时引发中断申请外部中断外部中断从从P3.3引脚引入的外部中断申请引脚引入的外部中断申请定时器定时器T1中断中断定时器定时器T1溢出时引发中断申请溢出时引发中断申请串行口中断串行口中断一次串行发送或接收完成后,发出中断申一次串行发送或接收完成后,发出中断申请请第8页/共53页9二、二、中断控制中断控制中断的控制中断的控制“工具工具”中断允许寄存器IE中断优先级寄存器IP定时/计数器及外部中断控制寄存器TCON串口控制寄存器SCON 单片机通过对单片机通过对4个特殊功能寄存器个特殊功能寄存器实
7、施中断控制:实施中断控制:第9页/共53页101 1中断允许寄存器中断允许寄存器IEIE功能:功能:控制单片机是否接受中断申请,以及接受哪一种中断申请控制单片机是否接受中断申请,以及接受哪一种中断申请字节地址:字节地址:A8H A8H 其格式和每位的含义如下:其格式和每位的含义如下:第10页/共53页11由位操作指令或数据传送指令实现。由位操作指令或数据传送指令实现。例:同时打开外部中断例:同时打开外部中断0和串行口中断,可设置为:和串行口中断,可设置为:法法1:MOV IE,#10010001B 法法2:SETB EA SETB ES SETB EX0 想一想想一想还可以怎样实现?还可以怎样
8、实现?如何对如何对如何对如何对IEIE进进进进行设置?行设置?行设置?行设置?IE的设置方法:的设置方法:第11页/共53页122中断优先级寄存器中断优先级寄存器IP功能:功能:对对80C51单片机进行高级别或低级别中断的设置,单片机进行高级别或低级别中断的设置,IP的字节地址:的字节地址:B8H 格式和每位的含义如下:格式和每位的含义如下:第12页/共53页13 例:例:令串行口为高优先级中断,外部中断令串行口为高优先级中断,外部中断0为为低优先级中断。低优先级中断。设置方法:设置方法:法法1:MOV IE,#10010001B ;开中断;开中断 MOV IP,#00010000B ;设优先
9、级;设优先级 法法2:MOV IE,#10010001B SETB PS说明:说明:此时串口的优先级高于外部中断此时串口的优先级高于外部中断0的优先级的优先级第13页/共53页14答案:答案:此时此时CPU按自然优先级顺序确定该响应哪个中断请求。按自然优先级顺序确定该响应哪个中断请求。如果几个同级别的中断如果几个同级别的中断如果几个同级别的中断如果几个同级别的中断源同时申请中断,源同时申请中断,源同时申请中断,源同时申请中断,CPUCPU如何响应?如何响应?如何响应?如何响应?注意:注意:自然优先级由硬件决定,用户不能更改。自然优先级由硬件决定,用户不能更改。排列见下表排列见下表第14页/共5
10、3页1580C5180C51单片机的中断优先级有三条原则:单片机的中断优先级有三条原则:CPUCPU同时接收到几个中断时,同时接收到几个中断时,首先响应优先级别最高的中断请求首先响应优先级别最高的中断请求。正在进行的中断过程正在进行的中断过程不能被新的同级或低优先级的中断请求所不能被新的同级或低优先级的中断请求所中断中断。正在进行的低优先级中断服务,正在进行的低优先级中断服务,能被高优先级中断请求所中断能被高优先级中断请求所中断。为了实现上述后两条原则,为了实现上述后两条原则,中断系统内部设有两个用户不中断系统内部设有两个用户不能寻址的优先级状态触发器。能寻址的优先级状态触发器。其中一个置其中
11、一个置1 1,表示正在响应高优,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置先级的中断,它将阻断后来所有的中断请求;另一个置1 1,表示,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。求。第15页/共53页163 3定时定时/计数器及外部中断控制寄存器计数器及外部中断控制寄存器TCONTCON可设置外部中断申请的形式:低电平触发还是下降沿触发可设置外部中断申请的形式:低电平触发还是下降沿触发控制定时控制定时/计数器的计时开始或停止计数器的计时开始或停止是各中断源(串口中断除外)是否申请中断的标志位是各中断
12、源(串口中断除外)是否申请中断的标志位格式如下,各位含义格式如下,各位含义TCON D7 D6D5D4D3D2D1D0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 功能功能:字节地址:字节地址:88H88H第16页/共53页17形式形式 符号符号 位地址位地址 功功 能能 说说 明明 中断控制 IT0 88H 外部中断外部中断0 0的触发控制位的触发控制位IT0=0IT0=0:低电平触发:低电平触发 IT0=1IT0=1:下降沿触发:下降沿触发IT0IT0的状态由的状态由用户通过初用户通过初始化程序定始化程序定义义 IE0 89H 外部中断外部中断0 0请求标志位。请求标志位
13、。CPUCPU采样到外部中断采样到外部中断0 0的中断请求时,的中断请求时,IE0=1IE0=1CPUCPU响应该中断时,响应该中断时,IE0IE00 0 IE0IE0的状态由的状态由单片机自动单片机自动设置设置 IT1 8AH 外部中断外部中断1 1的触发控制位的触发控制位IT1=0IT1=0:低电平触发:低电平触发IT1=1IT1=1:下降沿触发:下降沿触发 IT1IT1的状态由的状态由用户通过初用户通过初始化程序定始化程序定义义 IE1 8BH 外部中断外部中断1 1的中断请求标志位的中断请求标志位CPUCPU采样到外部中断采样到外部中断1 1的中断请求时,的中断请求时,IE1=1IE1
14、=1CPUCPU响应该中断时,响应该中断时,IE1IE10 0 IE1IE1的状态由的状态由单片机自动单片机自动设置设置 第17页/共53页18形式形式 符号符号 位地址位地址 功功 能能 说说 明明 定定时时/计计数数控控制制 TR0 8CH TR0=1TR0=1:启动定时:启动定时/计数器计数器T0T0TR0=0TR0=0:停止定时:停止定时/计数器计数器T0 T0 TR0TR0的状态由用的状态由用户通过初始化户通过初始化程序定义程序定义 TF0 8DH 定时定时/计数器计数器T0T0溢出中断请求位溢出中断请求位T0T0定时或计数完成时定时或计数完成时TF0=1TF0=1,同,同时申请中断
15、时申请中断CPUCPU响应该中断时,响应该中断时,TF0TF00 0 TF0TF0的状态由单的状态由单片机自动设置片机自动设置 TR1 8EH TR1=1TR1=1:启动定时:启动定时/计数器计数器T1T1TR1=0TR1=0:停止定时:停止定时/计数器计数器T1 T1 TR1TR1的状态由用的状态由用户通过初始化户通过初始化程序定义程序定义 TF1 8FH 定时定时/计数器计数器T1T1溢出中断请求位溢出中断请求位T1T1定时或计数完成时定时或计数完成时TF1=1TF1=1,同,同时申请中断时申请中断CPUCPU响应该中断时,响应该中断时,TF1TF10 0TF1TF1的状态由单的状态由单片
16、机自动设置片机自动设置 第18页/共53页19例 编程设定外部中断编程设定外部中断1 1为低电平触发的高优先级中断源。为低电平触发的高优先级中断源。分析:分析:这是典型的中断初始化问题,方法一般如下:这是典型的中断初始化问题,方法一般如下:1 1)对)对TCONTCON的相关位赋值的相关位赋值2 2)设定所用中断源的优先级)设定所用中断源的优先级赋值赋值IPIP3 3)开中断)开中断置位置位IEIE第19页/共53页20解:解:法法1:CLR IT1 SETB PX1 SETB EX1 SETB EA 法法2:CLR IT1 MOV IP,#04H MOV IE,#84H第20页/共53页21
17、4串口控制寄存器串口控制寄存器SCON功能:功能:只有只有D1和和D0位用于中断,作为串口中断请求标志,即串位用于中断,作为串口中断请求标志,即串口中断请求寄存器口中断请求寄存器字节地址:字节地址:98H 格式如下:格式如下:RI为接收中断请求标志位。为接收中断请求标志位。当串口接收完一帧串行数据时,当串口接收完一帧串行数据时,RI自动置自动置1;CPU响应中断后,用软件对响应中断后,用软件对RI清清0。TI为串行口发送中断请求标志。为串行口发送中断请求标志。当串口发送完一帧串行数据时,当串口发送完一帧串行数据时,TI自动置自动置1,请求中断。,请求中断。CPU响应中断后,由软件对响应中断后,
18、由软件对TI清零。清零。其他几位的含义及用法见第其他几位的含义及用法见第5章。章。第21页/共53页225.2 80C515.2 80C51单片机中断处理过程单片机中断处理过程 5.2.1 5.2.1 中断响应条件和时间中断响应条件和时间 无同级或高级中断正在服务无同级或高级中断正在服务有中断请求信号有中断请求信号相应的中断源已打开,即相应的中断源已打开,即EA=1EA=1,中断源对应中,中断源对应中断允许位也为断允许位也为1 1。当前的指令周期已经结束当前的指令周期已经结束如果当前指令为如果当前指令为RETIRETI或访问或访问IEIE和和IPIP的指令,至的指令,至少还要再执行完一条指令。
19、少还要再执行完一条指令。1 1、中断响应条件、中断响应条件第22页/共53页23二、中断响应时间二、中断响应时间某中断的响应时序如图:80C51的中断响应时间(从标志置的中断响应时间(从标志置1到进入相应的中到进入相应的中断服务),至少要断服务),至少要3个完整的机器周期。个完整的机器周期。没有同级或高级中断正在进行,所需要的附加等待没有同级或高级中断正在进行,所需要的附加等待时间在时间在35个机器周期之间。个机器周期之间。对于没有嵌套的单级中断,响应时间为对于没有嵌套的单级中断,响应时间为38个机器周个机器周期期 第23页/共53页245.2.2 中断响应过程中断响应过程 将当前寄存器内容压
20、入堆栈,如 PUSH ACC在中断服务程序中实现,解决单片机中断后要干什么的问题。把保存在堆栈中的寄存器内容取出,送回原来的位置,如POP ACC 注意,不能用注意,不能用RETRET指令代替指令代替RETIRETI指令。在中断服务程序中指令。在中断服务程序中PUSHPUSH指令与指令与POPPOP指令必须成对使用,否则不能正确返回断点指令必须成对使用,否则不能正确返回断点 。第24页/共53页25 若外部中断定义为若外部中断定义为电平触发方式电平触发方式,中断标志位的状态,中断标志位的状态随随CPUCPU在每个机器周期采样到的外部中断输入引脚的电平在每个机器周期采样到的外部中断输入引脚的电平
21、变化而变化,这样能提高变化而变化,这样能提高CPUCPU对外部中断请求的响应速度。对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的但外部中断源若有请求,必须把有效的低电平保持到请低电平保持到请求获得响应时为止求获得响应时为止,不然就会漏掉;,不然就会漏掉;而在中断服务程序而在中断服务程序结束之前,中断源又必须撤消其有效的低电平结束之前,中断源又必须撤消其有效的低电平,否则中,否则中断返回之后将再次产生中断。断返回之后将再次产生中断。电平触发方式适合于外部中断输入以低电平输入电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例且中断服务程序能清除外部
22、中断请求源的情况。例如,并行接口芯片如,并行接口芯片82558255的中断请求线在接受读或写的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方式操作后即被复位,因此,以其去请求电平触发方式的中断比较方便。的中断比较方便。第25页/共53页26 若外部中断定义为若外部中断定义为边沿触发方式边沿触发方式,在相继连续的两次采样,在相继连续的两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在样到为低电平,则在IE0IE0或或IE1IE1中将锁存一个逻辑中将锁存一个逻辑1 1。即便是。即便是CPUCPU暂时不
23、能响应,中断申请标志也不会丢失,直到暂时不能响应,中断申请标志也不会丢失,直到CPUCPU响应响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,此中断时才清零。这样,为保证下降沿能被可靠地采样到,外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一外中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期个机器周期(若晶振为(若晶振为12MHz12MHz时,为时,为1 1微秒)。微秒)。边沿触发方式适合于以负脉冲形式输入的外部中断请求,边沿触发方式适合于以负脉冲形式输入的外部中断请求,如如ADC0809ADC0809的转换结束标志信号的转换结束标志信号EOCEOC为正脉冲,经反相后就
24、可为正脉冲,经反相后就可以作为以作为80C5180C51的中断输入。的中断输入。第26页/共53页275.2.4 中断程序举例中断程序举例 第27页/共53页28 ORG 0000HSTART:LJMP MAIN ;跳转到主程序 ORG 0003H LJMP INTO ;转向中断服务程序 ORG 0030H ;主程序 MAIN:CLR IT0 ;设为电平触发方式 SETB EA ;CPU开放中断 SETB EX0 ;允许中断 MOV DPTR,#1000H;设置数据区地址指针 ORG 0200H ;中断服务程序 INT0:PUSH PSW ;保护现场 PUSH ACC CLR P3.0 ;由P
25、3.0输出0 NOP NOP SETB P3.0 ;由P3.0输出1,撤除 MOV A,P1 ;输入数据 MOVX DPTR,A ;存入数据存储器 INC DPTR ;修改数据指针,指向下一个单元 POP ACC ;恢复现场 POP PSW RETI ;中断返回第28页/共53页29 例例 多外部中断源的系统示例。多外部中断源的系统示例。设有设有5个外部中断源,中断优先级排队顺序为:个外部中断源,中断优先级排队顺序为:XI0、XI1、XI2、XI3、XI4。试设计它们与。试设计它们与80C51单单片机的接口。片机的接口。第29页/共53页30 ORG 0003H LJMP INSE0 ;转外部
26、中断0服务程序入口 ORG 0013H LJMP INSE1 ;转外部中断1服务程序入口 INSE0:PUSH PSW ;XI0中断服务程序 PUSH ACC POP ACC POP PSW RETI 第30页/共53页31INSE1:PUSH PSW ;中断服务程序 PUSH ACC JB P1.0,DV1 ;P1.0为1,转XI1中断服务程序 JB P1.1,DV2 ;P1.1为1,转XI2中断服务程序 JB P1.2,DV3 ;P1.2为1,转XI3中断服务程序 JB P1.3,DV4 ;P1.3为1,转XI4中断服务程序INRET:POP ACC POP PSW RETI DV1:;X
27、I1中断服务程序 AJMP INRET DV2:;XI2中断服务程序 AJMP INRET DV3:;XI3中断服务程序 AJMP INRET DV4:;XI4中断服务程序 AJMP INRET第31页/共53页325.3 80C51的定时的定时/计数器计数器 80C51内部集成两个可编程的定时内部集成两个可编程的定时/计数器:计数器:T0和和T1。它们既可以工作于定时模式,也可以工作于外部事它们既可以工作于定时模式,也可以工作于外部事件计数模式。件计数模式。T1还可以作为串行口的波特率发生器。还可以作为串行口的波特率发生器。第32页/共53页33 实现定时功能,实现定时功能,比较方便的办法是
28、利用单片机内部比较方便的办法是利用单片机内部的定时的定时/计数器计数器。也可以采用下面三种方法:。也可以采用下面三种方法:软件定时软件定时:软件定时不占用硬件资源,但占用了:软件定时不占用硬件资源,但占用了CPU时间,降低了时间,降低了CPU的利用率。的利用率。采用时基电路定时采用时基电路定时:例如采用:例如采用555电路,外接必要的电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。行控制和修改,即不可编程。采用可编程芯
29、片定时采用可编程芯片定时:这种定时芯片的定时值及定时:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时强,使用灵活。在单片机的定时/计数器不够用时,可计数器不够用时,可以考虑进行扩展。以考虑进行扩展。第33页/共53页345.3.1 定时定时/计数器的结构和工作原理计数器的结构和工作原理 一、定时一、定时/计数器的结构计数器的结构 定时定时/计数器的实质是加计数器的实质是加1 1计数器(计数器(1616位),由高位),由高8 8位和低位和低8 8位两个寄存器组成。位两个寄存器组成。TMODTMOD
30、是定时是定时/计数器的工作方式寄存器,确计数器的工作方式寄存器,确定工作方式和功能;定工作方式和功能;TCONTCON是控制寄存器,控制是控制寄存器,控制T0T0、T1T1的启动和的启动和停止及设置溢出标志停止及设置溢出标志。第34页/共53页35二、定时二、定时/计数器的工作原理计数器的工作原理加加1计数器输入的计数脉冲有两个来源计数器输入的计数脉冲有两个来源:1)是由系统的时钟振荡器输出脉冲经是由系统的时钟振荡器输出脉冲经12分频后送来;分频后送来;2)一个是一个是T0或或T1引脚输入的外部脉冲源。引脚输入的外部脉冲源。每来一个脉冲计数器加每来一个脉冲计数器加1,当加到计数器为全,当加到计
31、数器为全1时,再时,再输入一个脉冲就使计数器回零,且计数器的溢出使输入一个脉冲就使计数器回零,且计数器的溢出使TCON中中TF0或或TF1置置1,向,向CPU发出中断请求(定时发出中断请求(定时/计数器中断允许时)。计数器中断允许时)。如果定时如果定时/计数器工作于定时模式,则表示定时时间已计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加可见,由溢出时计数器的值减去计数初值才是加1计计数器的计数值数器的计数值。第35页/共53页36设置为定时器模式时设置为定时器模式时,加,加1计
32、数器是对内部机器周期计数。计数器是对内部机器周期计数。计计数值数值N乘以机器周期乘以机器周期Tcy就是定时时间就是定时时间t。设置为设置为计数器模式时计数器模式时,外部事件计数脉冲由,外部事件计数脉冲由T0或或T1引脚输入引脚输入到计数器。在每个机器周期的到计数器。在每个机器周期的S5P2期间采样期间采样T0、T1引脚电平。引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加时,则计数器加1,更新的计数值在下一个机器周期的,更新的计数值在下一个机器周期的S3P1期期间装入计数器。由于检测一个从间装入计数器。由于检测
33、一个从1到到0的下降沿需要的下降沿需要2个机器周个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为频率为12MHz时时,最高计数频率不超过,最高计数频率不超过1/2MHz,即计数脉冲,即计数脉冲的周期要大于的周期要大于2 s。第36页/共53页37 5.3.2 定时定时/计数器的控制计数器的控制 80C51单片机定时单片机定时/计数器的工作由两个特殊功能寄计数器的工作由两个特殊功能寄存器控制。存器控制。TMOD用于设置其工作方式;用于设置其工作方式;TCON用于用于控制其启动和中断申请。控制其启动和中断申请。一、工作方式寄
34、存器一、工作方式寄存器TMODTMOD 工作方式寄存器工作方式寄存器TMOD用于设置定时用于设置定时/计数器的工计数器的工作方式,低四位用于作方式,低四位用于T0,高四位用于,高四位用于T1。其格式如下:。其格式如下:第37页/共53页38第38页/共53页39第39页/共53页40 二、控制寄存器二、控制寄存器TCONTCON TCONTCON的低的低4 4位用于控制外部中断位用于控制外部中断,已在前面介绍。已在前面介绍。TCONTCON的高的高4 4位用于控制定时位用于控制定时/计数器的启动和中断申请。其格式如下:计数器的启动和中断申请。其格式如下:第40页/共53页41TF1TF1(TC
35、ON.7TCON.7):):T1T1溢出中断请求标志位。溢出中断请求标志位。T1T1计数溢出时由硬件计数溢出时由硬件自动置自动置TF1TF1为为1 1。CPUCPU响应中断后响应中断后TF1TF1由硬件自动清由硬件自动清0 0。T1T1工作时,工作时,CPUCPU可随时查询可随时查询TF1TF1的状态。所以,的状态。所以,TF1TF1可用作查询测试的标志。可用作查询测试的标志。TF1TF1也可以用软件置也可以用软件置1 1或清或清0 0,同硬件置,同硬件置1 1或清或清0 0的效果一样。的效果一样。TR1TR1(TCON.6TCON.6):):T1T1运行控制位运行控制位。TR1TR1置置1
36、1时,时,T1T1开始工作;开始工作;TR1TR1置置0 0时,时,T1T1停止工作。停止工作。TR1TR1由软件置由软件置1 1或清或清0 0。所以,用软件可控。所以,用软件可控制定时制定时/计数器的启动与停止。计数器的启动与停止。TF0TF0(TCON.5TCON.5):):T0T0溢出中断请求标志位,溢出中断请求标志位,其功能与其功能与TF1TF1类同。类同。TR0TR0(TCON.4TCON.4):):T0T0运行控制位运行控制位,其功能与,其功能与TR1TR1类同。类同。第41页/共53页42 5.3.3 定时定时/计数器的工作方式计数器的工作方式 一、方式一、方式0 0当当TMOD
37、TMOD的的M1M0=00M1M0=00时,定时时,定时/计数器工作于方式计数器工作于方式0 0。方式方式0 0为为1313位计数位计数,由,由TL0TL0的低的低5 5位(高位(高3 3位未用)和位未用)和TH0TH0的的8 8位位组成。组成。TL0TL0的低的低5 5位溢出时向位溢出时向TH0TH0进位,进位,TH0TH0溢出时,置位溢出时,置位TCONTCON中的中的TF0TF0标志,向标志,向CPUCPU发出中断请求。发出中断请求。第42页/共53页43定时器模式时定时器模式时有有:N:Nt/Tcy t/Tcy 计数初值计算的公式为:计数初值计算的公式为:计数模式时,计数脉冲是计数模式
38、时,计数脉冲是T0T0引脚上的外部脉冲。引脚上的外部脉冲。门控位门控位GATEGATE具有特殊的作用。具有特殊的作用。当当GATE=0GATE=0时时,经反相后使或门输,经反相后使或门输出为出为1 1,此时仅由,此时仅由TR0TR0控制与门的开启,与门输出控制与门的开启,与门输出1 1时,控制开关时,控制开关接通,计数开始;接通,计数开始;当当GATE=1GATE=1时时,由外中断引脚信号控制或门的,由外中断引脚信号控制或门的输出,此时控制输出,此时控制与门的开启由外中断引脚信号和与门的开启由外中断引脚信号和TR0TR0共同控制共同控制。当当TR0=1TR0=1时,外中断引脚信号引脚的时,外中
39、断引脚信号引脚的高电平启动计数高电平启动计数,外中断引,外中断引脚信号引脚的脚信号引脚的低电平停止计数低电平停止计数。这种方式常用来测量外中断引。这种方式常用来测量外中断引脚上正脉冲的宽度。脚上正脉冲的宽度。第43页/共53页44 二、方式二、方式1 1 当当M1M0=01M1M0=01时,定时时,定时/计数器工作于方式计数器工作于方式1 1。方式方式1 1的计数位数是的计数位数是1616位,由位,由TL0TL0作为低作为低8 8位、位、TH0TH0作为作为高高8 8位,组成了位,组成了1616位加位加1 1计数器计数器 。计数个数与计数初值的关系为:第44页/共53页45三、方式三、方式2
40、2 当当M1M0=10M1M0=10时,定时时,定时/计数器工作于方式计数器工作于方式2 2。这是自动重装初值的。这是自动重装初值的8 8位计数方式,它省去了方式位计数方式,它省去了方式0 0和方式和方式1 1在多次重复计数状态下必须在多次重复计数状态下必须重新设定计数初值的麻烦,但是却付出了减小定时时间的代价。重新设定计数初值的麻烦,但是却付出了减小定时时间的代价。方式方式2 2为自动重装初值的为自动重装初值的8 8位计数方式。位计数方式。工作方式工作方式2 2特别适合于用作较精确的脉冲信号发生器。特别适合于用作较精确的脉冲信号发生器。计数个数与计数初值的关系为计数个数与计数初值的关系为:第
41、45页/共53页46 四、方式四、方式3 3 方式方式3 3只适用于定时只适用于定时/计数器计数器T0T0,定时器定时器T1T1处于方式处于方式3 3时相当时相当于于TR1=0TR1=0,停止计数。,停止计数。当当M1M0=11M1M0=11时,时,T0T0工作于方式工作于方式3 3。工作方式3将T0分成为两个独立的8位计数器TL0和TH0。第46页/共53页47 5.3.4 定时定时/计数器用于外部中断扩展计数器用于外部中断扩展 扩展方法是,将定时扩展方法是,将定时/计数器设置为计数器方式,计数初值计数器设置为计数器方式,计数初值设定为满程,将待扩展的外部中断源接到定时设定为满程,将待扩展的
42、外部中断源接到定时/计数器的外部计数器的外部计数引脚。从该引脚输入一个下降沿信号,计数器加计数引脚。从该引脚输入一个下降沿信号,计数器加1 1后便产后便产生定时生定时/计数器溢出中断。计数器溢出中断。例如,利用例如,利用T0扩展一个外部中断源。将扩展一个外部中断源。将T0设置为计数器方式,设置为计数器方式,按方式按方式2工作,工作,TH0、TL0的初值均为的初值均为0FFH,T0允许中断,允许中断,CPU开放中断。开放中断。其初始化程序如下:其初始化程序如下:MOV TMOD,#06H ;置;置T0为计数器方式为计数器方式2 MOV TL0,#0FFH ;置计数初值;置计数初值 MOV TH0
43、,#0FFH SETB TR0 ;启动;启动T0工作工作 SETB EA ;CPU开中断开中断 SETB ET0 ;允许;允许T0中断中断第47页/共53页485.3.5 定时定时/计数器应用举例计数器应用举例 初始化程序应完成如下工作:初始化程序应完成如下工作:对对TMOD赋值,以确定赋值,以确定T0和和T1的工作方式。的工作方式。计算初值计算初值,并将其写入并将其写入TH0、TL0或或TH1、TL1。中断方式时,则对中断方式时,则对IE赋值,开放中断。赋值,开放中断。使使TR0或或TR1置位,启动定时置位,启动定时/计数器定时或计数。计数器定时或计数。第48页/共53页49例例 利用定时利
44、用定时/计数器计数器T0的方式的方式1,产生,产生10ms的定时,并的定时,并使使P1.0引脚上输出周期为引脚上输出周期为20ms的方波,采用中断方式,的方波,采用中断方式,设系统时钟频率为设系统时钟频率为12 MHz。解:解:1、计算计数初值、计算计数初值X:由于晶振为由于晶振为12 MHz,所以机器周期,所以机器周期Tcy为为1 s。所以:所以:Nt/Tcy 10103/110610000X655361000055536D8F0H即应将即应将D8H送入送入TH0中,中,F0H送入送入TL0中中 2、求、求T0的方式控制字的方式控制字TMOD:M1M0=01,GATE=0,C/T=0,可取方
45、式控制字为,可取方式控制字为01H;第49页/共53页50 ORG 0000H LJMP MAIN ;跳转到主程序 ORG 000BH ;T0的中断入口地址 LJMP DVT0 ;转向中断服务程序 ORG 0100H MAIN:MOV TMOD,#01H;置T0工作于方式1 MOV TH0,#0D8H ;装入计数初值 MOV TL0,#0F0H SETB ET0 ;T0开中断 SETB EA ;CPU开中断 SETB TR0 ;启动T0 SJMP$;等待中断 DVT0:CPL P1.0 ;P1.0取反输出 MOV TH0,#0D8H ;重新装入计数值 MOV TL0,#0F0H RETI ;中
46、断返回 END第50页/共53页51思考题及习题1、80C51有几个中断源?各中断标志是如何产生的?又是如何复位的?CPU响应各中断时,其中断入口地址是多少?2、某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H。试编写主程序及中断服务程序(转至相应的入口即可)。3、外部中断源有电平触发和边沿触发两种触发方式,这两种触发方式所产生的中断过程有何不同?怎样设定?4、定时/计数器工作于定时和计数方式时有何异同点?5、定时/计数器的4种工作方式各有何特点?6、要求定时/计数器的运
47、行控制完全由TR1、TR0确定和完全由、高低电平控制时,其初始化编程应作何处理?第51页/共53页527、当定时/计数器T0用作方式3时,定时/计数器T1可以工作在何种方式下?如何控制T1的开启和关闭?8、利用定时/计数器T0从P1.0输出周期为1s,脉宽为20ms的正脉冲信号,晶振频率为12MHz。试设计程序。9、要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。试设计程序。10、试用定时/计数器T1对外部事件计数。要求每计数100,就将T1改成定时方式,控制P1.7输出一个脉宽为10ms的正脉冲,然后又转为计数方式,如此反复循环。设晶振频率为12MHz。11、利用定时/计数器T0产生定时时钟,由P1口控制8个指示灯。编一个程序,使8个指示灯依次一个一个闪动,闪动频率为20次/秒(8个灯依次亮一遍为一个周期)。12、若晶振频率为12MHz,如何用T0来测量201s之间的方波周期?又如何测量频率为0.5MHz左右的脉冲频率?第52页/共53页53感谢您的欣赏!第53页/共53页