定时计数器 (2)优秀课件.ppt
定时计数器第1页,本讲稿共32页第一节 概述一、结构及原理低128B RAM高128B RAM第2页,本讲稿共32页P3.03.7(3932脚):双功能输入输出口。第3页,本讲稿共32页1.结构计数计数定时第4页,本讲稿共32页2.原理定时功能定时器实质是一个加1计数器,其控制电路受软件控制和切换。计数脉冲由单片机振荡器的12分频信号提供。若振荡频率为12MHz,则每加一个1需多少时间若该计数器为16位计数器,则计满需多长时间计数功能计数脉冲由外界通过引脚T0、T1提供,且下降沿触发计数即:若一个机器周期采样值为1,下一个机器周期为0,则计数器加1。第5页,本讲稿共32页若振荡频率为12MHz,则最高计数频率为多少工作特点定时器是单片机中效率最高而且灵活的部件,当它开始工作后就不再占用CPU的操作时间,除非定时计数器计满溢出,才可能中断CPU当前操作。综述定时/计数器是一种可编程部件,所以开始工作前,CPU必须将一些命令(控制字)写入部件。即:初始化第6页,本讲稿共32页二、方式寄存器TMOD:功能选择位。等于0时,为定时方式 等于1时,为计数方式:门控位。其功能如下所示。方式寄存器TMOD不能进行位寻址第7页,本讲稿共32页第8页,本讲稿共32页M0和M1:方式选择位例:设定时器1为定时工作方式,要求由软件启动定时器1,按方式2工作。定时器0为计数方式,要求由软件启动定时器0,按方式1工作。则TMOD 中控制字为?25H第9页,本讲稿共32页三、控制寄存器TCONMOV TMOD,#25HMOV TMOD,#25HSETB TR1SETB TR0 TCON可以位寻址第10页,本讲稿共32页四、定时器/计数器得初始化1.确定工作方式对TMOD赋值2.预置定时或计数得初值可直接将初值写入TH0、TL0等例:若80C51主频为6MHz,要求产生1ms的定时,试计算初值。在6MHz主频情况下,计数器每进行一次“加1”所需时间为2us,如果要产生产生1ms的定时时间,需要“加1”500次,那么500即为计数值。在方式1情况下,初值X应为:3.根据需要开放定时器/计数器的中断直接对IE位赋值。4.启动定时器/计数器第1 1页,本讲稿共32页第二节 工作方式一、方式0*方式0是一个13位的定时器/计数器。具体如下图所示当TL0的低五位溢出时向TH0进位,而当TH0溢出时向中断标志位TF0进位(硬件将TF0置为1),并申请中断定时时间:第12页,本讲稿共32页二、方式1定时时间:三、方式2207返回第13页,本讲稿共32页四、方式3方式3只适用于定时器T0,定时器T0在方式3下被拆成两个独立的8位计数器TL0和TH0计数定时第14页,本讲稿共32页定时器初始化练习1.单片机主频为6MHz,要求定时器0用于定时、软件启动、工作 方式为方式0、定时时间为10ms,试完成初始化工作。2.单片机主频为6MHz,要求定时器1用于定时、软件启动、工作 方式为方式1、定时时间为10ms,试完成初始化工作。3.单片机主频为6MHz,要求定时器1用于计数、软件启动、工作 方式为方式2、计数长度为100,试完成初始化工作。第15页,本讲稿共32页1.单片机主频为6MHz,要求定时器0用于定时、软件启动、工作 方式为方式0、定时时间为10ms,试完成初始化工作。00H控制字(1)方式选择(2)时间常数计算X=C78H=1100 0111 1000第16页,本讲稿共32页X=C78H=1100 0111 10000 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0X=0110 0011 0001 1000=6318H程序ORG 0000HMOV TMOD,#00HMOV TH0,#63HMOV TL0,#18H第17页,本讲稿共32页2.单片机主频为6MHz,要求定时器1用于定时、软件启动、工作 方式为方式1、定时时间为10ms,试完成初始化工作。10H控制字(1)方式选择(2)时间常数计算X=EC78H=1110 1100 0111 1000第18页,本讲稿共32页程序ORG 0000HMOV TMOD,#10HMOV TH0,#ECHMOV TL0,#78H7 8 C E第19页,本讲稿共32页3.单片机主频为6MHz,要求定时器1用于计数、软件启动、工作 方式为方式2、计数长度为100,试完成初始化工作。60H控制字(1)方式选择(2)时间常数计算X=9CH=1001 1100程序ORG 0000HMOV TMOD,#60HMOV TH0,#9CHMOV TL0,#9CH第20页,本讲稿共32页第三节 定时器应用举例例1:选择T1方式0用于定时,在P1.1输出周期为1ms的方波 主频为6MHz。方式0第21页,本讲稿共32页0 0 0定时到时,先重装初始值第22页,本讲稿共32页例2:用定时器T1定时,使P1.2端电平每隔1min变反一次 主频为12MHz。内循环20次第23页,本讲稿共32页例3:用定时器T1方式2计数,要求每计满100次,将P1.0端取反。外部计数信号由T1(P3.5)脚引入,每跳变一次计数器加1,由程序查询TF1。方式2具有初始值自动重装功能,初始化后不必再置初始值。第24页,本讲稿共32页例4:利用T0门控位测试INT0 引脚上出现的正脉冲宽度。已知主频 12MHz,将所测得的值存入片内71H单元,低位存入70H单元。设外部脉冲由INT0(P3.2)输入,T0工作于定时器方式1,GATE设为1。第25页,本讲稿共32页程序MOV TMOD,#09HMOV TL0,#00HMOV TH0,#00HMOV R0,#70HJB P3.2,$SETB TR0JNB P3.2,$JB P3.2,$CLR TR0MOV R0,TL0INC R0MOV R0,TH0SJMP$P3.21则原地踏步,否则顺序执行思考题:如果脉宽范围在065535us之间,如何通过八 段码显示器去显示第26页,本讲稿共32页例5:已知80C51单片机主频为6MHz,请利用定时器T0 和P1.2输出矩形脉冲,其波形如下:第27页,本讲稿共32页MOV TMOD,#02HMOV TH0,#0E7HMOV TL0,#0E7HSETB TR0SETB P1.2MOV R0,#7JBC TF0,REPAJMP DELCLR P1.2DJNZ R0,DELAJMP L1L1:DEL:REP:第28页,本讲稿共32页作业:在80C51单片机中,主频为12MHz,编程使P1.0 和P1.1分别输出周期为2ms和500us的方波。第29页,本讲稿共32页硬件实验:编程完成以下动作第30页,本讲稿共32页 ORG 0000HShou:MOV R3,#10 MOV R2,#8 MOV TH1,#3CH MOV TL1,#0B0H MOV TMOD,#10H MOV A,#0FEHNEXT:SETB TR1 MOV P1,AYUAN:JBC TF1,L2 SJMP YUANL2:DJNZ R3,YUANL1:MOV TH1,#3CH MOV TL1,#0B0H RL A MOV R3,#10 DJNZ R2,NEXT CLR TR1 MOV P1,#0FFH MOV R3,#10 MOV R2,#8 MOV TH1,#3CH MOV TL1,#0B0H MOV TMOD,#10H MOV A,#7FH SETB TR1NEXT1:MOV P0,AYUAN1:JBC TF1,L21 SJMP YUAN1L21:DJNZ R3,YUAN1L11:MOV TH1,#3CH MOV TL1,#0B0H RR A MOV R3,#10 DJNZ R2,NEXT1 CLR TR1 MOV P0,#0FFH AJMP ShouP1.0 P0.0硬件实验:编程完成以下动作第31页,本讲稿共32页 ORG 0000H LJMP 2000H ORG 2000H MOV 50H,#8 MOV A,#0FEHNEXT1:MOV P1,A PUSH A ACALL YANSHI POP A RL A DJNZ 50H,NEXT1 MOV A,#0FFH MOV P1,A MOV A,#7FH MOV 50H,#8NEXT2:MOV P0,A PUSH A ACALL YANSHI POP A RR A DJNZ 50H,NEXT2 MOV P0,#0FFH MOV A,#0FEH MOV 50H,#8 AJMP NEXT1YANSHI:MOV TH1,#3CH MOV TL1,#0B0H MOV TMOD,#10H MOV R1,#10 SETB TR1DENG:JBC TF1,JIXU SJMP DENGJIXU:DJNZ R1,DENG RET第32页,本讲稿共32页