什么是中断程序呢?

形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断程序,他中断了你看文章这件事。在程序方面来说 当CPU在执行一个程序的时候,突然产生了中断事件CPU就去执行中断程序了,当执行完成后CPU又回来执行原先的程序。

中断事件

 什么是中断事件,就是引起中断的事件。对于单片机来说这些事件是多种多样的。比如 说一个按键按下,一定的时间到了,一串数据发送完毕,或接收完一个数据。

讲到中断不得不讲讲和中断相对的 查询。其实不管是按键按下 还是 时间到,还是数据发送完毕,这些事实上都可以用查询的方式办到。比如 你是经理 如果你想知道属下任务完成了没有 一种方式就是去询问属下,任务完成没有。早上没完成,下午在问。下午没完成第二天再问。。。。一直到完成为止 这种方式就相当于查询的方式,另一种就是然属下完成任务好直接汇报,在下属执行任务的期间你无需去打挠下属,当下属任务完成后就第一时间向你汇报,这种方式就好像中断。

查询方式:缺点就是可能会大量浪费CPU的时间,不断去查询。如果事情不多还好,可是一旦事情多了会明显感到运行速度变慢。

中断方式:可以用在对时间和响应速度有要求的场合。

具体有哪些事件会引起中断 可以看

1,中断控制寄存器INTCON

2,外设中断允许寄存器 PIEX 注 : X可以是1 2 3 4.。。。不同型号的单片机数目不同

3,外设中断标志寄存器 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 芯片型号PIC16LF1823*/

#include<pic.h>

__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON

&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);//这个要放到上一行去

__CONFIG(PLLEN_OFF&LVP_OFF) ;
#define LED  LATA5
void init_fosc(void)
{
    OSCCON= 0x68;
}
void init_gpio(void)
{
    PORTA = 0;
    LATA = 0;
    ANSELA = 0;
    TRISAbits.TRISA5=0; 
}
void init_timer0(void)
{
    OPTION_REG=0x87;
}
void interrupt isr(void)//中断程序,interrupt是个关键字说明该函数,是中断函数。
{
    LED = ~LED;//改变LED的状态
    INTCONbits.TMR0IF=0;//清零中断标志位 如果在离开中断程序前没有清零,程序将不停的中断。
    TMR0=61;//给TMR0付初始值61 ,开始下一个50ms计时做准备。
   //中断函数结束 返回主函数。哪里来回 回那里去,也就是回到主函数的while(1);处

}
int main(int argc, char** argv)
{
    init_fosc();
    init_gpio();
    init_timer0();

INTCONbits.GIE=1;        //开启总中断

INTCONbits.TMR0IF=0;//清零TMR0溢出中断标志位
    INTCONbits.TMR0IE=1;//开启TMR0溢出中断
    TMR0=61;
    while(1);//主函数 在此什么都没做一直在死循环。但等到50ms时间到了TMR0将会溢出,程序就会跳到void interrupt isr(void)处执行。

}

我帮大家理清下中断初始设置大致的步骤

1 ,开启总中断,开启外设中断。INTCONbits.GIE=1;  INTCONbits.PEIE=1;其实即使没用到外设开启也无妨。

2 ,清楚相应中断的标志位。如INTCONbits.TMR0IF=0;

3  ,开启相应中断。如INTCONbits.TMR0IE=1;

中断函数/程序 中要注意的就是 清零相应的中断标志位 如INTCONbits.TMR0IF=0; 否则单片机会认为中断未被执行 则一直中断。



PIC单片机之中断程序相关推荐

  1. c语言单片机定时器的应用程序,51单片机定时器中断程序(C语言)

    51c程序 51单片机定时器中断程序(C语言) 用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶 ...

  2. PIC16F C语言测频率程序,PIC单片机C语言程序—实例5

    PIC单片机C语言程序-实例5 来源:华强电子网 作者:华仔 浏览:3630 时间:2016-08-10 14:18 标签: 摘要: 前面已介绍了学习pic单片机c语言程序的一些最基本内容,并以具有一 ...

  3. 【PIC单片机】-- 中断、定时器相关知识

    文章目录 文章目录 00 写在前面 01 中断相关知识 02 定时器相关知识 03 定时器相关寄存器 04 定时器相关电路 05 定时器补充 06 结尾 00 写在前面 该系列的文章,源自于担任过PI ...

  4. 单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)

    EA     是 中断总开关, 不管是定时器,串口还是外部中断,都需要打开 EA 才能触发中断; ET0   是 定时器0 的专用中断开关, 也就是说: 打开了EA.而不打开ET0,定时器0是无法触发 ...

  5. 发出警报声的c语言程序,PIC单片机警报声C程序

    //************************************************** //实验目的: //熟悉使用单片机驱动蜂鸣器产生警报声 //***************** ...

  6. ioca0中断 pic单片机_单片机入门知识-PIC为例程序.ppt

    PIC单片机原理及应用 内容提要 单片机概述 PIC单片机的特色 PIC单片机的程序设计 单片机概述 单片机正名为:微控制器 --MCU ,MicroController Unit 单片机概述 何为单 ...

  7. 一点点学pic单片机,如何设计pic单片机中断程序

    pic单片机使用很多,但pic单片机的学习存在一定难度.为帮助大家稳步提高对pic单片机的认识,本文将对pic单片机引脚中断程序设计技巧加以介绍.如果你正在学习pic单片机,或对本文即将讲解的内容存在 ...

  8. PIC单片机中断服务程序

    中断服务程序有一个特殊的定义方法: void interrupt ISR(void);其中的函数名"ISR"可以改成任意合法的字母或数字组合,但其入口参数和返回参数类型必须是&qu ...

  9. 单片机C语言 8,PIC单片机C语言程序设计_8_

    PICC编译器的安装<PIC单片机C语言程序(7)>一文介绍MPLABIDE7.40的安装时,我们已将光盘中的PICC编译器的压缩软件PICC8.05.rar(见该文图12)粘贴到我的电脑 ...

最新文章

  1. mapreduce编程规范_大数据之MapReduce详解
  2. MIUI 9稳定版即将推送,米粉:升级小米6相机算法比升级系统重要
  3. UOJ - #117. 欧拉回路(模板)
  4. sklearn自学指南(part59)--神经网络模型(监督)
  5. 合肥天鹅湖万达广场机器人_合肥租房价位及租房地理位置推荐
  6. 对LR回放中highest severity level wasERROR的解决方法
  7. python 二进制,十进制,十六进制
  8. iOS开发的几种加密方式
  9. UAT测试后上线出现问题的引起的思考
  10. 人工智能简史—学习笔记
  11. 我的团长我的团第十六集
  12. 机试评判系统评判提交程序后返回结果详细说明
  13. 【洛谷P1516】青蛙的约会
  14. 春江水暖鸭先知,不破楼兰誓不还
  15. 【电子科学系保研】-- 湖南大学保研之旅
  16. Hadoop入门案例WordCount
  17. 如何选择一家好的Java培训机构?
  18. 工作日志:502 Bad Gateway异常分析
  19. 阿里巴巴面试5轮问题
  20. 【Oracle SQL数据库-教学1】--- 开篇

热门文章

  1. 大学jsp实验七--JavaBean在JSP中的应用
  2. 因果发现:推开认知世界的大门
  3. 今日芯声 | 嘘!你与谷歌语音助手的对话,可能已经泄露……
  4. 【思维进阶】新手小白如何练习写作
  5. 2020春招招银网络科技测开面经
  6. Android图文并茂如何存储,图文并茂,手把手教您如何将笔记本/iphone手机,安卓系统手机传屏到投影/电视...
  7. Num.02-CSS
  8. 【重要】寒假期间,您的孩子需要注意这些问题!——心田花开
  9. 学计算机好还是警校好,上警校好还是普通大学好?上警校有的好处在哪?
  10. Shopee大促爆单?从这些营销工具切入,订单一爆再爆