/*************************************************
*项目名称: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取反
}
}
}
初窥CC2530--网蜂Zigbee开发板之KEY-LED
最新推荐文章于 2020-01-16 16:25:31 发布