AT89S51单片机定时器/计数器工作原理与应用
5星 · 超过95%的资源 需积分: 9 91 浏览量
更新于2024-07-31
收藏 1.41MB PPT 举报
"第6章AT89S51 定时器计数器.ppt"
在微控制器领域,AT89S51是一款广泛应用的8位单片机,它内置了两个可编程的定时器/计数器,即T0和T1。定时器/计数器在工业检测与控制等领域扮演着重要角色,能够执行计数或定时任务,比如对外部脉冲计数或产生精确的时间间隔。
6.1定时器/计数器的结构
AT89S51的定时器/计数器结构分为两部分:T0由TH0和TL0两个特殊功能寄存器构成,T1则由TH1和TL1组成。这两个定时器都可以作为定时器或计数器工作,它们对脉冲信号进行计数,但计数信号的来源不同。在计数器模式下,T0和T1通过P3.4和P3.5引脚接收外部脉冲;而在定时器模式下,它们内部接收到经过时钟振荡器分频的信号进行计数。
6.1.1工作方式控制寄存器TMOD
TMOD寄存器是控制定时器/计数器工作模式的关键,其字节地址为89H,不可位寻址。TMOD寄存器的每一位对应不同的功能,可以设置T0和T1的工作模式和工作方式。例如,M1和M0位用于选择定时器/计数器的工作方式,GATE位则控制是否在INT0或INT1中断允许时才启动计数。
6.2定时器/计数器的4种工作方式
- 方式0:13位定时器/计数器,溢出后重新加载初值。
- 方式1:16位定时器/计数器,溢出后需手动重载初值。
- 方式2:8位自动重载定时器,仅适用于T0,溢出后TH0自动重载TL0的当前值。
- 方式3:T0作为8位定时器,T1作为4位定时器。
6.3对外部输入的计数信号的要求
在计数模式下,外部脉冲应满足一定的频率和极性要求,通常要求脉冲宽度大于机器周期,且脉冲上升沿被计数。
6.4定时器/计数器的编程和应用
编程时,需要设置TMOD寄存器选择工作方式,然后可能还需要配置TCON寄存器来启动或停止计数。应用示例包括:
- 方式1的应用:适用于需要精确16位计数或定时的情况。
- 方式2的应用:常用于简单的定时任务,因为有自动重载功能。
- 方式3的应用:在需要不同计数范围或定时精度的情况下。
- GATEx应用:测量脉冲宽度,只有当INTx中断允许时才计数。
6.4.5实时时钟的设计
利用定时器/计数器可以设计实时时钟,通过设定合适的计数值和中断,定时更新显示或者执行特定任务。
总结,AT89S51的定时器/计数器功能强大且灵活,可以根据需求选择适当的工作方式,实现各种计数和定时功能,是单片机系统中不可或缺的部分。理解和熟练掌握其工作原理和编程方法对于高效地开发嵌入式系统至关重要。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2022-11-13 上传
2021-10-07 上传
2021-10-06 上传
2021-10-06 上传
点击了解资源详情
2022-11-14 上传
xiaochun2012
- 粉丝: 5
- 资源: 86
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析