PIC单片机3——外部中断
创始人
2024-02-20 17:45:39
0

 

 

//RB2(INT2)作为外中断
#include /*18F系列单片机头文件*/

void PIC18F_High_isr(void);/*中断服务函数声明*/
void PIC18F_Low_isr(void);

#pragma code high_vector_section=0x8
/*高优先级中断响应时,会自动跳转到0x8处*/
/*利用预处理器指令#pragma code来指定后面的程序在ROM中的起始地址为0x08,*/
/*它是告诉连接器定位到特定的代码段,HIGH_INTERRUPT_VECTOR 是该特定代码段的段名*/
void high_vector (void)
{
    _asm goto PIC18F_High_isr _endasm/*通过一条跳转指令(汇编指令),跳转到中断服务函数(中断服务程序)处*/
}

#pragma code low_vector_section=0x18
/*低优先级中断响应时,会自动跳转到0x18处*/
void low_vector (void)
{
    _asm goto PIC18F_Low_isr _endasm
}

#pragma code
/*这条语句不是多余的,它是告诉连接器回到默认的代码段,*/
/*如果不加的话,连接器就会傻傻地把后面的代码紧跟着上面的代码一直放下去。*/
/*而18f4520.lkr文件里定义了向量区地址最多到0x29,所以如果没加此句通常会报错*/

/*---高优先级中断服务程序---*/
#pragma interrupt PIC18F_High_isr
/*利用预处理器指令#pragma interrupt来声明后面的函数是低优先级中断服务函数(中断服务程序),*/
/*注意:关键字是interrupt,和低优先级中断时不同*/
/*一旦指定后面的函数是低优先级中断服务程序,系统在进入该函数时,会自动保护现场,退出前自动恢复现场,*/
/*同时中断服务程序执行完毕后,会自动返回断点,*/
/*中断服务函数前必须加该语句*/
void PIC18F_High_isr (void)
{
/*如果只有一个同级中断源被使能:*/
/*1、执行中断服务语句部分*/
/*2、清除中断标记*/

/*如果有多个同级中断源被使能:*/
/*1、用查询法确定是哪个中断源提出了中断请求*/
/*2、确定是哪个中断源提出了中断请求后,执行中断服务语句部分*/
/*3、最后清除该中断源中断标志*/
}

/*---低优先级中断服务程序---*/
#pragma interruptlow PIC18F_Low_isr
/*注意:关键字是interruptlow,和高优先级中断时不同*/
void PIC18F_Low_isr (void)
{
    PORTBbits.RB4=~PORTBbits.RB4;
    INTCON3bits.INT2IF=0;/*清除中断标志*/
}


void main(void)/*主函数*/
{
    TRISBbits.TRISB4=0;//B4输出
    PORTBbits.RB4=1;   //B4输出高电平

    INTCONbits.GIE=0;/*关全局中断*/
    RCONbits.IPEN=1;/*使能中断优先级*/
    INTCON2bits.INTEDG2=0;/*设定外部中断触发边沿*/    
    INTCON3bits.INT2IP=0;/*设定中断优先级*/
    INTCON3bits.INT2IF=0;/*清除中断标志*/  
    INTCON3bits.INT2IE=1;/*使能中断*/    
    INTCONbits.GIEL=1;/*开低优先级全局中断*/
    INTCONbits.GIE=1;/*开全局中断*/

    while(1) ;/*这里写主程序语句*/

}


    

    
    

 

相关内容

热门资讯

发挥政策合力促物价合理回升 近日举行的中央经济工作会议提出,“把促进经济稳定增长、物价合理回升作为货币政策的重要考量”,引发广泛...
澳大利亚国家内阁会议 同意加强... 新华社悉尼12月15日电(记者 齐紫剑 李晓渝)澳大利亚总理阿尔巴尼斯与澳各州、领地领导人15日举行...
亿利达[002686]关于诉讼... 本版导读 2025-12-16 2025-12-16 2025-12-16 2025...
重庆市地方金融条例 重庆市人民代表大会常务委员会公告 〔六届〕第103号 《重庆市地方金融条例》已于2025年11月28...
特朗普:可能会在未来“数小时内... 中新网12月16日电 据美国《新闻周刊》报道,当地时间12月15日,美国总统特朗普表示,可能会在未来...
律师成长的误区:忽视“被动”生... 我们小时候都学过“揠苗助长”的故事,学完会嘲笑这个农夫太过心急。我发现我们也不知不觉成为了这个“农夫...
中国电器科学研究院股份有限公司... 本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、...
特朗普:拟于今日或明日起诉BB... 当地时间12月15日,美国总统特朗普表示,可能会在当日下午或16日早上对英国广播公司(BBC)提起诉...
欧盟外交与安全政策高级代表卡拉... 欧盟外交与安全政策高级代表卡拉斯:每个人都理解比利时的担忧,并愿意分担负担。 来源:金融界AI电报
美联储理事米兰:金融市场关注的... 美联储理事米兰:金融市场关注的是结果,而非政策制定者的动机。 来源:金融界AI电报