初窥CC2530--网蜂Zigbee开发板之KEY-LED
来源:互联网 发布:李炎恢javascript素材 编辑:程序博客网 时间:2024/05/18 12:34
/**************************************************项目名称:zigbee——学习*文件名称:key_led.c*功能描述:key1点亮led灯*开发平台:网蜂Zigbee基础版*硬件连接:* LED1 P1_0 低电平亮* KEY1 P0_4 下拉有效**建立时间:2013.5.11*责任人: ****版本号: 无**************************************************/#include <ioCC2530.h>//定义数据类型#define uchar unsigned char#define uint unsigned int//定义控制口#define LED1 P1_0#define KEY1 P0_4//声明函数区void delayms(uint);void InitLed();void InitKey();uchar ScanKey();//函数定义区/***************************函数名称:delayms(uint ms)*函数功能:延时函数*入口参数:无*出口参数:无*返回值 :无**************************/void delayms(uint ms){ uint i = 0; uint j = 0; for(i = 0; i < ms; ++i) for(j = 0; j < 586; ++j);}/***************************函数名称:InitLed()*函数功能:LED初始化*入口参数:无*出口参数:无*返回值 :无**************************/void InitLed(){ P1SEL &= ~0x01;//定义P1_0为普通IO口 P1DIR |= 0x01;//定义P1_0为输出 LED1 = 1;//初始化LED1熄灭}/***************************函数名称:InitKey()*函数功能:按键初始化*入口参数:无*出口参数:无*返回值 :无**************************/void InitKey(){ P0SEL &= ~0x10;//定义p0_4为普通IO口 P0DIR &= ~0x10;//定义P0_4为输入 P2INP &= ~0x11;//设置P0口全部为上拉 P0INP &= ~0x10;//设置P0_4为上拉/下拉}/***************************函数名称:ScanKey()*函数功能:按键扫描函数*入口参数:无*出口参数:无*返回值 :按键状态 按下返回 1 没按返回 0**************************/uchar ScanKey(){ if(0 == KEY1)//是否有按键按下 { delayms(20);//延时让按键状态稳定 if(0 == KEY1)//再次确认是否按键按下 { while(!KEY1);//等待按键松手 return 1;//按键返回 1 } } return 0;//没有按键按下返回 0}/***************************函数名称:main()*函数功能:主函数*入口参数:无*出口参数:无*返回值 :无**************************/void main(){ InitLed(); InitKey(); while(1) { if(ScanKey()) { LED1 = ~LED1;//LED取反 } }}