定时计数器及其应用.ppt

上传人:石*** 文档编号:46596361 上传时间:2022-09-27 格式:PPT 页数:64 大小:5.76MB
返回 下载 相关 举报
定时计数器及其应用.ppt_第1页
第1页 / 共64页
定时计数器及其应用.ppt_第2页
第2页 / 共64页
点击查看更多>>
资源描述

《定时计数器及其应用.ppt》由会员分享,可在线阅读,更多相关《定时计数器及其应用.ppt(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、定时计数器及其应用现在学习的是第1页,共64页第八章 定时计数器及其应用8.0 引言引言8.1 T0/T1的基本结构和工作方式的基本结构和工作方式8.2 定时器的应用定时器的应用现在学习的是第2页,共64页一、定时器计数器的功能:一、定时器计数器的功能:1定定时时器器的的功功能能:定定时时发发出出脉脉冲冲信信号号,向向CPU申申请请中中断断,其其定定时时间间隔隔的长短及起始控制的时间均可由程序控制。的长短及起始控制的时间均可由程序控制。例如某机械零件的热处理工艺曲线为:例如某机械零件的热处理工艺曲线为:温度温度开始定时开始定时保温保温5分钟分钟淬火淬火 清洗清洗开始定时开始定时回火回火3小时小

2、时空冷空冷 实实际际控控制制可可以以由由单单片片机机定定时时发发出出信信号号控控制制自自动动完完成成整整个个工艺过程。工艺过程。8.0 引言现在学习的是第3页,共64页2.计数计数功能:功能:对对外外界界发发生生的的事事件件计计数数(输输入入脉脉冲冲),当当达达到到程程序序规规定定的的计数值时,输出一脉冲信号,申请中断。计数值时,输出一脉冲信号,申请中断。例如一啤酒生产线,如下图所示例如一啤酒生产线,如下图所示 计计数数24瓶瓶光电信号光电信号24瓶装完申请中断瓶装完申请中断转入中断服务程序装箱转入中断服务程序装箱输送带输送带现在学习的是第4页,共64页 定时器(定时器(Timer)与计数器(

3、)与计数器(Counter)的区别)的区别 定时计数器在单片机应用系统中的定时计数器在单片机应用系统中的地位和作用地位和作用 时间基准、延时、电子音乐、电机速度控制时间基准、延时、电子音乐、电机速度控制 工业测量(电机速度、产量、信号频率、脉冲宽度)工业测量(电机速度、产量、信号频率、脉冲宽度)51 系列单片机片上定时计数器的基本特性:系列单片机片上定时计数器的基本特性:可编程(可编程(3 个方面)个方面):1)位数)位数 2)启动方式)启动方式 3)定时)定时/计数方式计数方式其它计数器:其它计数器:74LS161、163、160、162(不可编程不可编程)现在学习的是第5页,共64页问题/

4、知识点1.T0/T1 有哪几种工作模式?有哪几种工作模式?2.方式方式1、2 各有什么突出特点?各有什么突出特点?3.T0/T1 的计数信号来源于何处?的计数信号来源于何处?4.对外部信号计数时的最高允许频率为多少?对外部信号计数时的最高允许频率为多少?5.如何启动如何启动T0/T1 定时或计数?定时或计数?6.TF0、TF1 在什么情况下会自动置在什么情况下会自动置1?何时?何时 会自动清零?会自动清零?7.相关的相关的SFR 有哪几个?有哪几个?现在学习的是第6页,共64页8.1 MCS-51的定时器的定时器两个可编程的定时器两个可编程的定时器/计数器计数器T1T1、T0T0。2 2种工作

5、模式:种工作模式:(1 1)计数器工作模式)计数器工作模式(2 2)定时器工作模式)定时器工作模式4 4种工作方式种工作方式(方式方式0-0-方式方式3)3)现在学习的是第7页,共64页1、计数原理对对外部事件外部事件进行计数。进行计数。1)预先装入一个计数初值。)预先装入一个计数初值。2)每来一个外部脉冲输入,记数器每来一个外部脉冲输入,记数器1。3)记数器计满回零,产生溢出中断请求。)记数器计满回零,产生溢出中断请求。计数值计数值 当前值当前值 初值初值现在学习的是第8页,共64页2、定时原理对对周期性的定时脉冲周期性的定时脉冲进行计数。进行计数。1)预先装入一个计数初值。)预先装入一个计

6、数初值。2)周期性周期性1记数记数。3)记数器计满回零,产生溢出中断请求。)记数器计满回零,产生溢出中断请求。定时时间定时时间 记数器的模记数器的模 初值初值 计数脉冲的周期计数脉冲的周期 MCS51单片机的定时脉单片机的定时脉冲频率为系统晶振频率的冲频率为系统晶振频率的12分分频,即一个机器周期。频,即一个机器周期。现在学习的是第9页,共64页8.1.1 定时器定时器/计数器的控制计数器的控制TMOD:选择定时器选择定时器/计数器计数器T0、T1的工作模式和工的工作模式和工 作方式。作方式。TCON:控制控制T0、T1的启动和停止计数,同时锁存的启动和停止计数,同时锁存T0、T1的状态的状态

7、。系统复位时,系统复位时,TMOD和和TCON的所有位清的所有位清0用户可用软件对用户可用软件对TMOD和和TCON进行写入和更改。进行写入和更改。现在学习的是第10页,共64页8.1.1.1 定时器/计数器控制寄存器TCON 低4位与外部中断有关,已介绍。高4位的功能如下:(1)TF1、TF0计数溢出标志位 (2)TR1、TR0计数运行控制位 1:启动定时器/计数器工作 0:停止定时器/计数器工作 现在学习的是第11页,共64页标志位标志位计满溢出时,单片机内部计满溢出时,单片机内部硬件对硬件对TF0(TF1)置)置“1”。中断方式中断方式:作为中断标志位。在响应中断转向:作为中断标志位。在

8、响应中断转向中断服务程序后,由中断服务程序后,由硬件自动对硬件自动对TF清清“0”。查询方式查询方式:作为定时器状态位以供查询。查询有:作为定时器状态位以供查询。查询有效后以效后以软件及时将该位清软件及时将该位清“0”。现在学习的是第12页,共64页例:用位操作来使用定时器SETB TR1SETB TR0CLR TR1CLR TR0JBC TF1,L1;查询查询TF1,为,为1则转向则转向L1且且TF1清零清零。现在学习的是第13页,共64页8.1.1.2 8.1.1.2 工作方式控制寄存器工作方式控制寄存器TMODTMOD TMOD的字节地址为的字节地址为89H,不能按位寻址不能按位寻址,只

9、能只能用字节传送用字节传送指令来设置。指令来设置。8位分为两组,位分为两组,高高4位控制位控制T1,低低4位控制位控制T0。现在学习的是第14页,共64页(1)GATE门控位门控位 0:以以TRx(x=0,1)来启动定时器)来启动定时器/计数器运行。计数器运行。1:用外中断引脚用外中断引脚(/INT0或或/INT1)上的高电平和上的高电平和 TRx来启动定时器来启动定时器/计数器运行。计数器运行。(2)C/T*计数器模式和定时器模式选择位计数器模式和定时器模式选择位 1:计数方式,计数脉冲从外部引脚引入。:计数方式,计数脉冲从外部引脚引入。T0P3.4 T1P3.5 0:定时器方式,计数脉冲为

10、内部脉冲。:定时器方式,计数脉冲为内部脉冲。脉冲周期机器周期脉冲周期机器周期现在学习的是第15页,共64页(3)M1、M0工作方式选择位工作方式选择位 M1 M0 工工 作作 方方 式式 0 0 方式方式0,13位定时器位定时器/计数器。计数器。0 1方式方式1,16位定时器位定时器/计数器。计数器。1 0 方式方式2,8位常数自动重新装载位常数自动重新装载 1 1 方式方式3,仅适用于,仅适用于T0,T0分成两个分成两个8 位计数器,位计数器,T1停止计数。停止计数。现在学习的是第16页,共64页 8.1.2 8.1.2 定时器定时器/计数器的4 4种工作方式种工作方式 8.1.2.1 8.

11、1.2.1 定时工作方式0 M1M1、M0为为00,定时器,定时器/计数器的框图:计数器的框图:TL计满溢出向计满溢出向TH进位。进位。13位计满溢出时位计满溢出时TF1置位。置位。现在学习的是第17页,共64页方式0 013位的计数器位的计数器C/TC/T*位决定工作模式:位决定工作模式:0 0:开关打在上面,为定时器工作模式;开关打在上面,为定时器工作模式;1 1:开关打在下面,为计数器工作模式,计数脉冲为开关打在下面,为计数器工作模式,计数脉冲为P3.4P3.4、P3.5P3.5引脚上的外部输入脉冲,引脚上的外部输入脉冲,当引脚上发生负跳变时,当引脚上发生负跳变时,计数器计数器加加1 1

12、。GATE位:决定定时器/计数器的运行是取决于计数器的运行是取决于TRx一个条件一个条件还还是是TRxTRx和和INTxINTx*引脚两个条件引脚两个条件。GATE1 TR1=1时由时由/INT1信号信号控制计数脉冲的接通或断开。控制计数脉冲的接通或断开。常用于常用于测量外部输入信号的脉冲宽度。测量外部输入信号的脉冲宽度。现在学习的是第18页,共64页 8.1.2.2 方式1 M1、M0=01,16位的计数器。TL计满溢出向计满溢出向TH进位。进位。16位计满溢出时位计满溢出时TF1置位。置位。现在学习的是第19页,共64页 在在方式方式0和和方式方式1中,计数计满溢出后,中,计数计满溢出后,

13、使其值使其值为为0。在循环定时或计数应用中,必须在循环定时或计数应用中,必须反复预置计数反复预置计数初值初值,不仅会影响定时精度,而且给程序设计带来不,不仅会影响定时精度,而且给程序设计带来不便。便。现在学习的是第20页,共64页THx作为常数缓冲器作为常数缓冲器,当,当TLx计数溢出时,在置计数溢出时,在置“1”溢出标志溢出标志TFx的同时,还的同时,还自动的将自动的将THx中的初值送至中的初值送至TLx,使,使TLx从初值开始重从初值开始重新计数。新计数。M1、M0=10,等效框图如下:,等效框图如下:8.1.2.3 方式方式2 计数满后自动装入计数初值计数满后自动装入计数初值。现在学习的

14、是第21页,共64页 省去用户软件中重装初值的程序,精确的定时。定时器作串口波特率发生器时,常选用定时方式2。定时器定时器/计数器的方式计数器的方式2工作过程如工作过程如图图(X=0,1)。初始化时,将初值分别初始化时,将初值分别付给付给THx和和TLx。现在学习的是第22页,共64页(2 2 2 2)T1T1T1T1工作在方式工作在方式工作在方式工作在方式1 1 1 1 (3 3)T1T1工作在方式工作在方式工作在方式工作在方式2 2 2 2 07现在学习的是第23页,共64页现在学习的是第24页,共64页 回顾回顾1.T0/T1 有哪几种工作模式?有哪几种工作模式?2.方式方式1、2 各有

15、什么突出特点?各有什么突出特点?3.T0/T1 的计数信号来源于何处?的计数信号来源于何处?4.对外部信号计数时的最高允许频率为多少?对外部信号计数时的最高允许频率为多少?5.如何启动如何启动T0/T1 定时或计数?定时或计数?6.TF0、TF1 在什么情况下会自动置在什么情况下会自动置1?何时?何时 会自动清零?会自动清零?7.相关的相关的SFR 有哪几个?有哪几个?现在学习的是第25页,共64页 4种工作方式中,方式种工作方式中,方式0与方式与方式1基本相同,基本相同,由于方式由于方式0是为兼容是为兼容MCS-48而设,初值计算而设,初值计算复杂,在实际应用中,一般不用方式复杂,在实际应用

16、中,一般不用方式0,而采,而采用方式用方式1。8.1.3 定时器定时器/计数器的编程和应用计数器的编程和应用现在学习的是第26页,共64页8.1.3.1 计算初值的计算1、定时方式下的计数初值、定时方式下的计数初值定时时间定时时间 或者或者现在学习的是第27页,共64页计数初值计数初值:方式方式0:n13 方式方式1:n16方式方式2:n8现在学习的是第28页,共64页计数方式下的计数初值计数方式下的计数初值在计数方式下,可分为两种情况:在计数方式下,可分为两种情况:1、已知计数脉冲的个数、已知计数脉冲的个数C2、未知计数脉冲的个数、未知计数脉冲的个数C现在学习的是第29页,共64页定时定时/

17、计数器初始化基本步骤计数器初始化基本步骤 1)根据定时时间或计数要求,确定计数初值)根据定时时间或计数要求,确定计数初值 2)确定工作方式,写控制字到)确定工作方式,写控制字到TMOD 3)预置定时或者计数的初值)预置定时或者计数的初值x 4)根据需求开放定时器)根据需求开放定时器/计数器的中断计数器的中断 5)启动定时器)启动定时器/计数器计数器 8.1.3.2 初始化编程现在学习的是第30页,共64页 8.1.3.3 应用举例1 1、方式1 1应用应用 例:例:假设系统时钟频率采用假设系统时钟频率采用6MHz6MHz,要在,要在P1.0上输出一个周期为2ms2ms的方波,如图所示。的方波,

18、如图所示。现在学习的是第31页,共64页 方波的周期用方波的周期用T0T0来确定,让来确定,让T0T0每隔每隔1ms1ms计数溢出计数溢出1 1次次(每每1ms1ms产生一次中断产生一次中断),CPUCPU响应中断后,在中断服务程序中对响应中断后,在中断服务程序中对P1.0取反。(1)计算初值X X 设初值为设初值为X X,则有,则有:(2(21616-X)210-X)210-6-6=110-3 -3 2 21616-X=500 X=65036-X=500 X=65036 X X化为化为16进制,即进制,即X=FE0CH=1111111000001100BX=FE0CH=11111110000

19、01100B。所以,T0T0的初值为:的初值为:TH0=0FEH TL0=0CH TH0=0FEH TL0=0CH (2)初始化程序设计初始化程序设计 现在学习的是第32页,共64页中断服务程序中断服务程序主程序主程序现在学习的是第33页,共64页 对寄存器对寄存器IPIP、IE、TCON、TMODTMOD的相应位进行正确的相应位进行正确设置,将计数初值送入定时器中。设置,将计数初值送入定时器中。(3)(3)程序设计程序设计 中断服务程序除产生方波外,还要注意中断服务程序除产生方波外,还要注意将计数初值重新将计数初值重新装入定时器中装入定时器中,为下一次中断作准备。参考程序:ORG 0000H

20、ORG 0000HRESET:AJMP MAIN RESET:AJMP MAIN ;转主程序;转主程序 ORG 000BH ORG 000BH ;T0T0的中断入口的中断入口 AJMP IT0PAJMP IT0P ;转;转T0T0中断处理程序中断处理程序IT0PIT0P ORG 0100HORG 0100HMAIN:MOV SP,#60H MAIN:MOV SP,#60H ;设堆栈指针;设堆栈指针 MOV TMOD,#01HMOV TMOD,#01H ;设置;设置T0T0为方式为方式1 1 现在学习的是第34页,共64页 ACALL PT0M0ACALL PT0M0;调用子程序;调用子程序PT

21、0M0PT0M0HERE:AJMP HEREHERE:AJMP HERE ;自身跳转;自身跳转PT0M0:MOV TL0,#0CHPT0M0:MOV TL0,#0CH;MOV TH0,#0FEH MOV TH0,#0FEH SETB TR0 SETB TR0 ;启动;启动T0T0 SETB ET0 SETB ET0 ;允许;允许T0T0中断中断 SETB EA SETB EA ;CPUCPU开中断开中断 RETRETITOP:MOV TL0,#0CH ITOP:MOV TL0,#0CH ;T0T0中断服务子程序,中断服务子程序,T0T0置初值置初值 MOV TH0,#0FEHMOV TH0,#

22、0FEH CPL P1.0 CPL P1.0 ;P1.0P1.0的状态取反的状态取反 RETIRETI现在学习的是第35页,共64页查询方式的参考程序:MOV TMOD,#01H ;设置;设置T0T0为方式1 SETB TR0 ;接通;接通T0LOOP:MOV TH0,#0FEH ;T0T0置初值置初值 MOV TL0,#0CHMOV TL0,#0CHLOOP1LOOP1:JNB TF0,LOOP1 JNB TF0,LOOP1 ;查询;查询TF0标志 CLR TF0 CLR TF0 ;T0溢出,清溢出,清TF0TF0 CPL P1.0 CPL P1.0 ;P1.0P1.0的状态求反的状态求反

23、SJMP LOOP现在学习的是第36页,共64页现在学习的是第37页,共64页例 假设系统时钟为6MHz,编写定时器T0产生1秒定时的程序。(1)T0工作方式的确定工作方式的确定 定时时间较长,采用哪一种工作方式?由各种工作方式的特性,可计算出:由各种工作方式的特性,可计算出:方式方式0 0最长可定时最长可定时16.384ms;方式方式1 1最长可定时最长可定时131.072ms;方式方式2最长可定时最长可定时512512s。选方式1,每隔,每隔100ms100ms中断一次,中断中断一次,中断1010次为次为1s1s现在学习的是第38页,共64页(2)计算计数初值)计算计数初值 因为:因为:(

24、216-X)210-6=10-1 所以:所以:X=15536=3CB0H 因此:因此:TH0=3CH,TL0=0B0H(3)10次计数的实现次计数的实现 采用循环程序法。采用循环程序法。(4)程序设计)程序设计 参考程序参考程序:现在学习的是第39页,共64页 ORG 0000HORG 0000HRESET:LJMP MAIN ;上电,转主程序入口;上电,转主程序入口MAIN ORG 000BH ;T0T0的中断入口的中断入口 LJMP IT0PLJMP IT0P;转T0T0中断处理程序中断处理程序IT0PIT0P ORG 1000HORG 1000H MAIN:MOV SP,#60HMOV

25、SP,#60H ;设堆栈指针 MOV B,#0AH MOV B,#0AH ;设循环次数1010次次 MOV TMOD,#01H MOV TMOD,#01H ;设;设T0T0工作在方式工作在方式1 1 MOV TL0,#0B0H MOV TL0,#0B0H ;给;给T0设初值设初值 MOV TH0,#3CHMOV TH0,#3CH现在学习的是第40页,共64页 SETB TR0 ;启动;启动T0T0 SETB ET0 ;允许T0T0中断 SETB EA ;CPUCPU开放中断 HERE:SJMP HERE ;等待中断 ITOPITOP:MOV TL0,#0B0H;T0中断子程序,重装初值中断子程

26、序,重装初值 MOV TH0,#3CH MOV TH0,#3CH ;DJNZ BDJNZ B,LOOPLOOP CLR TR0 CLR TR0 ;1s1s定时时间到,停止T0工作工作 LOOPLOOP:RETI RETI 现在学习的是第41页,共64页2 2、方式、方式2 2的应用的应用 省去程序中重装初值的指令,并可省去程序中重装初值的指令,并可产产生相当精确的定时时间生相当精确的定时时间。例例 当当T0T0(P3.4P3.4)引脚上发生负跳变时,从)引脚上发生负跳变时,从P1.0P1.0引脚上输出一个周期为引脚上输出一个周期为1ms1ms的方波的方波,如图如图所示。(系统时钟为所示。(系统

27、时钟为6MHz6MHz)现在学习的是第42页,共64页(1)工作方式选择)工作方式选择 T0T0为方式为方式1计数,初值 0FFFFH0FFFFH,即外部计数输入端,即外部计数输入端T0(P3.4)发生)发生一次负跳变时,时,T0加1 1且溢出,溢出标志且溢出,溢出标志TF0TF0置“1 1”,发中断请求。,发中断请求。在进入在进入T0T0中断程序后,把中断程序后,把F0标志标志置置“1”,说明T0脚已接收了负跳变信号。脚已接收了负跳变信号。T1定义为方式定义为方式2 2定时定时。在。在T0T0脚发生一次负跳变后,脚发生一次负跳变后,现在学习的是第43页,共64页 启动T1T1每每500 s

28、s产生一次中断,在中断服务程序中,在中断服务程序中对对P1.0P1.0求反,使P1.0P1.0产生周期产生周期1ms1ms的方波。(2 2)计算)计算T1T1初值初值设设T1T1的初值为的初值为X X:则则 (2(28 8-X)210-X)210-6-6=510-4-4 X=28-250=6=06H-250=6=06H(3 3)程序设计)程序设计 ORG 0000HORG 0000H RESET:LJMP MAIN ;复位入口转主程序;复位入口转主程序 ORG 000BH JMP IT0P JMP IT0P ;转;转T0T0中断服务程序 现在学习的是第44页,共64页 ORG 001BHORG

29、 001BH LJMP IT1P LJMP IT1P ;转;转T1T1中断服务程序中断服务程序 ORG 0100HORG 0100HMAIN:MOV SP,#60HMAIN:MOV SP,#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

30、TR1 SETB TR1 ;启动;启动T1T1 SETB ET1 SETB ET1 ;允许;允许T1T1中断中断HERE:AJMP HEREHERE:AJMP HERE现在学习的是第45页,共64页 PT0M2:MOV TMOD,#25H PT0M2:MOV TMOD,#25H ;初始化,;初始化,T1T1为方式为方式2 2定定 ;时,;时,T0T0为方式为方式1 1计数计数 MOV TL0,#0FFH MOV TL0,#0FFH;T0T0置初值置初值 MOV TH0,#0FFHMOV TH0,#0FFH SETB TR0 SETB TR0 ;启动;启动T0T0 SETB ET0 SETB E

31、T0 ;允许;允许T0T0中断中断 MOV TL1,#06H MOV TL1,#06H ;T1T1置初值置初值 MOV TH1,#06HMOV TH1,#06H CLR F0 CLR F0 ;把;把T0T0已发生中断标志已发生中断标志F0F0清清0 0 SETB EA SETB EA RET RET现在学习的是第46页,共64页IT0P:CLR TR0 ;T0T0中断服务程序,停止中断服务程序,停止T0T0计数计数 SETB F0 ;建立产生中断标志;建立产生中断标志 RETIIT1P:CPL P1.0 ;T1T1中断服务,P1.0位取反位取反 RETIRETI 在T1定时中断服务程序IT1P

32、中,省去了T1中断服务程序中重新装入初值06H的指令。现在学习的是第47页,共64页 例例 利用利用T1T1的方式的方式2 2对外部信号计数,要求每计满对外部信号计数,要求每计满100100个数,将个数,将P1.0P1.0取反。取反。本例是本例是方式方式2 2计数模式计数模式的应用。的应用。(1 1)选择工作方式)选择工作方式 外部信号外部信号由由T1(P3.5)T1(P3.5)脚输入脚输入,每发生一次负跳变计数器加每发生一次负跳变计数器加1 1,每输入,每输入100100个脉冲,计数器产生溢出中断,在中断服务程序中个脉冲,计数器产生溢出中断,在中断服务程序中将将P1.0P1.0取反一次。取反

33、一次。T1 T1 方式方式2 2的控制字的控制字为为TMOD=60HTMOD=60H。不使用不使用T0T0时,时,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=9CH现在学习的是第48页,共64页(3 3)程序设计)程序设计 ORG 0000HORG 0000HLJMP MAINLJMP MAIN ORG 0

34、01BHORG 001BH ;T1T1中断服务程序入口中断服务程序入口 CPL P1.0CPL P1.0 ;P1.0P1.0位取反位取反RETIRETI ORG 0100HORG 0100H MAIN:MAIN:MOV TMOD,#60H MOV TMOD,#60H ;设;设T1T1为方式为方式2 2计数计数 MOV TL0,#9CH MOV TL0,#9CH ;T0T0置初值置初值 MOV TH0,#9CH MOV TH0,#9CH SETB TR1 SETB TR1 ;启动;启动T1T1 SETB ET1 SETB ET1 SETB EA SETB EA HERE:HERE:AJMP HE

35、REAJMP HERE现在学习的是第49页,共64页现在学习的是第50页,共64页现在学习的是第51页,共64页现在学习的是第52页,共64页现在学习的是第53页,共64页 5 5、门控制位、门控制位GATE的应用的应用测量脉冲宽度测量脉冲宽度 GATExGATEx可使定时器可使定时器/计数器计数器Tx的的启动计数启动计数受受/INTx/INTx的控的控制,制,可测量引脚可测量引脚/INTx/INTx(P3.2 P3.3)上正脉冲的宽度)上正脉冲的宽度(机器周期数)。现在学习的是第54页,共64页待测脉冲信号接与哪个引脚?(待测脉冲信号接与哪个引脚?(/INT0引脚、引脚、T0引脚)引脚)设定

36、设定T0为定时方式还是计数方式?几位?为定时方式还是计数方式?几位?设初值设初值TH0、TL0为多少?为多少?何时置位何时置位TR0?何时读取结果?何时读取结果 TH0、TL0?若若TH0、TL0发生溢出应如何处理?发生溢出应如何处理?如何测量负脉冲宽度?如何测量负脉冲宽度?测量精度与什么有关?测量精度与什么有关?现在学习的是第55页,共64页参考程序:参考程序:ORG 0000HORG 0000HRESET:AJMP MAIN RESET:AJMP MAIN ;复位入口转主程序;复位入口转主程序 ORG 0100HORG 0100H MAIN:MOV SP,#60H MAIN:MOV SP,

37、#60H MOV TMOD,#90H MOV TMOD,#90H ;T1T1为方式为方式1 1定时控制字定时控制字 MOV TL1,#00HMOV TL1,#00H MOV TH1,#00H MOV TH1,#00H CLR EI CLR EILOOP0:JB P3.3,LOOP0LOOP0:JB P3.3,LOOP0;/INT1/INT1高高,则循环则循环 SETB TR1SETB TR1;如;如/INT1/INT1为低,启动为低,启动T1T1LOOP1:JNB P3.3,LOOP1LOOP1:JNB P3.3,LOOP1;等待;等待/INT1/INT1变高,开始计数变高,开始计数LOOP2

38、:JB P3.3,LOOP2 LOOP2:JB P3.3,LOOP2;/INT1/INT1高高,计数计数现在学习的是第56页,共64页 CLR TR1CLR TR1;停止;停止T1计数 MOV A,TL1;T1T1计数值送计数值送A A将A中的中的T1计数计数值送显示缓冲区值送显示缓冲区 转换成显示的代码转换成显示的代码 LOOP3:LCALL DIR LOOP3:LCALL DIR;调用显示子程序;调用显示子程序DIRDIR;显示T1T1计数值 AJMP LOOP3AJMP LOOP3;执行程序,使/INT1引脚上出现的正脉冲宽度以机器周期数的形式显示在显示器上。现在学习的是第57页,共64

39、页信号频率的测量信号频率的测量基本原理:定时基本原理:定时1s,记录脉冲个数。,记录脉冲个数。1.待测频率信号接与哪个引脚?(待测频率信号接与哪个引脚?(T0引脚、!引脚、!INT0引脚)引脚)2.设定设定T0为定时方式还是计数方式?几位?为定时方式还是计数方式?几位?3.设初值设初值TH0、TL0为多少?为多少?4.何时置位何时置位 TR0?何时读取结果?何时读取结果 TH0、TL0?5.若若 TH0、TL0发生溢出应如何处理?发生溢出应如何处理?现在学习的是第58页,共64页8.1.3.4 定时器定时器/计数器在应用中应注意的两个问题计数器在应用中应注意的两个问题1、运行中读定时器、运行中

40、读定时器/计数器计数器 在读取运行中的定时器在读取运行中的定时器/计数器时,计数器时,需注意:若恰好需注意:若恰好出现出现TLX溢出向溢出向THX进位的情况,则读得的(进位的情况,则读得的(TLX)值就)值就完全不对。完全不对。同样,先读(同样,先读(THX)再读()再读(TLX)也可能出错。)也可能出错。方法:先读(方法:先读(THX),后读(),后读(TLX),再读(),再读(THX)。)。若两次读得(若两次读得(THX)相同,则读的内容正确。)相同,则读的内容正确。若前后两次读的(若前后两次读的(THX)有变化,则再重复上述过程,)有变化,则再重复上述过程,若重复读得的内容相同,就应是正

41、确的。下面是有关的若重复读得的内容相同,就应是正确的。下面是有关的程序,读得的(程序,读得的(TH0)和()和(TL0)放置在)放置在R1和和R0内。内。现在学习的是第59页,共64页RDTIME:RDTIME:MOV A,TH0MOV A,TH0;读(TH0TH0)MOV R0,TL0;读(TL0)CJNE A,TH0,RDTIMECJNE A,TH0,RDTIME;比较;比较2次次 ;读得的(读得的(TH0TH0);不相等则重复读;不相等则重复读 MOV R1,AMOV R1,A;(;(TH0TH0)送入)送入R1R1中中 RET 现在学习的是第60页,共64页2 2、定时器/计数器对输入

42、信号的要求计数器对输入信号的要求 外部计数脉冲的最高频率为系统振荡器频率的外部计数脉冲的最高频率为系统振荡器频率的1/241/24,例如选用例如选用12MHz频率的晶体,则可输入频率的晶体,则可输入500KHz500KHz的外部脉冲。的外部脉冲。输入信号的高、低电平至少要保持一个机器周期。输入信号的高、低电平至少要保持一个机器周期。如图所示,图中如图所示,图中TcyTcy为机器周期。为机器周期。现在学习的是第61页,共64页 实时时钟的设计 1 1实时时钟实现的基本思想实时时钟实现的基本思想 如何获得如何获得1 1秒的定时?秒的定时?可把可把定时时间定为定时时间定为100ms100ms,采用中

43、断方式进,采用中断方式进行溢出次数的累计,计满行溢出次数的累计,计满1010次,即得到秒计时。次,即得到秒计时。片内片内RAMRAM中规定中规定3 3个单元个单元作作为秒、分、时单元为秒、分、时单元,具体安排如下:,具体安排如下:42H42H:“秒秒”单元单元 ;41H41H:“分分”单元;单元;40H40H:“时时”单元单元 从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。2 2程序设计程序设计 (1 1)主程序的设计)主程序的设计流程如图所示。流程如图所示。现在学习的是第62页,共64页(2 2)中断服务程序的设计)中断服

44、务程序的设计中断服务程序的主要功能是实中断服务程序的主要功能是实现秒、分、时的计时处理。参现秒、分、时的计时处理。参考程序略。考程序略。现在学习的是第63页,共64页 定时举例:定时举例:一天一天24小时的计时,称为日时钟。小时的计时,称为日时钟。在监测系统中,对被测点的定时取样。在监测系统中,对被测点的定时取样。在读键盘时,为去抖,一般延迟一段时间,再读。在读键盘时,为去抖,一般延迟一段时间,再读。在微机控制系统中,控制某工序定时启动。在微机控制系统中,控制某工序定时启动。定时器:定时器:在时钟信号作用下,进行定时的加“1”计数,定时时间到,从输出端输出周期均匀、频率恒定的脉冲信号。由上述可知,定时器强调的是精确的时间。由上述可知,定时器强调的是精确的时间。现在学习的是第64页,共64页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁