




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第六章MCS 51的定时器 计数器 在工业检测 控制中 许多场合都要用到计数或定时功能 例如 对外部脉冲进行计数 产生精确的定时时间 作串行口的波特率发生器 MCS 51单片机内有两个可编程的定时器 计数器 以满足这方面的需要 它们具有两种工作模式 计数器模式和定时器模式 及4种工作方式 方式0 方式l 方式2和方式3 其控制字均在相应的特殊功能寄存器中 通过对它的特殊功能寄存器的编程 用户可方便地选择适当的工作模式和工作方式 2 6 1定时器 计数器的结构Timer Counter MCS 51单片机内部有二个16位的可编程的定时器 计数器 定时器 计数器0 T C0 定时器 计数器1 T C1 它们都有定时和对外部事件计数的功能 可用于定时控制 延时 对外部事件检测和计数等场合 T C0和T C1的结构及与CPU的关系如图6 1所示 3 结构组成 T C0由两个8位的TH0 8CH 和TL0 8AH 组成 T C1由TH1 8DH 和TL1 8BH 组成软件设置 计数初值 对TH1 TL1 TH0 和TL0的初始化编程 工作方式 通过TMOD和TCON对每个T C设置定时或计数特殊功能寄存器TMOD TimerModeRegister TCON TimerControlRegister THx存放计数初值的高8位TLx存放计数初值的低8位 定时器 计数器 T C0和T C1 的组成 T C0和T C1都是16位的加1计数器 4 定时 计数器的工作原理 定时 计数器T0和T1的实质是加 1 计数器 即每输入一个脉冲 计数器加 1 当加到计数器全为 1 时 再输入一个脉冲 就使计数器回零 且计数器的溢出使TCON中的标志位TF0或TF1置 1 向CPU发出中断请求 定时 计数器中断允许时 区别 作定时器时脉冲来自于内部时钟振荡器 作计数器时脉冲来自于外部引脚 5 1 计数概念的引入 从选票的统计谈起 画 正 这就是计数 生活中计数的例子处处可见 例 录音机上的计数器 家里用的电度表 汽车上的里程表等等 6 2 计数器的容量 从一个生活中的例子看起 一个水盆在水龙头下 水龙没关紧 水一滴滴地滴入盆中 水滴不断落下 盆的容量是有限的 过一段时间之后 水就会逐渐变满 电表上的计数器最多只计到9999 那么单片机中的计数器有多大的容量呢 8031单片机中有两个计数器 分别称之为T0和T1 这两个计数器分别是由两个8位的RAM单元组成的 即每个计数器都是16位的计数器 最大的计数量是65536 7 3 定时的概念 1 8031中的计数器除了可以作为计数之用外 还可以用作时钟 时钟的用途当然很大 如打铃器 电视机定时关机 空调定时开关等等 那么计数器是如何作为定时器来用的呢 一个闹钟 我将它定时在1个小时后闹响 换言之 也可以说是秒针走了 3600 次 所以时间就转化为秒针走的次数的 也就是计数的次数了 可见 计数的次数和时间之间的确十分相关 那么它们的关系是什么呢 那就是秒针每一次走动的时间正好是1秒 8 3 定时的概念 2 只要计数脉冲的间隔相等 则计数值就代表了时间的流逝 由此 单片机中的定时器和计数器是同一个事物 只不过计数器是记录的外界发生的事情 而定时器则是由单片机提供一个非常稳定的计数源 那么提供给定时器的计数源是什么呢 看图1 原来就是由单片机的晶振经过12分频后获得的一个脉冲源 晶振的频率当然很准 所以这个计数脉冲的时间间隔也很准 问题 一个12M的晶振 它提供给计数器的脉冲时间间隔是多少呢 当然这很容易 就是12M 12等于1M 也就是1个微秒 结论 计数脉冲的间隔与晶振有关 12M的晶振 计数脉冲的间隔是1微秒 图1 9 4 溢出的概念 让我们再来看水滴的例子 当水不断落下 盆中的水不断变满 最终有一滴水使得盆中的水满了 这时如果再有一滴水落下 就会发生什么现象 水会漫出来 用个术语来讲就是 溢出 水溢出是流到地上 而计数器溢出后将使得TF0变为 1 至于TF0是什么我们稍后再谈 一旦TF0由0变成1 就是产生了变化 产生了变化就会引发事件 就象定时的时间一到 闹钟就会响一样 现在我们来研究另一个问题 要有多少个计数脉冲才会使TF0由0变为1 10 5 任意定时及计数的方法 刚才已讲过 计数器的容量是16位 也就是最大的计数值到65536 因此计数计到65536就会产生溢出 这个没有问题 问题是我们现实生活中 经常会有少于65536个计数值的要求 如包装线上 一打为12瓶 一瓶药片为100粒 怎么样来满足这个要求呢 提示 如果是一个空的盆要1万滴水滴进去才会满 我在开始滴水之前就先放入一勺水 还需要10000滴嘛 我们采用预置数的方法 我要计100 那我就先放进65436 再来100个脉冲 不就到了65536了吗 定时也是如此 每个脉冲是1微秒 则计满65536个脉冲需时65 536毫秒 但现在我只要10毫秒就可以了 怎么办 10个毫秒为10000个微秒 所以 只要在计数器里面放进55536就可以了 11 6 定时 计数器的方式控制字 1 单片机中的定时 计数器都可以有多种用途 那么我怎样才能让它们工作于我所需要的用途呢 这就要通过定时 计数器的方式控制字来设置 在单片机中有两个特殊功能寄存器与定时 计数有关 这就是TMOD和TCON TMOD和TCON是名称 我们在写程序时就可以直接用这个名称来指定它们 当然也可以直接用它们的地址89H和88H来指定它们 TMOD不能位寻址 GATE 门控位 C T 功能选择位 M1 M0工作方式选择位 2 TCON可以位寻址 IE1IT1IE0IT0 TR0 TCON 4 T0的运行控制位 TF0 TCON 5 T0的溢出标志 TR1 TCON 6 T1的运行控制位 TF1 TCON 5 T1的溢出标志 14 我们来看下图 计数脉冲要进入计数器还真不容易 有层层关 要通过 最起码 就是TR0 1 要为1 开关才能合上 脉冲才能过来 因此 TR0 1 称之为运行控制位 可用指令SETB来置位以启动计数器 定时器运行 用指令CLR来关闭定时 计数器的工作 一切尽在自已的掌握中 6 定时 计数器的方式控制字 2 15 6 3定时器 计数器的4种工作方式 8051单片机的定时器 计数器T0和T1可由软件对特殊功能寄存器TMOD中控制位C T的设置 以选择定时功能或计数功能 对M1 M0位的设置 可选择四种工作方式 即方式0 方式1 方式2和方式3 在方式0 I和2时 T0与T1的工作方式相同 在模方3时 两个定时器的工作方式不同 方式0是选择定时器 T0或T1 高8位和低5位组成的一个13位定时器 计数器 通常方式0很少用 常以方式1代替 本章不再介绍方式0 16 1 方式1 该方式是一个16位定时器 计数器 其结构与操作几乎与模式0完全相同 唯一的差别是 在方式1中 寄存器TH0和TL0是以全16位参与操作 用于定时工作方式时 定时时间为 t 216一T0初值 振荡周期 12 用于计数工作方式时 计数长度为216 65536 个外部脉冲 17 T0在方式1时的逻辑电路结构 18 2 方式2 方式2把T0 或T1 配置成 个可以自动重装载的8位定时器 计数器 TL0计数溢出时 不仅使溢出中断标志位TF0置1 而且还自动把TH0中的内容重装载到TL0中 这时16位的计数器被拆成两个8位 TL0用作8位计数器 TH0用以保持初值 19 T0在方式2时的逻辑电路结构 20 在程序初始化时 TL0和TH0由软件赋予相同的初值 旦TL0计数溢出 置位TF0 并将TH0中的初值再自动装入TL0 继续计数 循环重复 用于定时器工作方式时 其定时时间 TF0溢出周期 为 t 28 TH0初值 振荡周期 12 用于计数器工作方式时 最大计数长度 TH0初值 0 为 28 256 个外部脉冲 这种工作方式可省去用户软件中重装常数的程序 并可产生相当精度的定时时间 特别适用作串行口波待率发生器 21 3 方式3 操作方式3对T0和T1是大不相同的 若将T0设置为方式3 TL0和TH0被分成为两个互相独立的8位计数器 其中TL0用原T0的各控制位 引脚和中断源 即C T GATE TR0 TF0和T0 P3 4 引脚 P3 2 引脚 TL0除仅用8位寄存器外 其功能和操作与方式0 13位计数器 方式1 16位计数器 完全相同 TL0也可工作为定时器方式或计数器方式 TH0只可用作简单的内部定时功能 它占用了定时器T1的控制位TR1和T1的中断标志位TF1 其启动和关闭仅受TRl的控制 定时器T1无操作方式3状态 22 T0在方式3时的逻辑电路结构 23 1 定时工作方式 设置为定时工作方式时 定时器计数的脉冲是由8051片内振荡器输出经12分频后产生的 每个机器周期使定时器 T0或T1 的数值加1直至计数满产生溢出 如 当8051采用12MHz晶体时 每个机器周期为1 s 计数频率为1MHz 6 3定时器 计数器对输入信号的要求 24 2 计数工作方式 设置为计数工作方式时 通过引脚T0 P3 4 和T1 P3 5 对外部脉冲信号计数 当输入脉冲信号产生由1至0的下降沿时 定时器的值加1 在每个机器周期的S5P2期间采样T0和T1的输入电平 若前一个机器周期采样值为1 下一个机器周期采样值为0 则计数器加1 此后的机器周期S3P1期间 新的数值装入计数器 检测一个1至0的跳变需要二个机器周期 故最高计数频率为振荡频率的二十四分之一 25 输入脉冲信号的基本要求 虽然对输入信号的占空比无特殊要求 但为了确保某个电平在变化之前至少被采样一次 要求电平保持时间至少是一个完整的机器周期 26 不管是定时工作方式还是计数方式 定时器T0或T1在对内部时钟或对外部事件计数时 不占用CPU的时间 除非定时器 计数器溢出 才可能中断CPU的当前操作 由此可见 定时器是单片机中效率高而且工作灵活的部件 除了可以选择定时器或计数器工作方式外 每个定时器 计数器还有四种工作模式 也就是每个定时器可构成四种电路结构模式 其中 模式0一模式2对T0和T1是一样的 模式3对两者是不同的 27 例判断下列说法的正误 1 MCS 51单片机中两个定时器的工作方式是由同一个方式选择控制字设定的 2 T0或Tl作计数器用时 计数频率不能超过晶振频率的1 24 3 定时器不重复装入初值与不再启动定时器是一回事 4 无论是定时还是计数方式 当选用外启动时还需要TRi 1配合 i 0 1 5 MCS 51系统中两个定时器能够实现硬件直接级联 6 当定时器0工作在方式3时 定时器1就不能工作在中断方式 28 答1 正确 定时器0和1的工作模式都是由TMOD这个方式选择控制字设定的 2 正确 因为计数时的触发脉冲是边沿有效类型 而对每个计数脉冲的识别至少需要两个M周期 3 错误 不是一回事 没有重装计数初值的动作 定时器仍然会继续工作 只是此时的计数初值是全0而已 4 正确 5 错误 无法直接级联 因为每个定时器虽然配有计数输入外引脚 T0和 T1 却没配备计满溢出信号的外引脚 6 正确 因为T1申请中断有效的必备条件之一是TF1 l 而此时T0已占用了TF1作为其独立高8位定时器的计满溢出信号 所以T1此时不能工作在中断方式 29 四 定时器 计数器的编程和应用 T0和T1在系统复位后均为00H 若需要改变其计数个数 则要预先设置一定的初值 1 定时器 计数器在各种工作方式下的最大计数和最长定时 30 编程步骤 使用定时器 计数器首先对其进行初始化 MCS 51内部的T C是可编程的 其工作方式和模式通过程序进行设定和控制 称为对T C的初始化 初始化的步骤是 1 确定工作方式 即根据题目要求先给TMOD送一个方式控制字 2 计算计数初值 定时初值 并写入TH0 TL0或TH1 TL1中 3 启动定时器 计数器 给TCON送命令控制字 即置位TRx启动T C计数 4 根据需要 置位EA使CPU开放中断 同时置位ETx允许T C中断 IP设定中断优先级 31 2 计数器初值的计算T C在计数模式下 计数之前必须给它的计数器TH0 TL0或TH1 TL1选送计数初值 T C的计数器是在计数初值的基础上加1计数的 当计数器回 0 时自动产生溢出 置位TFx中断标志 向CPU提出中断请求 设需要计数器计数的个数为X 计数初值为C 由此可得出如下计算计数初值的通式 计数初值 C M X式中 M为计数器的模值 该值和计数器的工作方式有关 当方式0时M 当方式1时当方式2 3时 32 3 定时器初值计算在定时模式下 计数器对单片机振荡频率fosc经12分频后的机器周期进行加1计数 用X表示计数个数 M表示模 C表示定时初值 TM表示机器周期 则1TM 12 fosc 因此 定时时间T的计算公式为 t0 M C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年北京市外来人口租赁合同管理与服务办法
- 2025年《合同法》讲座
- 2025财产委托管理合同书新范文
- 2025年动产质押借款合同
- 石化过程强化学习优化-洞察及研究
- 出入境人员安全培训课件
- 2025担保抵押合同范本
- 2025合同违约责任规定协议范本
- 2025咨询合同协议方案技术支持合同
- 冲压作业安全培训心得
- 2024版体育赛事赞助对赌协议合同范本3篇
- 环卫公司培训课件
- 仓库年度评审报告范文
- 《工会财务与会计》课件
- 工商银行-(招聘笔试题)
- 物业保洁员礼节礼貌培训
- 八年级物理上册课程纲要
- 普外科出院患者随访制度
- 第二单元 观察物体(单元测试)-2024-2025学年三年级上册数学北师大版
- DB65-T 4773-2024 生物安全实验室消毒技术指南
- 人教版PEP四年级英语上册Unit-1-My-classroom课件
评论
0/150
提交评论