




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第6 6章章 80C5180C51单片机的单片机的CTCCTC与中断系统与中断系统 6.1 80C516.1 80C51单片机的单片机的CTCCTC及其应用及其应用 6.2 80C516.2 80C51单片机的中断系统及其应用单片机的中断系统及其应用 6.1 80C516.1 80C51单片机的单片机的CTCCTC及其应用及其应用一、一、 80C5180C51单片机的定时器单片机的定时器/ /计数器计数器二、二、 定时器定时器/ /计数器的应用举例计数器的应用举例概述概述 在测、控领域往往需要定时检测某个参数,或按一定的时间间隔来进行某种控制。还有一些控制是根据对某种事件的计数结果进行的。因
2、此几乎所有单片机内部都集成了定时/计数器,以简化微机测控系统的设计。一、一、80C5180C51单片机的定时器单片机的定时器/ /计数器计数器 80C51系列单片机典型产品中80C51等有两个16位定时器/计数器T0,T1;80C52等有三个16位定时器/计数器T0、T1和T2。 它们都可以用作定时器或外部事件计数器。概述概述一、一、80C5180C51单片机的定时器单片机的定时器/ /计数器计数器( (一一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理( (二二) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式( (三三
3、) ) 定时器定时器/ /计数器计数器T T2 2( (四四) ) 看门狗看门狗(WTD)(WTD)一、一、80C5180C51单片机的定时器单片机的定时器/ /计数器计数器1 1、结构框图、结构框图 8 80C51单片机内部有2 2个个可编程的1616位定时器位定时器/ /计数器计数器T T0 0、T T1 1,结构框图如下图所示。它是由由6 6个专用寄存器构成个专用寄存器构成的: TH0、TL0构成16位计数器T0, TH1、TL1构成16位计数器T1, TMODTMOD、TCONTCON为两个定时器共用为两个定时器共用,用来选择工作方式和控制启停。( (一一) ) 定时器定时器/ /计数
4、器计数器T T0 0、T T1 1的结构原理的结构原理1 1、结构框图、结构框图( (一一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理 T0、T1是加1计数器,每当输入信号有一个负跳变时,计数器加1,它们可用于计数也可用于定时。 1 1、结构框图、结构框图( (一一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理 当用作计数时计数时,它对外部对外部输入(自引脚T0、T1)的脉冲信号计数脉冲信号计数。每个机器周期的S S5 5P P2 2采样采样引脚电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加加
5、1 1。对输入计数信号的要求: 由于识别一个从1到0的负跳变信号需要两个机器周期(24个振荡周期),所以最高的计数频最高的计数频率为系统时钟频率的率为系统时钟频率的1/241/24; 又因为一个机器周期对信号采样一次,因此输入信号的电平至少应持续一个机器周期输入信号的电平至少应持续一个机器周期。1 1、结构框图、结构框图( (一一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理 当用作定时定时时,它对内部时钟计数对内部时钟计数,每个机器周期,计数器加1。1个机器周期为12个振荡周期,因此定时时间由计数长度和时钟频率共同决定。1 1、结构框图、结构框图( (一
6、一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理2 2、定时器方式寄存器定时器方式寄存器TMODTMOD TMOD用来选择定时器的工作方式,各位定义如下图所示:( (一一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理2 2、定时器方式寄存器、定时器方式寄存器TMODTMOD( (一一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理功能选择功能选择方式选择方式选择门控方式选择门控方式选择3 3、定时器控制寄存器、定时器控制寄存器TCON TCON TCON的高4位分别作为T0、T1的溢
7、出标志和运行控制位,低4位用于外部中断,如下图所示:( (一一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理3 3、定时器控制寄存器、定时器控制寄存器TCON TCON ( (一一) ) 定时器定时器/ /计数器计数器T T0 0、T T1 1的结构原理的结构原理 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式简述简述 80C51单片机定时器T T0 0有四种工作方式有四种工作方式: 方式0、方式1、方式2和方式3。定时器T T1 1有三种工作方式有三种工作方式: 方式0、方式1、方式2。1 1、工作方式、工作方式
8、0 0 当M1M0两位为00时,定时器/计数器选为工作方式0。 它是一个1313位位的计数器,由TLX的低5位和THX组成。结构如下图所示: (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式1 1、工作方式、工作方式0 0 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式1 1、工作方式、工作方式0 0 当TLX的低5位计数溢出时即向THX进位,而THX计数溢出时向中断标志位溢出时向中断标志位TFTFX X进位进位。 在开中断的情况下,会向CPU发出中断请求;CPU响应中断后,硬件自动清除TFX标志。 TFX也可供
9、CPU读写,CPUCPU写入状态与硬件写入状态与硬件置置“1”1”或清或清“0”0”的效果相同的效果相同。 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式1 1、工作方式、工作方式0 0 由结构图可见, 当C/T=1时,多路开关接通引脚TX,计数器对外部时钟计数; (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式 当C/T=0时,多路开关接振荡器经12分频后的输出,计数器对机器周期计数,即工作于定时方式。1 1、工作方式、工作方式0 0 当门控位GATE=0时,定时器的启停仅由TRX控制,而当GATE=1时,定时
10、器的启停还受到INTX引脚电平的控制。 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式1 1、工作方式、工作方式0 0 在方式在方式0 0应用时应注意以下几点应用时应注意以下几点: 因计数器是做加1计数的,所以时间常数初值应用 补码装入。 方式0为13位计数器,应正确安排13位二进制码。 如果要重复定时或计数,则须重新设置时间常数 初值。 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式 当M1M0两位为01时,定时器/计数器选为工作方式1,它是一个1616位位的计数器,结构如下图所示。 方式1和方式0唯一不同的
11、就是位数,其它控制方式和用法均相同。 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式2 2、工作方式、工作方式1 1 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式2 2、工作方式、工作方式1 1 当M1M0两位为10时,定时器/计数器选为工作方式2,为8 8位时间常数可自动位时间常数可自动再装入再装入的计数器,结构如下图所示。 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式3 3、工作方式、工作方式2 2 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T
12、1 1的工作方式的工作方式3 3、工作方式、工作方式2 2 这时TLX为8位计数器,THX为时间常数时间常数初值寄存器。初值寄存器。 当TLX计满溢出时,置位TFX,并将THX的内容(即时间常数初值)重新装入TLX中。方式2特别适合于需要重复定时/计数的场合。 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式3 3、工作方式、工作方式2 2 当M1M0两位为11时,选择工作方式3。方式3只适用于T0,如果企图将T1置为方式3,则将使T1停止计数,与清“0”TR1的效果相同。 T0工作于方式3时,变成两个独立的变成两个独立的8 8位位计数器计数器TL0和T
13、H0,结构如下图所示。 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式4 4、工作方式、工作方式3 3 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式4 4、工作方式、工作方式3 3 TL0占用了原T0的所有资源; TH0占用了原T1的部分资源TR1和TF1,且THTH0 0只能只能作为定时器用作为定时器用。 这种情况下,T1仍可工作于方式0、1或2的定时或计数,但TR1、TF1被TH0占用。 该方式一般用在一般用在T T1 1作为串口的波特率发生器,作为串口的波特率发生器,或不需要中断的场合。或不需要中断的场
14、合。 (二)定时器(二)定时器/ /计数器计数器T T0 0、T T1 1的工作方式的工作方式4 4、工作方式、工作方式3 3 (三)定时器(三)定时器/ /计数器计数器T T2 2 T2内部除了两个8位计数器TH2、TL2和控制寄存器T2CON及方式控制寄存器T2MOD外,还设置了捕捉寄存器RCAP2L(低字节)和RCAP2H(高字节)。概述概述 80C52中有一个功能较强的定时器/计数器T2,它是一个16位的、具有自动重装载自动重装载和捕捕捉能力捉能力的定时器/计数器。 T2的计数脉冲源有两个:内部机器周期和外部计数脉冲(从T2即P1.0端输入) 此时P P1.11.1 作为外部控制信号输
15、入端作为外部控制信号输入端T T2 2EXEX。 (三)定时器(三)定时器/ /计数器计数器T T2 2概述概述 捕捉/重装载选择1,选择捕捉0.选择重装载计数定时方式选择1,计数0,定时运行控制位1,启动T20,关闭T2允许/禁止外部信号触发捕捉或重装载1,允许0,禁止1 1、T T2 2中的特殊功能寄存器中的特殊功能寄存器 (1 1)T T2 2控制寄存器控制寄存器T T2 2CONCON(字节地址(字节地址C8HC8H):): (三)定时器(三)定时器/ /计数器计数器T T2 21 1、T T2 2中的特殊功能寄存器中的特殊功能寄存器 串行口发送波特率发生器选择1,选择T20,选择T1
16、串行口接收波特率发生器选择1,选择T20,选择T1T2外部标志1,T2EX引脚(P1.1 )上出现,造成捕捉/重装载,0,CPU响应中断,应由软件清除该标志。(EXEN2=1)T2溢出标志,T2溢出时置位(在波特率发生器方式下不置位)并申请中断,只能靠软件清除。该位置1,申请中断。(1 1)T T2 2控制寄存器控制寄存器T T2 2CONCON(字节地址(字节地址C8HC8H):): (三)定时器(三)定时器/ /计数器计数器T T2 2(2 2)T T2 2方式控制寄存器方式控制寄存器T T2 2MODMOD:1,向下计数向下计数允许位0,向上计数T2输出允许位(仅对80C54/58)1,
17、允许时钟输 出至T2(P1.0)0,不允许输出T2MOD的复位值为:0 0 B1 1、T T2 2中的特殊功能寄存器中的特殊功能寄存器 (三)定时器(三)定时器/ /计数器计数器T T2 2(3 3)数据寄存器:)数据寄存器:THTH2 2,TLTL2 2 两个8位寄存器构成16位计数器,可供CPU以字节方式读写。(4 4)捕捉寄存器:)捕捉寄存器:RCAPRCAP2 2H H、RCAPRCAP2 2L L 用于捕捉计数器TH2、TL2的计数状态或预置计数初值。1 1、T T2 2中的特殊功能寄存器中的特殊功能寄存器 (三)定时器(三)定时器/ /计数器计数器T T2 22 2、T T2 2的
18、功能选择:定时的功能选择:定时/ /计数计数 (1)C/T2=0,选择定时方式。每个机器周期,T2的 内容增1。(2)C/T2=1,选择计数方式,当T2(P1.0)引脚有一 个负跳变,T2内容增1。注意计数脉冲频率不得 超过振荡器频率的1/24。 (三)定时器(三)定时器/ /计数器计数器T T2 23 3、T T2 2的工作方式选择的工作方式选择 包括捕捉、自动重装载和波特率发生器三种。由T2CON中的CP/RL2和RCLKTCLK来选择,见下表: (三)定时器(三)定时器/ /计数器计数器T T2 2T T2 2的工作方式选择表的工作方式选择表 捕捉方式:捕捉方式: 即在一定条件下,自动将
19、计数器TH2和TL2中的数据读入RCAP2H和RCAP2L。捕捉方式的原理图如下:3 3、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2(P1.0) )(P1.1)T2外部标志(在T2CON中)允许/禁止外部触发(在T2CON中) 捕捉方式:捕捉方式:3 3、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2 当CP/RL2=1,选择捕捉方式。下述情况下将发生捕捉操作: 当EXEN2=1,且引脚T2EX(P1.1)出现负跳变时,发生捕捉,同时标志EXF2置1,申请中断。 捕捉方式:捕捉方式:3 3、
20、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2 如果T2的中断开放,CPU响应后转到002BH执行中断服务程序。 注意:注意:在中断返回之前,必须用软件来清除TF2/EXF2。 捕捉方式:捕捉方式:3 3、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2自动重装载方式:自动重装载方式: 即在一定条件下,自动将RCAP2H和RCAP2L中的数据装入计数器TH2和TL2中。一般RCAP2H和RCAP2L中预置了T2的计数初值。 自动重装载方式的原理图如下:3 3、T T2 2的工作方式选择的工作方式选
21、择 (三)定时器(三)定时器/ /计数器计数器T T2 2自动重装载方式:自动重装载方式:3 3、T T2 2的工作方式选择的工作方式选择 (P1.0)(P1.1)T2的自动重装载方式 (三)定时器(三)定时器/ /计数器计数器T T2 2 当CP/RL2=0时,选择自动重装载方式,以下两种情况下发生自动重装载操作: T T2 2溢出时,溢出时,打开重装载三态缓冲器,发生重装载操作,同时置位TF2,申请中断。自动重装载方式:自动重装载方式:3 3、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2 当CP/RL2=0时,选择自动重装载方式,以下两种
22、情况下发生自动重装载操作:当当EXENEXEN2 2=1=1,且引脚T2EX(P1.1)有负跳变时,发生重装载操作,同时置位EXF2标志,申请中断。自动重装载方式:自动重装载方式:3 3、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2 如果T2中断允许,CPU响应后转到002BH执行中断服务程序。注意注意:在返回之前,应该用软件清除TF2/EXF2 标志。自动重装载方式:自动重装载方式:3 3、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2波特率发生器方式:波特率发生器方式: 当T2CON中RC
23、LK+TCLK=1时,T2作为串行口的波特率发生器,其结构原理如下图所示:3 3、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2波特率发生器方式:波特率发生器方式:3 3、T T2 2的工作方式选择的工作方式选择 T2的波特率发生器方式结构图 (三)定时器(三)定时器/ /计数器计数器T T2 2 当T2用作波特率发生器时,TH2的溢出不使TF2置位,不产生中断,所以此时T2不必禁止中断。 计数时钟可以是内部,也可以是外部,由C/T状态决定,波特率的值决定于RCAP2H和RCAP2L装载的初值。波特率发生器方式:波特率发生器方式:3 3、T T
24、2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2 该方式下,在T2计数过程中,不能再读写TH2和TL2;可以读但不能改写RCAP2H和RCAP2L;如果要访问RCAP2H和RCAP2L,应先关闭定时器。 上图可见,当T2用作波特率发生器时,若T2CON中EXEN2位置1,引脚T2EX(P1.1)可作为一个外部中断源。波特率发生器方式:波特率发生器方式:3 3、T T2 2的工作方式选择的工作方式选择 (三)定时器(三)定时器/ /计数器计数器T T2 2 (四)看门狗(四)看门狗(WTD)(WTD)概述概述 看门狗亦称监视定时器T T3 3,它的作用是
25、强作用是强迫单片机进入复位状态,使之从硬件或软件故迫单片机进入复位状态,使之从硬件或软件故障中解脱出来障中解脱出来。即单片机的程序进入了错误状态后,在一个指定的时间内,用户程序没有重装定时器T3,将产生一个系统复位。 80C55280C552中WTD是由一个11位的分频器和8位定时器T3(加1计数)组成。结构结构 其结构如下图所示:看门狗T3结构图 (四)看门狗(四)看门狗(WTD)(WTD)结构结构 T3由外部引脚 及PCON.4 (WLE)和PCON.1 (PD)控制。EW低电平, 允许WTD工作,禁止掉电方式, 也不能置位掉电位PCON.1。高电平, 禁止WTD工作,允许掉电方式。引脚E
26、W 在软件调试阶段,通过将 接高电平来禁止T3工作,待调试结束后,再将 接低电平。EWEW (四)看门狗(四)看门狗(WTD)(WTD)WLE (PCON.4)看门狗定时器允许重装标志1:允许定时器T3重装。0:T3装入后WLE自动清除,若该位为0,说 明T3已被重装。 T3的重装和溢出,产生复位的时间间隔,由装入T3的值决定。结构结构 对对T T3 3的装入分两步:的装入分两步:先置位PCON.4 (WLE),然后装入T3。T3装入后,PCON.4自动复位。 如果PCON.4=0,则T3不能被装入。 (四)看门狗(四)看门狗(WTD)(WTD)工作过程工作过程 定时器定时器T T3 3的工作
27、原理:的工作原理:在T3溢出时,复位8X552并产生复位脉冲输出至复位引脚RST。 为防止系统复位,必须在定时器T3溢出前,通过软件对其进行重装。 如果发生软件或硬件故障,将使软件对定时器T3的重装失败,从而T3溢出导致复位信号的产生。用这样的方法可以在软件失控时,恢复程序的正常运行。 (四)看门狗(四)看门狗(WTD)(WTD)编程实例编程实例 例如:watchdog使用的一段程序如下: T3 EQU 0FFH ;定时器T3的地址 PCON EQU 87H ;PCON的地址 WATCH_INTV EQU 156 ;看门狗的时间间隔 LCALL WATCHDOG 看门狗服务程序WATCHDOG
28、:ORL PCON,#10H ;允许定时器T3重装 MOV T3,#WATCH_INTV ;装载定时器T3 RET (四)看门狗(四)看门狗(WTD)(WTD)二、(一)定时器(一)定时器/ /计数器编程步骤计数器编程步骤(二)(1 1) 确定工作方式确定工作方式,把方式字写入TMOD寄存器。(2 2) 计算定时计算定时/ /计数初值计数初值,并将初值写入寄存器TH0、TL0或TH1、TL1。计数初值应用补码写入应用补码写入。 作计数器:计数初值X=2n-C, 作定时器:时间常数初值X=2n-T/TC , 式中n为计数器位数,C是实际计数值,TC是机器周期,T是设定的时间。(一)(一)定时器定
29、时器/ /计数器编程步骤计数器编程步骤(3 3)将中断控制字和中断优先级别分别写入中断允 许寄存器IEIE和中断优先级寄存器IPIP。(4 4)向TCONTCON写入适当命令字,控制定时器/计数器 的运行。(一)(一)定时器定时器/ /计数器编程步骤计数器编程步骤例例 1 1 利用利用T T0 0方式方式0 0产生产生1ms1ms的定时,在的定时,在P P1.01.0引脚上输出引脚上输出周期为周期为2ms2ms的方波。设单片机晶振频率的方波。设单片机晶振频率f foscosc=12MHz=12MHz 解:要在P1.0输出周期为2ms的方波,只要使P1.0每隔1ms取反一次即可。T0的方式字为:
30、TMOD=00H计算要定时1ms,T0的初值:机器周期Tc=(1/fosc)12=1/(12106)12=1s(二)(二)(二)(二) 利用利用T T0 0方式方式0 0产生产生1ms1ms的定时,在的定时,在P P1.01.0引脚上输出周期引脚上输出周期为为2ms2ms的方波。设单片机晶振频率的方波。设单片机晶振频率f foscosc=12MHz=12MHz 例例 1 1设T0的计数初值为X,则(213-X)110-6=110-3 X=213-110-3/(110-6) =8192-1000 =7192 =11100000 11000 B高8位 E0H 低5位 18H 利用利用T T0 0方
31、式方式0 0产生产生1ms1ms的定时,在的定时,在P P1.01.0引脚上输出周期为引脚上输出周期为2ms2ms的方波。设单片机晶振频的方波。设单片机晶振频f foscosc=12MHz=12MHz。那么:TH0初值为E0H,TL0初值为18H。采用查询查询TF0的状态来控制P1.0输出。程序清单:程序清单:MOV TMOD,#00H ;置T0为方式0MOV TL0,#18H ;送计数初值MOV TH0,#0E0HSETB TR0 ;启动T0例例 1 1(二)(二) 利用利用T T0 0方式方式0 0产生产生1ms1ms的定时,在的定时,在P P1.01.0引脚上输出周期为引脚上输出周期为2
32、ms2ms的方波。设单片机晶振频率的方波。设单片机晶振频率f foscosc=12MHz=12MHz。 LOOP:JBC TF0,NEX ;查询定时时间到否SJMP LOOPNEX:MOV TL0 #18H ;重赋计数初值 MOV TH0 #0E0H CPL P1.0 ;输出取反 SJMP LOOP ;重复循环例例 1 1(二)(二) 利用利用T T0 0方式方式0 0产生产生1ms1ms的定时,在的定时,在P P1.01.0引脚上输出引脚上输出周期为周期为2ms2ms的方波。设单片机晶振频率的方波。设单片机晶振频率f foscosc=12MHz=12MHz。 采用查询方式查询方式的程序很简单
33、,但CPU要不断地查询溢出标志TF0的状态,这就占用了占用了CPUCPU工作时间工作时间,以致CPU的效率不高。采用定时溢出中断方式,可采用定时溢出中断方式,可以提高以提高CPUCPU的效率的效率。例例 1 1(二)(二)采用定时溢出中断方式产生前例所要求的方波。采用定时溢出中断方式产生前例所要求的方波。 解解:方式字和初值与上例一样。程序清单:程序清单:主程序:ORG 0000HAJMP MAIORG 000BH ;T0中断入口AJMP IST0 ;转中断服务程序例例 2 2(二)(二)采用定时溢出中断方式产生前例所要求的方波。采用定时溢出中断方式产生前例所要求的方波。MAI:MOV SP,
34、#53H ;设置堆栈MOV TMOD,#00H ;置T0为方式0MOV TL0,#18H ;送初值MOV TH0,#OE0HSETB EA ;CPU开中断SETB ET0 ;T0中断允许SETB TR0 ;启动T0HERE:SJMP HERE ;等待中断例例 2 2(二)(二)采用定时溢出中断方式产生前例所要求的方波。采用定时溢出中断方式产生前例所要求的方波。中断服务程序:中断服务程序:IST0:MOV TL0,#18H ;重装初值 MOV TH0,#0E0H CPL P1.0 ; 输出方波 RETI ; 中断返回例例 2 2(二)(二) 采用定时器控制输出一方波信号,要求方波的采用定时器控制
35、输出一方波信号,要求方波的周期为周期为1s1s。设单片机晶振频率为。设单片机晶振频率为12MHz12MHz。解:输出周期为1s的方波要求定时值为500ms,在时钟为12MHz的情况下,即使采用方式1(16位计数器),这个值也超过超过了方式1可能提供的最大定时值(65.536ms)。 如果采用降低单片机时钟频率降低单片机时钟频率来延长定时时间,在一定的范围内可以,但会降低CPU运行速度,而且定时误差也会加大。例例 3 3(二)(二) 采用定时器控制输出一方波信号,要求方波的采用定时器控制输出一方波信号,要求方波的周期为周期为1s1s。设单片机晶振频率为。设单片机晶振频率为12MHz12MHz。
36、要获得500ms的定时,可选用定时器T0方式1,定时时间为50ms。另设一个软件计数器,初始值为10。每隔50ms定时时间到,产生溢出中断,在中断服务程序中使软件计数器减1,当软件计数器减到0时,就获得500ms定时。 下面介绍一种利用定时器定时定时器定时和软件计数软件计数来延长定时时间的复合方法复合方法。例例 3 3(二)(二) 采用定时器控制输出一方波信号,要求方波的周期为采用定时器控制输出一方波信号,要求方波的周期为1s1s。设单片机晶振频率为设单片机晶振频率为12MHz12MHz。若时钟频率f=12MHz,50ms定时的计数初值为: X=216-5010-3/(110-6) =6553
37、6-50000 =15536 D =00111100 10110000 B 3CH B0H 例例 3 3(二)(二)即X=3CB0H,因此TH0初值为3CH,TL0初值为B0H。 采用定时器控制输出一方波信号,要求方波的周期为采用定时器控制输出一方波信号,要求方波的周期为1s1s。设单片机晶振频率为设单片机晶振频率为12MHz12MHz。程序清单:程序清单:ORG 0000HAJMP MAI ; 转主程序ORG 000BHAJMP TIS ;转定时器T0中断服务程序例例 3 3(二)(二) 采用定时器控制输出一方波信号,要求方波的周期为采用定时器控制输出一方波信号,要求方波的周期为1s1s。设
38、单片机晶振频率为设单片机晶振频率为12MHz12MHz。MAI:MOV SP,#53HMOV TMOD,#01H ; 定时器T0方式1MOV TL0,#0B0H ; T0低8位初值MOV TH0,#3CH ; T0高8位初值MOV IE,#82H ; T0开中断SETB TR0 ; 启动T0MOV R1,#10 ; 软件计数器初值DEFG:SJMP DEFG ; 等待中断例例 3 3(二)(二) 采用定时器控制输出一方波信号,要求方波的周期为采用定时器控制输出一方波信号,要求方波的周期为1s1s。设单片机晶振频率为设单片机晶振频率为12MHz12MHz。中断服务程序中断服务程序:TIS:DJN
39、Z R1,NEXT ;(R1)=0,则不对P1.0取反 CPL P1.0 ; 输出方波MOV R1, #10 ;重装软件计数器初值NEXT:MOV TL0,#0B0H ;重装定时器初值MOV TH0,#3CHRETI ;中断返回例例 3 3(二)(二) 利用定时器方式利用定时器方式2 2对外部脉冲计数,要求每计满对外部脉冲计数,要求每计满110110次,将次,将P P1.01.0端取反。端取反。解:外部信号由T1引脚输入,每发生一次负跳变计数器加1,每输入110个脉冲,计数器发生溢出中断,中断服务程序将P1.0取反一次。 T1为计数方式2的方式字为:TMOD=60H。设T0不用,TMOD的低4
40、位可任意,但不能使T0进入方式3,一般取0。 例例 4 4(二)(二) 利用定时器方式利用定时器方式2 2对外部脉冲计数,要求每计满对外部脉冲计数,要求每计满110110次,将次,将P P1.01.0端取反。端取反。计算T1的计数初值:X=28-110=146=92H则TL1的初值为92H,重装初值寄存器TH1=92H。例例 4 4(二)(二) 利用定时器方式利用定时器方式2 2对外部脉冲计数,要求每计满对外部脉冲计数,要求每计满110110次,将次,将P P1.01.0端取反。端取反。程序清单:程序清单:MAI:MOV TMOD,#60H ;置T1方式2计数MOV TL1,#92H ;赋初值
41、MOV TH1,#92HMOV IE, #88H ;定时器T1开中断SETB TR1 ;启动计数器HERE:SJMP HERE ;等待中断例例 4 4(二)(二) 利用定时器方式利用定时器方式2 2对外部脉冲计数,要求每计满对外部脉冲计数,要求每计满110110次,将次,将P P1.01.0端取反。端取反。ORG 001BH ;中断服务程序入口CPL P1.0 ;对P1.0取反RETI ;中断返回例例 4 4(二)(二) 利用利用T T0 0门控位测试引脚上出现的正脉冲的宽度,并以门控位测试引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上。机器周期数的形式显示在显示器上。解:根据要
42、求,解题思路为:将T0设为定时器方式1,计数初值为0,GATE程控为1,置TR0为1。一旦P3.2引脚出现高电平即开始计数,直到出现低电平为止,然后读取T0的计数值并显示。测试过程如下图所示:例例 5 5(二)(二)对T0初始化,09HTMOD,GATE=1T0从0开始计数,测量脉冲宽度0TR0,停止计数读T0值,送显示 利用利用T T0 0门控位测试引脚上出现的正脉冲的宽度,并以机门控位测试引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上。器周期数的形式显示在显示器上。程序清单:START:MOV TMOD,#09H ;T0定时方式1,GATE置1MOV TL0,#00HMOV
43、TH0,#00HSETB TR0 ;启动定时器计数WAIT1:JB P3.2,WAIT1 ;等待INT0变低例例 5 5(二)(二) 利用利用T T0 0门控位测试引脚上出现的正脉冲的宽度,并以机门控位测试引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上器周期数的形式显示在显示器上CLR TR0 ;停止T0计数MOV R0,#DISBUF ;显示缓冲器首址送R0MOV A ,TL0 ;机器周期存放格式为低位占低地址WAIT2:JNB P3.2 ,WAIT2 ;等待INT0升高WAIT3:JB P3.2 ,WAIT3 ;等待INTO变低例例 5 5(二)(二) 利用利用T T0 0门
44、控位测试引脚上出现的正脉冲的宽度,并以机门控位测试引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上。器周期数的形式显示在显示器上。XCHD A, R0 ;高位为占高地址。连续4个显示缓冲单元INC R0SWAP AXCHD A,R0INC R0MOV A, TH0XCHD A, R0INC R0例例 5 5(二)(二) 利用利用T T0 0门控位测试引脚上出现的正脉冲的宽度,并以机门控位测试引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上。器周期数的形式显示在显示器上。SWAP AXCHD A,R0DIS:LCALL DISUP ;长调用显示子程序AJMP DIS ;重
45、复显示脉宽机器周期数 由于定时器方式1的16位计数长度有限,被测脉冲高电平宽度必须小于65536个机器周期。例例 5 5(二)(二)利用定时器测定下图所示波形的一个周期的长度。例例 6 6(二)(二) 解:设T0为定时、门控方式,当INT0为高电平时,启动定时器,之后应改为非门控方式;T1为计数方式。信号波形及连接方式如上图(b)所示。 定时器设置:定时器设置: 当脉冲速率低于每秒3个时,每个脉冲周期为330ms左右,且设脉冲宽度小于100ms,故设置定时器的基本定时为100 ms,可满足测时的精度要求。例例 6 6利用定时器测定下图所示波形的一个周期的长度。(二)(二)T T0 0的的TMO
46、DTMOD的设置:的设置:采用门控方式启动定时器,按方式1定时,故方式字为09H。例例 6 6 门控 定时器 方式1利用定时器测定下图所示波形的一个周期的长度。(二)(二)时间常数计算:时间常数计算:振荡频率6 MHz,机器周期Tc为Tc=12/6106=210-6 s,设置初值为x:基本定时时间为100 ms,于是 (216-x)*(210-6)=10010-3 x=216-50103=15 536=3CB0H 预置:(TH0)=3CH,(TL0)=0B0H例例 6 6利用定时器测定下图所示波形的一个周期的长度。(二)(二) 计数器设置:计数器设置: T1设为计数器,计数值为2。当计数1时,
47、启动定时器;当计数2时,中断计数器T1,并停止T0的定时; T1的中断优先级高于定时器T0。 T1的方式字为 5H;计数初值为0FFFEH。 预置:(TH1)=0FFH,(TL1)=0FEH。例例 6 6利用定时器测定下图所示波形的一个周期的长度。(二)(二) 编程:编程: ORG 000BH ;定时器T0中断入口 AJMP TIME0 ORG 001BH ;定时器T1中断入口 AJMP TIME1 ORG H MOV R3,#0 ;清T0定时次数计数器 SETB P3. .2 ;置P3. .2 、P3. .5为输入状态 SETB P3. .5 例例 6 6利用定时器测定下图所示波形的一个周期
48、的长度。(二)(二) MOV TMOD,#59H MOV TH0,#3CH ;置定时器初值 MOV TL0,#0B0H MOV TH1,#0FFH ;置计数器初值 MOV TL1,#0FEH SETB TR0 ;启动定时器、计数器 SETB TR1 MOV IP,#08H ;T1中断优先于T0例例 6 6利用定时器测定下图所示波形的一个周期的长度。 编程:续编程:续1 1(二)(二) SETB ET0 ; 允许T0、T1中断 SETB ET1 CLR 20H.0 ;清T0、T1中断软标志 CLR 20H.1 SETB EA ;CPU开中断 JNB 20H.0,$ ;T0若未中断,则踏步等待 J
49、NB 20H.1 , $ ;T1若未中断,则踏步等待 RET 例例 6 6利用定时器测定下图所示波形的一个周期的长度。 编程:续编程:续2 2(二)(二) TIME0:JB 20H.0,LP ;T0非初次中断,转 MOV TMOD,#51H ;取消门控方式 SYTB 20H.0 ;置T0中断软标志 LP:MOV TH0,#3CH ;重置定时器初值 MOV TL0,#0B0H INC R3 ;软件计数器加1 RETI 例例 6 6利用定时器测定下图所示波形的一个周期的长度。 编程:续编程:续3 3(二)(二)TIME1:CLR 20H.0 ;清除T0、T1中断软标志 CLR 20H.1 CLR
50、ET0 ;禁止T0、T1中断 CLR ET1 CLR EA ;CPU关中断 CLR TR0 ;关定时器,计数器 CLR TR1 RETI 注:注:结果(R3)100 ms即为所测波形的周期。严格地讲 还应加上T0中的内容,即(T0)3CB0H)2us例例 6 6利用定时器测定下图所示波形的一个周期的长度。 编程:续编程:续4 4(二)(二) 6.2 80C516.2 80C51单片机的中断系统及其应用单片机的中断系统及其应用一、一、 80C5180C51单片机的中断系统单片机的中断系统二、二、80C5180C51单片机的中断系统应用举例单片机的中断系统应用举例中断:中断:程序在执行过程中,允许
51、外部或内部事件打断它,使其转向为处理外部或内部事件的中断服务程序中去;完成中断服务程序后,CPU继续执行原来被打断的程序。这样的过程称为中断。 如下图所示:概述一、一、 80C5180C51单片机的中断系统单片机的中断系统中断源:能产生中断的外部和内部事件。概述概述一、一、 80C5180C51单片机的中断系统单片机的中断系统 中断优先级:中断优先级:当几个中断源同时申请中断,CPU必须区分哪个中断源更重要,从而确定优先处理哪个事件,这就是中断优先级问题。 当CPU正在处理某中断事件时,又有另一事件申请中断,CPU是否相应? 约定约定:高优先级的中断源可以中断CPU正在处理的低级的中断服务程序
52、,这就是中断嵌套问题。 概述概述一、一、 80C5180C51单片机的中断系统单片机的中断系统 80C51单片机有5 5个中断源,个中断源,2 2个中断优先个中断优先级级,它的中断处理程序可实现两级嵌套,有较强的中断处理能力。 单片机对中断系统的管理是通过相关的专用寄存器来实现的。概述概述一、一、 80C5180C51单片机的中断系统单片机的中断系统(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器(二)单片机对中断请求的控制(二)单片机对中断请求的控制(三)单片机对中断的响应(三)单片机对中断的响应一、一、 80C5180C51单片机的中断系统单片机的中断系统1 1、80C5180
53、C51单片机的中断源单片机的中断源80C51(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器中断源及相应的中断矢量和中断标志1 1、80C5180C51单片机的中断源单片机的中断源(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器INT0INT12 2、定时器控制寄存器、定时器控制寄存器TCONTCON定时器控制寄存器定时器控制寄存器TCONTCON的结构如下图所示的结构如下图所示复位复位/ /未溢出未溢出:0:0T T1 1溢出中断:溢出中断:1 1T T1 1中断中断标志位标志位停停T T1 1 计数:计数: 0 0启启T T1 1计数:计数:1 1T T1 1启停位
54、启停位复位复位/ /未溢出:未溢出:0 0T T0 0溢出中断:溢出中断:1 1停停T T0 0计数:计数:0 0启启T T0 0计数:计数:1 1T T0 0中断标志位中断标志位T T0 0 启停位启停位0:INT0:INT1 1无中断请求无中断请求1:INT1:INT1 1有中断请求有中断请求0:INT0:INT1 1为电平触发为电平触发1:INT1:INT1 1为边沿触发为边沿触发0:INT0:INT0 0无中断请求无中断请求1:INT1:INT0 0有中断请求有中断请求0:INT0:INT0 0为电平触发为电平触发1:INT1:INT0 0为边沿触发为边沿触发(一)中断源及相关的专用寄
55、存器(一)中断源及相关的专用寄存器2 2、定时器控制寄存器、定时器控制寄存器TCONTCON 当定时器T0或T1定时到或计数满时(即由全“1”变为全“0”),溢出标志TF0或TF1被硬件置位,若中断是开放的,即可向CPU发出中断请求。 CPU响应此中断时由内部硬件自动将标志TF0或TF1清“0”,控制转到相应中断入口。注意:注意:TFTF0 0或或TFTF1 1可由软件读写,软件写入与硬件可由软件读写,软件写入与硬件 置位、复位效果相同。置位、复位效果相同。定时器T0、T1中断(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存
56、器2 2、定时器控制寄存器、定时器控制寄存器TCONTCON外部中断INT0、INT1外部中断有两种触发方式有两种触发方式: 在边沿触发方式下,有专门的中断请求标在边沿触发方式下,有专门的中断请求标志志IEIE0 0、IEIE1 1,当,当CPUCPU响应时,内部硬件自动将响应时,内部硬件自动将IEIE0 0或或IEIE1 1清清“0”0”,控制转到相应的中断入口。沿沿(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器3 3、串行口控制寄存器、串行口控制寄存器SCONSCON SCON的结构如下图所示,其中RI/TI是串行口接收/发送中断标志 0:无接收中断1:有接收中断0:无发送中
57、断1:有发送中断在串行口一节中介绍(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器3 3、串行口控制寄存器、串行口控制寄存器SCONSCON R I R I 接接收中断标志。 当串行口接收完一帧数据,该标志置“1”, CPU响应串行口中断后内部硬件不清除,必须通必须通过软件清过软件清“0”0”。(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器3 3、串行口控制寄存器、串行口控制寄存器SCONSCON T I T I 发发送中断标志。 当串行口发送完一帧数据,该标志置“1”,CPU响应串行口中断后内部硬件不清除,必须通必须通过软件清过软件清“0”0”。(一)中断源及相关的
58、专用寄存器(一)中断源及相关的专用寄存器3 3、串行口控制寄存器、串行口控制寄存器SCONSCON注意注意:RI、TI的中断入口都是0023H,故CPU响应后转入0023H开始执行服务程序,首先必须判断是RI中断还是TI中断,然后进行相应服务。 在返回主程序之前需用软件在返回主程序之前需用软件清除清除RIRI或或TITI,否则会出现一次请求多次响应的错误。(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器4 4、关于外部中断触发方式的说明、关于外部中断触发方式的说明 电平触发方式电平触发方式 CPU在每个机器周期的S5P2采样INT0和INT1的输入电平,在电平触发方式下,单片机中在
59、电平触发方式下,单片机中没有专门的中断请求标志没有专门的中断请求标志,外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平变化而变化,同时单片机响应中断后,也不能自动清除请求信号。(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器4 4、关于外部中断触发方式的说明、关于外部中断触发方式的说明对触发信号的要求对触发信号的要求: 触发信号低电平必须保持足够长足够长的时间,直到CPU响应为止; 但持续时间亦不能太长不能太长,在中断返回之前必须撤去。 电平触发方式电平触发方式(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器4 4、关于外部中断触发方式的说明
60、、关于外部中断触发方式的说明 电平触发方式电平触发方式 解决这个问题的方法有两种解决这个问题的方法有两种: 一是用具有相应功能的接口芯片一是用具有相应功能的接口芯片,如8255在选通输入方式时,当外部数据被选通到其数据输入寄存器时,INTR变高,向80C51单片机发中断请求,当单片机读取8255输入数据寄存器中的内容后,INTR自动变低,INTX变高,撤消中断请求。80C51(一)中断源及相关的专用寄存器(一)中断源及相关的专用寄存器4 4、关于外部中断触发方式的说明、关于外部中断触发方式的说明 另一种方法是在单片机之外增设一个请求标志另一种方法是在单片机之外增设一个请求标志(使用触发器),如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度790字物流运输合同范本:智能物流协议书
- 二零二五年度二手房买卖合同交易双方信息保密修订版24
- 二零二五年度车辆维修保养费用担保协议
- 二零二五年度海洋油气田安装工程施工服务协议
- 2025版HSE风险评估与管理合同范本
- 2025版牧民草原放牧权租赁合同
- 2025版餐饮业品牌推广合作合同范本
- 二零二五年度高品质保温材料采购销售合同模板
- 二零二五年度风力发电机组安装施工合同
- 二零二五年度智能办公楼租赁服务及配套设施合同
- 中国血脂管理指南(2023-年版)解读
- 2022年版《义务教育语文课程标准》知识点汇总及试题(含答案)
- 空气弹簧悬架系统的研究与开发
- 机关食堂运营合同范本
- who实验室生物安全手册
- JJG 1108-2023铁路支距尺
- GB/T 4604.2-2013滚动轴承游隙第2部分:四点接触球轴承的轴向游隙
- GB/T 26888-2011粮油机械磁选器
- GB/T 18745-2006地理标志产品武夷岩茶
- 销售人员个人软装备系统标准课件
- 糖化简介0623课件
评论
0/150
提交评论