PIC单片及定时器溢出中断的设计思路及程序设计
时间:05-05 10:57 阅读:1092次
*温馨提示:点击图片可以放大观看高清大图
简介:本文介绍的是PIC单片及定时器溢出中断的设计思路及程序设计
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,然后进入中断等待状态。