ZigBee开发(2)--基础实验LED

CC2530 的 IO 口配置我们需要配置三个寄存器 P1SEL 、 P1DIR 、 P1INP。IO 口功能如下表所示: (详细参考 CC2530 datasheet.pdf)

CC2530 datasheet.pdf 的链接https://pan.baidu.com/s/1nLjYI8LgqxPH6WHd_n1Szw

* P1SEL (0:普通 IO 口 1:第二功能)
* P1DIR (0:输入 1:输出 )
* P1INP (0:上拉/下拉 1:三态 ) 

 1 #include<ioCC2530.h>
 2 #define LED1 P1_0    //定义P10口为LED1控制端
 3 #define LED2 P1_1    //定义P11口为LED2控制端
 4 #define LED3 P1_4    //定义P14口为LED3控制端
 5
 6 void IO_Init(void)
 7 {
 8   P1SEL &= ~0x01;
 9   //P1DIR |= 0x01;     //P1_0定义为输出
10   P1DIR |= 0x13;  //P10、P11、P14定义为输出
11   LED1 = 1;       //点亮LED1
12   P1INP &= ~0X13;     //打开下拉
13 }
14
15 void main(void)
16 {
17     IO_Init();      //调用初始化程序
18     LED1 = 0;       //点亮LED1
19     LED2 = 0;       //点亮LED2
20     LED3 = 0;       //点亮LED3
21     while(1);
22 }
 1 #include <ioCC2530.h>
 2 #define uint  unsigned int
 3 #define uchar unsigned char
 4 //定义控制灯的端口
 5 #define LED1 P1_0    //定义LED1为P10口控制
 6 #define LED2 P1_1    //定义LED2为P11口控制
 7 #define LED3 P1_4    //定义LED3为P14口控制
 8 //函数声明
 9 void Delay(uint);        //延时函数
10 void InitIO(void);        //初始化LED控制IO口函数
11 /****************************
12 //延时
13 *****************************/
14 void Delay(uint n)
15 {
16     uint i;
17     for(i = 0;i<n;i++);
18         for(i = 0;i<n;i++);
19         for(i = 0;i<n;i++);
20         for(i = 0;i<n;i++);
21         for(i = 0;i<n;i++);
22 }
23 /****************************
24 //初始化IO口程序
25 *****************************/
26 void InitIO(void)
27 {
28     P1DIR |= 0x13;  //P10、P11、P14定义为输出
29     LED1 = 1;
30     LED2 = 1;
31     LED3 = 1;       //LED灯初始化为关
32 }
33 /***************************
34 //主函数
35 ***************************/
36 void main(void)
37 {
38     InitIO();        //初始化LED灯控制IO口
39     while(1)                //死循环
40     {
41            LED1 = !LED1;           // LED1灯闪一次
42            Delay(10000);
43            LED2 = !LED2;           // LED2灯闪一次
44            Delay(10000);
45            LED3 = !LED3;           // LED3灯闪一次
46            Delay(10000);
47
48     }
49 }

这一段代码为流水灯的效果,我的这块底板上刚好有3个灯,就升级了一下实例代码

原文地址:https://www.cnblogs.com/tianxxl/p/9867035.html

时间: 2024-08-26 09:52:29

ZigBee开发(2)--基础实验LED的相关文章

ZigBee开发(7)--基础实验AD

一.A/D转换的基本工作原理 将时间上连续变化的模拟量转化为脉冲有无的数字量,这一过程就叫做数字化,实现数字化的关键设备是ADC. ADC:数模转换器,将时间和幅值连续的模拟量转化为时间和幅值离散的数字量,A/D转换一般要经过采样.保持.量化和编码4个过程. 二.CC2530的A/D转换模块 CC2530的ADC模块支持最高14位二进制的模拟数字转换,具有12位的有效数据位,它包括一个模拟多路转换器,具有8个各自可配置的通道,以及一个参考电压发生器. 该ADC模块有如下主要特征: <1> 可选

WLGK-51单片机接口技术基础实验 ——LED闪烁灯

WLGK-51单片机接口技术基础实验-LED闪烁灯 当我们开始接触单片机,首先接触的第一个实验就是LED灯的使用,类似于我们学习软件开始接触的第一个程序"HelloWorld",这个实验是带领我们走入"软硬件综合使用"的一个很好入门示例,51单片机是他的一个载体.下面小伙伴们,让我们一起来揭开LED的神秘面纱吧! 万立高科官网:www.wanligaoke.com 万立高科官方商城:http://www.wlgkbj.com 万立高科淘宝直销店铺:https://r

「ZigBee模块」基础实验(1)点亮LED

1.IO配置 CC2530 的 IO 口配置需要三个寄存器:PXSEL.PXDIR.PXINP . IO口寄存器 P0 P1 P2 地址 0x80 0x90 0xA0 PXSEL P0SEL P1SEL P2SEL 地址 0xF3 0xF4 0xF5 PX[7:0]功能设置寄存器,默认普通IO口 (0:普通 IO 口 1:第二功能) PXDIR P0DIR P1DIR P2DIR 地址 0xFD 0xFE 0xFF PX[7:0] 输入输出设置寄存器 (0:输入 1:输出) PXINP P0IN

「ZigBee模块」基础实验(5)串口通讯

一.补充基础知识 在CC2530 中,USART0 和USART1 是串行通信接口,它们能够分别运行于异步USART 模式或者同步SPI 模式.两个USART 的功能是一样的,并且各自有单独的IO 引脚.USART里面的A指的就是asynchronous(异步),S指的是synchronous(同步).这里我们使用异步通信方式. UART模式特征: ·一次传8或9个比特的数据 ·奇校验.偶校验或者无校验位 ·配置起始位和停止位点平 ·配置LSB或者MSB首先传送 ·独立收发中断 ·独立收发DMA

「ZigBee模块」基础实验(3)外部中断

1.实现功能 使用中断方式实现: 按键KEY1按下LED1依次亮灭 按键KEY2按下LED2依次亮灭 2.元件连接方式 P1_0连接LED1 P1_1连接LED2 P0_0连接KEY1 P0_1连接KEY2 3.中断相关寄存器 PXIEN P0IEN P1IEN P2IEN 地址 0xAB 0x8D 0xAC PX[7:0] 各个控制口中断使能 (0:中断禁止 1:中断使能) PICTL: D0~D3设置各个端口的中断触发方式(0:上升沿触发 1:下降沿触发) D7控制I/O引脚在输出模式下的驱

「ZigBee模块」基础实验(2)按键

1.实现功能 按键KEY1按下LED1依次亮灭 按键KEY2按下LED2依次亮灭 2.元件连接方式 P1_0连接LED1 P1_1连接LED2 P0_0连接KEY1 P0_1连接KEY2 3.部分代码分析 按键需要消抖(因为按键选择之后的代码较少,直接写这里面啦) void keyScan() { if(KEY1 == 0) { delayms(10); if(KEY1 == 0) { while(!KEY1); LED1 = !LED1; } } if(KEY2 == 0) { delayms

[ZigBee] 3、ZigBee基础实验——GPIO输出控制实验-控制Led亮灭

1.CC2530的IO口概述 CC2530芯片有21 个数字输入/输出引脚,可以配置为通用数字I/O 或外设I/O 信号,配置为连接到ADC.定时器或USART外设.这些I/O 口的用途可以通过一系列寄存器配置,由用户软件加以实现. I/O 端口具备如下重要特性:    ?? 21 个数字I/O 引脚 ?? 可以配置为通用I/O 或外部设备I/O ?? 输入口具备上拉或下拉能力 ?? 具有外部中断能力. 21 个I/O 引脚都可以用作于外部中断源输入口.因此如果需要外部设备可以产生中断.外部中断

[ZigBee] 4、ZigBee基础实验——中断

前言 上一篇介绍了CC2530的IO的基础知识,并用LED的控制来展示如何配置并控制GPIO的输出,用KEY状态的读取实验来展示如何读取GPIO的状态.从上一节的KEY状态读取的代码看出是采用轮训方式的,这种方式是很浪费资源,本节将介绍一种中断方式来替换轮训的方案. 一.中断 电路依然没变,若要使用CC2530的外部中断需要使用P0IEN.PICTL.P0IFG.INE1寄存器. 按键中断初始设置为: 1 /********************************************

[ZigBee] 6、ZigBee基础实验——定时器3和定时器4(8 位定时器)

上一节讲了16位定时器1,本节讲8位定时器3和定时器4! 1.综述 Timer 3 and Timer 4 are two 8-bit timers(8位定时器). Each timer has two independent capture/compare channels(独立的捕获/比较通道),each using one I/O pin per channel. Features: · Two capture/compare channels· Set, clear or toggle