《定时器计数器PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《定时器计数器PPT讲稿.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、定时器计数器第1页,共32页,编辑于2022年,星期六 第第7章章 定时器定时器/计数器计数器第2页,共32页,编辑于2022年,星期六 7.1 定时器定时器/计数器的功能和结构计数器的功能和结构 7.2 定时器定时器/计数器的工作原理计数器的工作原理 7.3 定时器定时器/计数器的工作方式计数器的工作方式 7.4 定时器定时器/计数器的编程计数器的编程本章要点:第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第3页,共32页,编辑于2022年,星期六7.1 定定时时器器/计计数器的功能和数器的功能和结结构构7.1.1定定时时器器/计计数器的功能数器的功能7.1.2定定时
2、时器器/计计数器的数器的结结构构第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第4页,共32页,编辑于2022年,星期六7.1.2定定时时器器/计计数器的数器的结结构构第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第5页,共32页,编辑于2022年,星期六7.2 定定时时器器/计计数器的工作原理数器的工作原理第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第6页,共32页,编辑于2022年,星期六7.3 定定时时器器/计计数器的工作方式数器的工作方式7.3.1工作方式寄存器工作方式寄存器-TMOD第第第第7 7 7 7章章章
3、章 定时器定时器/计数器计数器计数器计数器第7页,共32页,编辑于2022年,星期六(1)GATE:门门控位,控位,实现选实现选通控制通控制 GATE0时时,只只需需用用软软件件使使TR0(或或TR1)置置1就就可可以以启启动动定定时时器,而不管器,而不管INT0(或或INT1)的的电电平是高平是高电电平平还还是低是低电电平;平;GATE=1时时,只只有有在在INT0(或或INT1)引引脚脚为为高高电电平平,而而且且TR0(或(或TR1)置)置1时时,才能启,才能启动动定定时时器工作器工作.(2)C/T:计计数数/定定时时方式方式选择选择位位 C/T0,设设置置为为定定时时方方式式,定定时时器
4、器计计数数单单片片机机内内部部计计数数脉脉冲冲;当当C/T1,设设置置为为计计数数功功能能,计计数数器器对对来来自自T0(P3.4)或或T1(P3.5)端的外部脉冲)端的外部脉冲计计数。数。7.3.1工作方式寄存器工作方式寄存器-TMOD第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第8页,共32页,编辑于2022年,星期六(3)M1 M0:这这两位指定定两位指定定时时器器/计计数器的工作方数器的工作方式,可形成四种式,可形成四种编码编码M1M0工作方式工作方式 功功 能能 说说 明明00方式方式013位位计计数器数器01方式方式116位位计计数器数器10方式方式2自自
5、动动再装入再装入8位位计计数器数器11方式方式3定定时时器器0:分成两个:分成两个8位位计计数器数器7.3.1工作方式寄存器工作方式寄存器-TMOD第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第9页,共32页,编辑于2022年,星期六1.方式方式0 7.3.2 定时器定时器/计数器工作方式计数器工作方式第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第10页,共32页,编辑于2022年,星期六2.方式方式17.3.2 定时器定时器/计数器工作方式计数器工作方式第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第11页,共32页
6、,编辑于2022年,星期六3.方式方式27.3.2 定时器定时器/计数器工作方式计数器工作方式第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第12页,共32页,编辑于2022年,星期六4.方式方式3 7.3.2 定时器定时器/计数器工作方式计数器工作方式第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第13页,共32页,编辑于2022年,星期六7.3.4 计数初值的计算计数初值的计算 由于定由于定时时器器/计计数器以加数器以加1方式方式计计数,假数,假设计设计数数值为值为x,则应则应装入定装入定时时器器/计计数器的初数器的初值为值为:(n为为不同方
7、式下不同方式下计计数器的位数数器的位数)第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第14页,共32页,编辑于2022年,星期六每个机器周期包括每个机器周期包括12个振个振荡荡周期,若晶振周期,若晶振频频率率为为6MHz,一个机器周期,一个机器周期:计计数个数数个数为为:其中其中Tp为为机器周期机器周期 则应则应装入的装入的计计数初数初值为值为:【例】要求定时为【例】要求定时为1mS,晶振频率,晶振频率12MHz。7.3.4 计数初值的计算计数初值的计算第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第15页,共32页,编辑于2022年,星期六应
8、应注意以下两点:注意以下两点:(1)正确)正确编编制定制定时时器器/计计数器的初始化程序数器的初始化程序 包括定包括定义义TMOD、写入定、写入定时时初初值值、设设置中断系置中断系统统和启和启动动定定时时器器/计计数器运行等。数器运行等。(2)正确)正确编编制定制定时时器器/计计数器中断服数器中断服务务程序程序 注意是否需要重装定注意是否需要重装定时时初初值值,若需要,若需要连续连续反复使用原定反复使用原定时时间时时间,且未工作在方式,且未工作在方式2,则应则应在中断在中断服服务务程序中重装定程序中重装定时时初初值值。7.4定时器定时器/计数器的编程计数器的编程第第第第7 7 7 7章章章章
9、定时器定时器/计数器计数器计数器计数器第16页,共32页,编辑于2022年,星期六7.4.1定定时时器器应应用用实实例例 【例【例7-2】使用定】使用定时时器器/计计数器数器T0的方式的方式0,设设定定1ms的的定定时时。在。在P1.0引脚上引脚上产产生周期生周期为为2ms的方波的方波输输出。晶体振出。晶体振荡荡器的器的频频率率为为fosc=6MHz。解:(解:(1)定)定时时常数常数计计算算振振荡荡器器频频率率为为fosc=6MHz=6106HZ,方式,方式0计计数器数器长长度度 n=13,2n=213=8192定定时时间时时间:t=1ms=110-3s机器周期:机器周期:Tp12/6106
10、2us计计数数值值:xTc/Tp1ms/2us500那么那么应应装入的初装入的初值为值为 81925007692定定时时常数常数TC转换转换成二成二进进制数制数TCB11110 0000 1100 B。所以所以TCH1EH,TCL0CH。那么。那么应该应该写入写入T0的形式的形式为为TH0=1EH,TL0=0CH。第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第17页,共32页,编辑于2022年,星期六(2)TMOD的的设设定(即控制字)定(即控制字)7.4.1定定时时器器应应用用实实例例第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第18页,共
11、32页,编辑于2022年,星期六(3)编编 程程ORG0000HAJMPMAIN ;转转到主程序到主程序ORG000BH ;T0中断矢量地址中断矢量地址AJMPINQP ;转转到中断服到中断服务务程序程序ORG0050HMAIN:MOV TMOD,#00H ;设设置置T0为为方式方式0定定时时MOVTH0,#1EH ;装入;装入T0的定的定时时常数常数MOVTL0,#0CHSETBTR0 ;启;启动动T0SETBET0 ;允;允许许T0中断中断SETBEA ;CPU开中断开中断SJMP$;等待;等待T0中断中断发发生生ORG0100H ;中断服;中断服务务程序程序INQP:MOVTH0,1EH
12、 ;重装定;重装定时时常数常数MOVTL0,0CHCPLP1.0 ;P1.0变变反反输输出出RETI ;中断返回;中断返回第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第19页,共32页,编辑于2022年,星期六7.4.2计数器应用实例计数器应用实例 【例【例7-3】试设试设定定定定时时器器/计计数器数器T0为计为计数方式数方式2。当。当T0引脚出引脚出现负现负跳跳变时变时,向,向CPU申申请请中断。中断。解:解:(1)定数常数)定数常数计计算算当当T0引引脚脚出出现现负负跳跳变变时时,即即向向CPU申申请请中中断断,意意思思是是说说当当计计数数器器计计数数到到28时时
13、就就会会溢溢出出,设设计计数数初初值值为为X,再再计计数数一一次次计计数数器器就就溢溢出出,用用公公式式表表示示为为X128,所所以以X28125511111111B0FFH,故此,故此时时的定数常数的定数常数应为应为TCB=0FFH。第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第20页,共32页,编辑于2022年,星期六(2)TMOD的的设设定(即控制字)定(即控制字)7.4.2计数器应用实例计数器应用实例第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第21页,共32页,编辑于2022年,星期六(3)编编 程程ORG0000H AJMPMAI
14、N;转转到主程序到主程序 ORG000BH;T0的中断入口的中断入口 AJMPINTS ;转转到中断服到中断服务务程序程序 ORG0100H ;主程序入口地址;主程序入口地址MAIN:MOVSP,#60H;设栈设栈指指针针MOVTMOD,#06H ;设设T0为计为计数方式数方式2MOVTL0,#0FFH ;设设TL0初初值值MOVTH0,#0FFH ;设设TH0初初值值 SETBTR0 ;启;启动计动计数数SETBET0 ;允;允许许T0中断中断 SETBEA ;中断开放;中断开放 SJMP$;等待;等待T0中断中断发发生生 ;中断;中断处处理程序理程序INTS:PUSHA ;现场现场保保护护
15、,把寄存器,把寄存器A中的中的值压值压入堆入堆栈栈中中PUSHDPL ;把数据指;把数据指针针的低位的低位DPL中的中的值压值压入堆入堆栈栈中中PUSHDPH ;把数据指;把数据指针针的高位的高位DPH中的中的值压值压入堆入堆栈栈中中 ;现场现场恢复恢复POPDPH ;把数据指;把数据指针针的高位的高位DPH中的中的值值从堆从堆栈栈中取出中取出 POPDPL ;把数据指;把数据指针针的低位的低位DPL中的中的值值从堆从堆栈栈中取出中取出POPA ;把寄存器;把寄存器A中的中的值值从堆从堆栈栈中取出中取出RETI第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第22页,共3
16、2页,编辑于2022年,星期六【实实例例7-1】已知晶振】已知晶振12MHZ,参,参见图见图7-9,要求利要求利用定用定时时器器T0使使图图中中发发光二极管光二极管D进进行秒行秒闪烁闪烁。解析解析:发发光二极管光二极管进进行秒行秒闪烁闪烁。即一秒。即一秒钟钟一亮一暗,一亮一暗,亮亮500ms,暗,暗500ms。晶振。晶振12MHz,一个机器周期是,一个机器周期是1s,T0方式方式1最大定最大定时时只能只能65ms多(注多(注:21665536)。)。取取T0定定时时50ms,计计数数10次,即可次,即可实现实现500ms定定时时。(1)计计算定算定时时初初值值T0初初值值=216-50000s
17、/1s=6553650000=15536=3CB0H TH0=3CH;TL0=B0H 7.5 实例解析实例解析第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第23页,共32页,编辑于2022年,星期六(2)设置)设置TMOD0000 0 0 01 B=01H T0方式方式 T0 与与 INT0 无关无关 T1控制位控制位(3)编程)编程ORG 0000H ;复位地址复位地址 LJMP MAIN ;转入主程序转入主程序ORG 000BH ;T0中断入口地址中断入口地址LJMP IT0;转入转入T0中断服务程序中断服务程序ORG 0100H ;主程序首地址主程序首地址MAI
18、N:MOV TMOD,#01H ;设置设置T0为工作方式为工作方式1MOV TH0,#3CH;装入定时常数装入定时常数MOV TL0,#0B0H MOV IE,#10000010B ;T0开中断开中断 MOV R7,#0AH ;设置循环次数为设置循环次数为10次次 SETB TR0;T0运行运行SJMP$;等待中断等待中断第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第24页,共32页,编辑于2022年,星期六;中断服务程序:;中断服务程序:ORG 000BHITO:MOV TL0,#0B0H ;重新装入时间常数重新装入时间常数 MOV TH0,#3CH DJNZ R7
19、,LOOP ;循环循环10次次 CLR TR0 ;500ms定时到了定时到了,停止停止T0工作工作LOOP:RETI ;中断返回中断返回 END ;程序结束程序结束7.5 实例解析实例解析第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第25页,共32页,编辑于2022年,星期六 【实实例例7-2】利用定】利用定时时器器/计计数器,数器,测测定如定如图图所示波形所示波形的一个周期的一个周期长长度。度。7.5 实例解析实例解析第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第26页,共32页,编辑于2022年,星期六解解析析:这这里里利利用用门门控控位
20、位GATE启启动动定定时时器器的的方方法法。设设如如图图示示定定时时器器/计计数数器器T0为为定定时时器器,为为高高电电平平时时,启启动动定定时时器器;定定时时器器/计计数数器器T1为为计计数数器器,T1的的电电平平由由1到到0,计计数器数器计计数。数。(1)定)定时时器器设设置置当当每每秒秒脉脉冲冲数数低低于于3个个时时,每每个个脉脉冲冲周周期期330ms左左右右,故故而而设设置置定定时时器器的的基基本本定定时时为为100ms,可可以以满满足足测测时时的的精精度度要要求求。因因此此,采采用用门门控控方方式式,触触发发启启动动定定时时器器;采采用用方方式式1,16位位计计数器。数器。7.5 实
21、例解析实例解析第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第27页,共32页,编辑于2022年,星期六定定时时器器T0的的TMOD的的设设置:置:控制字控制字为为9H时时间间常常数数计计算算:晶晶体体振振荡荡器器为为6MHz,基基本本定定时时时时间间为为100ms,机器周期,机器周期Tc为为设设置初置初值为值为x:x=21650000=15536=3CB0H预预置:(置:(TH0)=3CH,(,(TL0)=0B0HGATEM1M010017.5 实例解析实例解析第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第28页,共32页,编辑于2022年,
22、星期六(2)计计数器数器设设置置定定时时器器/计计数数器器T1为为计计数数器器。计计数数值值为为2,当当计计数数1时时,启启动动定定时时器器;当当计计数数2时时,中中断断计计数数器器T1,并并停停止止定定时时器器T0的定的定时时;中断方式,其;中断方式,其优优先先级级高于定高于定时时器器T0。计计数器数器T1的的TMOD的的设设置:置:控制字控制字为为5H。计计数器初数器初值为值为:FFFEH,预预置:(置:(TH1)=0FFH,(,(TL0)=0FEH。GATEM1M001017.5 实例解析实例解析第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第29页,共32页,编
23、辑于2022年,星期六(3)编编 程程ORG0000HAJMPMAINORG000BH;T0的中断入口的中断入口 AJMPTIME0 ;转入中断程序转入中断程序ORG001BH ;T1的中断入口的中断入口AJMPTIME1 ;转入中断程序转入中断程序 ORG0033HMAIN:MOVSP,#60H ;设置堆栈指针初值设置堆栈指针初值MOVR3,#0 ;清除软件计数器;清除软件计数器 SETBP3.2 ;将;将P3.2,P3.5置置1,即为输入状态,即为输入状态 SETBP3.5 MOVTMOD,#59HMOVTH0,#3CH ;装入定时器初值;装入定时器初值 MOVTL0,#0B0H MOVT
24、H1,#0FFH ;装入计数器初值;装入计数器初值 MOVTL1,#0FEH SETBTR0;启动定时器、计数器;启动定时器、计数器 第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第30页,共32页,编辑于2022年,星期六 SETB TR1 MOVIP,#08H ;T0中断优先于中断优先于T1SETBET1 ;允许;允许T1中断中断 SETBTF1 ;设;设TF0、TF1为中断标志为中断标志 LOOP:SETBTF0SETBET0 ;允许;允许T0中断中断 SETBEA ;中断开放;中断开放 JBTF0,$;判断判断TF0是否溢出,并一直等待是否溢出,并一直等待 JB
25、TF1,LOOP ;判断判断TF1是否溢出,如果溢出就转到是否溢出,如果溢出就转到LOOP RETTIME0:MOVTL0,#0B0H ;设;设TL0初值初值 MOVTH0,#3CH ;设;设TH0初值初值 INCR3 ;计数器加;计数器加1 CPLTF0 ;TF0取反取反 RETI ;中断返回中断返回TIME1:CLRTF0 ;清除中断标志;清除中断标志 CLRTF1 CLRET0 ;禁止;禁止T0、T1中断中断 CLR ET1 CLREA ;关中断;关中断 RETI ;中断返回中断返回第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第31页,共32页,编辑于2022年,星期六 本程序占用本程序占用T0、T1,溢出标志,溢出标志TF0,TF1及寄存及寄存器器R3。R3 x 100 ms即为周期长度,因此可测的最大周即为周期长度,因此可测的最大周期长度为期长度为256100ms=25.6s。7.5 实例解析实例解析第第第第7 7 7 7章章章章 定时器定时器/计数器计数器计数器计数器第32页,共32页,编辑于2022年,星期六