當前位置:首頁 > 财經 > 正文

cc2530,一個按鍵循環控制五個終端(3個LED,1個蜂鳴器,一個串口),要求顯示按鍵值、控制值、五個設備狀态值,以及信号怎麼産生的

#include #define KEY1 P0_0 //按鍵key1接口為P1_0 #define LED1 P1_0 //LED1接口為P1_0 #define LED2 P1_1 //LED2接口為P1_1 #define LED3 P2_0 //LED3接口為P2_0 #define BUZZ P0_5 //蜂鳴器接口為P0_5 #define RX P0_2 //P0_2口為接收字狀态 #define TX P0_3 //P0_3口為發送字狀态
/*-----------LED初始化-------------*/
void int_led() { P1SEL &=0xFC; //選擇P1_0,P1_1為通用端口 P2SEL &=0xFE; //選擇P2_0為通用端口 P1DIR |=~0xfc; P2DIR |=~0xFE; LED1=1; //LED1,默認為關閉 LED2=1; //LED2,默認為關閉 LED3=1; //LED3,默認為關閉 } /*-----------key初始化------------*/ void int_key() { P0SEL &=0x00; //選擇P0_0為通用端口 P0DIR &=0x00; P0INP |=0x00; P0SEL &=~0x00; P0DIR |=0x00; //P0口為輸出口

} /*-----------蜂鳴器初始化------------*/ void int_buzz() {
BUZZ=0; //BUZZ初始化為0 P0SEL &=~0x20; //選擇P0_5為通用端口 P0DIR |=0x20; //選擇P0_5為輸出端口
} int m; int count; //定義全局變量
/*-----------主函數------------*/ void main() { int_buzz(); int_led(); int_key(); count=0; //給按鍵賦初值,初值為0 UTX0IF = 0; //串口賦值為0 while(1) //進入循環 { for(m=0;m<6;m++) { if(m==1) //m=0時,LED1亮 { LED1=0; LED2=1; LED3=1; BUZZ=0; UTX0IF=0; //串口賦值 } if(m==2) //m=2時,LED2亮 { LED1=1; LED2=0; LED3=1; BUZZ=0; UTX0IF=0; } if(m==3) //m=3時,LED3亮 { LED1=1; LED2=1; LED3=0; BUZZ=0; UTX0IF=0; } if(m==4) //m=4時,蜂鳴器發聲 { LED1=1; LED2=1; LED3=1; BUZZ=1; UTX0IF=0; } if(m==5) //m=5時,打開串行口 { LED1=1; LED2=1; LED3=1; BUZZ=0; UTX0IF=1; } if(m==5) //m=5時,m=m-5 { m=m-5; } count++; //按鍵次數+1 } } }

你可能想看:

有話要說...

取消
掃碼支持 支付碼