cc2530 点亮LED

在此之前,请先新建工程和添加配置,请参考
cc2530 工程创建

1)我们先来看原理图,对应的LED1和LED2对应的是P0_0,和P2_0,我们只需要配置与这两个 端口有关的寄存器即可(每一种硬件都不尽相同,对应的端口也可能不一样,仅供参考,您需要对自己的代码进行一些修改,运行成功)

在这里插入图片描述

查看相关数据手册,由于我们只是简单的LED灯,也只有输出功能,所以并没有输入,也没有用到中断,所以只需配置PxSEL,PxDIR,而PxINP,PxIFG,PxIEN,并不需要配置.
在这里插入图片描述
2)接下来就是对端口进行配置
先设置PxSEL
选择通用I/O,由于LED1是P0_0,
所以 应该是 0000 0001 即 P0SEL &= ~0x01;
在这里插入图片描述
再设置PxDIR,设置输出
在这里插入图片描述

LED1就设置完了,LED2也用同样的方法进行设置。

上代码,这里提供了三种模式,更多模式请自己创造

#include<iocc2530.h>

//注意自己的端口号
#define LED1 P0_0
#define LED2 P2_0

#define LED_OFF 1 // 1表示关
#define LED_ON  0 //0表示开

void Delay(void);
void led_init(void);

void Mode_01(void);  //同时闪烁
void Mode_02(void);  //交替闪烁
void Mode_03(void);  //闪烁三次再交替



void main(void)
{
  //配置led1 通用io 输出
  P0SEL &= ~0x01;
  P0DIR |= 0x01;
  
  P2SEL &= ~0x01;
  P2DIR |= 0x01;
  
  led_init();
  
  while(1)
  {
   //Mode_01();
   // Mode_02();
   Mode_03();
  }
}

void Delay(void)
{
  unsigned int i,j;
  for(i=0;i<1000;i++)
  {
    for(j=0;j<200;j++)
      {
        //asm("NOP");
        //asm("NOP");
        //asm("NOP");
      }
   }
}


void led_init(void)
{
  LED1 = LED_OFF;
  LED2 = LED_OFF;
}

void Mode_01(void)
{
    Delay();
    LED1=LED_ON;
    LED2=LED_ON;
    Delay();
    LED1=LED_OFF;
    LED2=LED_OFF;
}

void Mode_02(void)
{
    Delay();
    LED1=LED_ON;
    LED2=LED_OFF;
    Delay();
    LED1=LED_OFF;
    LED2=LED_ON;
}

void Mode_03(void)//
{
  for(int i = 0;i <6; i++) //闪烁包括两个动作,一亮一灭,所以闪烁三次需要循环6次
  {
     Delay();
     LED1=~LED1;
     LED2=LED_OFF;
  }
   for(int i = 0;i <6; i++)
  {
     Delay();
     LED1=LED_OFF;
     LED2=~LED2;
  }
  
  
}

有错误欢迎指出,有问题欢迎咨询

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读