3KeilC学习定时器定时1s详解.pptVIP

  • 25
  • 0
  • 约2.03千字
  • 约 18页
  • 2016-08-10 发布于湖北
  • 举报
3KeilC学习定时器定时1s详解

实例3-1:定时器中断来闪灯 单片机的主程序是从0x0000开始运行的,单片机服务程序从哪里开始运行呢?在51里,有多个中断服务程序入口,0号入口是外中断0,地址在0x0003;1号入口是定时器0,在0x000B;2号入口是外中断1;地址在0x0013,3号入口是定时器2;地址在0x001B,等等。当中断发生时,程序就记下当前运行的位置,跳到对应的中断入口去运行中断服务程序,运行完之后,又跳回到原来的位置继续运行。 在C51中,你不用理会中断服务程序放在哪里,会怎么跳转。你只要把某个函数标识为几号中断服务函数就可以了。在发生了对应的中断时,就会自动的运行这个函数。 在定时器服务函数里,需要重新置入定时器的值,这样才能保证每次溢出时,都是你指定的时间。这里置入的是0x0006,还需要走0x10000-0x0006个机器周期才溢出。换成10进制也就是每65530个机器周期中断一次。我们仿真的晶振Z,每12个时钟一个机器周期。65530×120.036秒。也就是差不多28HZ的闪烁频率。 计算初值 12M晶振 50MS中断 12M的晶振,则机器周期是1us(12个振荡周期为1个机器周期) 方式1下 定时时间=(65536-T0初值)*机器周期; 最大定时时间=2的16字方*机器周期=0.065516s 所以你可以选择 50MS中断一次+1

文档评论(0)

1亿VIP精品文档

相关文档