《定时器及应用》PPT课件.ppt_第1页
《定时器及应用》PPT课件.ppt_第2页
《定时器及应用》PPT课件.ppt_第3页
《定时器及应用》PPT课件.ppt_第4页
《定时器及应用》PPT课件.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第六章定时器及应用 张文hyy122122 教学内容 基本要求 掌握计数 定时器的应用及编程方法重点 定时器 计数器工作模式及应用难点 定时器 计数器的应用编程 定时器 计数器的结构及功能定时器 计数器的控制定时器 计数器的4种工作模式及其应用定时器 计数器的编程方法 6 1定时器概述 89C51单片机内有两个16位定时器 计数器 即定时器0 T0 和定时器1 T1 都是16位加1计数器 功能 定时和事件计数 可用于定时控制 延时 对外部件计数和检测等场合 T0由两个8位特殊功能寄存器TH0和TL0构成 T1由TH1和TL1构成 每个定时器都可由软件设置为定时工作方式或计数工作方式 由特殊功能寄存器TMOD和TCON所控制 定时器工作不占用CPU时间 除非定时器 计数器溢出 才能中断CPU的当前操作 定时器 计数器有四种工作模式 定时器对89C51片内振荡器输出经12分频后的脉冲进行计数 即每个机器周期使定时器 T0或T1 的数值加1直至计满溢出 当89C51采用12MHz晶振时 一个机器周期为1 s 计数频率为1MHz 定时工作方式 若89C51采用6MHz晶振 计数频率为多少 通过引脚T0 P3 4 和T1 P3 5 对外部脉冲信号计数 当输入脉冲信号产生由1至0的下降沿时计数器的值加1 CPU检测一个1至0的跳变需要两个机器周期 故最高计数频率为振荡频率的1 24 为了确保某个电平在变化之前被采样一次 要求电平保持时间至少是一个完整的机器周期Tcy 计数工作方式 定时器共有两个控制字 由软件写TMOD和TCON两个8位寄存器 用来设置T0和T1的工作模式和控制功能 单片机系统复位时 两个寄存器所有位都被清0 6 2定时器的控制 TMOD用于控制T0和T1的工作模式 其各位的定义格式如下图所示 一 工作模式寄存器 TMOD 89H TMOD不能位寻址 只能字节寻址 TMODGATEC TM1M0用于T0工作模式 89H 工作模式 00 模式001 模式110 模式211 模式3 功能选择 1 计数0 定时 选通控制 1 受 INT1控制0 不受 INT1控制 M1 M0形成四种编码控制四种工作模式 C T 定时器 计数器方式选择位C T 0 定时方式计数片内脉冲 即对机器周期计数 周期确定 C T 1 计数方式计数片外脉冲 即对通过P3 4 P3 5来自片外的计数信号计数 周期不定 GATE 门控位GATE 0 软件使TR0 TR1置1 即可启动定时器GATE 1 只有INT0 INT1输入信号为高电平 软件使TR0 TR1置1 才可启动定时器定时器的使用 设置工作方式 置初值 启动 溢出中断 二 控制寄存器 TCON 88H TCON各位的作用如下 TF1 TCON 7 T1溢出标志位 有溢出 TF1 1 TF0 TCON 5 T0溢出标志位 有溢出 TF0 1 TR1 TCON 6 T1运行控制位 TR1 1 启动T1 TR0 TCON 4 T0运行控制位 TR0 1 启动T0 IE1 IT1 IE0和IT0 TCON 3 TCON 0 外部中断INT1 INT0请求及请求方式控制位 89C51复位后 TCON的所有位被清0 6 3定时器的四种模式及应用 89C51单片机的定时 计数器T0和T1的四种工作模式 在模式0 模式1和模式2时 T0和T1的工作模式相同 在模式3时 两个定时器的工作模式不同 一 模式1及其应用 一 模式1的逻辑电路结构 以T0为例 模式1对应的是一个16位的定时器 计数器 在这种模式下 寄存器 TH0和TL0 以全16位参与计数 TH0占高8位 TL0为低8位 当TL0计数溢出时 向TH0进位 TH0溢出时 向中断标志TF0进位 硬件置位TF0 并申请中断 二 模式1工作特点 二 模式1工作特点 计100个机器周期数所需的时间为多少 所接晶振为12MHz 定时时间为 t 计数值 机器周期 216 T0初值 振荡周期 12 如何实现定时 如何得到所需的定时时间 最大可计数多少个机器周期 利用溢出中断 并给出相应的计数初值 二 模式1工作特点 例1 设晶振频率为12MHz 试计算定时器T0工作于模式1时的最大定时时间T 解 当T0处于工作模式1时 加1计数器为16位 定时时间为 t 216 T0初值 振荡周期 12最大定时时间为 T0初值 0 时 所以 T 216 振荡周期 12 例2 用定时器T1产生一个50Hz的方波 由P1 1输出 fosc 6MHz 解 1 确定定时器T1初值 方波周期T 1 50 0 02s 20ms 用T1定时10ms 时间到P1 1引脚电平取反 TH1 ECH TL1 78H 解 2 确定工作模式寄存器TMOD的值 定时器T1工作于模式1的定时器工作方式 高四位 GATE 0 C T 0 M1M0 01 低四位 取0 TMOD 00010000B 10H 3 编程 查询方式 includevoidmain TMOD 0 x10 TH1 0 xec TL1 0 x78 TR1 1 P1 1 1 while 1 if TF1 1 TF1 0 TH1 0 xec TL1 0 x78 P1 1 P1 1 3 编程 定时器溢出中断方式 includevoidmain TMOD 0 x10 TH1 0 xec TL1 0 x78 ET1 1 EA 1 TR1 1 P1 1 1 while 1 voidtimer 1 interrupt3 TH1 0 xec TL1 0 x78 P1 1 P1 1 思考 设定时器T0用于定时10ms 晶振为6MHz 编程实现 P1 0输出周期为40ms 高电平宽为10ms 低电平宽为30ms的矩形波 如何编程 例3 设定时器T0选择工作模式1的计数器工作方式 其计数器初值为FFFFH 问此时定时器T0的实际用途是什么 解 因其初值为FFFFH 只要随机外来一脉冲即可溢出 向CPU申请中断 故这一内部中断源实质上已作为外部中断源使用 因此此定时器T0并不用于定时或计数 该模式对应的是一个13位的定时器 计数器 在这种模式下 以T0为例 16位寄存器 TH0和TL0 只用了13位 其中TL0的高3位未用 其余5位为整个13位的低5位 TH0占高8位 当TL0的低5位溢出时 向TH0进位 TH0溢出时 向中断标志TF0进位 硬件置位TF0 并申请中断 二 模式0及其应用 二 模式0及其应用 用于定时工作方式时 定时时间为 t 213 T0初值 振荡周期 12用于计数工作方式时 计数长度为 213 T0初值 个外部脉冲 例4 设晶振频率为12MHz 试计算定时器T0工作于模式0时的最大定时时间T 解 当T0处于工作模式0时 加1计数器为13位 定时时间为 t 213 T0初值 振荡周期 12最大定时时间为 T0初值 0 时 所以 模式2把TL0 或TL1 配置成一个可以自动重装载的8位定时器 计数器 逻辑电路结构如下图 三 模式2及其应用 TL0计数溢出时 不仅使溢出中断标志位TF0置1 而且还自动把TH0中的内容重新装载到TL0中 在程序初始化时 TL0和TH0由软件赋予相同的初值 用于定时工作方式时 定时时间为 t 28 TL0初值 机器周期 用于计数工作方式时 计数长度为 28 TL0初值 外部脉冲的个数 该模式可省去软件中重装常数的语句 并可产生相当精确的定时时间 适合于作串行口波特率发生器 例5 利用定时器T1的模式2对外部信号计数 要求每计满100次 将P1 0端取反 解 1 选择模式外部信号由T1 P3 5 引脚输入 每发生一次负跳变计数器加1 每输入100个脉冲 计数器发生溢出中断 中断服务程序将P1 0取反一次 T1计数工作方式模式2的模式字为 TMOD 60H T0不用时 TMOD的低4位可任取 但不能进入模式3 一般取0 2 计算T1的计数初值X 28 100 156 9CH因此 TL1的初值为9CH 重装初值寄存器TH1 9CH 3 程序清单 includemain TMOD 0 x60 TH1 0 x9c TL1 0 x9c ET1 1 EA 1 TR1 1 while 1 voidtimer 1 interrupt3 P1 1 P1 1 四 模式3及其应用 工作模式3对T0和T1大不相同 若将T0设置为模式3 TL0和TH0被分成为两个相互独立的8位计数器 逻辑图如下图 TL0 用原T0的各控制位 引脚和中断源 即C T GATE TR0 TF0 T0 P3 4 引脚 INT0 P3 2 引脚 TL0可工作在定时器方式和计数器方式 其功能和操作与模式0 模式1相同 只是8位 TH0 只可用作简单的内部定时功能 TH0占用了定时器T1的控制位TR1和T1的中断标志TF1 其启动和关闭仅受TR1的控制 定时器T1无工作模式3状态 在T0用作模式3时 T1仍可设置为模式0 2 五 综合应用举例 解 1 定时器T0工作模式的确定 模式0最长可定时16 384ms 模式1最长可定时131 072ms 模式2最长可定时512 s LED每1秒闪烁一次 定时0 5s 可选用模式1 每隔100ms中断一次 中断5次从而达到0 5s的定时 2 求计数器初值X 216 X 12 6 106 100 10 3s X 15536 3CB0H因此 TL0 0B0H TH0 3CH 例6 设时钟频率为6MHz 试编写用T0产生定时使P1 0所接的发光二极管每1秒钟闪烁一次 源程序清单 使发光二极管闪烁 每1S闪烁1次 includeunsignedchartemp 5 main TMOD 0 x01 TH0 0X3C TL0 0XB0 ET0 1 EA 1 TR0 1 P1 0 1 while 1 voidtimer 0 interrupt1 TH0 0X3C TL0 0XB0 temp if temp 0 temp 5 P1 0 P1 0 例7 设计实时时钟程序 时钟就是以秒 分 时为单位进行计时 用定时器与中断的联合应用 解 1 实现时钟计时的基本方法 计算计数初值 时钟计时的最小单位是秒 可把定时器的定时时间定为100ms 计数溢出10次即得到1秒 10次计数可用软件方法实现 假定使用定时器T1 以工作模式1进行100ms的定时 如fosc 6MHz 则计数初值X为 X 15536 3CB0H TL0 0B0H TH0 3CH 例6 设计实时时钟程序 时钟就是以秒 分 时为单位进行计时 用定时器与中断的联合应用 采用定时方式进行溢出次数的累计 计满10次即得到秒计时 设置软件计数器初值为10 每100ms定时时间到溢出中断 使软件计数器减1 直到减到0 则1s到 从秒到分和从分到时的计时是通过累计和数值比较实现的 设置几个累加单元分别进行对1s 1min 1h进行计数 满1s 秒位累加 满60s 分位累加 满60min 时位累加 满24h全部累加单元清0 2 程序流程及程序清单 主程序流程如右图所示 设T1为模式1 设中断次数 清计时单元 开中断 启动T1 调用显示子程序 时钟主程序流程 开始 中断服务流程如右图所示 源程序如下 includeunsignedcharcount 0 unsignedcharsecond

温馨提示

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

评论

0/150

提交评论