51单片机中断与定时器程序示例

需积分: 10 0 下载量 125 浏览量 更新于2024-07-24 收藏 233KB DOC 举报
"电子51单片机程序" 51单片机是微控制器领域非常经典的一款产品,由Intel公司开发,被广泛应用在各种嵌入式系统中。它以8位处理能力、简单易用和成本效益高而著称。本资源提供了一些用于51单片机学习的程序示例,涵盖了中断服务、按键响应以及定时器应用。 1. 中断执行:中断是51单片机处理外部事件的一种机制。在提供的代码中,可以看到中断服务函数`exint0()`和`exint1()`。`EA=1`开启了全局中断,`INT0=1`和`EX0=1`是启用外部中断0,`IT0=1`设置中断0为下降沿触发。中断0的服务函数`exint0()`中,当接收到中断请求时,会执行一系列灯的状态改变操作。中断1的配置类似,但其服务函数`exint1()`实现了一种序列化的LED显示效果。 2. 按键中断改变灯状态:这部分代码展示了如何通过按键中断来改变LED灯的状态。`IT0=0`设定外部中断0为电平触发而非边沿触发,然后在`exint0()`函数中,当检测到按键按下(中断0触发)时,LED灯会按照预设模式闪烁。 3. 定时程序:51单片机有2个16位定时器/计数器,即Timer0和Timer1。在给出的定时程序中,定义了一个宏`T1MS`用于计算定时时间常量,基于系统时钟频率`FOSC18432000L`。`TL0`和`TH0`初始化为溢出值,当定时器溢出时,可以触发中断或进行计数。`delay()`函数利用定时器实现了延时功能。在主函数`main()`里,定时器被用来控制LED的闪烁频率。 这些程序实例为初学者提供了了解和实践51单片机中断系统和定时器操作的基础。通过这些代码,学习者可以掌握如何配置中断、编写中断服务函数以及如何利用定时器进行周期性任务的执行,这些都是51单片机编程的关键技能。在实际项目中,这些技能能够帮助开发者高效地响应外部事件和实现精确的时间控制。