C的定时器计数器.pptx
《C的定时器计数器.pptx》由会员分享,可在线阅读,更多相关《C的定时器计数器.pptx(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1定时方法概述 定时计数器结构和工作原理定时计数器的控制寄存器 定时器的四种工作方式 定时器的应用第1页/共45页2一、定时方法概述软件定时:软件定时靠执行一个循环程序以进行时间延迟。特点是时间精确,且不需要外加硬件电路。但软件定时要占用CPU开销,因此软件定时的时间不宜太长。采用时基电路定时:特点是(定时功能全部由硬件电路完成)不占CPU时间,但需通过改变电路的元件参数来调节定时时间,在使用上不够灵活方便。采用可编程芯片定时:这种定时方法是通过对系统时钟脉冲的计数来实现的。计数值通过程序设定,改变计数值,也就改变了定时时间,使用起来既灵活有方便。结论:MCS-51单片机把定时电路集成在芯片中
2、,称之为定时器/计数器。8051型单片机有两个定时/计数器,分别称为定时器/计数器0和定时器/计数器1。第2页/共45页3二、定时计数器结构和工作原理定时器方式寄存器主要用于设定定时器的工作方式定时器控制寄存器主要用于控制定时器的启动与停止,并保存T0、T1的溢出和中断标志定时器0定时器1第3页/共45页4定时/计数器的结构框图16位的定时器/计数器实质上是一个加l计数器,可实现定时定时和计数计数两种功能,其功能由软件控制和切换。定时器属硬件定时和计数,是单片机中效率高而且工作灵活的部件。第4页/共45页5定时器/计数器的定时功能定时功能。l计数器的加1信号由振荡器的12分频信号产生,即每过一
3、个机器周期,计数器加1,直至计满溢出。l定时器的定时时间与系统的时钟频率有关。因一个机器周期等于12个时钟周期,所以计数频率应为系统时钟频率的十二分之一。如果晶振频率为12MHz,则机器周期为1s。通过改变定时器的定时初值,并适当选择定时器的长度(8位、13位或16位),可以调整定时时间。第5页/共45页6定时器/计数器的计数功能。l通过外部计数输入引脚T0(P3.4)和T1(P3.5)对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平,若一个机器周期S5P2期间采样值为1,下一个机器周期S5P2期间采样值为0,则计数器加1,再下一个机器周期S3P1
4、期间,新的计数值装入计数器。l因检测一个由1至0的跳变需要两个机器周期,故外部信号的最高计数频率为时钟频率的二十四分之一。如果晶振频率为12MHz,则最高计数频率为。虽然对外部输入信号的占空比无特殊要求,但为了确保给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。第6页/共45页71、工作方式寄存器TMODM0M1C/T0GATE0M0M1C/T1GATE1TMOD字节地址89H D7 D6 D5 D4 D3 D2 D1 D0控制T0T0控制T1T1方式选择0000:方式0 00101:方式1 11010:方式2 21111:方式3 3定时/计数选择0
5、 0:定时器1 1:计数器门控位三、定时计数器的控制寄存器第7页/共45页8GATE:门控制位,用于控制定时器的启动是否受外部中断源信号的影响。GATE=0时,与外部中断无关,由TCON寄存器中的TRx位控制启动。GATE=1时,由控制位TRx和引脚 共同控制启动,只有在没有外部中断请求信号的情况下(即外部中断引脚 =1时),才允许定时器启动。第8页/共45页92、定时控制寄存器(TCON)当定时器1计满溢出时,由硬件自动使TF0置1,并申请中断。对该标志位有两种处理方法,一种是以中断方式工作,即TF0置1并申请中断,响应中断后,执行中断服务程序,并由硬件自动使TF0清0;另一种以查询方式工作
6、,即通过查询该位是否为1来判断是否溢出,TF0置1后必须用软件使TF0清0。GATE=0时,用软件使TR0置1即启动定时器1,若用软件使TR0清0则停止定时器1。GATE=1时,用软件使TR1置1的同时外部中断INT0的引脚输入高电平才能启动定时器0。第9页/共45页103、中断允许控制寄存器EX0ET0EX1ET1ESET2EAIE字节字节地址地址A8HA8H D7 D6 D5 D4 D3 D2 D1 D0定时定时/计数器计数器1 1中中断允许控制位断允许控制位定时定时/计数器计数器0 0中中断允许控制位断允许控制位0 0:允许中断:允许中断1 1:禁止中断响应:禁止中断响应中断允许总控制位
7、中断允许总控制位第10页/共45页114、中断优先级寄存器IP(字节地址B8H)第11页/共45页12四、定时计数器的四种工作方式定时器定时器T0T0、T1T1的工作方式的工作方式第12页/共45页131、工作方式0(13位计数器)TR1=1TR1=1启动计数GATE0=0GATE0=0时:GATE0=1GATE0=1时:TR1=1TR1=1且INT1=1INT1=1启动计数启停控制定时计数选择定时计数选择1313位计数器位计数器第13页/共45页14 计数工作方式计数工作方式:最大的计数值为最大的计数值为81928192(2 21313)预置的初值:预置的初值:X=2X=21313-N-N定
8、时工作方式定时工作方式:定时时间的计算公式为:定时时间的计算公式为:T=T=(2 21313计数初值)计数初值)晶振周期晶振周期1212?如如晶晶振振频频率率为为6MHZ/12MHZ6MHZ/12MHZ,求求最最小小定定时时时时间和最小定时时间间和最小定时时间 机器周期机器周期预置的初值:预置的初值:第14页/共45页15【例】单片机晶振频率为12MHz,若产生1ms定时,采用方式0,试计算初值X。X=1110000000011000B=E018H所以(TH)=E0H,(TL)=18H。解:预置的初值:15141312111098/43210THTL第15页/共45页162、工作方式1(16位
9、计数器)1616位计数器位计数器第16页/共45页17 计数工作方式计数工作方式:最大的计数值为最大的计数值为6553665536(2 21616)预置的初值:预置的初值:X=2X=21616-N-N定时工作方式定时工作方式:定时时间的计算公式为:定时时间的计算公式为:T=T=(2 21616计数初值)计数初值)晶振周期晶振周期1212?如如晶晶振振频频率率为为6MHZ/12MHZ6MHZ/12MHZ,求求最最小小定定时时时时间和最小定时时间间和最小定时时间 预置的初值:预置的初值:X=2X=21616-T/(-T/(晶振周期晶振周期12)12)第17页/共45页18【例】单片机晶振频率为12
10、MHz,若产生1ms定时,采用方式1,试计算初值X。所以(TH)=FCH,(TL)=18H。解:预置的初值:1514131211109876543210THTL第18页/共45页19【例】【例】已知晶振频率已知晶振频率fosc=12MHzfosc=12MHz,使用定时器,使用定时器0 0以工作方式以工作方式1 1,在输出周期为,在输出周期为2ms2ms的连续正方波脉冲。试编写相关程序。的连续正方波脉冲。试编写相关程序。解:解:计算初值计算初值:TH0=FC HTH0=FC H,TL0=18 HTL0=18 H。ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ;跳转
11、到主程序;跳转到主程序 ORG 000BH ORG 000BH ;T0T0的中断入口地址的中断入口地址 LJMP DVT0 LJMP DVT0 ;转向中断服务程序;转向中断服务程序 ORG 0100HORG 0100H MAIN MAIN:MOV SP,#60H ;MOV SP,#60H ;设堆栈指针设堆栈指针 MOV MOV TMODTMOD,#01H#01H ;置;置T0T0工作于方式工作于方式1 /1 /初始化初始化TMODTMOD MOV TH0 MOV TH0,#0FCH#0FCH ;装入计数初值装入计数初值 /装入初值装入初值 MOV TL0MOV TL0,#018H#018H S
12、ETB ET0 SETB ET0 ;T0T0开中断开中断 /中断设置中断设置 SETB EA SETB EA ;CPUCPU开中断开中断 SETB TR0 SETB TR0 ;启动;启动T0 /T0 /启动定时器启动定时器 SJMP$SJMP$;等待中断;等待中断 DVT0DVT0:CPL P1.0 CPL P1.0 ;取反输出;取反输出 MOV TH0MOV TH0,#0FCH#0FCH ;重新装入计数值重新装入计数值 MOV TL0MOV TL0,#018H#018H RETI RETI ;中断返回;中断返回 ENDEND第19页/共45页20查询方式:查询方式:ORG 0000H ORG
13、 0000H LJMP MAIN LJMP MAIN ;跳转到主程序;跳转到主程序 ORG 0100HORG 0100H MAIN MAIN:MOV MOV TMODTMOD,#01H#01H ;置;置T0T0工作于方式工作于方式1 /1 /初始化初始化TMODTMOD LOOP:MOV TH0 LOOP:MOV TH0,#0FCH#0FCH ;装入计数初值装入计数初值 /装入初值装入初值 MOV TL0MOV TL0,#018H#018H SETB TR0 SETB TR0 ;启动;启动T0 /T0 /启动定时器启动定时器 JNB TF0JNB TF0,$;查询;查询TF0TF0标志,如为标
14、志,如为1 1,说明,说明T0T0溢出,溢出,;则往下执行;则往下执行 CLR TF0CLR TF0 ;清除;清除TF0TF0中断标志位中断标志位 CLR TR0 CLR TR0 ;T0T0溢出,关闭定时器溢出,关闭定时器 CPL P1.0 CPL P1.0 ;状态取反;状态取反 SJMP LOOPSJMP LOOP END END 第20页/共45页213、工作方式2(自动装载初值的8位计数器)注:注:适用于需要重复定时或计数的场合。适用于需要重复定时或计数的场合。定时精度比较高,但定时时间较短。定时精度比较高,但定时时间较短。用作定时或计数时的加1计数器用作赋值(保存初值)。第21页/共4
15、5页22例、已知晶振频率例、已知晶振频率fosc=6MHzfosc=6MHz,要求使用定时器,要求使用定时器0 0以工作方式以工作方式2 2产生产生100100s s定时,在输出周期为定时,在输出周期为200200s s的连续正方波脉冲。试编写相关的连续正方波脉冲。试编写相关程序。程序。解:解:计算初值计算初值:MOV TMOD MOV TMOD,#02H#02H ;设置定时器;设置定时器0 0为工作方式为工作方式2 2 MOV TH0 MOV TH0,#0CEH#0CEH ;设置计数初值;设置计数初值 MOVMOV,TL0TL0,#0CEH#0CEH SETB TR0 SETB TR0;启动
16、定时;启动定时LOOPLOOP:JBC TF0JBC TF0,LOOP1LOOP1;查询计数溢出;查询计数溢出 AJMP LOOPAJMP LOOPLOOP1LOOP1:CPL P1.0CPL P1.0;输出方波,初值自动装入;输出方波,初值自动装入 AJMP LOOPAJMP LOOP第22页/共45页23例例6-3 6-3 当当T0T0()引引脚脚上上发发生生负负跳跳变变时时,从从引引脚脚上上输输出出一一个个周周期期为为1ms1ms的方波的方波,如图所示。(系统时钟为如图所示。(系统时钟为6MHz6MHz)(1 1)工作方式选择)工作方式选择T0T0为方式为方式1 1计数计数,初值,初值
17、0FFFFH0FFFFH,即外部计数输入端,即外部计数输入端T0T0()发生一次负()发生一次负跳变时,跳变时,T0T0加加1 1且溢出,溢出标志且溢出,溢出标志TF0TF0置置“1”1”,发中断请求。在进入,发中断请求。在进入T0T0中断程序后,启动中断程序后,启动T1T1。T1T1定义为方式定义为方式2 2定时定时。在。在T0T0脚发生一次负跳变后,启动脚发生一次负跳变后,启动T1T1每每500500 s s产生产生一次中断,在中断服务程序中对求反,使产生周期一次中断,在中断服务程序中对求反,使产生周期1ms1ms的方波。的方波。第23页/共45页24(2 2)计算)计算T1T1初值初值设
18、设T1T1的初值为的初值为X X:则则 (2(28 8-X)210-X)210-6-6=510=510-4-4 X=2 X=28 8-250=6=06H-250=6=06H(3 3)程序设计)程序设计 ORG 0000HORG 0000H RESET:LJMP MAIN RESET:LJMP MAIN ;复位入口转主程序;复位入口转主程序 ORG 000BHORG 000BH LJMP IT0P LJMP IT0P ;转;转T0T0中断服务程序中断服务程序 ORG 001BHORG 001BH LJMP IT1P LJMP IT1P ;转;转T1T1中断服务程序中断服务程序 ORG 0100H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时器 计数器
限制150内