第一章按键原理图分析

#导入Word文档图片# CC2530 GPIO口输入配置说明_初始化

#导入Word文档图片# CC2530 GPIO口输入配置说明_初始化_02

第二章GPIO口输入模式配置

#导入Word文档图片# CC2530 GPIO口输入配置说明_输入模式_03

#导入Word文档图片# CC2530 GPIO口输入配置说明_初始化_04

第三章检测按键示例代码

  • 示例代码:

#include <ioCC2530.h>


//定义LED灯的端口

#define LED1 P1_2

#define LED2 P1_3


//定义KEY按键的端口

#define KEY1 P1_0 //定义按键为P1_0口控制

#define KEY2 P1_1 //定义按键为P1_1口控制


/*

函数功能:LED灯IO口初始化

硬件连接:LED1-->P1_2 , LED2-->P1_3

*/

void LED_Init(void)

{

P1DIR |=0x3<<2; //配置P1_2、P1_3为输出模式

LED1 = 1;

LED2 = 1;

}


/*

函数功能:按键IO口初始化

硬件连接:KEY1-->P1_0 KEY2-->P1_1

*/

void KEY_Init(void)

{

P1SEL&=~(0x3<<0); //配置P1_0,P1_1处于通用GPIO口模式

P1DIR&=~(0x3<<0); //配置P1_0,P1_1为输入模式

P1INP|= 0x3<<0; //上拉

}



void delay10ms(void) //误差 0us

{

unsigned char a,b,c;

for(c=193;c>0;c--)

for(b=118;b>0;b--)

for(a=2;a>0;a--);

}



/*

函数功能:按键扫描

返 回 值:按下的按键值

*/

unsigned char Key_Scan(void)

{

static unsigned char stat=1;

if((KEY1==0||KEY2==0)&&stat)

{

stat=0;

delay10ms();

if(KEY1==0)return 1;

if(KEY2==0)return 2;

}

else

{

if(KEY1&&KEY2)stat=1;

}

return 0;

}


/*主函数*/

void main(void)

{

unsigned char key;

LED_Init();//初始化LED灯控制IO口

KEY_Init();//按键初始化

while(1)

{

key=Key_Scan();

if(key)

{

LED1 = !LED1;

LED2 = !LED2;

}

}

}


#导入Word文档图片# CC2530 GPIO口输入配置说明_输入模式_05