⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 CC2430 基础实验二按键控制开关 让用户掌握 CC2430 的按键应用这一常用人机交互方法
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -