89C51定时器工作原理与应用
需积分: 37 125 浏览量
更新于2024-08-17
收藏 2.54MB PPT 举报
"C51定时器的使用方法和中断服务程序示例"
在单片机编程中,89C51系列芯片具有两个16位的定时器/计数器,即定时器0(T0)和定时器1(T1),它们可以作为计数器或者定时器工作。定时器在C51编程中起着至关重要的作用,用于实现延时、脉冲计数、定时中断等功能。本课件主要关注T0中断服务程序及其相关知识。
在定时器的四种工作模式中,模式0、1和2对于T0和T1是相同的,而模式3则有所不同。模式0是13位定时器模式,模式1是16位定时器模式,模式2是8位自动重装载定时器模式,模式3是两个独立的8位计数器模式。选择哪种模式通常取决于具体的应用需求。
在89C51中,定时器的工作原理是计数内部振荡器的时钟周期,当达到预设值后产生溢出中断。例如,在定时工作方式下,如果使用12MHz的晶振,每个机器周期为1μs,定时器计数频率为1MHz。而在计数工作方式下,定时器会捕获外部输入脉冲的下降沿,最高计数频率受限于晶振频率的1/24。
关于中断服务程序,例如标题中提到的";T0中断服务程序(由000BH转来)",这表明中断服务程序是由000BH地址的中断向量跳转而来。在给定的代码中,我们看到TOINT中断服务程序的内容:
1. 重装定时器T0的初值,即将TL0和TH0分别设置为#0B0H和#3CH。
2. 使用DJNZ指令检查软件计数器R7是否为0。如果不是0,则继续执行,否则进入下一步。
3. 当计数器R7归零,表示定时周期到达,将R7重新赋值为40,这通常与定时器的溢出周期有关。
4. 控制P1.7引脚电平翻转,可能是用来驱动外部设备,如LED灯,以显示中断发生。
5. 最后,使用RETI指令执行中断返回,恢复正常的程序执行。
控制定时器的工作模式和状态通常通过两个特殊功能寄存器完成:TMOD和TCON。TMOD用于设定定时器的工作模式,其低4位(GATE、C/T、M1、M0)用于设置T0,高4位用于设置T1。TCON寄存器则包含中断标志位(TF0、TF1)和其他控制位,如启动/停止定时器的位(TR0、TR1)。
总结,89C51的定时器是通过特定的工作模式、中断服务程序和控制寄存器来实现各种定时和计数功能的。在编写C51程序时,理解和掌握这些知识点至关重要,以便有效地利用定时器资源来实现系统的定时和控制功能。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-04-26 上传
2021-03-27 上传
2022-09-14 上传
2021-03-20 上传
2020-03-23 上传
2022-09-14 上传
鲁严波
- 粉丝: 25
- 资源: 2万+
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录