#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;
}
}
}
实训之WSN(二)
最新推荐文章于 2024-08-07 08:44:36 发布