C51单片机定时器/计数器工作原理与应用
3星 · 超过75%的资源 需积分: 9 37 浏览量
更新于2024-08-02
收藏 289KB PDF 举报
"C51的定时器与计数器详细解析"
C51单片机中的定时器/计数器是其重要的硬件组成部分,用于实现定时和计数功能。定时器通常用于产生延时,而计数器则用于计算外部脉冲的个数。在C51中,定时/计数器主要由两个16位的寄存器组成,分为高8位(THx)和低8位(TLx),x代表0或1,分别对应两个独立的定时/计数器T0和T1。
1. 工作方式寄存器TMOD
TMOD寄存器用于设置定时/计数器的工作模式,其中M1和M0位决定了工作模式,C/T位用于选择定时器或计数器模式,GATE位则与外部中断有关,允许外部信号控制定时器的启停。
2. 控制寄存器TCON
TCON寄存器包含TR0和TR1,用于启动或停止定时器,TF0和TF1则作为溢出标志,当定时/计数器计数值达到最大并回零时,这些标志位会被置1,如果中断允许,会触发中断请求。
3. 工作原理
- 内部定时模式:定时器接收到系统时钟经过12分频后的脉冲,每来一个脉冲计数器加1,直到计数值达到最大后重置,并设置溢出标志。定时时间可以通过计数值乘以机器周期(Tcy)计算得出。
- 外部计数模式:外部脉冲通过T0或T1引脚输入,每个机器周期的特定时刻(S5P2)采样引脚电平,若检测到电平变化,计数器加1。
4. 模式选择
- 方式0:13位定时器/计数器,只使用低8位(TL0或TL1)作为计数器,高5位自动预置为0。
- 方式1:16位定时器/计数器,高8位和低8位组合成一个16位计数器。
- 方式2:8位自动重装载定时器,低8位计数,溢出时将高8位的内容装载到低8位。
- 方式3:仅对T1有效,低8位作为8位定时器,高8位作为波特率发生器。
5. 扩展定时/计数器
当内置的定时/计数器不足以满足需求时,可以通过连接外部可编程定时器芯片来扩展功能,这些芯片允许更灵活地设定定时值和范围。
6. 中断处理
溢出标志TF0和TF1被置1后,如果对应的中断允许位(如EA)也被置1,CPU会响应中断,执行相应的中断服务程序。中断处理后,通常需要清除溢出标志,以便下一次计数。
综上,C51的定时器/计数器在实际应用中具有广泛的功能,可以根据不同的工作模式和配置,适应各种定时和计数任务,是单片机系统设计中的重要工具。
120 浏览量
2022-07-03 上传
2022-07-14 上传
150 浏览量
129 浏览量
2022-07-14 上传
liangzhenyuang
- 粉丝: 45
- 资源: 263
最新资源
- opc ua客户端,opcua客户端界面,C#源码.zip
- MyMovies:在MEAN堆栈上进行的实验
- ciphermate:旨在简化简单的加密解密哈希base64任务的实用程序
- p2.mockup:设想
- carpentries-manchester:SoftwareDataLibrary曼彻斯特大学的木工活动@
- 库存品公开招标公告范例
- PHP实例开发源码—php二线小说网源码.zip
- react-Learning-roadmap
- Cap-Stone-TTP_backend
- leetcode答案-LeetCodeByPython:由Python编写的LeetCode
- automatic_ordering_system
- DrawLine
- easycal:简单的周历jQuery插件
- UDF 源项,udf源项编程问题,C,C++源码.zip
- 美的校园招聘面试官培训方案
- App:用于管理国际象棋事件的主Web应用程序