第6章定时器、计数器1508a_第1页
第6章定时器、计数器1508a_第2页
第6章定时器、计数器1508a_第3页
第6章定时器、计数器1508a_第4页
第6章定时器、计数器1508a_第5页
已阅读5页,还剩62页未读, 继续免费阅读

下载本文档

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

文档简介

1、单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院第第6章章 单片机的定时器单片机的定时器/计数器计数器1/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院6. 单片机的定时器单片机的定时器/计数器计数器2/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院1.1.定时的功能定时的功能 定时定时发出脉冲信号,向发出脉冲信号,向CPU申请中断,其定时间隔的长申请中断,其定时间隔的长短及起始控制的时间均可由程序控制。短及起始控制的时间均可由程序控制。 温度温度开始定时开始定时保温保温5分钟分钟淬火淬火 清洗清洗开始定时开始定时回

2、火回火3小时小时空冷空冷 实际控制可以由单片机定时发出信号控制自动完成整个实际控制可以由单片机定时发出信号控制自动完成整个工艺过程。工艺过程。6.1 引引 言言例如某机械零件的热处理工艺曲线为:例如某机械零件的热处理工艺曲线为:一、定时器计数器的功能:一、定时器计数器的功能:3/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院2.2.计数功能计数功能 对外界发生的事件对外界发生的事件( (输入脉冲输入脉冲) )计数,当达到程序规定的计数,当达到程序规定的计数值时,输出一脉冲信号,申请中断。计数值时,输出一脉冲信号,申请中断。 例如一啤酒生产线,如下图所示例如一啤酒生产

3、线,如下图所示 :计 数计 数24瓶瓶光电信号光电信号24瓶装完申请中断瓶装完申请中断转入中断服转入中断服务程序装箱务程序装箱输送带输送带6.1 引引 言言4/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 时间基准时间基准 延时延时 电子音乐电子音乐 电机速度控制电机速度控制 工业测量(电机速度、产量、信号频率、脉冲宽度)工业测量(电机速度、产量、信号频率、脉冲宽度)6.1 引引 言言二、定时计数器在单片机应用系统中的二、定时计数器在单片机应用系统中的地位和作用地位和作用单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院可编程(可编程(3 3

4、个方面)个方面): 1 1)位数)位数 2 2)启动方式)启动方式 3 3)定时)定时/ /计数方式计数方式 6.1 引引 言言三、三、51 51 系列单片机片上定时计数器的基本特性系列单片机片上定时计数器的基本特性 其它计数器:其它计数器: 74LS16174LS161、163163、160160、162 162 ( (不可编程不可编程) )6/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院问题问题/知识点知识点1. T0/T1 1. T0/T1 有哪几种工作模式?有哪几种工作模式?2. 2. 方式方式1 1、2 2 各有什么突出特点?各有什么突出特点?3. T0

5、/T1 3. T0/T1 的计数信号来源于何处?的计数信号来源于何处?4. 4. 对外部信号计数时的最高允许频率为多少?对外部信号计数时的最高允许频率为多少?5. 5. 如何启动如何启动T0/T1 T0/T1 定时或计数?定时或计数?6. TF06. TF0、TF1 TF1 在什么情况下会自动置在什么情况下会自动置1 1?何时会自动清零?何时会自动清零?7. 7. 相关的相关的SFR SFR 有哪几个?有哪几个?6.1 引引 言言单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院8/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院6.2 定时器定时

6、器/ /计数器的工作原理计数器的工作原理6.2.16.2.1定时器定时器/ /计数器的概念和结构计数器的概念和结构6.2.26.2.2定时器定时器/ /计数器的工作方式计数器的工作方式6.2.3 6.2.3 定时器定时器/ /计数器的控制计数器的控制单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院1. 1. 定时定时/ /计数器的概念计数器的概念 主要作用包括产生各种时标间隔,记录外部事件的数量主要作用包括产生各种时标间隔,记录外部事件的数量等等。等等。 MCS-51MCS-51有两个有两个1616位的定时器位的定时器/ /计数器。计数器。 作作定时器定时器时,时,每个机

7、器周期每个机器周期定时寄存器自动加定时寄存器自动加1 1,因此,因此定时器也可以看作是计量机器周期的计数器。定时器也可以看作是计量机器周期的计数器。 作作计数器计数器时,计量单片机时,计量单片机外部引脚从外部引脚从1 1到到0 0的负跳变的负跳变,每个跳变计数器自动加每个跳变计数器自动加1 1。6.2 定时器定时器/ /计数器的工作原理计数器的工作原理6.2.16.2.1定时器定时器/ /计数器的概念和结构计数器的概念和结构单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院2. 2. 定时定时/ /计数器的结构计数器的结构 6.2 定时器定时器/ /计数器的工作原理计数器的

8、工作原理单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院T0和T1无论是用作定时器或者计数器都有4种工作方式: 方式方式0 0 方式方式1 1 方式方式2 2 方式方式3 3除了方式3,T0和T1有完全相同的工作方式。6.2 定时器定时器/ /计数器的工作原理计数器的工作原理6.2.26.2.2定时器定时器/ /计数器的工作方式计数器的工作方式单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院1) 1) 方式方式0(0(1313位工作方式位工作方式) )6.2 定时器定时器/ /计数器的工作原理计数器的工作原理13/67单片机原理与应用单片机原理与应用

9、 光学与电子信息学院光学与电子信息学院2) 方式1(16位工作方式)6.2 定时器定时器/ /计数器的工作原理计数器的工作原理14/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 6.2 定时器定时器/ /计数器的工作原理计数器的工作原理15/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 在在方式方式0 0和和方式方式1 1中,计数计满溢出后,中,计数计满溢出后,使其初值寄存使其初值寄存器内数值为器内数值为0 0。 在循环定时或计数应用中,必须在循环定时或计数应用中,必须反复预置计数初值反复预置计数初值,不仅会影响定时精度,而且给程序设

10、计带来不便。不仅会影响定时精度,而且给程序设计带来不便。6.2 定时器定时器/ /计数器的工作原理计数器的工作原理16/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院3) 3) 方式方式2(2(8 8位自动重装工作方式位自动重装工作方式) )6.2 定时器定时器/ /计数器的工作原理计数器的工作原理17/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 省去用户软件中重装初值的程序,实现精确的定时。省去用户软件中重装初值的程序,实现精确的定时。 定时器作串口波特率发生器时,常选用定时方式定时器作串口波特率发生器时,常选用定时方式2 2。定时

11、器定时器/ /计数器的方式计数器的方式2 2工作过程如图工作过程如图(X=0,1)(X=0,1)。 6.2 定时器定时器/ /计数器的工作原理计数器的工作原理单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院4 4)方式)方式3(3(2 2个个8 8位工作方式位工作方式) )6.2 定时器定时器/ /计数器的工作原理计数器的工作原理19/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院TMODTMOD:选择定时器选择定时器/ /计数器计数器T0T0、T1T1的工作模式和工作方式。的工作模式和工作方式。 TCONTCON:控制控制T0T0、T1T1的

12、启动和停止计数,同时锁存的启动和停止计数,同时锁存T0T0和和T1T1的状态。的状态。系统复位时,系统复位时,TMODTMOD和和TCONTCON的所有位清的所有位清0 0用户可用软件对用户可用软件对TMODTMOD和和TCONTCON进行进行写入和更改。写入和更改。6.2 定时器定时器/ /计数器的工作原理计数器的工作原理控制寄存器控制寄存器6.2.3 6.2.3 定时器定时器/ /计数器的控制计数器的控制20/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院1 1)定时器控制寄存器)定时器控制寄存器TCON(88H)TCON(88H)TF1TR1TF0TR0IE1

13、IT1IE0IT0中断请求标志中断请求标志1 1:有请求:有请求0 0:无请求:无请求运行控制位运行控制位1 1:启动:启动0 0:停止:停止外部中断控制外部中断控制6.2 定时器定时器/ /计数器的工作原理计数器的工作原理单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院计满溢出时,单片机内部计满溢出时,单片机内部硬件对硬件对TF0TF0(TF1TF1)置)置“1”1”。中断方式中断方式:作为中断标志位。在响应中断转向中断服:作为中断标志位。在响应中断转向中断服务程序后,由务程序后,由硬件自动对硬件自动对TFTF清清“0”0”。查询方式查询方式:作为定时器状态位以供查询。

14、查询有效后:作为定时器状态位以供查询。查询有效后以以软件及时将该位清软件及时将该位清“0”0”。6.2 定时器定时器/ /计数器的工作原理计数器的工作原理(2) TF1(2) TF1、TF0TF0计数溢出标志位计数溢出标志位 高高4 4位的功能如下:位的功能如下: (1) TR1(1) TR1、TR0TR0计数运行控制位计数运行控制位 1 1:启动定时器启动定时器/ /计数器工作计数器工作 0 0:停止定时器停止定时器/ /计数器工作计数器工作 低低4 4位与外部中断有关。位与外部中断有关。22/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院例:用位操作来使用定时器

15、例:用位操作来使用定时器SETBSETBTR1TR1SETBSETBTR0TR0CLRCLRTR1TR1CLRCLRTR0TR06.2 定时器定时器/ /计数器的工作原理计数器的工作原理JBCJBCTF1TF1,L1L1;查询查询TF1TF1,为,为1 1则转向则转向L1L1且且TF1TF1清零清零23/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院2) 2) 定时器方式控制寄存器定时器方式控制寄存器TMOD(89H)TMOD(89H)GATEC/TM1M0GATEC/TM1M0T1T0门控位门控位1 1:打开:打开0 0:关闭:关闭工作状态选择位工作状态选择位1

16、1:计数状态:计数状态0 0:定时状态:定时状态工作方式设置位工作方式设置位0000:方式:方式0 010 01:方式:方式1 11010:方式:方式2 112 11:方式:方式3 36.2 定时器定时器/ /计数器的工作原理计数器的工作原理单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 TMOD TMOD的字节地址为的字节地址为89H89H,不能按位寻址不能按位寻址,只能用字节只能用字节传送传送指令来设置。指令来设置。 8 8位分为两组,位分为两组,高高4 4位控制位控制T1T1,低低4 4位控制位控制T0T0。6.2 定时器定时器/ /计数器的工作原理计数器的工作原

17、理单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 6.2 定时器定时器/ /计数器的工作原理计数器的工作原理26/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院6.2 定时器定时器/ /计数器的工作原理计数器的工作原理M1M0工作方式工作方式00方式方式0 0,1313位定时器位定时器/ /计数器计数器01方式方式1 1,1616位定时器位定时器/ /计数器计数器10方式方式2 2,8 8位常数自动重新装载位常数自动重新装载11方式方式3 3,仅适用于,仅适用于T0T0,T0T0分成两个分成两个8 8位计数位计数器,器,T1T1停止计数。停止

18、计数。(3 3)M1M1、M0M0工作方式选择位工作方式选择位27/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院28/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院6.3 6.3 定时器定时器/ /计数器的应用计数器的应用6.3.1 定时器/计数器的初值计算6.3.2 定时器/计数器的应用举例29/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 51 51内部定时器内部定时器/ /计数器是可编程序的,通过程序设置寄计数器是可编程序的,通过程序设置寄存器对它进行设定和控制。存器对它进行设定和控制。6.3 6.3

19、 定时器定时器/ /计数器的应用计数器的应用6.3.1 定时器/计数器的初值计算一、对一、对外部事件外部事件进行计数。进行计数。1)预先装入一个计数初值。)预先装入一个计数初值。2)每来一个外部脉冲输入,记数器每来一个外部脉冲输入,记数器1。3)记数器计满回零,产生溢出中断请求。)记数器计满回零,产生溢出中断请求。xMC计数值计数值 计数器的模计数器的模 初值初值30/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院CCMxn2在计数方式下,可分为两种情况:在计数方式下,可分为两种情况:1、已知计数脉冲的个数、已知计数脉冲的个数C2、未知计数脉冲的个数、未知计数脉冲的

20、个数CnMx26.3 6.3 定时器定时器/ /计数器的应用计数器的应用31/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院)(xMt二、对二、对周期性的定时脉冲周期性的定时脉冲进行计数。进行计数。1)预先装入一个计数初值。)预先装入一个计数初值。2)周期性周期性1记数记数。3)记数器计满回零,产生溢出中断请求。)记数器计满回零,产生溢出中断请求。t:定时时间:定时时间M:记数器的模:记数器的模x:初值:初值 T:计数脉冲的周期:计数脉冲的周期 MCS51单片机的定时脉冲单片机的定时脉冲频率为系统晶振频率的频率为系统晶振频率的12分分频,即一个机器周期。频,即一个机

21、器周期。oscoscffTf121216.3 6.3 定时器定时器/ /计数器的应用计数器的应用32/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院定时方式下的计数初值定时方式下的计数初值 定时时间定时时间 或者或者oscnfxt12)2(T)2(xtn6.3 6.3 定时器定时器/ /计数器的应用计数器的应用计数初值计数初值Ttxftxnoscn2122方式方式0:n13 方式方式1:n16方式方式2:n833/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院定时定时/ /计数器初始化基本步骤计数器初始化基本步骤1 1)确定模式与工作方式

22、,写控制字到)确定模式与工作方式,写控制字到TMODTMOD2 2)根据定时时间或计数要求,确定计数初值)根据定时时间或计数要求,确定计数初值3 3)预置定时或者计数的初值)预置定时或者计数的初值x x4 4)根据需求开放定时器)根据需求开放定时器/ /计数器的中断计数器的中断5 5)启动定时器)启动定时器/ /计数器计数器6.3 6.3 定时器定时器/ /计数器的应用计数器的应用6.3.2 定时器/计数器的应用举例34/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院1 1、方式、方式1 1应用应用 例:例:假设系统时钟频率采用假设系统时钟频率采用6MHz6MHz,

23、要在,要在P1.0P1.0上输出一个周期上输出一个周期为为2ms2ms的方波,如图所示。的方波,如图所示。 6.3 6.3 定时器定时器/ /计数器的应用计数器的应用35/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 1)1)思路:思路: 方波的周期用方波的周期用T0T0来确定,让来确定,让T0T0每隔每隔1ms1ms计数溢出计数溢出1 1次次( (每每1ms1ms产生一次中断产生一次中断) ),CPUCPU响应中断后,响应中断后,在中断服务程序中对在中断服务程序中对P1.0P1.0取反取反。 主程序用来初始化定时器,预设初值,开放中断主程序用来初始化定时器,预设

24、初值,开放中断 中断服务程序除产生方波外,还要注意中断服务程序除产生方波外,还要注意将计数初值重新将计数初值重新装入定时器中装入定时器中,为下一次中断作准备。,为下一次中断作准备。 6.3 6.3 定时器定时器/ /计数器的应用计数器的应用36/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院2 2)计算初值)计算初值X X 设初值为设初值为X X,则有,则有: :(2(21616-X)-X)2 21010-6-6=1=11010-3 -3 2 21616-X=500 X=65036-X=500 X=65036 X X化为化为1616进制,即进制,即X=FE0CH=1

25、111111000001100BX=FE0CH=1111111000001100B。 所以,所以,T0T0的初值为:的初值为: TH0=0FEH TL0=0CH TH0=0FEH TL0=0CH 3)3)初始化程序设计初始化程序设计 对寄存器对寄存器IPIP、IEIE、TCONTCON、TMODTMOD的相应位进行正确设的相应位进行正确设 置,将计数初值送入定时器中。置,将计数初值送入定时器中。6.3 6.3 定时器定时器/ /计数器的应用计数器的应用37/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院中断服务程序中断服务程序主程序主程序6.3 6.3 定时器定时器

26、/ /计数器的应用计数器的应用38/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 ORG 0000HORG 0000H AJMP MAIN AJMP MAIN;转主程序;转主程序 ORG 000BHORG 000BH;T0T0的中断入口的中断入口 AJMP IT0PAJMP IT0P;转;转T0T0中断处理程序中断处理程序IT0PIT0P;= = 主程序主程序 = ORG 0100HORG 0100HMAIN: MOV SP,#60HMAIN: MOV SP,#60H;设堆栈指针;设堆栈指针 MOV TMOD,#01HMOV TMOD,#01H;设置;设置T0T0

27、为方式为方式1 1 MOV TL0,#0CHMOV TL0,#0CH;赋计数初值;赋计数初值 MOV TH0,#0FEH MOV TH0,#0FEH SETB TR0SETB TR0;启动;启动T0T0 SETB ET0 SETB ET0;允许;允许T0T0中断中断 SETB EASETB EA;CPUCPU开中断开中断HERE: SJMP HEREHERE: SJMP HERE;自身跳转,等待中断;自身跳转,等待中断 6.3 6.3 定时器定时器/ /计数器的应用计数器的应用39/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院;= = 中断服务子程序中断服务子程序

28、 =ORG 0200HORG 0200HITOP: ITOP: MOV TL0,#0CH MOV TL0,#0CH ;T0T0置初值置初值 MOV TH0,#0FEHMOV TH0,#0FEH CPL P1.0 CPL P1.0 ;P1.0P1.0的状态取反的状态取反 RETIRETI;中断返回;中断返回6.3 6.3 定时器定时器/ /计数器的应用计数器的应用ENDEND40/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院查询方式查询方式的参考程序的参考程序: :ORG 0000HORG 0000H AJMP MAINAJMP MAIN;转主程序;转主程序 ORG

29、 0100HORG 0100HMAIN: MAIN: MOV SP,#60HMOV SP,#60H;设堆栈指针;设堆栈指针 MOV TMOD,#01HMOV TMOD,#01H;设置;设置T0T0为方式为方式1 1 SETB TR0SETB TR0;启动;启动T0T0LOOP: LOOP: MOV TH0,#0FEHMOV TH0,#0FEH;T0T0置初值置初值 MOV TL0,#0CHMOV TL0,#0CHLOOP1LOOP1: JNB TF0,LOOP1JNB TF0,LOOP1;查询;查询TF0TF0标志标志 CLR TF0CLR TF0;T0T0溢出,清溢出,清TF0TF0 CPL

30、 P1.0CPL P1.0;P1.0P1.0的状态求反的状态求反 SJMP LOOPSJMP LOOPENDEND6.3 6.3 定时器定时器/ /计数器的应用计数器的应用41/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院6.3 6.3 定时器定时器/ /计数器的应用计数器的应用 如何产生如下波形?如何产生如下波形?42/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院例:设系统时钟为例:设系统时钟为6MHz6MHz,编写定时器,编写定时器T0T0产生产生1 1秒定时的程序。秒定时的程序。(1 1)T0T0工作方式的确定工作方式的确定 定

31、时时间较长,采用哪一种工作方式?定时时间较长,采用哪一种工作方式? 由各种工作方式的特性,可计算出:由各种工作方式的特性,可计算出: 方式方式0 0最长可定时最长可定时16.384ms16.384ms 方式方式1 1最长可定时最长可定时131.072ms131.072ms 方式方式2 2最长可定时最长可定时512512 s s 选方式选方式1 1,每隔,每隔100ms100ms中断一次,中断中断一次,中断1010次为次为1s1s6.3 6.3 定时器定时器/ /计数器的应用计数器的应用43/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院(2 2)计算计数初值)计算计

32、数初值 因为:因为:(2(21616-X)-X)2 21010-6-6 = 10 = 10-1-1 所以:所以:X=15536=3CB0HX=15536=3CB0H 因此:因此:TH0=3CHTH0=3CH,TL0=0B0H TL0=0B0H (3 3)1010次计数的实现次计数的实现 采用循环程序法。采用循环程序法。(4 4)程序设计)程序设计6.3 6.3 定时器定时器/ /计数器的应用计数器的应用44/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 ORG 0000HORG 0000H LJMP MAIN LJMP MAIN;上电复位,转主程序入口;上电复位,

33、转主程序入口MAINMAIN ORG 000BHORG 000BH;T0T0的中断入口的中断入口 LJMP IT0PLJMP IT0P;转;转T0T0中断处理程序中断处理程序IT0PIT0P ORG 1000H ORG 1000H MAIN MAIN:MOV SP,#60HMOV SP,#60H;设堆栈指针;设堆栈指针 MOV B,#0AHMOV B,#0AH;设循环次数;设循环次数1010次次MOV TMOD,#01HMOV TMOD,#01H;设;设T0T0工作在方式工作在方式1 1 MOV TL0,#0B0H MOV TL0,#0B0H;给;给T0T0设初值设初值 MOV TH0,#3C

34、HMOV TH0,#3CHSETB TR0SETB TR0;启动;启动T0T0 SETB ET0SETB ET0;允许;允许T0T0中断中断 SETB EASETB EA;CPUCPU开放中断开放中断 HEREHERE:SJMP HERESJMP HERE;等待中断;等待中断6.3 6.3 定时器定时器/ /计数器的应用计数器的应用45/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院ITOPITOP: MOV TL0,#0B0HMOV TL0,#0B0H;重装初值;重装初值MOV TH0,#3CH MOV TH0,#3CH DJNZ BDJNZ B,LOOPLOOP

35、CLR TR0CLR TR0;1s1s定时时间到,停止定时时间到,停止T0T0工作工作 LOOPLOOP: RETI RETI 6.3 6.3 定时器定时器/ /计数器的应用计数器的应用;=T0;=T0中断子程序中断子程序=46/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 2 2、方式、方式2 2的应用的应用省去程序中重装初值的指令,省去程序中重装初值的指令,并可产生相当并可产生相当精确的定时时间精确的定时时间 例例: : 当当T0T0(P3.4P3.4)引脚上发生负跳变时,从)引脚上发生负跳变时,从P1.0P1.0引脚上输出引脚上输出一个周期为一个周期为1ms

36、1ms的方波的方波, ,如图所示。(系统时钟为如图所示。(系统时钟为6MHz6MHz)6.3 6.3 定时器定时器/ /计数器的应用计数器的应用47/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院(1 1)工作方式选择)工作方式选择T0T0为方式为方式1 1计数计数,初值初值 0FFFFH0FFFFH,即外部计数输入端,即外部计数输入端T0T0(P3.4P3.4)发生)发生一次负跳变一次负跳变时,时,T0T0加加1 1且溢出,溢出标志且溢出,溢出标志TF0TF0置置“1”1”,发中断请求。,发中断请求。在进入在进入T0T0中断程序后,把中断程序后,把F0F0标志置标

37、志置“1”1”,说明,说明T0T0脚已脚已接收了负跳变信号。接收了负跳变信号。T1T1定义为方式定义为方式2 2定时定时。在。在T0T0脚发生一次负跳变后,启动脚发生一次负跳变后,启动T1T1每每500500 s s产生一次中断产生一次中断,在中断服务程序中对,在中断服务程序中对P1.0P1.0求求反,使反,使P1.0P1.0产生周期产生周期1ms1ms的方波。的方波。6.3 6.3 定时器定时器/ /计数器的应用计数器的应用(2 2)计算)计算T1T1初值初值 设设T1T1的初值为的初值为X X: 则则 (2(28 8-X)-X)2 21010-6-6=5=51010-4-4 X=2 X=2

38、8 8-250=6=06H-250=6=06H48/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院(3 3)程序设计)程序设计 ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ;复位入口转主程序;复位入口转主程序 ORG 000BHORG 000BH JMP IT0P JMP IT0P ;转;转T0T0中断服务程序中断服务程序 ORG 001BHORG 001BH LJMP IT1P LJMP IT1P ;转;转T1T1中断服务程序中断服务程序 ORG 0100HORG 0100HMAIN: MOV SP,#60HMAIN: MOV S

39、P,#60H ACALL PT0M2 ACALL PT0M2 ;调用对;调用对T0T0,T1T1初始化子程序初始化子程序LOOP: MOV C,F0 LOOP: MOV C,F0 ;T0T0产生过中断了吗,产生过中断,则产生过中断了吗,产生过中断,则F0=1F0=1 JNC LOOP JNC LOOP;T0T0没有产生过中断,则跳到没有产生过中断,则跳到LOOPLOOP,等待,等待T0T0中断中断 SETB TR1 SETB TR1 ;启动;启动T1T1 SETB ET1 SETB ET1 ;允许;允许T1T1中断中断HERE: SJMP HEREHERE: SJMP HERE 6.3 6.3

40、 定时器定时器/ /计数器的应用计数器的应用49/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 PT0M2: PT0M2: MOV TMOD,#25H MOV TMOD,#25H ;初始化,;初始化,T1T1为方式为方式2 2定时,定时,T0T0为方式为方式1 1计数计数 MOV TL0,#0FFH MOV TL0,#0FFH ;T0T0置初值置初值 MOV TH0,#0FFHMOV TH0,#0FFH SETB TR0SETB TR0 ;启动;启动T0T0 SETB ET0 SETB ET0 ;允许;允许T0T0中断中断 MOV TL1,#06H MOV TL1

41、,#06H ;T1T1置初值置初值 MOV TH1,#06HMOV TH1,#06H CLR F0CLR F0 ;把;把T0T0已发生中断标志已发生中断标志F0F0清清0 0 SETB EASETB EA RETRET6.3 6.3 定时器定时器/ /计数器的应用计数器的应用;=;=定时器计数器初始化子程序定时器计数器初始化子程序=50/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院 ;=T0=T0计数器中断服务子程序计数器中断服务子程序=IT0P: CLR TR0 IT0P: CLR TR0 ;T0T0中断服务程序,停止中断服务程序,停止T0T0计数计数 SETB

42、 F0 SETB F0 ;建立产生中断标志;建立产生中断标志 RETIRETI ;=T1=T1定时器中断服务子程序定时器中断服务子程序=IT1P: CPL P1.0 IT1P: CPL P1.0 ;T1T1中断服务,中断服务,P1.0P1.0位取反位取反RETIRETI 在在T1T1定时中断服务程序定时中断服务程序IT1PIT1P中,省去了中,省去了T1T1中断服务程序中重新装入中断服务程序中重新装入初值初值06H06H的指令。的指令。6.3 6.3 定时器定时器/ /计数器的应用计数器的应用51/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院例:利用例:利用T1T

43、1方式方式2 2对外部信号计数,每计满对外部信号计数,每计满100100个数,将个数,将P1.0P1.0取反。取反。 本例是本例是方式方式2 2计数模式计数模式的应用。的应用。(1 1)选择工作方式)选择工作方式 外部信号外部信号由由T1(P3.5) T1(P3.5) 脚输入脚输入, ,每发生一次负跳变计数器每发生一次负跳变计数器加加1 1,每输入,每输入100100个脉冲,计数器产生溢出中断,在中断服个脉冲,计数器产生溢出中断,在中断服务程序中将务程序中将P1.0P1.0取反一次。取反一次。 T1T1方式方式2 2的控制字的控制字为为TMOD=60HTMOD=60H。不使用不使用T0T0时,

44、时,TMODTMOD的低的低4 4位可任取,但不能使位可任取,但不能使T0T0进入方式进入方式3 3,这里取全这里取全0 0。(2 2)计算)计算T1T1的初值的初值X=2X=28 8-100=156=9CH-100=156=9CH 因此,因此,TL1TL1的初值为的初值为9CH9CH,重装初值寄存器,重装初值寄存器TH1=9CHTH1=9CH6.3 6.3 定时器定时器/ /计数器的应用计数器的应用52/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院(3)程序设计 ORG 0000H LJMP MAIN ORG 001BH ;T1中断服务程序入口 CPL P1.0

45、 ;P1.0位取反 RETI ORG 0100H MAIN:MOV TMOD,#60H ;设T1为方式2计数 MOV TL0,#9CH ;T0置初值 MOV TH0,#9CH SETB TR1 ;启动T1 SETB ET1 SETB EA HERE: SJMP HERE6.3 6.3 定时器定时器/ /计数器的应用计数器的应用53/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院6.3 6.3 定时器定时器/ /计数器的应用计数器的应用例:负脉冲展宽(晶振为例:负脉冲展宽(晶振为6MHz)54/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院

46、 TMOD=01100010B6.3 6.3 定时器定时器/ /计数器的应用计数器的应用55/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院6.3 6.3 定时器定时器/ /计数器的应用计数器的应用3)流程)流程主程序流程主程序流程系统初始化:系统初始化:SP30HP1.01中断系统初始化中断系统初始化ET01ET11EA 1T0、T1初始化初始化TMOD 62HTH0=TL0=06HTH1=TL1=0FFH启动启动T1:TR1 1等待中断;等待负脉冲的到来,等待中断;等待负脉冲的到来,T1计数溢出中断计数溢出中断56/67单片机原理与应用单片机原理与应用 光学与电

47、子信息学院光学与电子信息学院6.3 6.3 定时器定时器/ /计数器的应用计数器的应用T0中断流程中断流程;500s定时到定时到;CPU自动完成自动完成MOV TH0,06H ;MOV TL0,06H以及以及CLR TF0P1.0 1;上拉;上拉P1.0TR0 0;关闭;关闭T0RETI;中断返回;中断返回T1中断流程中断流程;发现负脉冲发现负脉冲;CPU自动完成自动完成MOV TL1,0FFH,;MOV TL1,0FFH 以及以及 CLR TF1P1.0 0;下拉;下拉P1.0TR0 1;启动;启动T0,定时,定时500sRETI;中断返回;中断返回57/67单片机原理与应用单片机原理与应用

48、 光学与电子信息学院光学与电子信息学院3 3、门控制位、门控制位GATEGATE的应用的应用测量脉冲宽度测量脉冲宽度 GATExGATEx可使定时器可使定时器/ /计数器计数器TxTx的的启动计数启动计数受受INTxINTx的控制,的控制,可测量引脚可测量引脚/INTx/INTx(P3.2 P3.3P3.2 P3.3)上)上正脉冲的宽度正脉冲的宽度(机器周期(机器周期数)。数)。6.3 6.3 定时器定时器/ /计数器的应用计数器的应用58/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院思考:思考:待测脉冲信号接与哪个引脚?(待测脉冲信号接与哪个引脚?(/INT0引

49、脚、引脚、T0引脚)引脚) 设定设定T0为定时方式还是计数方式?几位?为定时方式还是计数方式?几位? 设初值设初值TH0、TL0为多少?为多少? 何时置位何时置位TR0?何时读取结果?何时读取结果 TH0、TL0? 若若TH0、TL0发生溢出应如何处理?发生溢出应如何处理? 如何测量负脉冲宽度?如何测量负脉冲宽度? 测量精度与什么有关?测量精度与什么有关?6.3 6.3 定时器定时器/ /计数器的应用计数器的应用59/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院参考程序:参考程序: ORG 0000HORG 0000HAJMP MAINAJMP MAIN;复位入口

50、转主程序;复位入口转主程序 ORG 0100HORG 0100H MAIN: MOV SP,#60H MAIN: MOV SP,#60H MOV TMOD,#90HMOV TMOD,#90H;T1T1为方式为方式1 1定时控制字定时控制字 MOV TL1,#00HMOV TL1,#00H MOV TH1,#00H MOV TH1,#00H CLR ET1 CLR ET1LOOP0: JB P3.3,LOOP0LOOP0: JB P3.3,LOOP0;/INT1/INT1高高, ,则循环则循环 SETB TR1SETB TR1;如;如/INT1/INT1为低,准备启动为低,准备启动T1T1LOO

51、P1: JNB P3.3,LOOP1LOOP1: JNB P3.3,LOOP1;等待;等待/INT1/INT1变高,开始定时变高,开始定时LOOP2: JB P3.3,LOOP2 LOOP2: JB P3.3,LOOP2 ;/INT1/INT1高高, ,等待再次变低等待再次变低CLR TR1;停止T1计数 MOV A,TL1 ;T1计数值送A 6.3 6.3 定时器定时器/ /计数器的应用计数器的应用60/67单片机原理与应用单片机原理与应用 光学与电子信息学院光学与电子信息学院信号频率的测量信号频率的测量基本原理:定时基本原理:定时1s,记录脉冲个数。,记录脉冲个数。1. 1. 待测频率信号接与哪个引脚?(待测频率信号接与哪个引脚?(T0T0引脚、!引脚、!INT0INT0引脚)引脚) 2. 2. 设定设定T0T0为定时方式还是计数方式?几位?为定时方式还是计数方式?几位? 3. 3. 设初值设初值TH0TH0、TL0TL0为多少?为多少? 4. 4. 何时置位何时置位 TR0TR0?何时读取结果?何时读取结果 TH0TH0、TL0TL0? 5. 5. 若若 TH0TH0、TL0TL0发生溢出应如何处理?发生溢出应如何处理?6.3 6.3 定时器定时器/ /计数

温馨提示

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

评论

0/150

提交评论