- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
06第六章 MCS-定时器/计数器 6.1 51的定时/计数器 6.2 定时器/计数器的工作方式 6.3定时器/计数器的应用 2个16位定时器/计数器 ——(52系列有3个16位Timer) 定时器:对片内机器时钟(周期方波)进行计数 计数器:对Tx引脚输入的负脉冲进行计数 与Timer工作有关的特殊功能寄存器: TCON 和 TMOD 6.5.1 定时/计数器概述 6.1 51的定时/计数器 Timer的2个特殊功能寄存器(TCON,TMOD) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 一、定时器控制寄存器TCON (88H) TFx: Timer0/1计数溢出标志位。 =1 计数溢出; =0 计数未满TFx标志位 可用于申请中断或供CPU查询。 在进入中断服务程序时会自动清零;但在 查询方式时必须软件清零。 TRx: Timer0/1运行控制位。 =1 启动计数; =0 停止计数 6.5.2 定时/计数控制 TR0/TR1:Timer0/1运行控制位: TR0/TR1 =0 时,Timer0/1停止计数 TR0/TR1 =1 时,Timer0/1启动计数 定时器T0/T1 中断申请过程 ? 在已经开放T0/T1中断允许且已被启动的前提下: T0/T1加满溢出时 TF0/TF1标志位自动置“1” ? 检测到TCON中TF0/TF1变“1”后,将产生指令: LCALL 000BH/LCALL 001BH 执行中断服务程序, ? TF0/TF1标志位会自动清“0”,以备下次中断申请。 定时/计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负脉冲进行加法计数 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TCON (88H) GATE C / T M1 M0 GATE C / T M1 M0 二、定时器方式寄存器TMOD (89H) T1 T0 M1,M0:工作方式定义位 ( 定义4 种方式 ): C/T :计数器/定时器选择位 = 1 外部事件计数器。对Tx引脚的负脉冲计数; = 0 片内时钟定时器。对机器周期脉冲计数定时 0 0:13位 Timer——用它无益,不要记它! 0 1:16位 Timer——经常用到 1 0:可自动重装的 8位 Timer——经常用到 1 1:T0 分为2个8位 Timer;T1 此时不工作 ——因为没有带来甚麽好处,几乎无用 GATE C / T M1 M0 GATE C / T M1 M0 T1 T0 GATE门控位: Timer可由软件与硬件两者控制 ? GATE = 0 ——普通用法 Timer的启/停由软件对TRx位写“1”/“0”控制 (89H) ? GATE = 1 ——门控用法 Timer的启/停由软件对TRx位写“1”/“0” 和在INTx引脚上出现的信号的高/低共同控制 6.2.1工作方式1 INTx端 振荡器 ?12 TLx THx (8位) (8位) TFx 申请中断 Tx端 TRx位 GATE位 ≥1 C/T=0 C/T=1 控制 =1开关接通 或门 与门 6.2 定时器的工作方式及 应用 一、工作方式1的结构图 ? THx/TLx赋初值:THx赋高8位,TLx赋低8位 二、工作方式1 的编程要点: ? TMOD选方式: 写“M1,M0”=01 b 选方式1 ? 若不用门控位,直接用软件写TRx控制启/停 ? 若使用门控位,先置位TRx,然后由INTx端 的高/低电平来控制其启/停 ? 若要允许中断,还须先置位ETx、EA等中断 允许控制位,并编写中断服务程序 ? 若不用中断,可查询“计数溢出标志TFx” 的方式工作,但溢出标志TFx须软件清0 分析:已知fosc = 6MHz 则: (振荡周期)1Tc=1/6MHz (机器周期)1Tm=12Tc=12/6MHz=2?S ? 粗略地说:Tmin ? 2?S 16位定时器最大数值为:216=65536=0FFFFH+1 故选择方式 1 工作可以得到: ? Tmax = 65536?2 = 131072?S=131.072mS 若晶振频率为6MHz,计算单片机的最小与最大定时时间: 例1 分析:已知fosc = 6MHz 则:
文档评论(0)