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

2020-02-15来源: eefocus关键字: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,然后进入中断等待状态。

关键字:PIC  定时器溢出  中断  设计思路及 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic488342.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:PIC中断程序的设计技巧
下一篇:PIC单片机人机接口模块4×4行列式键盘的电路设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

PIC16F1829 TIMER0初始化程序
简介:本文和大家分享一个PIC16F1829 TIMER0初始化程序,感兴趣的朋友可以看看。//timer0 分频值#define TIMER0_DIV2 (0<<0)#define TIMER0_DIV4 (1<<0)#define TIMER0_DIV8 (2<<0)#define TIMER0_DIV16 (3<<0)#define TIMER0_DIV32 (4<<0)#define TIMER0_DIV64 (5<<0)#define TIMER0_DIV128 (6<<0)#define
发表于 2020-02-08
PIC16F1829 TIMER1初始化程序
简介:在这里和大家分享一个PIC16F1829 TIMER1初始化程序,感兴趣的朋友可以看看。//timer1 分频值#define TIMER1_DIV1 (0<<4)#define TIMER1_DIV2 (1<<4)#define TIMER1_DIV4 (2<<4)#define TIMER1_DIV8 (3<<4)//-------------#define T1_FOSC (1<<6) #define T1_FOSC_4 (0<<6)//---------------#define TIMER1_IEN_ENB
发表于 2020-02-08
PIC16F690 时钟初始化实例
简介:在这里和大家分享一个PIC16F690时钟初始化的程序。//时钟源选择#define CLKS_INT (1<<1)//内部时钟#define CLKS_CONFIG (0<<1)//由配置1决定时钟//内部振荡频率选择 #define IRCF_31KLF      (0<<4)#define IRCF_125KMF    (1<<4)#define IRCF_500KMF    (3<<4)#define IRCF_1MHF   
发表于 2020-02-08
PIC单片机振荡电路中怎样选择晶体?
PIRX 注: X可以是1 2 3 4.。。。不同型号的单片机数目不同INTCON 中断控制寄存器讲解:1开启或关闭 全体的中断功能(GIE)2开启或关闭全体外设的中断功能(PEIE)外设就是在外设中断允许/标志寄存器里面所写的设备。3开启一些中断事件。PIEX 与 PIRX 是相互对应的如:当把PIE1的TMR1IE设置为1 定时器timr1将开启中断。等到TMR1定时器溢出后,则会在PIR1的TMRIF将为1,并且执行中断程序。实例讲解:我们把上一讲的《PIC单片机之定时器》中的实例修改成中断方式 实现 每隔 50MS亮起LED,每隔50MS灭掉LED。/*开发环境MPLAB X IDE 芯片型号PIC
发表于 2020-02-08
PIC单片机程序设计需要注意的一些问题及看法
一、区分指令的大小写编写PIC单片机的源程序,除了源程序的开始处需要严格的列表指令外,还须注意源程序中字母符号的大小写规则,否则在PC机上汇编程序时不会成功。在源程序中都会使用伪指令INCLUDE。这条指令将列表中指定的单片机文件(在MPLAB中)渎入源程序作为源程序的一部分,所以凡是MPLAB中有关该单片机已有的寄存器在源程序中无须再用赋值指令(EQU)赋值,这就使所建立的源程序大为简化。此外,由于有了伪指令INCLUDE,所以根据MPLAB软件中的格式,在源程序中的操作数凡是涉及MPLAB已规定的寄存器名称的,其字母一律只能大写,不能小写。其余操作码、符号字母可任意大小写,但0x中的X应小写。否则汇编不会成功。鉴于上述原因
发表于 2020-02-08
关于PIC单片机之探讨低功耗
1、睡眠(sleep)睡眠方式是我们最常用的一种方式来降低功耗,但睡眠期间单片机不能做任何的事情。对于那些没事情就睡着,有事情就做一下的情况睡眠无疑是功耗最低的处理方式。比如:睡眠+ I/O电平变化中断唤醒当按键没按下时,单片机睡眠,当按键按下后,执行相应的工作。睡眠+数据接收中断唤醒这样单片机就可以再没有接收到数据时候进入睡眠状态,接收到数据的时候就唤醒然后处理数据。当然首先单片机要有相关的外设比如SPI ,I2C,USART,等这些支持这些通讯的模块。睡眠+看门狗唤醒这个可以用在需要定时唤醒做事情的场合2、降低时钟频率如果即想功耗低,又想单片机在能低功耗的情况下工作。这无疑是个最好的选择。PIC单片机 比如PIC
发表于 2020-02-08
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved