收藏0 举报
/************************************************************************************* * 项目名: KF8FXXX-INTX_Interrupt_TEST * 开发环境:ChipON IDE * 版本: * 使用芯片:KF8F312 使用于KF8FXXX、KF8SXXXX * 作者:上海芯旺微电子有限公司 * 功能简述: 芯片外部中断的使用 包括INT0、INT1、INT2 *************************************************************************************/ #include<KF8F312.h> //#define INT0 // 使能INT0中断 //#define INT1 // 使能INT1中断 //#define INT2 // 使能INT2中断 /*********************宏定义******************************/ #define uchar unsigned char #define uint unsigned int #define LED1 P16 // 对应Demo板上的D3 /*********************宏定义结束*********************** ***/ /************************ * 函数名 :init_fun * 函数功能:初始化函数 * 入口参数:无 * 返回 :无 ************************/ void Init_fun() { OSCCTL = 0x60; //设置系统时钟为8M /*********端口初始化***********/ TR0 = 0x0c; //设置P03 P02(INT0) 端口只能设置为输入 TR1 = 0x0c; //P12(INT1)/P13(INT2)口为外部中断引脚,需配置为数字输入口设置P1端口为输出 TR2 = 0x00; //设置P2端口为输出 P0 = 0x00; P1 = 0x00; P2 = 0xF0; ANSEL = 0; //配置P12口为数字口 ANSEH = 0; #ifdef INT0 INT0IF = 0; // 清中断标志位 INT0SE = 0; // 0 :下降沿 1:上升沿 INT0IE = 1; // 使能中断 PUIE = 0; #endif #ifdef INT1 INT1IF = 0; // 清中断标志位 INT1SE = 0; // 0 :下降沿 1:上升沿 INT1IE = 1; // 使能中断 PUIE = 1; // INT1 属于外部中断 #endif #ifdef INT2 INT2IF = 0; // 清中断标志位 INT2SE = 0; // 0 :下降沿 1:上升沿 INT2IE = 1; // 使能中断 PUIE = 1; // INT2 属于外部中断 #endif AIE = 1; // 使能总中断 } /************************ * 函数名 :Delay * 函数功能:短时间延时 * 入口参数:无 * 返回 :无 ************************/ void Delay() { uchar i = 0,j = 0; for (i = 0;i < 200;i++) for (j = 0;j < 200;j++); } void main() { Init_fun(); while (1) { P11 = !P11; // 改变P11口电平 Delay(); } } //中断函数 void int_fun() __interrupt { #ifdef INT0 if (INT0IF) { INT0IF = 0; // 清中断标志 LED1 = !LED1; // 更改 D3 显示状态 } #endif #ifdef INT1 if (INT1IF) { INT1IF = 0; // 清中断标志 LED1 = !LED1; // 更改 D3 显示状态 } #endif #ifdef INT2 if (INT2IF) { INT2IF = 0; // 清中断标志 LED1 = !LED1; // 更改 D3 显示状态 } #endif }
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
11
67
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号