1.2 zigbee基础(按键点led)

来源:互联网 发布:js select多选下拉框 编辑:程序博客网 时间:2024/05/01 06:53

这个实验是使用按键控制LED的亮灭。其实和上个实验很像,就是判断按键什么状态,然后根据按键状态来改变led状态。

 先上两个 电路图

这里我们只使用KEY1去控制LED3.

主要是要设置按键和灯对应的IO口输出。其他用默认即可

LED1初始化:(其他雷同)

P1SEL &=~0×01; //作为普通IO口

P1DIR |= 0×01; //P1_0定义为输出

P1INP &=~0X01; //打开上拉

按键KEY1初始化:

P0SEL &= ~0X10; //设置P04为普通IO口

P0DIR &= ~0X10; //按键在P04 口,设置为输入模式

P0INP &= ~0×10; //打开P04上拉电阻,不影响

</pre><pre name="code" class="cpp">#include <ioCC2530.h>#define uint unsigned int #define uchar unsigned char//定义三个led灯#define LED1 P0_0#define LED2 P0_1#define LED3 P1_4//定义按键key1#define KEY1 P0_4//函数的声明void Delay(uint);void Init(void);uchar KeyScan();//主函数void main(void){  Init();//初始化按键和灯  while(1)  {    if(KeyScan())//判断按键状态      LED3=~LED3;//灯的状态取反  }}void Delayms(uint xms)//延迟函数,{  uint i,j;  for(i=xms;i>0;i−−)    for(j=1000;j>0;j−−);}void Init(void){  P0DIR |=0x03;  P1DIR |=0x10;  //关闭所有的灯,默认是上拉的,根据电路图灯会亮  LED1 =0;  LED2 =0;  LED3 =0;  //设置按键相关寄存器  P0SEL &=~0x10;  P0DIR &=~0x10;  P0INP &=~0x10;}uchar KeyScan(void){  if(KEY1==0)  {    Delayms(10);//防抖动    if(KEY1==0)    {      while(!KEY1);      return 1;    }  }  return 0;}


注意: 在图中在默认情况下,led灯是亮的(上拉),所以在初始化中需要灭掉。有的板子上拉是灭的。
效果图如下:按一下会亮,再按一下会灭,很简单

0 0
原创粉丝点击