50Hz下定时器初值计算:12MHz单片机5ms延时与MCS-51定时器应用
需积分: 9 199 浏览量
更新于2024-08-17
收藏 150KB PPT 举报
本文档主要探讨了在单片机开发中,特别是使用MCS-51系列(如8051)进行动态显示时,如何计算定时器的初始值以实现无闪烁的稳定显示。首先,为了确保数码管的显示不会给人带来闪烁的感觉,建议设定循环显示的频率至少为30Hz,这里选择了50Hz作为目标,这就意味着每位数码管的刷新频率为200Hz,即每位数码管点亮一次所需时间为5毫秒。
在12MHz时钟下,一个机器周期为1微秒,所以5ms等于5000个机器周期。为了转换成十六进制表示,5000被转换为1388H。为了实现200Hz的定时,我们需要从最大计数值0FFFFH(十六进制表示的32767)中减去1388H,得到定时器的初始值0EC77H。这个值会填入定时器的计数寄存器中,以便于单片机定时器按照预定频率进行计数,触发数码管的切换。
同时,文档提到了MCS-51单片机的两个16位可编程定时/计数器T0和T1,以及它们的工作方式。TMOD特殊功能寄存器用于设置定时器/计数器的工作模式,包括方式0(13位计数器)、方式1(16位计数器)、方式2(自动重装的8位计数器)。C/T位用于选择定时或计数功能,而GATE位则是门控位,决定是否需要外部信号触发计数器开始。
文章还涉及MCS-51的中断系统,它提供了5个中断源和两个优先级,通过中断允许寄存器IE进行控制。中断系统允许处理器在处理其他任务的同时响应多个事件,这对于实时性要求高的应用非常重要。例如,定时器T0和T1的中断可以通过ET0和ET1控制位进行启用或禁用,以适配不同的中断需求。
总结来说,本篇文档着重讲解了单片机定时器在动态显示中的应用,包括定时器初值的计算方法、MCS-51定时/计数器的工作方式选择以及中断系统的控制,这些都是开发基于MCS-51单片机的实时控制和数据驱动应用的关键知识点。
2012-07-23 上传
2018-02-10 上传
2012-07-23 上传
2011-06-14 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-03-23 上传
2020-08-28 上传
巴黎巨星岬太郎
- 粉丝: 17
- 资源: 2万+
最新资源
- StarModAPI: StarMade 模组开发的Java API工具包
- PHP疫情上报管理系统开发与数据库实现详解
- 中秋节特献:明月祝福Flash动画素材
- Java GUI界面RPi-kee_Pilot:RPi-kee专用控制工具
- 电脑端APK信息提取工具APK Messenger功能介绍
- 探索矩阵连乘算法在C++中的应用
- Airflow教程:入门到工作流程创建
- MIP在Matlab中实现黑白图像处理的开源解决方案
- 图像切割感知分组框架:Matlab中的PG-framework实现
- 计算机科学中的经典算法与应用场景解析
- MiniZinc 编译器:高效解决离散优化问题
- MATLAB工具用于测量静态接触角的开源代码解析
- Python网络服务器项目合作指南
- 使用Matlab实现基础水族馆鱼类跟踪的代码解析
- vagga:基于Rust的用户空间容器化开发工具
- PPAP: 多语言支持的PHP邮政地址解析器项目