第六章MCS-定时器计数器-精品文档资料.ppt

上传人:安*** 文档编号:53445842 上传时间:2022-10-26 格式:PPT 页数:21 大小:404KB
返回 下载 相关 举报
第六章MCS-定时器计数器-精品文档资料.ppt_第1页
第1页 / 共21页
第六章MCS-定时器计数器-精品文档资料.ppt_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《第六章MCS-定时器计数器-精品文档资料.ppt》由会员分享,可在线阅读,更多相关《第六章MCS-定时器计数器-精品文档资料.ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第六章第六章 MCS-MCS-定时器定时器/计数器计数器6.1 516.1 51的定时的定时/计数器计数器6.2 6.2 定时器定时器/计数器的工作方式计数器的工作方式6.36.3定时器定时器/计数器的应用计数器的应用2个16位定时器/计数器 (52系列有3个16位Timer)定时器:对片内机器时钟(周期方波)进行计数计数器:对Tx引脚输入的负脉冲进行计数与Timer工作有关的特殊功能寄存器:TCON 和 TMOD6.5.1 6.5.1 定时定时/计数器概述计数器概述6.1 516.1 51的定时的定时/计数器计数器Timer的2个特殊功能寄存器(TCON,TMOD)TF1 TR1 TF0 T

2、R0 IE1 IT1 IE0 IT0一、定时器控制寄存器一、定时器控制寄存器TCONTCON (88H)(88H)TFxTFx:Timer0/1:Timer0/1计数溢出标志位。计数溢出标志位。=1=1 计数溢出计数溢出;=0=0 计数未满计数未满TFxTFx标志位标志位 可用于可用于申请中断申请中断或或供供CPUCPU查询查询。在进入中断服务程序时会自动清零;但在在进入中断服务程序时会自动清零;但在 查询方式时必须软件清零。查询方式时必须软件清零。TRxTRx:Timer0/1:Timer0/1运行控制位。运行控制位。=1=1 启动计数;启动计数;=0=0 停止计数停止计数6.5.2 6.5

3、.2 定时定时/计数控制计数控制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/T

4、F1变变“1 1”后后,将产生指令:将产生指令:LCALL 000BH/LCALL 001BH LCALL 000BH/LCALL 001BH 执行中断服务程序执行中断服务程序,TF0/TF1TF0/TF1标志位会自动清标志位会自动清“0 0”,以备下次中断申请。以备下次中断申请。定时定时/计数器可按片内机器周期定时,也可对由计数器可按片内机器周期定时,也可对由T0/T1T0/T1引脚输入一个负脉冲进行加法计数引脚输入一个负脉冲进行加法计数TF1TF1 TR1 TR1 TF0TF0 TR0 TR0 IE1 IT1 IE0 IT0IE1 IT1 IE0 IT0TCON TCON(88H)(88H

5、)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位位 Time

6、rTimer经常用到经常用到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门控位门控位:Timer:Timer可由软件与硬件两者控制可由软件与硬件两者控制 GATE=0 GATE=0 普通用法普通用法 TimerTimer的启的启/停由软件对停由软件对TRxTRx位写位写“1 1”/“0 0”控制控制

7、(89H)(89H)GATE=1 GATE=1 门控用法门控用法 TimerTimer的启的启/停由软件对停由软件对TRxTRx位写位写“1 1”/“0 0”和在和在INTxINTx引脚上出现的信号的高引脚上出现的信号的高/低共同控制低共同控制6.2.16.2.1工作方式工作方式1 1INTxINTx端端振荡器振荡器 12TLx THx (8位位)(8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位11&C/T=0C/T=1控制控制=1开关接开关接通通或门或门与门与门6.2 6.2 定时器的工作方式及定时器的工作方式及 应用应用一、工作方式一、工作方式1 1的结构图

8、的结构图 THx/TLxTHx/TLx赋初值:赋初值:THxTHx赋高赋高8 8位,位,TLxTLx赋低赋低8 8位位二、工作方式二、工作方式1 1 的编程要点:的编程要点:TMODTMOD选方式:选方式:写写“M1,M0M1,M0”=01 b =01 b 选方式选方式1 1 若不用门控位若不用门控位,直接用软件写直接用软件写TRxTRx控制启控制启/停停 若使用门控位,先置位若使用门控位,先置位TRxTRx,然后由然后由INTxINTx端端 的高的高/低电平来控制其启低电平来控制其启/停停 若要允许中断,还须先置位若要允许中断,还须先置位ETxETx、EAEA等中断等中断 允许控制位,并编写

9、中断服务程序允许控制位,并编写中断服务程序 若不用中断,可查询若不用中断,可查询“计数溢出标志计数溢出标志TFxTFx”的方式工作,但溢出标志的方式工作,但溢出标志TFxTFx须软件清须软件清0 0分析:已知fosc =6MHz 则:(振荡周期)1Tc=1/6MHz (机器周期)1Tm=12Tc=12/6MHz=2S 粗略地说:Tmin 2S 16位定时器最大数值为:216=65536=0FFFFH+1 故选择方式 1 工作可以得到:Tmax=655362=131072S131.072mS若晶振频率为6MHz,计算单片机的最小与最大定时时间:例例1 1分析:已知fosc =6MHz 则:(机器

10、周期)1Tm=12Tc=12/6MHz=2S 100mS2 S=50000 16位定时器最大数值为:216=65536(=0FFFFH+1)故选择方式1工作可以满足要求。计算初值:6553650000=15536=3CB0H要求对T0产生100mS定时进行初始化。(晶振=6MHz)例例2 2GATE C/T M1 M0 GATE C/T M1 M0由分析得知:由分析得知:T0T0选择方式选择方式1 1,初值,初值=3CB0H=3CB0H X X X X 0 0 0 1X X X X 0 0 0 1初始化:初始化:MOV TMODMOV TMOD,#01H ;#01H ;选选 T0 T0 方式方

11、式 1 1 MOV TH0 MOV TH0,#3CH ;#3CH ;赋初值高赋初值高8 8位位 MOV TL0MOV TL0,#0B0H;#0B0H;赋初值低赋初值低8 8位位 SETB TR0 ;SETB TR0 ;启动启动 T0T0定时定时若需要定时器若需要定时器0 0产生中断还应当写如下语句:产生中断还应当写如下语句:SETB ET0 ;SETB ET0 ;开开T0T0中断允许中断允许 SETB EA ;SETB EA ;开总中断允许开总中断允许以及相应的中断服务程序。以及相应的中断服务程序。6.2.26.2.2工工作方式作方式2 2振荡器振荡器 12TLx(8位位)TFx申请申请中断中

12、断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11&C/T=0C/T=1控制控制=1开关接开关接通通或门或门与门与门THx(8位位)溢溢出出位位门开门开一、工作方式一、工作方式2 2的结构图的结构图 THx/TLxTHx/TLx赋相同初值赋相同初值 在在TLxTLx计数达到计数达到0FFH 0FFH 再加再加“1 1”时,时,TL0TL0 将溢出将溢出,进位位直接进入进位位直接进入“TFxTFx”去申请去申请 中断中断,同时打开三态门,使同时打开三态门,使THxTHx中的值中的值 自动重装自动重装(Copy)(Copy)进进TLxTLx二、工作方式二、工作方式 2 2

13、的编程的编程 TMODTMOD寄存器选方式:寄存器选方式:写写“M1M1,M0M0”=10 b =10 b 选中方式选中方式2 2 其他用法与各种方式其他用法与各种方式1 1完全相同完全相同分析:分析:foscfosc =6MHz=6MHz 1 1机器周期机器周期 =2=2 S S 1KHz 1KHz方波周期方波周期 =1=1 mSmS 半个方波周期半个方波周期 =500=500 S S 500uS 500uS2 2 uSuS=250 =250 若选择方式若选择方式2 2 工作工作,8,8位位定时器最大数值为:定时器最大数值为:2 28 8=256=0FFH+1 =256=0FFH+1 可以满

14、足要求。可以满足要求。计算初值:计算初值:256256250=6250=6从从P1.0 P1.0 脚输出频率脚输出频率=1KHz=1KHz方波。方波。设:晶振设:晶振=6MHz=6MHz。利用利用T1T1定时中断。定时中断。Th:半周期半周期T:周期周期例3 ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH;T1T1的中断矢量的中断矢量 CPL P1.0 CPL P1.0 ;中断服务:中断服务:P1.0P1.0取非取非 RETI RETI ;中断返回中断返回MAIN:MOV TMODMAIN:MOV TMOD,#20H#20H

15、 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:AJMP HERE HERE:AJMP HERE ;原地等待中断原地等待中断 ENDEND初初始始化化;选;选T1T1方式方式2 2;赋重装值赋重装值;赋初值赋初值;开;开T1T1中断中断;开总中断开总中断;启动启动T1T1T0T0:组织成组织成TL0TL0和和TH0TH0两个两个8 8位定时位定时/计数器计数器6.2.3 T6.2.3 Timerimer工作方式工作方式 3 3T1T1:不再是不

16、再是定时定时/计数器了计数器了 T1 T1 的的TR1TR1和和TF1TF1出借给出借给TH0TH0当控制位使用当控制位使用,剩下的剩下的TH1/TL1TH1/TL1寄存器只能当作普通寄存寄存器只能当作普通寄存 器用。器用。振荡器振荡器 12TL0(8位位)TF0申请申请中断中断T0T0端端TR0TR0位位GATEGATE位位INT0INT0端端11&C/T=0C/T=1控制控制=1开关接开关接通通或门或门与门与门TH0(8位位)TF1申请申请中断中断TR1TR1位位控制控制=1一、一、TimerTimer工作方式工作方式 3 3 结构:结构:T0T0成为双成为双 8 8位位Timer Tim

17、er T1T1不再有不再有TimerTimer功能功能 TF1TF1,TR1TR1出借给出借给TH0TH0 例例3 3长定时举例(设晶振长定时举例(设晶振=6MHz=6MHz,要定时要定时1 1秒)秒):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,#3CH;MOV TH1,#3CH;赋初值赋初值3CB0H=15536(3CB0H=1553

18、6(只能定只能定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:JBC F0,TIMEUP ;HERE:JBC F0,TIMEUP ;原地等待原地等待“1 1秒到秒到

19、”的标志的标志 F0F0 AJMP HERE AJMP HERETIMEUP:TIMEUP:(do something);(do something);定时定时1 1秒到了以后要做的事情秒到了以后要做的事情 AJMP HEREAJMP HERE中断中断服务服务在主在主程序程序中中6.36.3定时器定时器/计数器的应用计数器的应用长定时举例(续长定时举例(续):ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH AJMP TINT AJMP TINTMAIN:MAIN:TINTTINT:DJNZ 30H,RTN ;DJNZ 30H

20、,RTN ;若中断不到若中断不到1010次就返回次就返回 SETB F0 ;SETB F0 ;已经中断够已经中断够1010次了次了“置置1 1”标志标志位位 MOV 30H,#10 ;MOV 30H,#10 ;为下一个为下一个1 1秒定时做准备秒定时做准备RTN:MOV TH1,#3CH ;RTN:MOV TH1,#3CH ;再赋定时再赋定时100mS100mS的初值的初值3CB0H3CB0HMOV TL1,#0B0HMOV TL1,#0B0H RETI ;RETI ;中断返回中断返回 ENDEND将此例的中断服务改写在中断服务程序中将此例的中断服务改写在中断服务程序中:ORG 0000H O

21、RG 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

22、 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 0000HORG 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中中断断服服务务

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁