单片机原理及应用课件(陈林林)第5章--定时计数器原理及其应用2资料.ppt
单片机原理及应用课件单片机原理及应用课件(陈林林陈林林)第第5 5章章-定时计数定时计数器原理及其应用器原理及其应用2 22 2个个1616位位定时器定时器/计数器计数器 (5252系列有系列有3 3个个1616位位Timer)Timer)定时器定时器:对片内机器时钟对片内机器时钟(周期方波周期方波)进行计数进行计数计数器计数器:对对TxTx引脚引脚输入的负脉冲进行计数输入的负脉冲进行计数与与TimerTimer工作有关的工作有关的特殊功能寄存器:特殊功能寄存器:TCON TCON 和和 TMODTMOD第五章 定时/计数器单片微机原理及应用教学课件单片微机原理及应用教学课件Timer的2个特殊功能寄存器(TCON,TMOD)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0定时器定时器控制控制寄存器寄存器TCON TCON(88H)(88H)TFxTFx:Timer0/1:Timer0/1计数溢出标志位。计数溢出标志位。=1=1 计数溢出计数溢出;=0=0 计数未满计数未满 TFxTFx标志位标志位可用于可用于申请中断申请中断或或供供CPUCPU查询查询。在进入中断服务程序时会自动清零;但在在进入中断服务程序时会自动清零;但在 查询方式时必须软件清零。查询方式时必须软件清零。TRxTRx:Timer0/1:Timer0/1运行控制位。运行控制位。=1=1 启动计数;启动计数;=0=0 停止计数停止计数单片微机原理及应用教学课件单片微机原理及应用教学课件TR0/TR1TR0/TR1:Timer0/1Timer0/1运行控制位运行控制位:TR0/TR1=0 TR0/TR1=0 时,时,Timer0/1Timer0/1停止计数停止计数 TR0/TR1=1 TR0/TR1=1 时,时,Timer0/1Timer0/1启动计数启动计数定时器T0/T1 中断申请过程 在已经开放在已经开放T0/T1T0/T1中断允许且已被启动的前提下:中断允许且已被启动的前提下:T0/T1T0/T1加满溢出加满溢出时时 TF0/TF1TF0/TF1标志位自动置标志位自动置“1 1”检测到检测到TCONTCON中中TF0/TF1TF0/TF1变变“1 1”后后,将产生指令:将产生指令:LCALL 000BHLCALL 000BH/LCALL 001BHLCALL 001BH 执行中断服务程序执行中断服务程序,TF0/TF1TF0/TF1标志位会自动清标志位会自动清“0 0”,以备下次中断申请。以备下次中断申请。定时定时/计数器可按片内计数器可按片内机器周期机器周期定时,也可对由定时,也可对由T0/T1T0/T1引脚输入一个引脚输入一个负脉冲负脉冲进行加法计数进行加法计数TF1 TF1 TR1TR1 TF0 TF0 TR0TR0 IE1 IT1 IE0 IT0IE1 IT1 IE0 IT0TCON TCON(88H)(88H)单片微机原理及应用教学课件单片微机原理及应用教学课件GATE C/T M1 M0 GATE C/T M1 M0定时器定时器方式方式寄存器寄存器TMOD TMOD(89H)(89H)T1T1T0T0M1,M0M1,M0:工作方式定义位工作方式定义位 (定义定义4 4 种方式种方式 ):):C/T C/T:计数器计数器/定时器选择位定时器选择位 =1=1 外部事件外部事件计数器计数器。对。对TxTx引脚的引脚的负脉冲负脉冲计数;计数;=0=0 片内时钟片内时钟定时器定时器。对。对机器周期脉冲机器周期脉冲计数定时计数定时0 00 0:1313位位 TimerTimer用它无益用它无益,不要记它!不要记它!0 10 1:1616位位 TimerTimer经常用到经常用到1 01 0:可自动重装的:可自动重装的 8 8位位 TimerTimer经常用到经常用到1 11 1:T0 T0 分为分为2 2个个8 8位位 TimerTimer;T1 T1 此时不工作此时不工作 因为没有带来甚麽好处,因为没有带来甚麽好处,几乎几乎无无用用单片微机原理及应用教学课件单片微机原理及应用教学课件GATE C/T M1 M0 GATE C/T M1 M0T1T0GATEGATE门控位门控位:TimerTimer可由软件与硬件两者控制可由软件与硬件两者控制 GATE=0 GATE=0 普通用法普通用法 TimerTimer的的启启/停停由由软件软件对对TRxTRx位写位写“1 1”/“0 0”控制控制定时器定时器方式方式寄存器寄存器TMODTMOD(续)(续)(89H)(89H)GATE=1 GATE=1 门控用法门控用法 TimerTimer的的启启/停停由由软件软件对对TRxTRx位写位写“1 1”/“0 0”和和在在INTxINTx引脚引脚上出现的信号的上出现的信号的高高/低低共同控制共同控制单片微机原理及应用教学课件单片微机原理及应用教学课件阅读书上定时器应用程序举例:P.140P.140例例1 1:晶振晶振=6MHz,=6MHz,估算估算TimerTimer的定时时长的定时时长 (max,minmax,min)P.141P.141例例2 2:要求对要求对T0T0产生产生100mS100mS定时进行初始定时进行初始 化。化。(晶振晶振=6MHz=6MHz)P.141P.141例例3 3:产生产生T=2mST=2mS方波方波(改为方式改为方式2)2)P.142P.142例例4 4:请改为方式请改为方式1 1或或2 2再阅读再阅读,务请大家务请大家 不要陷入方式不要陷入方式0 0的困惑之中!的困惑之中!P.143P.143例例5 5:定时定时1 1 秒秒P.144P.144例例6 6:方式方式3 3(双(双8 8位定时器)的应用位定时器)的应用单片微机原理及应用教学课件单片微机原理及应用教学课件定时器结构与工作方式 P.139工作方式工作方式1 1:1616位的定时位的定时/计数器计数器振荡器振荡器 12TLx THx (8位位)(8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11&C/T=0C/T=1控制控制=1开关接通开关接通或门或门与门与门单片微机原理及应用教学课件单片微机原理及应用教学课件 THx/TLxTHx/TLx赋初值赋初值:THxTHx赋高赋高8 8位,位,TLxTLx赋低赋低8 8位位工作方式工作方式1 1 的编程要点的编程要点:TMODTMOD选方式选方式:写写“M1,M0M1,M0”=01=01 b b 选方式选方式1 1 若不用门控位若不用门控位,直接用软件写直接用软件写TRxTRx控制启控制启/停停 若使用门控位,先置位若使用门控位,先置位TRxTRx,然后由,然后由INTxINTx端端 的的高高/低电平低电平来控制其启来控制其启/停停 若要允许若要允许中断中断,还须先置位,还须先置位ETxETx、EAEA等中断等中断 允许控制位,并编写允许控制位,并编写中断服务中断服务程序程序 若不用中断,可若不用中断,可查询查询“计数溢出标志计数溢出标志TFxTFx”的方式工作,但溢出标志的方式工作,但溢出标志TFxTFx须软件清须软件清0 0单片微机原理及应用教学课件单片微机原理及应用教学课件定时器(方式1)应用程序举例:分析分析:已知:已知foscfosc =6MHz=6MHz 则:则:(振荡周期)(振荡周期)1Tc=1/6MHz1Tc=1/6MHz (机器周期)(机器周期)1Tm=12Tc=12/6MHz=1Tm=12Tc=12/6MHz=2 2 S S 粗略地说:粗略地说:Tmin Tmin 2 2 S S 16 16位定时器最大数值为:位定时器最大数值为:2 21616=65536=0FFFFH+1=65536=0FFFFH+1 故选择故选择方式方式 1 1 工作可以得到:工作可以得到:Tmax=65536Tmax=65536 2=1310722=131072 S S131.072mS131.072mS例例1 1:若晶振频率为:若晶振频率为6MHz6MHz,计算单片机的最小,计算单片机的最小与最大与最大定时时间:定时时间:单片微机原理及应用教学课件单片微机原理及应用教学课件分析分析:已知:已知foscfosc =6MHz=6MHz 则:则:(机器周期)(机器周期)1Tm=12Tc=12/6MHz=21Tm=12Tc=12/6MHz=2 S S 100mS2 100mS2 S=S=5000050000 16 16位定时器最大数值为:位定时器最大数值为:2 216 16=6553665536(=0FFFFH+1)(=0FFFFH+1)故选择方式故选择方式1 1工作可以满足要求。工作可以满足要求。计算计算初值初值:655366553650000=15536=50000=15536=3CB03CB0H H例例2 2:要求对:要求对T0T0产生产生100mS100mS定时进行初始化。定时进行初始化。(晶振晶振=6MHz)=6MHz)定时器(方式1)应用程序举例:单片微机原理及应用教学课件单片微机原理及应用教学课件GATE C/T M1 M0 GATE C/T M1 M0定时器方式定时器方式寄存器寄存器TMOD由分析得知:由分析得知:T0T0选择方式选择方式1 1,初值,初值=3CB0H=3CB0H X X X X 0 0 X X X X 0 0 0 10 1初始化:初始化:MOV TMODMOV TMOD,#01H01H ;选选 T0 T0 方式方式 1 1 MOV TH0MOV TH0,#3CH ;3CH ;赋初值高赋初值高8 8位位 MOV TL0MOV TL0,#0#0B0H;B0H;赋初值低赋初值低8 8位位 SETB TR0SETB TR0 ;启动启动 T0T0定时定时若需要定时器若需要定时器0 0产生中断产生中断还应当写如下语句:还应当写如下语句:SETB ET0SETB ET0 ;开开T0T0中断允许中断允许 SETB EASETB EA ;开总中断允许开总中断允许以及相应的以及相应的中断服务程序中断服务程序。单片微机原理及应用教学课件单片微机原理及应用教学课件工作方式工作方式2 2:8 8 位自动重装的定时位自动重装的定时/计数器计数器振荡器振荡器 12TLx(8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11&C/T=0C/T=1控制控制=1开关接通开关接通或门或门与门与门THx(8位位)溢溢出出位位门开门开单片微机原理及应用教学课件单片微机原理及应用教学课件 THx/TLx THx/TLx赋相同初值赋相同初值 在在TLxTLx计数达到计数达到0FF0FFH H 再加再加“1 1”时,时,TL0TL0 将溢出将溢出,进位位进位位直接进入直接进入“TFxTFx”去申请去申请 中断中断,同时同时打开三态门打开三态门,使,使THxTHx中的值中的值 自动自动重装重装(Copy)(Copy)进进TLxTLx工作方式工作方式 2 2 的编程:的编程:TMOD TMOD寄存器选方式:寄存器选方式:写写“M1M1,M0M0”=1010 b b 选中方式选中方式2 2 其他用法与各种方式其他用法与各种方式1 1完全相同完全相同单片微机原理及应用教学课件单片微机原理及应用教学课件分析:分析:foscfosc =6MHz=6MHz 1 1机器周期机器周期 =2=2 S S 1KHz1KHz方波周期方波周期 =1=1 mS mS 半半个方个方波波周期周期 =500=500 S S 500uS2 uS=250 500uS2 uS=250 若选择方式若选择方式2 2 工作工作,8,8位定位定时器最大数值为:时器最大数值为:2 28 8=256=0FFH+1 =256=0FFH+1 可以满足要求。可以满足要求。计算初值计算初值:256256250=250=6 6P141P141例例3(3(改改):):从从P1.0 P1.0 脚输出频率脚输出频率=1KHz=1KHz方波。方波。设:晶振设:晶振=6MHz=6MHz。利用。利用T1T1定时中断。定时中断。Th:半周期:半周期T:周期:周期定时器(方式2)应用程序举例:单片微机原理及应用教学课件单片微机原理及应用教学课件 ORG 0000HORG 0000H AJMP AJMP MAINMAIN ORG 001BH ORG 001BH;T1T1的中断矢量的中断矢量 CPL P1.0 CPL P1.0 ;中断服务:中断服务:P1.0P1.0取非取非 RETI RETI ;中断返回;中断返回MAIN:MAIN:MOV TMOD MOV TMOD,#20H#20H MOV TH0 MOV TH0,#6#6 MOV TL0 MOV TL0,#6#6 SETB ET1 SETB ET1 SETB EA SETB EA SETB TR1 SETB TR1 HERE:HERE:AJMP AJMP HERE HERE ;原地等待中断;原地等待中断 ENDEND初初始始化化;选;选T1T1方式方式2 2;赋;赋重装值重装值;赋;赋初值初值;开;开T1T1中断中断;开总中断;开总中断;启动;启动T1T1单片微机原理及应用教学课件单片微机原理及应用教学课件T0T0:组织成组织成TL0TL0和和TH0TH0两个两个8 8位定时位定时/计数器计数器TimerTimer工作方式工作方式 3 3 几乎无用几乎无用T1T1:不再是不再是定时定时/计数器了计数器了 T1T1 的的TR1TR1和和TF1TF1出借给出借给TH0TH0当控制位使用当控制位使用,剩下的剩下的TH1/TL1TH1/TL1寄存器只能当作普通寄存寄存器只能当作普通寄存 器用。器用。单片微机原理及应用教学课件单片微机原理及应用教学课件振荡器振荡器 12TL0(8位位)TF0申请申请中断中断T0T0端端TR0TR0位位GATEGATE位位INT0INT0端端11&C/T=0C/T=1控制控制=1开关接通开关接通或门或门与门与门TH0(8位位)TF1申请申请中断中断TR1TR1位位控制控制=1TimerTimer工作方式工作方式 3 3 结构:结构:T0T0成为双成为双 8 8位位Timer Timer T1T1不再有不再有TimerTimer功能功能 TF1TF1,TR1TR1出借给出借给TH0TH0 单片微机原理及应用教学课件单片微机原理及应用教学课件长定时举例(长定时举例(设设晶振晶振=6MHz6MHz,要定时,要定时1 1秒秒):ORG 0000H ORG 0000H ;P.143;P.143例例5 5 AJMPAJMP MAIN MAIN ORG 001BH ORG 001BH AJMP AJMP TINT ;TINT ;见下一页见下一页MAIN:MAIN:MOV TMOD,#10H;MOV TMOD,#10H;选选T1T1方式方式1 1 MOV TH1,#3CH;MOV TH1,#3CH;赋赋初值初值3CB0H=155363CB0H=15536(只能定只能定100mS)100mS)MOV TL1 MOV TL1,#0B0H#0B0H MOV MOV 30H30H,#10#10 ;软件计数单元软件计数单元30H 30H 初值初值=10=10 CLR F0 ;CLR F0 ;芯片复位时已经是芯片复位时已经是“0 0”,此句可有可,此句可有可无无 SETB ET1 ;SETB ET1 ;开开T1T1中断中断 SETB EA ;SETB EA ;开总中断开总中断 SETB TR1 ;SETB TR1 ;启动启动T1 T1 HEREHERE:JBC:JBC F0,F0,TIMEUP ;TIMEUP ;原地等待原地等待“1 1秒到秒到”的标志的标志 F0F0 AJMP AJMP HEREHERETIMEUP:TIMEUP:(do something);(do something);定时定时1 1秒到了以后要做的事情秒到了以后要做的事情 AJMP AJMP HEREHERE中断中断服务服务在主在主程序程序中中单片微机原理及应用教学课件单片微机原理及应用教学课件长定时举例(续)长定时举例(续):ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH AJMP TINT AJMP TINTMAIN:MAIN:TINTTINT:DJNZ 30H,DJNZ 30H,RTNRTN ;若中断不到若中断不到1010次就返回次就返回 SETB F0 ;SETB F0 ;已经中断够已经中断够1010次了次了“置置1 1”标志位标志位 MOV 30H,#10 MOV 30H,#10 ;为下一个为下一个1 1秒定时做准备秒定时做准备RTN:RTN:MOV TH1,#3CH MOV TH1,#3CH ;再赋定时再赋定时100mS100mS的初值的初值3CB0H3CB0HMOV TL1,#0B0HMOV TL1,#0B0H RETI RETI ;中断返回中断返回 ENDEND单片微机原理及应用教学课件单片微机原理及应用教学课件将此例的中断服务改写将此例的中断服务改写在中断服务程序中在中断服务程序中:ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH AJMP TINT ;AJMP TINT ;见下一页见下一页MAIN:MOV TMOD,#10H;MAIN:MOV TMOD,#10H;选选T1T1方式方式1 1 MOV TH1 MOV TH1,#3CH;#3CH;赋初值赋初值3CB0H=15536(3CB0H=15536(只能定只能定100mS)100mS)MOV TL1 MOV TL1,#0B0H#0B0H MOV 30H MOV 30H,#10 ;#10 ;软件计数单元软件计数单元30H 30H 初值初值=10=10 CLR F0 ;CLR F0 ;芯片复位时已经是芯片复位时已经是“0 0”,此句可有可无,此句可有可无 SETB ET1 ;SETB ET1 ;开开T1T1中断中断 SETB EA ;SETB EA ;开总中断开总中断 SETB TR1 ;SETB TR1 ;启动启动T1 T1 HERE:AJMP HERE ;HERE:AJMP HERE ;原地等待中断原地等待中断单片微机原理及应用教学课件单片微机原理及应用教学课件长定时举例(续)长定时举例(续):ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH AJMP TINT AJMP TINTMAIN:MAIN:TINTTINT:DJNZ 30H,RTN ;DJNZ 30H,RTN ;若中断不到若中断不到1010次就返回次就返回 MOV 30H,#10 MOV 30H,#10 ;为下一个为下一个1 1秒定时做准备秒定时做准备(do something);(do something);定时定时1 1秒到了以后要做的事情秒到了以后要做的事情)RTN:MOV TH1,#3CH RTN:MOV TH1,#3CH ;再赋初值再赋初值MOV TL1,#0B0HMOV TL1,#0B0H RETI RETI ;中断返回中断返回 ENDEND中中断断服服务务单片微机原理及应用教学课件单片微机原理及应用教学课件定时器小结:定时器小结:(2 2个个1616位加法计数器)位加法计数器)运行运行/停止停止由由TRxTRx位控制,位控制,(当当GATE=1GATE=1时:时:由由TRxTRx位和位和TxTx引脚上的信号共同控制引脚上的信号共同控制)工作方式工作方式由由TMODTMOD决定决定;计数计数/定时定时由由C/TC/T位决定位决定 工作方式工作方式0 0(1313位)位)永远不用永远不用 工作方式工作方式3 3(T0T0拆为双拆为双8 8位)位)几乎几乎无无用用 工作方式工作方式1 1(1616位)位)经常用到经常用到 工作方式工作方式2 2(8 8位自动重装)位自动重装)经常用到经常用到从初值按机器周期或外部脉冲递加,溢出位从初值按机器周期或外部脉冲递加,溢出位 TFxTFx申请中断申请中断;中断允许中断允许由由ETxETx位和位和EAEA位控制,位控制,单片微机原理及应用教学课件单片微机原理及应用教学课件OVER!单片微机原理及应用教学课件单片微机原理及应用教学课件结束结束