欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

zigbee按键中断点亮流水灯

程序员文章站 2022-06-09 16:33:05
...

zigbee按键中断点亮流水灯


实验基于CC2530开发板,很多的基本功能与51开发板有异曲同工之妙,如果有51的基础,更容易上手,使用的粤嵌开发板按键在P1_2端口,开发板的I/O端口大多能够设置中断,中断种类达到了18。

1.开发板按键、led灯原理图
zigbee按键中断点亮流水灯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后开发板不亮灯,基数次按键,开发板亮流水灯,偶数次按键,开发板灭灯。