要求:
实现两个按键控制CC2530单片机LED的亮灭。
代码参考:
#include "ioCC2530.h"
void Delay(long t)
{
while(t--)
{
asm("nop"); //空操作
asm("nop");
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
}
void led_init(void)
{
P1DIR |=0X02;//P1_1
P1SEL=P1SEL&0xFD;
P1DIR |=0X01;//P1_0
P1SEL&=0XFE;
}
void key_init(void)
{
P0DIR &=0XDF;//P0_5
P0SEL &=0XDF;
P0INP &=0XDF;
P0DIR &=0XEF;//P0_4
P0SEL &=0XEF;
P0INP &=0XEF;
}
void zhongduan_init(void)
{
IEN0 |=0X80;//EA=1
IEN1 |=0X20;
P0IEN |=0X20;//P0_5
PICTL |=0X01;//下降沿
EA=1;
IEN1 |=0X20;
P0IEN |=0X10;//P0_4
PICTL |=0X01;
}
void main(void)
{
led_init();
key_init();
zhongduan_init();
while(1)
{
P1_1=1;//熄灭LED灯
P1_0=1;
}
}
#pragma vector=P0INT_VECTOR
__interrupt void P0_ISR(void)
{
if(P0IFG==0X20)
{
//P1_1=!P1_1;//点亮LED
//Delay(5000);
P1_1=!P1_1; //P0IFG=0;//手动清零
Delay(50000); //P0IF=0;//手动清零
P0IFG=0;
P0IF=0;
}
if(P0IFG==0X10)
{
P1_0=!P1_0;
Delay(50000);
P0IFG=0;
P0IF=0;
}
}