main.c

来自「CC2430 基础实验二按键控制开关 让用户掌握 CC2430 的按键应用这一」· C语言 代码 · 共 103 行

C
103
字号
#include <ioCC2430.h>

#define uint unsigned int
#define uchar unsigned char
//定义控制灯的端口
#define led1 P1_0	//定义LED1为P10口控制
#define led3 P1_3	//定义LED2为P13口控制

#define K1 P0_1        //按键在P01 对应S1
#define K2 P0_5        //按键在P05 对应center push

//函数声明
void Delay(uint);		//延时函数
void Initial(void);		//初始化P1口
void InitKey(void);
uchar KeyScan(void);

uchar Keyvalue = 0 ;

/****************************
//延时
*****************************/
void Delay(uint n)
{
	uint tt;
	for(tt = 0;tt<n;tt++);
	for(tt = 0;tt<n;tt++);
	for(tt = 0;tt<n;tt++);
	for(tt = 0;tt<n;tt++);
	for(tt = 0;tt<n;tt++);
}

/*****************************************
//按键初始化
*****************************************/
void InitKey(void)
{
  P0DIR &= ~0X22; //按键在P01 P05 对应S1和center push
  P0INP |= 0x22;  //三态
}

/****************************
//初P1口始化程序
*****************************/
void Initial(void)
{
	P1DIR |= 0x09; //P10、P13定义为输出
	led1 = 1;
	led3 = 1;	//LED灭
}

/*****************************************
//读键值
*****************************************/
uchar KeyScan(void)
{
  if(K1 == 0)      //按键K1低电平有效
  {
    Delay(100);
    if(K1 == 0)
    {
      while(!K1);
      return(1);
    }

  }
  if(K2 == 1)     //按键K2高电平有效
  {
    Delay(100);
    if(K2 == 1)
    {
      while(K2);
      return(2);
    }
  }
  return(0);
}

/***************************
//主函数
***************************/
void main(void)
{
	Initial();		//调用初始化函数
        InitKey();              //调用按键初始化函数
	led1 = 0;		//LED1亮
	led3 = 0;		//LED3亮
	while(1)
	{
          Keyvalue = KeyScan();
          if(Keyvalue == 1)
          {
           led1 = !led1;      //每按键一次green变化一次
           Keyvalue = 0;
          }
          if(Keyvalue == 2)
          {
            led3 = !led3;     //每按键一次yellow变化一次
            Keyvalue = 0;
          }
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?