关于PIC中断

发布者:WanderlustSoul最新更新时间:2015-01-15 来源: 51hei关键字:PIC中断  中断源 手机看文章 扫描二维码
随时随地手机看文章
PIC单片机有多个中断源,16系列只有一个中断入口,18系列有两个中断入口,不同编译器下书写格式又不大一样。网上资源千篇一律,也不够系统,只是简单的罗列程序,代码生存的环境不一样也少有说明。在此做个简单的总结,因为又走了弯路...
 
1.先说18系列(MCC18编译器下):
 
MPLAB C18不自动把中断服务程序放在中端向量处。通常将GOTO指令放在中断向量处,从而把控制权转交给相应中断服务程序。
 
void low_isr(void);
void high_isr(void); 
 
*****************************低级中断入口及服务子程序************************************/
 
#pragma code low_vector=0x18//低优先级中断入口
void interrupt_at_low_vector(void)
{
 _asm  GOTO low_isr  _endasm
}
 
 
 
#pragma interrupt low_isr
#pragma code
void low_isr(void)
{
    //低优先级中断服务函数写在这里
}
 
*****************************高级中断入口及服务子程序************************************/
 
#pragma code high_vecotr=0x08//高优先级中断入口
void interrupt_at_high_vector(void)
{
 _asm  GOTO high_isr  _endasm
}
 
 
#pragma code
#pragma interrupt high_isr
void high_isr(void)
{
    //高优先级中断服务函数写在这里
}
 
2.再说18系列(PICC18编译器下):
 
 
 
//void PIC18F_High_isr(void);
//void PIC18F_Low_isr(void);
 
 
*****************************低级中断服务子程序************************************/
 
#pragma interrupt  lowlow_priority   PIC18F_Low_isr
void PIC18F_Low_isr (void)
{
 
        //低优先级中断服务函数写在这里
 
}
 
*****************************高级中断服务子程序************************************/
 
#pragma interrupt  PIC18F_High_isr
void PIC18F_High_isr (void)
 
{
 
       //高优先级中断服务函数写在这里
 
}
 
3.三说16系列(PICC编译器下)(只有一个中断入口,无所谓高了就):
 
void interrupt isr (void)
{
 
      //中断服务函数写在这里
 
}
 
 
 
 void init_interrupt()
 
{
 
 
      GIE=0;
      PEIE=1;
     IPEN=1;
 
     //TMR1IE=1;
    //TMR1IF=0;
    //TMR1IP=0;
    //TMR1L=61;                    
    //T1CON=0xC7;//set up timer0 - 8bit -prescaler
 
     //TMR0IE=1;
     //TMR0IF=0; 
     //TMR0IP=0;
    //TMR0L=61;                     
    //T0CON=0xC7;//set up timer0 - 8bit -prescaler 1:256 
 
      GIE=1;
 
}
 
就写到这里吧,留着自己看,不再这再走弯路
关键字:PIC中断  中断源 引用地址:关于PIC中断

上一篇:PIC32 RTCC实时时钟和日历
下一篇:PIC12F508单片机学习之二—看门狗和休眠模式试用

推荐阅读最新更新时间:2024-03-16 13:51

PIC单片机中断程序的设计技巧
所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。 在设计引脚中断程序时,有三个需要特别注意的地方。一是,在清除P0RTB中断标志位RBIF之前,必须安排一条必不可少的,以PORTB端口数据寄存器PORTB为源寄存器的读操作指令。放置这一指令的目的有时并不只是为了读取有用的数据,而是为了取消状态变化的硬件信号,以便顺利清除RBIF标志位,为下一次中断做好准备。二是,由于端口PORTB是引脚电子变化中断,即无论引脚出现上升沿还是下降沿都会产生中断请求,所以必须处理好不需要的虚假中断。三是,
[单片机]
PIC单片机引脚中断程序的设计技巧
1 简 述 所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7"RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。 在设计引脚中断程序时,有三个需要特别注意的地方。一是,在清除P0RTB中断标志位RBIF之前,必须安排一条必不可少的,以PORTB端口数据寄存器PORTB为源寄存器的读操作指令。放置这一指令的目的有时并不只是为了读取有用的数据,而是为了取消状态变化的硬件信号,以便顺利清除RBIF标志位,为下一次中断做好准备。二是,由于端口PORTB是引脚电子变化中断,即无论引脚出现上升沿还是下降沿都会产生中断请求,所以必须处理好不需要的虚假
[应用]
PIC C语言编程_PICC中断函数的实现
PICC可以实现C语言的中断服务程序。中断服务程序有一个特殊的定义方法: voidinterruptISR(void); 其中的函数名“ISR”可以改成任意合法的字母或数字组合,但其入口参数和返回参数类型必须是“void”型,亦即没有入口参数和返回参数,且中间必须有一个关键词“interrupt”。 中断函数可以被放置在原程序的任意位置。因为已有关键词“interrupt”声明,PICC在最后进行代码连接时会自动将其定位到0x0004中断入口处,实现中断服务响应。编译器也会实现中断函数的返回指令“retfie”。一个简单的中断服务示范函数如下: voidinterruptISR(void)//中断服务程序 {
[单片机]
PIC单片机端口电平变化中断使用必须注意的问题
PORTB口状态变化中断标志的清除必须: 1)读一次PORTB口,消除产生中断标志的硬件条件; 2)清除RBIF位 参考汇编指令 movf PORTB,w bcf INTCON,RBIF // 让PIC作好XOR准备 B口电平变化中断主要靠内部 硬件管脚 与对应B口管脚的电平不同而引发中断 MOVF PORTB,F指令 即读B口管脚电平值将使内部的 硬件管脚 与外部的硬件管脚同电平,这时认为B口电平未变化。 单片机睡眠后,当B口电平发生变化,即与内部的 硬件管脚 相异,将引发MCU中断。 注:电平变化中断与边沿中断不同,中断处理退出时也应再用MOVF PORTB,F指令读一次B口管脚电平值。 // 在pi
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved