




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章定时器 计数器应用 定时器 计数器的控制 定时器 计数器的工作方式 知识点 定时器 计数器的初值的设置 定时器工作原理 在实际工作 生活中 许多控制离不开时间 尤其是定时控制更是以时间为核心 如家用的洗衣机中的洗涤 脱水都是定时的 单片机又是如何完成定时的呢 通过前面的学习 当晶振频率一定时 单片机的机器周期相应固定 如晶振频率为12mhe时单片机的机器周期为1 s 单片机对其机器周期进行计数便可以实现定时 如计数值为1000则定时1ms 如计数值为1000000则定时1s 以此类推 本章要解决的是单片机如何完成对机器周期进行计数 问题的提出 振荡器 12 加1计数器 tfx 起 停控制信号 c t 0 c t 1 中断 tx端 mcs 51单片机片内有两个16位的定时器 计数器 定时器0 t0 和定时器1 t1 它们均可用作定时控制 延时以及对外部事件的计数及检测 当外部晶体振荡器为12mhz时 它提供 输出 12mhz的脉冲 经过除以12变成1mhz的脉冲记住 此时脉冲的周期为1 1mhz 1 s 当c t 0时 开关接通 在起 停控制信号中 起 信号作用下开关接通 加1计数器对1mhz的脉冲进行自动计数 直至计数器计满 当计数器计满时 自动将tfx置 1 作为向单片机中断请求信号 当c t 1时 开关向下接通 tx端的外部信号至此 在起 停控制信号中 起 信号作用下开关接通 加1计数器对1mhz的脉冲进行自动计数 直至计数器计满 当计数器计满时 自动将tfx置 1 作为向单片机中断请求信号 由此可见 定时器 计数器的核心是一个加1计数器 16位的定时器 计数器分别由两个8位的专用寄存器组成 即t0由th0和tl0构成 t1由thl和tll构成 t0 输入 tl0 tl1 th0 th1的地址顺序依次是8ah 8bh 8ch 8dh 这些寄存器用来存放定时或计数初值 每个定时器都可以由软件设置成定时工作方式或计数工作方式 定时器 计数器可工作在定时方式或计数方式 由方式寄存器tmod确定 由控制寄存器tcon控制 注意 1 当定时器工作在计数方式时 外部输人信号是加到t0 p3 4 或t1 p3 5 端 一个外部输入信号的下降沿触发加1计数器加1 直至计满溢出 外部输入信号的高电平与低电平保持时间均需大于一个机器周期 2 当定时 计数器工作在定时方式时 加1计数器每一个机器周期加1 直至计满溢出 一旦定时器 计数器被设置成某种工作方式后 它就会按设定的工作方式独立运行 不再占用cpu的操作时间 直到加1计数器计满溢出 才向cpu申请中断 定时器 计数器是一种可编程的部件 在其工作之前必须做三件事 1 将方式字写入tmod2 将计数初值写入相应计数器这个过程称为定时器 计数器的初始化3 将控制字写入tcon 定时器 计数器工作方式及控制 tmod用于控制t0和t1的工作方式 其各位定义如下 工作方式寄存器tmod tcon用于控制定时器的启动 停止以及标明定时器的溢出和中断情况 各位的含义如下 控制寄存器tcon tmod中的m1 m0具有4种组合 从而构成了定时器 计数器的4种工作方式 这4种工作方式除了方式3以外 其它3种工作方式的基本原理都是一样的 下面分别介绍4种工作方式的特点及工作情况 定时器 计数器的工作方式 在单片机中定时 计数的原理是对其寄存器的内容完成对机器周期 外部脉冲进行 1计数直至溢出 为了获取不同时间 不同脉冲个数 只要对寄存器预先写入一个数据就可以实现 这个数据称为初值 工作方式0 x 200ml n 其中 200ml 最大值n 计数值x 初值 方式0 16位的计数器 tho和tl0 只用了13位构成13位定时器 计数器 tl0的高3位未用 当tl0的低5位计满时 向th0进位 而th0溢出后对中断标志位tf0置1 并向cpu申请中断 13位计数器 最大计数值为 8192 相当200ml 定时值t 相当n 但t是时间单位 初值 相当x 即 t 机器周期 初值 8192t t0初值 机器周期 1 初值根据上式可知 初值 t 机器周期例如 定时值为5000 s 机器周期为1 s初值 8192 5000 s 3192 0000110001111000b将初值写入t0寄存器的方法是 高8位写入01100011th0 低5位11000写入tl0 例如 要求计满129个外部脉冲后溢出中断 则计数初值为8192 129 8063 1f7fh即tlo 1fh th0 fbh又如 已知单片机的机器周期为1 s 要求定时值到达5000 s时溢出中断 则定时初值为8192 5000 s s 3192 0c78h即tlo 18h th0 63h 2 控制 t0工作在方式1的逻辑结构如下图所示 由图可见 它与工作方式0的差别仅在于工作方式1是以16位计数器参加计数 且定时时间为 t 216 t0初值 机器周期即 初值 216 t 机器周期 工作方式1 t0在工作方式2的逻辑结构如下图所示 工作方式2 定时器 计数器构成一个能重复置初值的8位计数器 在工作方式0 工作方式1中 若用于重复定时计数 则每次计满溢出后 计数器变为全0 故还得重新装入初值 而工作方式2可在计数器计满溢出时自动装入初值 工作方式2把16位的计数器拆成两个8位计数器 tl0用作8位计数器 th0用来保存初值 每当tl0计满溢出时 可自动将th0的初值再装入tl0中 工作方式2的定时时间为 t 28 t0初值 机器周期即 初值 256 t 机器周期 工作方式3的逻辑结构图如下图所示 工作方式3 该工作方式只适用于定时器 计数器t0 t0在工作方式3被拆成两个相互独立的计数器 其中 tl0使用原t0的各控制位 引脚和中断源c t gate tr0 int0和tf0 而th0则只能作为定时器使用 但它占用t1的tr1和tf1 即占用了t1的中断标志和运行控制位 一般在系统需增加一个额外的8位定时器时 可设置为工作方式3 此时 t1虽仍可定义为工作方式0 工作方式1和工作方式2 但只能用在不需中断控制的场合 1 要求计满2000个外部脉冲后溢出中断 方式0 求计数初值的tl0 th0 2 已知单片机的机器周期为1 s 要求定时值到达7000 s时溢出中断 定时 方式1 求定时初值的tl0 th0 3 t0方式1 定时值5ms th0 tl0 4 t1方式2 定时值250 s th1 tl1 思考题 th0 c1 tl0 10 th0 e4 tl0 a8 th0 ec tl0 78 th0 06 tl0 06 应用定时器 计数器时应注意两点 一是初始化 写入控制字 二是对初值的计算 初始化步骤为 向tmod写工作方式控制字 向计数器tl th装入初始值 置tr 1 启动计数 置et 1 允许定时器 计数器中断 若需要时 置ea 1 cpu开中断 若需要时 定时器 计数器应用举例 例如 设t0为工作方式1 设置为定时状态 定时时间为2ms 每当2ms到 申请中断 在中断服务程序中将p1 0的内容取反送出 假设晶振为6mhz 解 已知晶振频率为6mhz 机器周期 2 s下面先计算2ms定时的to初始值当t0工作在方式1时to初始值 216 定时时间 机器周期 216 2ms 2 s 216 2 10 3 10 6 65536 1000 64536 fc18h 即 th0 fch tl0 18h 由于题目要求t0工作在方式1 所以tmod 01h 编程如下 org0000h ajmpmain 转主程序org000bh int movtl0 18h t0中断服务程序movth0 0fch 重设计数初值cplp1 0 输出取反reti main movsp 63h 置堆栈指针movtmod 01h t0初始化movtl0 18h movth0 0fch setbtr0 启动t0计数setbet0 允许t0中断setbea cpu开中断rll sjmprll 等待end 主程序与中断服务程序的关系 主程序main 返回 中断响应 中断服务程序入口地址 reti org000bhint movtl0 18hmovth0 0fchcplp1 0reti main movsp 63hmovtmod 01hmovtl0 18hmovth0 0fchsetbtr0setbet0setbearll sjmprllend 又例如 当gate 1时 tr0 1时 只有into引脚上出现高电平时 t0才被允许计数 试利用这一功能测试into引脚上的正脉冲的宽度 机器周期数 设外部待测脉冲由into p3 2 输入 t0工作在方式1 设置为定时状态 gate置为 1 测试时 在into端为 0 时置tr0为 1 当into端变为 1 时启动计数 into端再次变为 0 时停止计数 此时的计数值就是被测正脉冲的宽度 编程思路 在此期间对机器周期进行计数 根据题意 t0工作在方式1 定时状态 int0 1 期间对机器周期进行计数 于是 确定方式字如下 即tmod 09h 并在int0 0期间置tr0 1 tr0 1 int0 1时开始计数 tr0 0 int0 0时停止计数 编程如下 org0000hmovtmod 09h t0工作方式1定时 gate 1movtl0 00h movth0 00h rll1 jbp3 2 rll1 等待p3 2变低setbtr0 启动t0rll2 jnbp3 2 rll2 等待p3 2变高rll3 jbp3 2 rll3 等待p3 2再变低clrtr0 t0停止计数mova tl0 存放计数值movb th0sjmp 1 设t0为工作方式0 设置为定时状态 定时时间为0 5ms 每当0 5ms到 申请中断 在中断服务程序中将p1 7的内容取反送出 假设晶振为12mhz 请编写该方案
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江省齐齐哈尔市梅里斯区2024-2025学年八年级下学期期末考试语文试题(含解析)
- 社区消防员安全知识培训课件
- 项目聘用 长期合同范本
- 与焊接厂合同范本
- 看仓库人员合同范本
- 12333劳动合同范本
- 房屋全款转让合同范本
- 厂房代理合同范本
- 购买建材石材合同范本
- 蔬菜店经营合同范本
- 穴位敷贴中医护理技术操作规范
- 冷却塔投标文件
- 手工电弧焊焊接头基本形式与尺寸
- 青年教师专业成长课题结题报告
- 农村公路安全生命防护工程施工方案
- 开拓进取:零碳汽车的材料脱碳之路
- (完整版)自我护理能力量表ESCA
- M2激光模式测量
- 网吧企业章程范本
- 充电站竣工报告(施工单位)
- 甘肃铁矿等34个矿种矿业权出让收益场基准价(优.选)
评论
0/150
提交评论