外部中断的配置
1.初始化IO口工作在普通IO、上拉输入状态。 PxSEL PxDIR PxINP
2.首先开IO口组中断,由 P0IE=1(P0端口中断) P1IE P2IE决定(小组使能)
3.开组内对于的具体某IO口中断,由P0IEN P1IEN P2IEN 决定(终端使能)
4上升沿还是下降沿触发,PICTL寄存器决定,0代表上升沿,1代表下降沿
D7 D6 D5 D4 D3 D2 D1 D0
I/O驱动能力 未用 未用 未用 P2_0~P2_4 P1_3~P1_7 P1_0~P1_3 P0_0~P0_7
注:D0位置一,即PICTL&=0x01;//0000 0001,表明P0组(P0_0~P0_7)都是下降沿.
5.开CPU总中断EA=1 (总中断使能)
中断函数:
#pragma vector=PxINT_VECTOR
__interrupt void fn()
{
PxIFG=0;//清零
PxIF=0;
}
代码 以P0_5例子,下降沿触发
#include<iocc2530.h>
void delay()
{
int i,j;
for(i=0;i<1000;i++)
for(j=0;j<30;j++);
}
void main()
{