您的位置:首页 > 其它

实训之WSN(二)

2017-05-22 20:54 169 查看
#include<ioCC2530.h>

#define LED1 P1_0
#define LED2 P1_1
#define KEY P1_2

//延迟时间 time ms
void delay_ms(int time)
{
int i,j;
for(i = 0 ;i < time;i++)
{
for(j = 0;j < 240;j++)
{
asm("NOP"); //执行一个空的机器周期,目的是消耗时间
asm("NOP");
asm("NOP");
asm("NOP");
asm("NOP");
}
}
}

//主函数
void main()
{
P1DIR |=0x03;

LED1=0;  //复位以后这个灯默认就是点亮的,所以我们要熄灭它
LED2=0;

/*
int number=0;
while(1)
{
if(KEY==0)
{
delay_ms(10);   //作用是消抖
number++;
}
//灯亮
if(number%2==1)
{
LED=1;
//delay_ms(200);
while(!KEY);    //等待按键松开
}
//灯灭
if(number%2==0)
{
LED=0;
//delay_ms(200);
while(!KEY);    //等待按键松开
}
}
*/
/*
while(1)
{
if(KEY == 0)
{
delay_ms(10);// 作用是消抖
if(KEY ==0)
{
LED1 =!LED1;
LED2 =!LED2;
//delay_ms(200);
while(!KEY);    //等待按键松开
}

}
}
*/
/*
第一次按下键的时候,点亮D1,灭掉D2
第二次点亮D2,灭掉D1
第三次同时亮D1和D2
第四次灭掉D1和D2
*/

int number=0;
while(1){

if(KEY == 0)
{
delay_ms(10);// 作用是消抖

// 第一次按下键的时候,点亮D1,灭掉D2
if(KEY ==0&&number==0)
{
LED1 =!LED1;  //亮
LED2 =LED2;   //灭
while(!KEY);  //等待按键松开
number++;
}

// 第二次点亮D2,灭掉D1
if(KEY ==0&&number==1)
{
LED1 =!LED1;   //灭
LED2 =!LED2;   //亮
while(!KEY);    //等待按键松开
number++;
}

//第三次同时亮D1和D2
if(KEY ==0&&number==2)
{
LED1 =!LED1;   //亮
LED2 =LED2;   //亮
while(!KEY);    //等待按键松开
number++;
}

//第四次灭掉D1和D2
if(KEY ==0&&number==3)
{
LED1 =!LED1;   //灭
LED2 =!LED2;   //灭
while(!KEY);    //等待按键松开
number++;
}

}
if(number==4){    //计数置零
number=0;
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: