功能模块
使用两个按键,一个控制按键的开,另一个按键控制按键的关闭。
代码模块
#include <ioCC2530.h>
#define LED1 P1_4
#define S5 P0_4
#define S6 P0_5
#define ON 0
#define OFF 1
#define DOWN 0
#define UP 1
void led_init(void);
void key_init(void);
void delay_ms(int nms);
unsigned char poll_key(void);
void main(void)
{
unsigned char key_val;
led_init();
key_init();
while(1){
key_val=poll_key();
if(key_val)
{
if(5==key_val)
{
LED1=ON;
}
else{
LED1=OFF;
}
}
}
}
void led_init(void)
{
P1SEL&=~0x10;
P1DIR |=0x10;
LED1=OFF;
}
void delay_ms(int nms)
{
unsigned int i,j;
for(i=nms;i>0;i--)
for(j=578;j>0;j--);
}
void key_init(void)
{
P0SEL &=~0x30;
P0DIR &=~0x30;
P0INP &=~0x30;
P2INP &=~0x20;
}
unsigned char poll_key(void)
{
if((DOWN==S5)||(DOWN==S6))
{
delay_ms(20);
if(DOWN==S5)
{
return 5;
}
else if(DOWN==S6)
{
return 6;
}
}
return 0;
}
|