C51单片机定时器中断服务程序解析
需积分: 0 171 浏览量
更新于2024-07-12
收藏 1.94MB PPT 举报
"这篇资料主要介绍了C51单片机中的定时器中断服务程序,特别是针对定时器1的配置和使用。通过实例展示了如何利用定时器1来实现特定功能,如50ms的定时,并结合中断进行LED的闪动控制。"
在51系列单片机中,定时器/计数器是重要的硬件资源,通常用于实现延时、脉冲计数等功能。在这个课件中,重点讨论的是C51单片机的定时器1 (Timer1)。C51系列单片机有两个定时器,即Timer0和Timer1,而C52系列则增加了Timer2。这些定时器都可以根据系统时钟工作在不同的模式下,也可以对外部信号进行计数。
定时器的工作方式是通过TMOD寄存器进行配置的。TMOD寄存器的M1和M0位用于定义定时器的工作模式,例如00表示13位定时/计数器,01表示16位定时/计数器,10表示8位自动重置定时/计数器,11表示两个8位定时器(仅适用于Timer0)。此外,C/T位用于区分定时模式和计数模式,GATE位则控制定时/计数器是否由外部中断请求启动。
在中断服务程序`time1_int(void) interrupt 3`中,可以看到定时器1在中断模式下的使用。当定时器1溢出(即计数值达到预设值)时,会触发中断。中断服务程序首先重置定时器1的初值,这里设置为`TH1=0x3c; TL1=0xb0;`以实现50ms的定时。接着,程序更新变量`i`,并在`i`达到20时改变LED的状态,然后将`i`复位,这样就实现了LED的周期性闪动。
为了启用定时器1的中断,还需要设置全局中断允许位EA以及定时器1的中断使能位ET1。启动定时器1的操作是通过设置TCON寄存器的TR1位,即`TR1=1`。中断标志TF1会在定时器1溢出时被置位,需要在中断服务程序中清除,否则会持续触发中断。
此外,课件还提到了方式2,即8位自动重置定时/计数器模式。在这种模式下,一旦计数器溢出,计数值会自动重置,并从预设值开始重新计数。这在需要精确控制计数周期的应用中非常有用。
C51单片机的定时器功能强大且灵活,可以适应多种应用场景。通过合理的配置和中断服务程序设计,可以实现各种复杂的定时和计数任务。
2009-11-05 上传
2011-12-01 上传
2021-04-05 上传
2022-05-13 上传
2021-05-25 上传
2012-12-10 上传
2021-09-23 上传
2011-01-15 上传
2011-06-12 上传
永不放弃yes
- 粉丝: 915
- 资源: 2万+
最新资源
- 2009-2020年华东师范大学817高等代数考研真题
- OpenSystemFirmware:开放系统固件(OSF)
- OpenBurn:免费和开源的固体火箭发动机设计和内部弹道仿真
- Javascript-Challenge
- gestalt-dcos
- is219_calculator
- astarqky.zip_数据结构_Java_
- Sendimeter-crx插件
- matlab心线代码-cardiac:心脏的
- 样品模
- Sieve:玩Eratosthenes筛
- omnistack11.0:Dev NodeJS + React-成为英雄
- HandWriter.rar_JavaScript/JQuery_C#_
- FrontEnd-examples
- lb2
- blog:使用Elixir和LiveView的微博客