50Hz下定时器初值计算:12MHz单片机5ms延时与MCS-51定时器应用

需积分: 9 0 下载量 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单片机的实时控制和数据驱动应用的关键知识点。