STC90C51RC/RD+单片机定时器初始化与中断服务程序
需积分: 50 94 浏览量
更新于2024-08-10
收藏 4.63MB PDF 举报
"这篇文档是关于STC90C51RC-RD+系列单片机的编程指南,特别关注了中断服务程序的编写。文档介绍了如何进行定时/计数器1的初始化设置以及中断服务程序的设计,适用于学习和开发基于STC90C51RC-RD+的嵌入式系统。"
在STC90C51RC-RD+系列单片机的编程中,定时/计数器的应用是一个重要的部分。例如,为了实现一个10ms的定时任务,当主频频率为12MHz时,选择定时/计数器1工作在方式1,并计算得到计数初值为TH1=0DCH,TL1=F0H。初始化程序通常在主程序中执行,包括设置堆栈指针、选择定时模式、设置计数初值以及开启中断功能。
初始化程序的步骤如下:
1. 设置堆栈指针SP,例如SP=#60H,以确保有足够的存储空间来保存中断期间的寄存器状态。
2. 使用TMOD寄存器选择定时器T1,并设定其工作在定时模式,方式1,即TMOD=#10H。
3. 分别设置定时器的高字节TH1和低字节TL1的计数初值,如TH1=#0DCH,TL1=#0F0H。
4. 开启全局中断EA,以及定时器1中断ET1,允许中断的发生。
当定时/计数器1的溢出中断发生时,会调用中断服务程序。中断服务程序的主要任务是重置计数初值并返回到主程序。示例中断服务程序如下:
- 保存A寄存器、DPL和DPH的当前值到堆栈,以保留现场信息。
- 将TL1和TH1重新设置为初值,即TL1=#0F0H,TH1=#0DCH,以重新开始计数。
- 恢复堆栈中的A、DPL和DPH值,确保中断处理后的程序状态与中断前一致。
- 使用RETI指令返回到中断返回地址,继续执行主程序。
这个中断服务程序的结构保证了中断处理的原子性,防止在中断处理过程中被其他中断打断,同时在处理完中断后恢复了系统状态。
STC90C51RC-RD+系列单片机具有低功耗、高速度和高可靠性等特点,是89系列的升级版,抗干扰能力和复位效果更优。它们还支持在线编程(ISP),使得程序的更新和调试变得更加方便。STC90系列单片机的广泛应用和良好性能使其成为许多嵌入式系统开发者的首选。
2024-07-02 上传
136 浏览量
点击了解资源详情
364 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
潮流有货
- 粉丝: 36
最新资源
- Go语言编写的AWS新闻获取程序新特性发布
- 动感PPT背景设计模板精选
- 《C#本质论 第4版》深度解析C#5.0特性
- 金属质感的变形金刚卡通PPT模板下载
- Swing框架打造的数独生成器
- FPSMath Discord机器人:游戏敏感度转换新工具
- M14: 一个无需维护的Web MPD音乐流媒体客户端
- 深度学习医学图像分割数据集:Task02_Heart分析
- SIMOTICS GP, SD, DP电机操作精简指南
- 下载黑色古典风格艺术花纹PowerPoint模板
- CSS从基础到进阶的30天学习计划
- 乘用车BCM控制器源码剖析:遥控、防盗与uds诊断
- Tvde1-Selfbot: Discord自助机器人的制作与分享
- Java实现的学生信息管理系统的开发与应用
- 春节主题PPT模板下载-迎春接福设计
- Java实现的Simple Dots游戏,玩家可与电脑对战随机决策