标签:
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
P0IEN | 7:0 | P0_[7:0]IEN | 0x00 | R/W | 端口0,位7至位0中断使能。0:中断禁止;1:中断使能 |
P1IEN | 7:0 | P1_[7:0]IEN | 0x00 | R/W | 端口1,位7至位0中断使能。0:中断禁止;1:中断使能 |
P2IEN | 7:6 | --- | 00 | R0 | 未使用 |
P2IEN | 5 | DPIEN | 0 | R/W | USB D+ 中断使能。 |
P2IEN | 4:0 | P2_[4:0]IEN | 00000 | R/W | 端口2,位4至位0中断使能。0:中断禁止;1:中断使能 |
端口 | Bit位 | 名称 | 初始化 | 读写 | 描述 |
PICTL | 7 | PADSC | 0 | R/W | 强制引脚在输出模式。选择输出驱动能力,由DVDD引脚提供。0:最小驱动能力;1:最大驱动能力 |
PICTL | 6:4 | --- | 000 | R0 | 未使用 |
PICTL | 3 | P2ICON | 0 | R/W | 端口2,引脚4至0输入模式下的中断配置,0:输入的上升沿引起中断;1:输入的下降沿引起中断 |
PICTL | 2 | P1ICONH | 0 | R/W | 端口1,引脚7至4输入模式下的中断配置,0:输入的上升沿引起中断;1:输入的下降沿引起中断 |
PICTL | 1 | P1ICONL | 0 | R/W | 端口1,引脚3至0输入模式下的中断配置,0:输入的上升沿引起中断;1:输入的下降沿引起中断 |
PICTL | 0 | P0ICON | 0 | R/W | 端口0,引脚7至0输入模式下的中断配置,0:输入的上升沿引起中断;1:输入的下降沿引起中断 |
端口 | Bit位 | 名称 | 初始化 | 读/写 | 描述 |
P0IFG | 7:0 | P0IF[7:0] | 0x00 | R/W0 | 端口0,位7至位0输入中断状态标志。0:未发生中断,1:发生中断 |
P1IFG | 7:0 | P1IF[7:0] | 0x00 | R/W0 | 端口1,位7至位0输入中断状态标志。0:未发生中断,1:发生中断 |
P2IFG | 7:5 | --- | 000 | R0 | 未使用 |
P2IFG | 4:0 | P2IF[4:0] | 0x00 | R/W0 | 端口2,位4至位0输入中断状态标志。0:未发生中断,1:发生中断 |
1 /****************************************************************************** 2 *函 数 名:InitKey 3 *功 能:按键中断初始化 4 *入口参数:无 5 *出口参数:无 6 ******************************************************************************/ 7 void InitKey(void) 8 { 9 P0SEL &= ~0x02; //P0.1设置为通用I/O口 10 P0DIR &= ~0x02; //P0.1设置为输入 11 P0IFG &= ~0x02; //P0.1中断状态标志位清0 12 PICTL |= 0x00; //P0端口下降沿触发 13 P0IEN |= 0x02; //P0.1中断使能 14 IEN1 |= 0x20; //端口P0中断使能 15 EA = 1; //开总中断 16 }
1 /****************************************************************************** 2 *函 数 名:P0_ISR 3 *功 能:中断服务子程序 4 *入口参数:无 5 *出口参数:无 6 ******************************************************************************/ 7 #pragma vector = P0INT_VECTOR 8 __interrupt void P0_ISR(void) 9 { 10 if(0x02 & P0IFG) //判断按键中断 11 { 12 //具体功能代码 13 } 14 P0IFG = 0; //清中断标志 15 P0IF = 0; //清中断标志,IRCON[5],P0口中断 16 }
1 /****************************************************************************** 2 *文 件 名:KEY.c 3 *作 者:陈照 4 *时 间:2015-04-23 5 *版 本:1.0 6 *描 述:按键中断方式控制流水灯 7 ******************************************************************************/ 8 #include <iocc2541.h> 9 #include "delay.h" 10 11 typedef unsigned char uchar; 12 typedef unsigned int uint; 13 14 #define LED1 P1_0 15 #define LED2 P1_1 16 #define LED3 P1_4 17 #define KEY P0_1 18 19 /****************************************************************************** 20 *函 数 名:InitLED 21 *功 能:LED灯初始化 22 *入口参数:mode,mode为1则点亮所有LED,mode为0则熄灭所有LED 23 *出口参数:无 24 ******************************************************************************/ 25 void InitLED(uchar mode) 26 { 27 P1SEL &= ~0x13; //P1.0,P1.1,P1.4设置为通用I/O口 28 P1DIR |= 0x13; //P1.0,P1.1,P1.4设置为输出 29 LED1 = mode; //LED灯亮熄控制 30 LED2 = mode; 31 LED3 = mode; 32 } 33 34 /****************************************************************************** 35 *函 数 名:InitKey 36 *功 能:按键中断初始化 37 *入口参数:无 38 *出口参数:无 39 ******************************************************************************/ 40 void InitKey(void) 41 { 42 P0SEL &= ~0x02; //P0.1设置为通用I/O口 43 P0DIR &= ~0x02; //P0.1设置为输入 44 P0IFG &= ~0x02; //P0.1中断状态标志位清0 45 PICTL |= 0x00; //P0端口下降沿触发 46 P0IEN |= 0x02; //P0.1中断使能 47 IEN1 |= 0x20; //端口P0中断使能 48 EA = 1; //开总中断 49 } 50 51 /****************************************************************************** 52 *函 数 名:P0_ISR 53 *功 能:中断服务子程序 54 *入口参数:无 55 *出口参数:无 56 ******************************************************************************/ 57 #pragma vector = P0INT_VECTOR 58 __interrupt void P0_ISR(void) 59 { 60 if(0x02 & P0IFG) //判断按键中断 61 { 62 LED1 = !LED1; //流水灯 63 Delay1ms(1000); //延时1s 64 LED2 = !LED2; 65 Delay1ms(1000); 66 LED3 = !LED3; 67 Delay1ms(1000); 68 } 69 P0IFG = 0; //清中断标志 70 P0IF = 0; //清中断标志,IRCON[5],P0口中断 71 } 72 73 /****************************************************************************** 74 *程序入口函数 75 ******************************************************************************/ 76 int main(void) 77 { 78 InitLED(0); //LED初始化,熄灭LED1~3 79 InitKey(); //按键中断初始化 80 81 while(1) 82 { 83 } 84 }
标签:
原文地址:http://www.cnblogs.com/chenzhao207/p/4483227.html