#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(二)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.