第六章 mcs-定时器计数器_第1页
第六章 mcs-定时器计数器_第2页
第六章 mcs-定时器计数器_第3页
第六章 mcs-定时器计数器_第4页
第六章 mcs-定时器计数器_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章MCS-定时器/计数器6.151的定时/计数器6.2 定时器/计数器的工作方式6.3 定时器/计数器的应用6.151的定时/计数器6.5.1 定时/计数器概述2个16位定时器/计数器(52系列有3个16位Timer)定时器:对片内机器时钟(周期方波)进行计数计数器:对Tx引脚输入的负脉冲进行计数与Timer工作有关的特殊功能寄存器:TCON 和 TMOD6.5.2 定时/计数控制Timer的2个特殊功能寄存器(TCON,TMOD)一、定时器控制寄存器TCON (88H)TFx: Timer0/1计数溢出标志位。=1 计数溢出;=0 计数未满TFx标志位可用于申请中断或供CPU查询。在进入

2、中断服务程序时会自动清零;但在查询方式时必须软件清零。TRx: Timer0/1运行控制位。=1 启动计数;=0 停止计数TF1TR1TF0TR0IE1IT1IE0IT0定时器T0/T1中断申请过程定时/计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负脉冲进行加法计数a 在已经开放T0/T1中断允许且已被启动的前提下:aT0/T1加满溢出时 TF0/TF1标志位自动置“1”a 检测到TCON中TF0/TF1变“1”后,将产生指令:LCALL 000BH/LCALL 001BH 执行中断服务程序,a TF0/TF1标志位会自动清“0”,以备下次中断申请。TCON (88H)TR0/T

3、R1:Timer0/1 运 行 控 制 位 : TR0/TR1 =0 时,Timer0/1停止计数TR0/TR1 =1 时,Timer0/1启动计数TF1TR1TF0TR0IE1IT1IE0IT0二、定时器方式寄存器TMOD(89H)T1T0M1,M0:工作方式定义位 ( 定义4 种方式 ):00110:13位 Timer用它无益,不要记它!1:16位 Timer经常用到0:可自动重装的 8位 Timer经常用到1:T0 分为2个8位 Timer;T1 此时不工作因为没有带来甚麽好处,几乎无用C/T :计数器/定时器选择位= 1 外部计数器。对Tx引脚的负脉冲计数;= 0 片内时钟定时器。对机

4、器周期脉冲计数定时GATEC / TM1M0GATEC / TM1M0(89H)T1T0GATE门控位: Timer可由软件与硬件两者控制a GATE = 0 普通用法Timer的启/停由软件对TRx位写“1”/“0”控制a GATE = 1 门控用法Timer的启/停由软件对TRx位写“1”/“0”和在INTx引脚上出现的信号的高/低共同控制GATEC / TM1M0GATEC / TM1M06.2 定时器的工作方式及应用6.2.1工作方式1一、工作方式1的结构图C/T=0申请中断C/T=1Tx端控制 =1开关接通TRx位&GATE1与门INTx端或门TFxTLTHx(8x(8位)位)位12

5、振荡器二、工作方式1 的编程要点:a THx/TLx赋初值:THx赋高8位,TLx赋低8位a TMOD选方式: 写“M1,M0”=01 b选方式1a 若不用门控位,直接用软件写TRx控制启/停a 若使用门控位,先置位TRx,然后由INTx端的高/低电平来控制其启/停a 若要允许中断,还须先置位ETx、EA等中断允许控制位,并编写中断服务程序a 若不用中断,可查询“计数溢出标志TFx” 的方式工作,但溢出标志TFx须软件清0例1若晶振频率为6MHz,计算单片机的最小与最大定时时间:分析:已知fosc = 6MHz 则:(振荡周期)1Tc=1/6MHz(机器周期)1Tm=12Tc=12/6MHz=

6、2mSa 粗略地说:Tmin 2mS16位定时器最大数值为:216=65536=0FFFFH+1故选择方式 1 工作可以得到:a Tmax = 655362 = 131072mS131.072mS例2要求对T0产生100mS定时进行初始化。(晶振=6MHz)分析:已知fosc = 6MHz 则:(机器周期)1Tm=12Tc=12/6MHz=2mS 100mS2 mS = 5000016位定时器最大数值为:216 = 65536 (=0FFFFH+1)故选择方式1工作可以满足要求。计算初值:6553650000=15536=3CB0H由分析得知:T0选择方式1,初值=3CB0HX X X X 0

7、 0 0 1初始化:MOVTMOD,#01H;选 T0 方式 1MOVTH0, #3CH;赋初值高8位MOVTL0, #0B0H ;赋初值低8位SETBTR0;启动 T0定时若需要定时器0产生中断还应当写如下语句:SETBET0;开T0中断允许SETBEA;开总中断允许以及相应的中断服务程序。GATEC / TM1M0GATEC / TM1M06.2.2工作方式2一、工作方式2的结构图C/T=0申请中断C/T=1Tx端溢出控制 =1开关接通TRx位位&门开GATE1与门INTx端或门THx (8位)TFxTLx (8位)位12振荡器二、工作方式 2 的编程 THx/TLx赋相同初值在TLx计数

8、达到0FFH 再加“1”时,TL0 将溢出,进位位直接进入“TFx”去申请中断,同时打开三态门,使THx中的值 自动重装(Copy)进TLx TMOD寄存器选方式:写“M1,M0” = 10 b 选中方式2 其他用法与各种方式1完全相同例3从P1.0 脚输出频率=1KHz方波。设:晶振=6MHz。利用T1定时中断。Th:半周期T:周期计算初值:256分析:fosc = 6MHz 1机器周期 = 2 mS1KHz方波周期 = 1 mS半个方波周期 =500mS 500uS2 uS = 250若选择方式2 工作,8位定时器最大数值为: 28 =256 =0FFH + 1可以满足要求。ORG 000

9、0HAJMPMAINORG001BH ;T1的中断矢量CPLP1.0;中断服务:P1.0取非RETI;中断返回;选T1方式2MAIN: MOVTMOD,#20H MOVTH0, #6初 ;赋重装值始 ;赋初值MOV SETB SETBTL0, #6 ET1EA化 ;开T1中断;开总中断;启动T1;原地等待中断SETBTR1HERE: AJMP HERE END6.2.3 Timer工作方式 3T0: 组织成TL0和TH0两个8位定时/计数器T1: 不再是定时/计数器了T1 的TR1和TF1出借给TH0当控制位使用, 剩下的TH1/TL1寄存器只能当作普通寄存器用。一、Timer工作方式 3 结

10、构:TR1位控制 =1申请中断12C/T=0申请中断C/T=1T0端控制 =1开关接通TR0位&GATE位INT0端1与门或门T0成为双 8位TimerT1不再有Timer功能TF1,TR1出借给TH0TF0TL0(8位)振荡器TF1TH0 (8位)6.3定时器/计数器的应用例3长定时举例(设晶振=6MHz,要定时1秒):ORG0000H;AJMPMAIN ORG001BHAJMPTINT;见下一页MAIN: MOVTMOD,#10H ;选T1方式1MOVTH1, #3CH ;赋初值3CB0H=15536(只能定100mS)MOVTL1,#0B0HMOV30H,#10;软件计数单元30H 初值

11、=10CLRF0 SETBET1;芯片复位时已经是“0”,此句可有可无;开T1中断SETBEA;开总中断中断SETBTR1;启动T1服务HERE: JBC F0,TIMEUP;原地等待“1秒到”的标志 F0 在主AJMP HERE程序TIMEUP:(do something) ;定时1秒到了以后要做的事情中AJMP HERE长定时举例(续):ORG0000HAJMPMAIN ORG001BHAJMPTINTMAIN:TINT:DJNZ 30H,RTN;若中断不到10次就返回SETB F0;已经中断够10次了“置1”标志位MOV30H,#10;为下一个1秒定时做准备RTN:MOVTH1,#3CH;再赋定时100mS的初值3CB0HMOV RETI ENDTL1,#0B0H;中断返回将此例的中断服务改写在中断服务程序中:ORG0000HAJMPMAIN ORG001BHAJMPTINT;见下一页MAIN: MOVTMOD,#10H ;选T1方式1MOVTH1,#3CH ;赋初值3CB0H=15536(只能定100mS)MOV MOV CLR SETB SETBTL1,#0B0H30H,#10;软件计数单元30H 初值=10 F0;芯片复位时已经是“0”,此句可有可无ET1 EA;开T1中断;开总中断SETBTR1;启动T1HERE: AJMP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论