cc2530基础 1.GPIO 输出控制实验-控制 Led 亮灭
1.流水灯
按照表格寄存器的内容,对 P1.0 口进行配置,当 P1.0 输出低电平时 D1 被点亮。所以配置如
下:
P1SEL &=~0x03; //配置 P1.0 为通用 IO 口,默认为 0 的,可以不设
P1DIR |= 0x03; //P10、 P11 定义为输出
P0DIR |= 0x10; // P14 定义为输出
由于 CC2530 寄存器初始化时默认值为(详细说明请参考《zigbee 开发板\相关资料\CC2530 中文数据手册完全版.pdf》):
P1SEL = 0x00;
P1DIR |= 0xff;
P1INP = 0x00;
所以 IO 口初始化我们可以简化初始化指令: P1DIR |= 0x01; //配置 P1.0 为输出
5.源码分析
#include <ioCC2530.h>
#define uint unsigned int
#define uchar unsigned char
//定义控制灯的端口
#define LED1 P1_0 //定义LED1为P10口控制
#define LED2 P1_1 //定义LED2为P11口控制
#define LED3 P0_4 //定义LED3为P04口控制
//函数声明
void Delay(uint); //延时函数
void InitIO(void); //初始化LED控制IO口函数
/****************************
//延时
*****************************/
void Delay(uint n)
{
uint i;
for(i = 0;i<n;i++);
for(i = 0;i<n;i++);
for(i = 0;i<n;i++);
for(i = 0;i<n;i++);
for(i = 0;i<n;i++);
}
/****************************
//初始化IO口程序
*****************************/
void InitIO(void)
{
P1DIR |= 0x13; //P10、P11定义为输出
P0DIR |= 0x10; //P04定义为输出
LED1 = 1;
LED2 = 1;
LED3 = 1; //LED灯初始化为关
}
/***************************
//主函数
***************************/
void main(void)
{
InitIO(); //初始化LED灯控制IO口
while(1) //死循环
{
LED1 = !LED1; // LED1灯闪一次
Delay(50000);
LED2 = !LED2; // LED2灯闪一次
Delay(50000);
LED3 = !LED3; // LED3灯闪一次
Delay(50000);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步