zigbee按键中断点亮流水灯
程序员文章站
2022-06-09 16:33:05
...
zigbee按键中断点亮流水灯
实验基于CC2530开发板,很多的基本功能与51开发板有异曲同工之妙,如果有51的基础,更容易上手,使用的粤嵌开发板按键在P1_2端口,开发板的I/O端口大多能够设置中断,中断种类达到了18。
1.开发板按键、led灯原理图
2.实验源代码
#include<ioCC2530.h>
#define led1 P1_0
#define led2 P1_1
void delay(int i);
char count=0;
void main()
{
P1SEL&=~0x04;//设置通用IO口
P1INP|=0x04; //上拉
P1IEN|=0x04; //P1_2设置为中断方式
PICTL|=0x02; //下降沿触发,不设置这个触发方式好像也能产生相应的现象
EA=1; //总中断
IEN2=0x10;//P1设置为中断方式
P1IFG=0x00;//初始化中断标志位
P1SEL&=0x03;//设置led
P1DIR|=0x03;
led1=0;
led2=0;
while(1)
{
if(count%2==1)//基数按键次数将产生流水灯
{
led1=1;
delay(10);
led1=0;
led2=1;
delay(10);
led2=0;
}
if(count%2==0)
{
led1=0;
led2=0;
}
}
}
void delay(int i)//延时函数
{
int j;
for(;i>0;i--)
for(j=0;j<10000;j++);
}
//按键产生中断需要手动清除中断标志
#pragma vector = P1INT_VECTOR
__interrupt void P1_ISR()
{
if(P1IFG>0)
{
count++;
P1IFG=0;//清除P1中断标志
P1IF=0;//清除P1_2中断标志
}
}
3.产生现象
程序下载成功后,reset后开发板不亮灯,基数次按键,开发板亮流水灯,偶数次按键,开发板灭灯。