MCS-51定时/计数器工作原理与结构解析
需积分: 10 19 浏览量
更新于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 上传
点击了解资源详情
双联装三吋炮的娇喘
- 粉丝: 20
- 资源: 2万+
最新资源
- JavaScript实现的高效pomodoro时钟教程
- CMake 3.25.3版本发布:程序员必备构建工具
- 直流无刷电机控制技术项目源码集合
- Ak Kamal电子安全客户端加载器-CRX插件介绍
- 揭露流氓软件:月息背后的秘密
- 京东自动抢购茅台脚本指南:如何设置eid与fp参数
- 动态格式化Matlab轴刻度标签 - ticklabelformat实用教程
- DSTUHack2021后端接口与Go语言实现解析
- CMake 3.25.2版本Linux软件包发布
- Node.js网络数据抓取技术深入解析
- QRSorteios-crx扩展:优化税务文件扫描流程
- 掌握JavaScript中的算法技巧
- Rails+React打造MF员工租房解决方案
- Utsanjan:自学成才的UI/UX设计师与技术博客作者
- CMake 3.25.2版本发布,支持Windows x86_64架构
- AR_RENTAL平台:HTML技术在增强现实领域的应用