《第5章2单片机的定时器计数器.ppt》由会员分享,可在线阅读,更多相关《第5章2单片机的定时器计数器.ppt(40页珍藏版)》请在优知文库上搜索。
1、1 5.1 5.1 定时方法概述定时方法概述 1.1.软件定时:执行一个循环程序进行时间软件定时:执行一个循环程序进行时间延迟。延迟。但是单片机但是单片机CPU被占用被占用,无法进行,无法进行多任务处理。多任务处理。2.2.硬件定时:定时时间较长。硬件定时:定时时间较长。3.3.可编程定时器定时:对系统时钟脉冲的可编程定时器定时:对系统时钟脉冲的计数来实现。计数来实现。采用专门的定时器和计数器采用专门的定时器和计数器独立运行,有利于提高单片机的性能,适独立运行,有利于提高单片机的性能,适用于用于实时多任务实时多任务处理的要求处理的要求第五章第五章2 单片机的定时器计数器单片机的定时器计数器25
2、.2、定时器定时器/计数器的结构和功能计数器的结构和功能以以8051系列为例:系列为例:2个个16位可编程定时器位可编程定时器/计数器:计数器:T0和和T1.T0:TL0/TH0;T1:TL1/TH1TMOD/TCON:工作方式寄存器工作方式寄存器/控制寄存器控制寄存器1.结构结构内部总线工作方式工作方式TH1TL1TH0TL0TCONTMODT1T0微处理器32.功能功能16位的定时器位的定时器/计数器的实质:加法计数器。计数器的实质:加法计数器。(1)定时)定时对对机器周期机器周期进行计数,即计数脉冲来自单片机的内进行计数,即计数脉冲来自单片机的内部。即每个机器周期产生一个计数脉冲使得计数
3、器部。即每个机器周期产生一个计数脉冲使得计数器加加1,直至计满溢出,直至计满溢出。计数频率计数频率fosc/12,即,即1个机器周期;个机器周期;“定时定时”时间:开始计数到溢出;时间:开始计数到溢出;预置计数法:初值越大,定时越短。预置计数法:初值越大,定时越短。4(2)计数)计数对外部脉冲信号计数(对外部脉冲信号计数(T0P3.4/T1P3.5)。下降沿出现时,计数器值加下降沿出现时,计数器值加1.在每个机器周期的在每个机器周期的S5P2拍节时对外部计数脉冲进行采样;拍节时对外部计数脉冲进行采样;如果前一个机器周期采样为高电平,后一个机器周期采样如果前一个机器周期采样为高电平,后一个机器周
4、期采样为低电平,即为一个有效的计数脉冲。为低电平,即为一个有效的计数脉冲。下一个周期的下一个周期的S3P1期间,新的计数值装入计数器。期间,新的计数值装入计数器。最高计数频率最高计数频率fosc/24,即,即2个机器周期。个机器周期。注:注:定时器按设定的工作方式独立运行,不占用定时器按设定的工作方式独立运行,不占用CPU的操作的操作时间,除非定时器计满溢出,中断时间,除非定时器计满溢出,中断CPU。5 1.定时器控制寄存器定时器控制寄存器TCON功能:控制定时器功能:控制定时器T0或或T1的运行或停止,并标志定时器的溢出和中断情的运行或停止,并标志定时器的溢出和中断情况。况。位地址:位地址:
5、88H,可以位寻址。,可以位寻址。TF0/TF1:定时器溢出标志。溢出时,硬件自动使定时器溢出标志。溢出时,硬件自动使TF0/TF1置置1,并申请中并申请中断。断。TR0/TR1:定时器运行控制位。置定时器运行控制位。置1启动工作,置启动工作,置0停止工作。停止工作。IE0/IE1:外部中断外部中断0(INT0)/1(INT1)请求标志。请求标志。IT0/IT1:外部中断外部中断0/1触发方式选择位。触发方式选择位。位地址位地址8FH8EH8DH8CH8BH8AH89H88HTCONTF1TR1TF0TR0IE1IT1IE0IT05.3 控制寄存器和方式寄存器控制寄存器和方式寄存器6 2.方式
6、寄存器方式寄存器 GATE门控位门控位 GATE=0 以运行控制位以运行控制位TR启动定时器启动定时器 GATE=l 以外中断请求信号或启动定时器以外中断请求信号或启动定时器 C/T定时方式或计数方式选择位定时方式或计数方式选择位 C/T=0 定时工作方式定时工作方式 C/T=1 计数工作方式计数工作方式 D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M0定时器定时器T1定时器定时器T07M1 M0方式方式功能功能0 0013位定时器位定时器/计数器,由计数器,由TL中低中低5位和位和TH中中8位组成。位组成。0 1116位定时器位定时器/计数器计数器1 028位自动
7、重装定时器位自动重装定时器/计数器,计数器,TL为计数器,为计数器,TH为常数寄为常数寄存器存器1 13定时器定时器0分为分为2个个8位定时器位定时器/计数器,定时器计数器,定时器1无此方式无此方式TMOD的位地址是的位地址是89H,不能位寻址,只能用字节传送指,不能位寻址,只能用字节传送指令设置定时器的工作方式。令设置定时器的工作方式。复位时,复位时,TMOD所有位均清零。所有位均清零。8 5.4.1 工作方式工作方式0 1.电路逻辑结构电路逻辑结构C/T=0:定时器工作方式:定时器工作方式:C/T=1:计数器工作方式:计数器工作方式:下降沿有效。下降沿有效。GATE=0:或门输出为或门输出
8、为1,与与INTX无关;无关;TRx1,接通计数器,否则断开停止计数。接通计数器,否则断开停止计数。GATE=1:TRx1,或门、与门输出仅受或门、与门输出仅受INTX控制。控制。5.4 定时器定时器/计数器的工作方式计数器的工作方式92.定时和计数应用定时和计数应用在方式在方式0下,当为计数工作方式时,计数值的范围是:下,当为计数工作方式时,计数值的范围是:18192(213)当为定时工作方式时,定时时间的计算公式为当为定时工作方式时,定时时间的计算公式为:(213 计数初值)计数初值)晶振周期晶振周期12 或(或(213 计数初值)计数初值)机器周期机器周期其时间单位与晶振周期或机器周期相
9、同(其时间单位与晶振周期或机器周期相同(s)。)。如晶振频率为如晶振频率为6 MHz,则最小定时时间为,则最小定时时间为213(213 1)2us=2(s)最大定时时间为最大定时时间为(213 0)2 us=16 384(s)10 例例5.1设单片机晶振频率为设单片机晶振频率为6MHz,使用定时器,使用定时器1以方式以方式0产生周期为产生周期为500s的等宽正方波连续的等宽正方波连续脉冲,并由脉冲,并由P1.0输出,以查询方式完成。输出,以查询方式完成。1计算计数初值计算计数初值(213 X)2=250X=8067=1111110000011B十六进制表示,高十六进制表示,高8位为:位为:0F
10、CH,低,低5位为位为03H。其中高其中高8位放入位放入TH1,即,即TH1=0FCH;低;低5位位放入放入TL1,即,即TL1=03H 112.TMOD寄存器初始化寄存器初始化为把为把T1设定为方式设定为方式0,则,则M1M0=00;为实现定时功能,应使为实现定时功能,应使C/T=0;为实现为实现T1的运行控制,则的运行控制,则GATE=0。T0不用,有关位设定为不用,有关位设定为0。因此因此TMOD寄存器应初始化为寄存器应初始化为00H。3.由由TCON中的中的TR1位控制定时的启动和停止位控制定时的启动和停止TR1=1启动启动TR1=0停止。停止。12例例5.1 ORG 0030H ;查
11、询方式查询方式 P112MAIN:MOVTMOD,#00HMOVTH1,#0FCHMOVTL1,#03HMOVIE,#00HSETBTR1LOOP:JBCTF1,LOOP1AJMPLOOPLOOP1:MOVTH1,#0FCHMOVTL1,#03HCPLP1.0AJMP LOOP END135.4.2 工作方式工作方式1 P113 M1=0 M0=1M1=0 M0=1 与方式与方式0 0一样,唯一差别是一样,唯一差别是1616位定时位定时/计数器,由计数器,由THx8THx8位和位和TLx8TLx8位组成位组成1616位加位加1 1计数器计数。计数器计数。142.定时和计数定时和计数当为计数工作
12、方式时,计数值的范围是当为计数工作方式时,计数值的范围是 165536(216)当为定时工作方式时,定时时间的计算公式为当为定时工作方式时,定时时间的计算公式为 (216 计数初值)计数初值)晶振周期晶振周期12 或(或(216 计数初值)计数初值)机器周期机器周期其时间单位与晶振周期或机器周期相同(其时间单位与晶振周期或机器周期相同(s)。)。15 以中断方式完成以中断方式完成例例6.1。单片机晶振频率为。单片机晶振频率为6MHz,使用定时器,使用定时器1以工作方式以工作方式1产生周期为产生周期为500s的等宽正方波连续脉冲,并由的等宽正方波连续脉冲,并由P1.0输出。输出。1计算计数初值计
13、算计数初值 TH1=0FFH TL1=83H2TMOD寄存器初始化寄存器初始化 TMOD=10H3程序设计程序设计16ORG 0000HLJMP MAINORG 001BHLJMP TOINTMIAN:MOVTMOD,#10HMOVTH1,#0FFHMOVTL1,#83HSETBEASETBET1SETBTR1HERE:SJMPHERETOINT:MOVTH1,#0FFHMOVTL1,#83HCPLP1.0RETI17例例5.2:利用定时器利用定时器T1方式方式1进行定时,使进行定时,使P1.1端每隔端每隔1s取反一次,设取反一次,设晶振频率为晶振频率为12MHz。解:方式解:方式1下最大定时
14、时间:下最大定时时间:Tmax2161us65536us65.536ms当定时时间大于当定时时间大于Tmax时,可设置软件计数器。时,可设置软件计数器。设设T1定时时间为定时时间为50ms,则计满,则计满20次就可。次就可。(216X)1us50000usX15536=3CB0H所以所以TH1=3CH,TL1=B0H程序如下:程序如下:18START:MOVA,#00;A赋计数初值赋计数初值0MOVTMOD,#10H;T1为方式为方式1MOVTH1,#3CHMOVTL1,#0B0HSETBTR1;启动启动T1LOOP:JBCTF1,NEXTSJMPLOOPNEXT:MOVTH1,#3CHMOV
15、TL1,#0B0HINCACJNEA,#20,LOOPCPLP1.1MOVA,#00SJMPLOOP195.4.3 定时工作方式定时工作方式2 P113M1=1 M0=0M1=1 M0=0 自动装载自动装载初值初值8 8位定时位定时/计数器。计数器。TLxTLx为为8 8位加位加1 1计数器,计数器,THxTHx为为8 8位初值暂存器。位初值暂存器。用于需要重复定时和计数的场合,最大计数值用于需要重复定时和计数的场合,最大计数值:256(2256(28 8)最大定时时间最大定时时间(12MHZ T=1(12MHZ T=1 s)s):256256 s s 定时时间定时时间=(2 28 8-Tx-
16、Tx初值)初值)x x 振荡周期振荡周期 x 12x 1220 例例5.3 使用定时器使用定时器0以工作方式以工作方式2产生产生100s定时,在定时,在P1.0输出周期为输出周期为200s的连续正方波脉冲。已知晶的连续正方波脉冲。已知晶振频率振频率fosc=6MHz。1计算计数初值计算计数初值 6MHz晶振下,一个机器周期为晶振下,一个机器周期为2us,以,以TH0作重装作重装载的预置寄存器,载的预置寄存器,TL0作作8位计数器,假设计数初值位计数器,假设计数初值为为X,则,则 (256X)2=100us 求解得求解得X=206D=11001110B=0CEH 把把0CEH分别装入分别装入TH0和和TL0中:中:TH0=0CEH,TL0=0CEH 21例例5.3(查询方式查询方式)ORG 0000H LJMP MAIN ORG 0030H MAIN:MOVIE,#00HMOVTMOD,#02HMOVTH0,#0CEHMOVTL0,#0CEHSETBTR0LOOP:JBCTF0,LOOP1AJMPLOOPLOOP1:CPLP1.0AJMP LOOP END22(中断方式)(中断方式);等