MCS-51定时/计数器工作原理与结构解析
需积分: 10 28 浏览量
更新于2024-08-20
收藏 398KB PPT 举报
"MCS-51定时/计数器方式逻辑图及相关知识点"
MCS-51系列微控制器内置了两个16位的定时/计数器T0和T1,而MCS-52系列则在此基础上增加了一个T2。这些定时/计数器在系统中扮演着多种角色,包括但不限于定时、计数以及生成串行口的波特率。它们具有可编程的特性,可以灵活地适应不同的应用需求。
1. **定时/计数器的四种工作方式**
- **方式0**:13位定时器,TL0的低5位和TH0的全部8位组成13位计数器,计数范围是0-8191。
- **方式1**:16位定时器,TH0和TL0组合成16位计数器,计数范围是0-65535。
- **方式2**:8位自动重装载定时器,仅使用TL0,当达到预设值时,TH0会自动装载当前TL0的值,形成一个8位的循环计数器。
- **方式3**:仅适用于T1,此时T1被配置为两个8位的独立计数器。
2. **控制寄存器TCON和TMOD**
- **TCON** (88H):控制定时/计数器的启动、停止和中断。其中,TR0和TR1用于启动/停止定时器,TF0和TF1表示定时器的溢出标志,GATE控制外部门控信号,INT0和INT1是外部中断请求标志。
- **TMOD** (89H):设置定时/计数器的工作模式。高4位用于T1,低4位用于T0。C/T位用于切换定时或计数模式,M1和M0位定义具体的工作方式。
3. **定时/计数器的工作流程**
- 当定时器/计数器被启动(如TR0或TR1置1)后,它们将根据预设的计数模式开始计数或定时。
- 定时器的计数值会根据系统时钟频率和分频系数进行累加。默认分频系数为12,意味着每个时钟周期后,计数值增加1/12。
- 当计数值达到预设阈值或溢出时,会触发中断(如果TF0或TF1被设置),并可能向CPU发送中断请求。
4. **中断处理**
- 如果允许中断,定时/计数器溢出时,TF0或TF1标志会被置1,并且根据中断允许位IE和中断优先级寄存器IP,决定是否执行中断服务程序。
- 完成中断服务后,通常需要清除溢出标志,以便下次中断。
5. **串行口波特率发生器**
- T1或T2可以被用来生成串行通信的波特率,通过调整预置值和分频系数,可以得到不同速率的波特率。
6. **特殊应用**
- 定时器/计数器还可以用于实现软件延时、脉宽调制(PWM)、频率测量等功能,根据实际应用需求进行配置。
MCS-51系列微控制器的定时/计数器功能强大且灵活,能够满足各种嵌入式系统的定时和计数需求。理解其工作原理和配置方法对于开发基于MCS-51的系统至关重要。
2024-05-08 上传
2021-10-04 上传
2012-05-29 上传
点击了解资源详情
点击了解资源详情
2021-09-26 上传
2022-09-20 上传
点击了解资源详情
2024-10-27 上传
双联装三吋炮的娇喘
- 粉丝: 19
- 资源: 2万+
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常