ZigBee入门-CC2530-实验(一)-流水灯代码

ZigBee入门-CC2530-实验(一)-流水灯代码

实验目的:
熟悉通用I/O寄存器,学会使用寄存器进行GPIO的编程。

实验内容:
1.LED硬件连接
2.通用I/O寄存器的设置
3.程序编写

实验过程:
1.LED硬件电路设计:(简单来说无非就是两种)
(1).采用低电平有效的方式,即相应的的I/O端口输出低电平时,LED灯点亮。
(2).采用高电平有效的方式,即相应的的I/O端口输出高电平时,LED灯点亮。
2.相关的寄存器配置:
PXSEL:功能选择寄存器 0:通用I/O 1:外设功能
PXDIR:方向寄存器 0:输出 1:输出
PXINP:用作输入时,通用 I/O 端口引脚可以设置为上拉、下拉或三态操作模式。
3.编写代码

// IAR中创建项目,编写代码
#include <ioCC2530.h>     //CC2530头文件

#define uint unsigned int
#define uchar unsigned char

#define LED1 P1_0         //定义P1.0口为LED1控制端
#define LED2 P1_1         //定义P1.1口为LED2控制端
#define LED3 P1_4         //定义P1.4口为LED3控制端
#define LED4 P0_1         //定义P0.1口为LED4控制端
#define ON 0              //LED亮(假设低电平有效)
#define OFF 1             //LED灭

void Init_LED();          //声明LED初始化函数
void LED_RUN();           //声明流水灯函数
void Delay(uint ms);      //声明延时函数
/*===================主程序入口====================*/
void main()               
{
  Init_LED();             //初始化LED
  
  while(1)
  {
    LED_RUN(); 			  //LED流水灯
  }
}
/*==================声明函数具体实现================*/
void LED_RUN()
{
  LED1 ^= 1 ;            //等同于 LED1 = ~LED1;
  Delay(500);			 //延时500ms
  LED2 ^= 1 ;
  Delay(500);
  LED3 ^= 1 ;
  Delay(500);
  LED4 ^= 1 ;            
  Delay(500);
}
void Init_LED()           //初始化LED
{
  P1SEL &=~ 0X13;        //0001 0011 P1.0,P1.1,P1.4定义为通用口
  P1DIR |= 0X13;         //0001 0011 P1.0,P1.1,P1.4定义为输出口
  P0SEL &= ~0X02;        //0000 0010 P0.1定义为通用
  P0DIR |= 0X02;         //0000 0010 P0.1定义为输出口
  LED1 = OFF;
  LED2 = OFF;
  LED3 = OFF;
  LED4 = OFF;            //LED1~LED4 初始状态为灭
}
void Delay(uint ms)      //毫秒级延时函数
{
  uint i,j;
  for(i=0;i<ms;i++)
    for(j=0;j<535;j++);
}
原创文章 13 获赞 10 访问量 551

猜你喜欢

转载自blog.csdn.net/weixin_45636395/article/details/105741171