位置:51电子网 » 技术资料 » 单 片 机

PIC单片及定时器溢出中断的设计思路及程序设计

发布时间:2008/11/25 0:00:00 访问次数:1189

  1.设计思路

  pic16f87系列单片机的定时/计数器0是一个8位的简单增量溢出计数器。时钟源可以是内部系统时钟(fosc/4),也可以是外部时钟。为了扩大定时或计数范围,在定时/计数器0中设计了一个可编程预分频器。当tmr0内部计数器计数从ffh跳到ooh时,发生计数溢出,置位toif(intcon的d2),向cpu申请中断。

  rb0/int引脚上的外部中断由边沿触发,既可以是上升沿,也可以是下降沿,当寄存器option_reg的intedg位为1时,选择上升沿触发;为0时选择下降沿触发。一旦检测到引脚上出现有效边沿,就将intf位intcon的d1置1。

  本例中同时允许定时器0中断和外部int中断。在程序执行过程中,不定时地在rb0/int引脚上加入脉冲,产生中断请求。中断服务程序查询tgif和intf标志以决定响应哪一个中断,中断响应优先级由中断查询次序决定。

  2.程序设计

  主程序流程如图1所示,中断子程序流程如图2所示。

  图1 主程序流程

  图2 中断子程序流程

  (1)包含必要的头文件及定义全局变量。

  (2)中断服务子程序,通过判断定时器0的中断对端口c进行操作,使其输出方波。

  (3)主函数,初始化定时器0及端口a,然后进入中断等待状态。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



  1.设计思路

  pic16f87系列单片机的定时/计数器0是一个8位的简单增量溢出计数器。时钟源可以是内部系统时钟(fosc/4),也可以是外部时钟。为了扩大定时或计数范围,在定时/计数器0中设计了一个可编程预分频器。当tmr0内部计数器计数从ffh跳到ooh时,发生计数溢出,置位toif(intcon的d2),向cpu申请中断。

  rb0/int引脚上的外部中断由边沿触发,既可以是上升沿,也可以是下降沿,当寄存器option_reg的intedg位为1时,选择上升沿触发;为0时选择下降沿触发。一旦检测到引脚上出现有效边沿,就将intf位intcon的d1置1。

  本例中同时允许定时器0中断和外部int中断。在程序执行过程中,不定时地在rb0/int引脚上加入脉冲,产生中断请求。中断服务程序查询tgif和intf标志以决定响应哪一个中断,中断响应优先级由中断查询次序决定。

  2.程序设计

  主程序流程如图1所示,中断子程序流程如图2所示。

  图1 主程序流程

  图2 中断子程序流程

  (1)包含必要的头文件及定义全局变量。

  (2)中断服务子程序,通过判断定时器0的中断对端口c进行操作,使其输出方波。

  (3)主函数,初始化定时器0及端口a,然后进入中断等待状态。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

硬盘式MP3播放器终级改
    一次偶然的机会我结识了NE0 2511,那是一个远方的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!