CC2530按键控制LED灯开关

文章目录:

实验要求

代码实现


实验要求

代码实现

#include "ioCC2530.h"

#define D3 P1_0
#define D4 P1_1
#define D5 P1_3
#define D6 P1_4
//两个按键
#define SW1 P1_2
#define SW0 P0_1

//延迟函数
void Delay(unsigned int t)
{
  while(t--);
}

//端口初始化函数
void Init_Prot()
{
//配置4个LED灯的引擎
  //选择端口的功能
  P1SEL &=~0x1B;//设置通用io端口
  //配置端口的方向
  P1DIR |=0x1B;
  
//配置SW1按键引脚
  P1SEL &=~0x04;
  P1DIR &=0x04;//输入模式 清零
    //将输入模式设置为上拉模式
    P1INP &=~0x04;
    P2INP &=~0x40; //第6位清零
//配置SW2按键引脚
  P0SEL &=~0x02;
  P0DIR &=0x02;//输入模式 清零
    //将输入模式设置为上拉模式
    P0INP &=~0x02;
    P2INP &=~0x20; //第5位清零
    //第7位对应的是P2端口
    //第6位对应的是P1端口
    //第5位对应的是P0端口
}

//灯光检测函数
void LED_Check()
{
  D3=1;
  D4=1;
  D5=1;
  D6=1;
  Delay(60000);
  Delay(60000);
  D3=0;
  D4=0;
  D5=0;
  D6=0;
}

//按键扫描函数
void Scan_Keys()
{
  //按键1
  if(SW1 == 0)//可能有按键按下,那么进行去抖动操作
  {
    Delay(200);
     if(SW1 == 0)//那么就是按键触发的信号
     {
      //按键处理程序
       while(SW1 == 0);//低电平、按下状态
       D4=~D4;
     }
  }
  
   //按键2
  if(SW0 == 0)//可能有按键按下,那么进行去抖动操作
  {
    Delay(200);
     if(SW0 == 0)//那么就是按键触发的信号
     {
      //按键处理程序
       while(SW0 == 0);//低电平、按下状态
       D6=~D6;
     }
  }
}

void main(void)
{
  //端口初始化
  Init_Prot();
  LED_Check();
  while(1)
  {
    Scan_Keys();
  }
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘鑫磊up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值