第六章定时计数器.ppt
第六章第六章 MCS-51内部内部 定时定时/计数器计数器基本要求基本要求:能熟练地使用内部定时/计数器T0、T1 , 用于各种方式下的编程。第一节第一节 定时定时/计数器的结构及工作原理计数器的结构及工作原理 MCS-51内部定时内部定时/计数器计数器Tx(x=0,1)的结构如下:)的结构如下: TRxC/T=0C/T=1振荡器振荡器12 加加1计数器计数器TFx+Tx引脚引脚GATE/INTx中断中断能叙述其工作过程M1 M0 0 0 方式方式0 -13位位 THx和和TLx的低的低5位位 0 1 方式方式1 -16位位 THx和和TLx 1 0 方式方式2 -8位位 自动再装入自动再装入TLx 1 1 方式方式3 -8位位 拆成两个拆成两个8位定时器位定时器 (只有(只有T0有)有)TL0、TH0 (2) T1的的M1 M0=11时,代表关掉时,代表关掉T1注注: (1) 时常计数器共时常计数器共4个(个(TH0、TL0、TH1、TL1)高高4位控制位控制T1低低4位控制位控制T0C/T-计数计数/定时定时一、方式选择寄存器方式选择寄存器TMOD TMOD: 89H:GATEC/T M1 M0GATEC/T M1 M0第二节第二节 定时定时/计数器的工作方式和控制寄存器计数器的工作方式和控制寄存器 GATE-门控信号门控信号,通常为通常为0二、定时器控制寄存器二、定时器控制寄存器TCON:TF1TR1TF0TR0IE0IE1 IT1IT0第五章已作过介绍,这里不赘述。第五章已作过介绍,这里不赘述。方式方式0方式方式1方式方式2方式方式3四种方式区别从它们的结构图可看出。四种方式区别从它们的结构图可看出。第三节 定时/计数器的工作方式THx(8) TLx(5)TFx中断Tx引脚TRx+GATE门INTx引脚控制12振荡器C/T=0C/T=1图6-2 方式0结构图 THx(8)TLx(8)TFx中断Tx引脚TRx+GATE门INTx引脚控制图6-3 方式1结构图12振荡器C/T=0C/T=1 TLx(8位)TFx中断Tx引脚TRx+GATE门INTx引脚控制图6-4 方式2结构图12振荡器C/T=0C/T=1THx(8)重装入振荡器121/12f1/12f TL0(8位)TF0中断T0引脚TR0+GATE门INT0引脚控制 TH0(8位)TF1中断1/12fTR1 图6-5方式3结构图一、一、Tx的使用(初始化编程)的使用(初始化编程) 1、TMOD送值送值 2、送时间常数、送时间常数 3、启动、启动Tx 4、开放、开放Tx中断中断 5、开放、开放CPU中断中断 6、设置中断优先级、设置中断优先级时间常数的计算:时间常数的计算:MnnTXTCXTC22计数:计数:定时:定时:X-计数计数/定时值定时值TC-时间常数时间常数TM-机器周期机器周期n=13、16、8、8第四节第四节 定时定时/计数器编程举例计数器编程举例例例1 设设T0工作于方式工作于方式0,定时,定时5ms产生中断请求;产生中断请求;T1工作于计工作于计数方式数方式2,计到,计到10产生中断请求,初始化编程。已知晶振产生中断请求,初始化编程。已知晶振12MHZ。TM=1/12*12=1sTC0=213-5*1000/1 =8192-5000=3192=110001111000B0110001111000BTH000011000 TL0TH0=63H, TL0=18HTC1=TL1=28-10=246=F6HMOV TMOD, #01100000BMOV TL0, #18HMOV TH0, #63HMOV TL1, #0F6HMOV TH1, #0F6HSETB EASETB ET0SETB ET1SETB TR0SETB TR1CLR PT0SETB PT1SJMP $例例2 用用T0产生一个产生一个5KHZ的方波,由的方波,由P1.0输出,晶振为输出,晶振为12MHZ 中断方式。中断方式。产生连续方波最好方式产生连续方波最好方式2此题定时时间:此题定时时间:X=1/5000/2=10-4 s=100sTM=12*1/12=1sTC=256-100/1=156=9CHORG 0800HMOV TL0, #9CHMOV TH0, #9CHMOV TMOD, #02HSETB ET0SETB EASETB TR0SJMP $T0SUB:CPL P1.0 RETI ORG 0000HAJMP 0800H ORG 000BHAJMP T0SUB例例3 将上题改为将上题改为T1、方式、方式1,设晶振为,设晶振为6MHZ 。即:。即:T1工作工作 于定时方式于定时方式1.定时定时100s,中断方式中断方式,试编程。试编程。TM=12*1/6=2sTC=65536-100/2=FFCEHORG 0800HMOV TL1, #0CEHMOV TH1, #0FFHMOV TMOD, #10HSETB ET1SETB EASETB TR1SJMP $T0SUB:MOV TL1,0CEH MOV TH1,0FFH CPL P1.0 RETI ORG 0000HAJMP 0800H ORG 001BHAJMP T0SUB例例4 T1计数方式计数方式0,计满,计满1000个脉冲将片内个脉冲将片内30H单元内容加单元内容加1, 并调用子程序并调用子程序PRC。不采用中断方式。不采用中断方式。TC=8192-1000 =7192 =1C18H ORG 0500H MOV R0, #30H MOV R0, #0 MOV TL1,#18H MOV TH1, #0E0H MOV TMOD, #40H SETB TR1LOOP:JNB TF1,$ CLR TF1 MOV TL1,#18H MOV TH1, #0E0H INC R0 LCALL PRC SJMP LOOP例例5 GATE=1时的应用:测时的应用:测/INTX的脉宽。的脉宽。ORG 0800HMOV TMOD, #09HMOV TL0, #00HMOV TH0, #00HMOV R0, #30HJB INT0, $SETB TR0JNB INT0,$JB INT0, $CLR TR0MOV R0, TL0INC R0MOV R0, TH0SJMP $例例6 设设T0工作于方式工作于方式3,分别产生,分别产生250s和和500s的定时中断,使的定时中断,使 P1.1和和P1.2产生产生500s和和1000s的方波,设晶振为的方波,设晶振为6MHZ MAIN:MOV TMOD, #03H MOV TL0, #83H MOV TH0, #06H SETB TR0 SETB TR1 SETB ET0 SETB ET1 SETB EA SJMP $ ORG 0000H AJMP MAIN ORG 000BH MOV TL0, #83H CPL P1.1 RETI ORG 001BH MOV TH0, #06H CPL P1.2 RETI例例7 利用利用T0作为外部中断源输入线,以扩充作为外部中断源输入线,以扩充/INTX。在子程序在子程序 里,使里,使A内容减内容减1,送,送P1口显示。口显示。 ORG 0000H AJMP MAIN ORG 000BH AJMP L0MA:MOV SP, #53H MOV TMOD, #06H MOV TL0, #0FFH MOV TH0, #0FFH SETB TR0 SETB ET0 SETB EA SJMP $L0: DEC A MOV P1, A RETI