CC2530:按键控制LED亮灭

  • Post author:
  • Post category:其他


#include <ioCC2530.h>

typedef unsigned char uchar;
typedef unsigned int  uint;

#define LED1 P1_0       // P1.0 口控制 LED1
#define KEY1 P0_1         // P0.1 口控制 S1


void DelayMS(uint msec)
{ 
    uint i,j;
    
    for (i=0; i<msec; i++)
        for (j=0; j<535; j++);
}


void InitLed(void)
{
    P1DIR |= 0x01;      // P1.0 定义为输出
    LED1 = 1;         // LED1 灯初始化为熄灭状态
}


void InitKey(void)
{
    P0SEL &= ~0x02;     //设置 P0.1 为普通 IO 口 
    P0DIR &= ~0x02;     //按键接在 P0.1 口上,设 P0.1 为输入模式 
    P0INP &= ~0x02;    //打开 P0.1 上拉电阻
}


uchar KeyScan(void)
{
    if (KEY1 == 0)
    {
        DelayMS(10);
        if (KEY1 == 0)
        {
            while(!KEY1);     //松手检测 
            return 1;        //有按键按下
        }
    }
    
    return 0;             //无按键按下
}

void main(void)
{
    InitLed();		     //设置 LED1 相应的 IO 口
    InitKey();          //设置 S1 相应的 IO 口
    
    while(1)
    {
        if (KeyScan())    //按键按下则改变 LED 状
            LED1 = ~LED1;       
    }
}

InitKey()

功 能: 设置按键相应的 IO 口

KeyScan()

功 能: 读取按键状态

入口参数: 无

出口参数: 0 为抬起 ,1 为按键按下



版权声明:本文为weixin_73011353原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。