STC90C51RC/RD+单片机定时器初始化与中断服务程序
"这篇文档是关于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系列单片机的广泛应用和良好性能使其成为许多嵌入式系统开发者的首选。
- 粉丝: 35
- 资源: 3969
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南