cc2530按键控制流水灯
基于CC2530的多功能LED灯控制系统
文章编号:1674-6236(2019)09-0169-04
Multifunction LED light control system based on CC2530
ZHU Xian⁃ming1,ZHOU Wei⁃long2,YI Bing2 (1. HuNan Automotive Engineering Vocation College,Zhuzhou 412001,China;2. HuNan University of
-169-
《电子设计工程》2019 年第 9 期
1 硬件系统设计与实现
1.1 功能需求分析 由 于 居 室 内 的 布 局 结 构 区 域 性 比 较 明 显 ,一 般
有 客 厅 、卧 室 、餐 厅 、阳 台 以 及 书 房 等 不 同 的 区 域 , 这些不同区域对照明系统性能要求有着细微的区 别 。 [12-13] 譬如客厅除照明外,要能根据人们活动情况 调 整 照 明 亮 度 ;卧 室 则 应 该 具 备 随 着 人 们 心 情 变 化 而 发 出 不 一 样 颜 色 的 灯 光 ;书 房 重 点 是 保 证 室 内 光 照度最适于办公或学习。因此,针对不同功能区域, 设计多功能 LED 灯控制电路,是本文研究的主要目 的,也是本文的创新点与特色。 1.2 系统硬件电路设计
Technology,Zhuzhou 412007,China)
Abstract: The LED lighting system has been widely applied to smart home with the continuous development of semiconductor technology. Aiming at the problems of wiring difficulty and simple function of LED control system at present,A multifunction LED light wireless control system based on CC2530 was proposed in this paper.In order to meet the different needs of the human,achieve energy-saving and get environmental protection,green lighting. This system realized any dimming and color grading function of LED light through two steps. Fist, It must get the relationship between the chromaticity coordinates and the duty cycle. Second,The duty cycle of R,G,B three LED lamps were controlled by PWM. The experiment proved that this system can satisfy with the requirements of smart home lighting and can be widely applied to home decoration. Key words: CC253;multifunction LED light;trichromatic;PWM signal
CC2530-MDK中文使用说明_基础实验例程
选择 test.c。
菁扬科技 & 翎跃电子
BeyondWireless 无线你的无限!
点击保存。可以看到左边 Workspace 栏的内容发生了变化。
此时输入源代码进行编程。点击 4.1.3 设置工程选项参数
即可。
菁扬科技 & 翎跃电子
BeyondWireless 无线你的无限!
设置好 Workspace 名称,点击 包括 Warnnig 和 Error。
编译信息显示程序有 Error
即可开始编译。编译信息将会显示在屏幕下方,
菁扬科技 & 翎跃电子
BeyondWireless 无线你的无限!
同时在源程序文件界面下也用 符号标识出来 根据提示信息修改正确,重新编译,编译通过,界面如下:
}
/*****************************************
//按键动作记录函数
*****************************************/
uchar KeyScan(void)
{
if(KEY1 == 1) //高电平有效
{
Delay(100); //检测到按键
void InitIO(void);
//初始化 LED 控制 IO 口函数
/****************************
//延时
*****************************/
void Delay(uint n)
菁扬科技 & 翎跃电子
BeyondWireles键动作 //定义变量记录按键次数
菁扬科技 & 翎跃电子
BeyondWireless 无线你的无限!
CC2530学习路线-基础实验-GPIO按键控制LED灯亮灭(2)
CC2530学习路线-基础实验-GPIO按键控制LED灯亮灭(2)⽬录1.前期预备知识1.1 新⼤陆Zigbee模块按键电路图由上图可知,Zigbee模块的SW1按钮连接在P1.2端⼝上,当SW1导通,P1.2电平从3.3V被拉低接地。
所以P1.2输⼊模式为下拉输⼊.1.2 CC2530相关寄存器寄存器名称寄存器作⽤寄存器描述P1 (0x90)*控制端⼝1的⾼低电平端⼝1.通⽤I/O。
可以通过SFR位寻址P1SEL(0xF4)端⼝1 8个⼦端⼝的功能选择P1SEL的8个bit分别代表 => P1.7~P1.0的功能选择.值为 0:代表通⽤I/0(GPIO)功能.值为 1 : 代表外设功能P1DIR(0xFE)端⼝1 输⼊输出选择P1DIR的bit定义同P1SEL;值为 0:代表从外部输⼊信号⾄CC2530;值为 1:代表从CC2530输出信号⾄外部P1INP (0xF6)端⼝1 输⼊模式选择P1INP定义为P1.7~P1.2的I/O输⼊模式。
其中P1.0和P1.1是没有上拉/下拉功能。
值为 0:上拉/下拉。
值为 1:三态(⾼电平、低电平、⾼阻态)P2INP (0xINP)端⼝2 输⼊模式及其它端⼝选择P2INP⽐较特殊,因为P2端⼝引出的引脚只有3个,所以P2INP还有其它功能。
bit 0 ~ 4 : P2.4~P2.0的输⼊模式。
0 : 上拉/下拉; 1:三态bit 5 : 设置端⼝0上拉/下拉选择。
对端⼝P0上⾯的所有引脚设置为上拉/下拉输⼊ 0 : 上拉; 1: 下拉bit 6 : 同bit 5功能,但是是设置端⼝1上所有引脚bit 7 : 同bit5功能,但是是设置端⼝2上的所有引脚P1IEN(0x8D)端⼝1 中断屏蔽端⼝P1.7~P1.0的中断使能(也就是说中断是否Enable*(打开))0 : 中断禁⽤1 : 中断使能PICTL(0x8C)端⼝中断控制 P0ICON(bit0)端⼝0、1、2输⼊模式下的中断配置。
CC2530外部中断实现按键控制LED闪烁
CC2530外部中断实现按键控制LED闪烁中断任务:1.系统初始化D1(P1.0)、D2(P1.1)闪⼀次灭掉。
2.按⼀次KEY1(P0.1),D1、D2同时闪烁;再按⼀次KEY1,D1、D2灭掉。
3.按⼀次KEY2(P0.1),D1、D2交替闪烁;再按⼀次KEY2,D1、D2灭掉。
#include <ioCC2530.h>#define D1 P1_0 //定义P1.0⼝为D1控制端#define D2 P1_1 //定义P1.1⼝为D2控制端#define KEY1 P0_1 //定义P0.1⼝为S1控制端#define KEY2 P1_2#define ON 1 //⾼电平点亮#define OFF 0//低电平熄灭typedef unsigned char uchar;typedef unsigned int uint;uchar KeyValue0=0;uchar KeyValue1=0;void Delay(uint time)//延时函数{uint i,j;for (i=0; i<time; i++)for (j=0; j<530; j++);}void InitLed(void)//初始化LED{P1SEL &= ~0x03;P1DIR |= 0x03;Delay(1000);//默认点亮LED,因此直接利⽤延时函数即可,⽆需重复操作D1=D2=OFF;}void InitKey()//初始化外部中断{P0IEN |= 0x2; // P0.1 设置为中断⽅式 1:中断使能P1IEN |= 0x4;PICTL |= 0x3; //下降沿触发IEN1 |= 0x20; //允许P0⼝中断;IEN2 |= 0x10; //允许P1⼝中断;EA = 1; //打开中断}void Key_5(){if(KeyValue0 == 1){D2 = D1 = ON;}else if(KeyValue0 == 2){D2 = D1 = OFF;KeyValue0 = 0; //产⽣中断保存中断状态}}void Key_4(){while(KeyValue1 == 1){D1 = ON;Delay(100);D2 = ON;D1 = OFF;Delay(100);D2 = OFF;}while(KeyValue1 == 2){D1 = D2 = OFF;KeyValue1 = OFF; //产⽣中断保存中断状态}}#pragma vector = P0INT_VECTOR__interrupt void P0_ISR(void){if(P0IFG &= 0x02) //按键中断{Delay(10); //延时去抖if(KeyValue0==0) //按键中断{KeyValue0 = 1; //产⽣中断保存中断状态}else if(KeyValue0==1){KeyValue0 = 2; //产⽣中断保存中断状态}}P0IFG = 0; //清中断标志P0IF = 0; //清端⼝0中断标志}#pragma vector = P1INT_VECTOR__interrupt void P1_ISR(void){if(P1IFG &= 0x04) //按键中断{Delay(10);if(KeyValue1==0) //按键中断{KeyValue1 = 1; //产⽣中断保存中断状态1}else if(KeyValue1==1){KeyValue1 = 2; //产⽣中断保存中断状态2}}P1IFG = 0; //清中断标志P1IF = 0; //清端⼝1中断标志}/**************************************************************************** * 程序⼊⼝函数****************************************************************************/ void main(void){InitLed(); //设置LED灯相应的IO⼝InitKey(); //设置KEY相应的IO⼝外部中断while(1){Key_4();Key_5();}}。
cc2530按键控制流水灯
cc2530按键控制流水灯本次设计用LED1,LED2,LED3 灯及按键S1 为外设。
采用P10、P11、P14 口为输出口,驱动LED1/LED2/LED3,P01 口为输入口,接受按键信号输入(高电平为按键信号)。
1.高性能2.4G 射频模块Q2530RFQ2530RF是丘捷技基于TI公司第二代2.4GHz IEEE 802.15.4 /RF4CE/ZigBee的第二代片上系统解决方案CC2530 F256的全功能模块,集射频收发及MCU控制功能于一体。
外围原件包含一颗32MHz晶振和一颗32.768KHz晶振及其他一些阻容器件。
射频部分采用巴伦匹配和外置高增益SMA天线,接收灵敏度高,发送距离远,空旷环境最大传输距离可达400米。
模块引出CC2530所有IO口,便于功能评估与二次开发。
2.多功能开发板Q2530EB多功能扩展板Q2530EB 可支持多种射频主控模块(例如Q2530RF等),配置有串口液晶显示接口,USB供电接口,DC 5V电源接口,电池接口,RS232接口,DEBUG接口,五向按键及指示灯,红外遥控信号接收/发射等模块。
所有的外设均通过SPI总线/UART /DEBUG等接口与射频模块Q2530RF 相连,并完全受Q2530RF 控制和访问。
多功能仿真扩展板Q2530EB 采用三种电源供电方式:DC 5V供电、USB接口供电、电池供电,可在插座P5设置跳线选择,PIN1-PIN2 为电池供电,PIN2-PIN3 为外接直流电源或者USB接口供电。
电源开关为P4。
Q2530EB 板卡背面的电池盒可放置3节5号干电池,输出电压3.4~4.5V,板载电源电路将其调整到+3.3V 稳定的直流电压输出供后级使用。
当电池电压低于3.4V 时,应更换电池以保持模块正常工作。
Q2530EB 带有1个DC 5V的电源适配器接口P2和一个USB接口P1,输入电压经过稳压器降压为+3.3V输出供后极使用。
CC2530基础实验—LED灯闪烁
通过这个实验,可以掌握通过CC2530控制外设的基本方法。
本次的实验所要做的让L ED1、LED2、LED3、LED4实现走马灯式的闪烁。
CC2530芯片I/O对照表CC2530的I/O控制口一共有21个,分成3组,分别是P0、P1和P2;由上面的对照表可以看出LED1所对应的I/O口为P1_0,LED2所对应的I/O口为P1_1,LED3所对应的I/O口为P1_4,LED4所对应的I/O为P0_1;下面我们来看一下本次实验所用到的控制寄存器中每一位的取值所对应的意义:P1DIR(P1方向寄存器,P0DIR同理):P1SEL(P1功能选择寄存器,P0SEL同理):寄存器的设置:将控制寄存器的某一位置1:例:P1DIR|= 0X02;解释:”|=“表示按位或运算,0X02为十六进制数,转换成二进制数为0000 0010,若P1DIR原来的值为00110000,或运算后P1DIR的值为0011 0010。
根据上面给出的取值表可知,按位与运算后P1_1的方向改为输出,其他I/O口方向保持不变。
将控制寄存器某一位清0:例:P1DIR&= ~0X02;解释:”&=“表示按位与运算,”~“运算符表示取反,0X02为0000 0010,即~0X02为1111 1101。
若P1DIR原来的值为00110010,与运算后P1DIR的值为0011 0000。
源代码#includ e <ioCC2530.h>#define uint unsign ed int#define ucharunsign ed char//定义控制灯的端口#define RLED P1_0 //定义LED1为P1.0口控制#define GLED P1_1 //定义LED2为P1.1口控制#define YLED P1_4 //定义LED3为P1.4口控制#define BLED P0_1 //定义LED4为P0.1口控制//函数声明void Delay(uint); //延时函数void InitIO(void); //初始化LED控制IO口函数void Delay(uint n) //延时函数{uinti; //定义一个变量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++);}void InitIO(void) //初始化IO口程序{P1DIR|= 0x13; //P1_0、P1_1、P1_4定义为输出 P0DIR|= 0x02; //P0_1定义为输出RLED = 1;GLED = 1;YLED = 1;BLED = 1; //将4盏LED灯都打开}void main(void){InitIO(); //初始化while(1) //死循环让循环内的代码不断执行{RLED = !RLED; // LED1灯若亮着,则关闭LED1灯,否则打开LE D1灯Delay(10000); //延时GLED = !GLED;Delay(10000);YLED = !YLED;Delay(10000);BLED = !BLED;Delay(10000);}}实验小结:为什么使用P1_0变量名就能访问外设:I/O编址有两种方式:独立编址与统一编址,无论是使用哪种编址,访问外设时都需要指出外设的地址。
CC2530基础例程实验手册
CC2530 基础实验
1 输入输出 I/O 控制实验
1.1 CC2530 基础实验 1:自动闪烁
实验介绍 本次实验的目的是让用户学会使用CC2530 的I/0 来控制外设,本例以LED 灯为外设,用CC2530 控
制简单外设时,应将I/O 设置为输出。实验现象LED 闪烁。 实验设备:仿真器 1 台,电池板(或液晶板)1 块,ZigBee 模块1 块,USB 连接线1 根。 实验相关寄存器 实验中操作了的寄存器有 P1,P1DIR,没有设置而是取默认值的寄存器有: P1SEL,P1INP。-3--4-PSEL (P1 功能选择寄存器)
实验相关函数 void Delay(uint n);函数原型是 void Delay(uint n)
{ uint tt; for(tt = 0;tt<n;tt++); for(tt = 0;tt<n;tt++); for(tt = 0;tt<n;tt++); for(tt = 0;tt<n;tt++); for(tt = 0;tt<n;tt++); }
4 AD 实验......................................................................................................................................................... - 30 4.1 CC2530 基础实验 10:片内温度..................................................................................................... - 30 4.2 CC2530 基础实验 11:1/3AVDD.....................................................................................................- 39 4.3 CC2530 基础实验 12:AVDD..........................................................................................................- 40 -
3.2 任务3.2 按键控制LED亮灭--中断方式
中断号 9 10 11 12 13 14 15 16 17
名称 T1 T2 T3 T4 P0INT UTX1 P1INT RF WDT
描述 定时器1捕获/比较、溢出
定时器2中断 定时器3捕获/比较、溢出 定时器4捕获/比较、溢出
I/O端口0外部中断 USART1发送完成 I/O端口1外部中断
RF通用中断 看门狗计时溢出
2 IPx_IPG2
1 IPx_IPG1
0 IPx_IPG0
IP0、IP1寄存器
IP1_x 0 0 1 1
IP0_x 0 1 0 1
优先级别 0 最低级别
1 2 3-最高级别
IP1与IP0寄存器相应位,两两组合,形 成两位二进制数字组合,决定对应中断 组的优先级别。
二、相关寄存器
位 位名称
7:6
--
5 IPx_IPG5
4 IPx_IPG4
3 IPx_IPG3
中断服务函数 CPU响应中断后所执行的响应处理程序
中断向量
中断服务程序的入口地址
一、基础概念
中断嵌套
在中断1正在执行过程中,中断2打断中断1,先去执行中断2的过程。
一、基础概念
中断优先级
在中断嵌套过程中,CPU通过中断优先级来确定先执行哪个中断请求。 中断优先级高先处理,低的后处理。
优先级高的中断可以打断优先级低的;反之,则不可;同级别的也 不可打断,处理完当前中断后,方可处理后续中断。
一、基础概念
中断服务函数
#define
CPU处理中断任务时,所要执行的代码。 #define
#define
#pragma vector = 中断向量
#define #define
CC2530按键实现无线点灯
易思开发工作室 ES Technology
if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)>0) { // receive data if(pRxData[0] == 0) { // S1 is detected Blue_LED=!Blue_LED; } if(pRxData[0] == 1) { // S2 is detected Yellow_LED1=!Yellow_LED1; } if(pRxData[0] == 2) { // S3 is detected Yellow_LED2=!Yellow_LED2; } } } } 解析 :接收的数据储存在 pRxData[i] 数据里
易思开发工作室 ES Technology halMcuWaitMs(300); // Key delay Blue_LED=0; } if(KEY2==0){ // if S2 is detected pTxData[0] = 1; // Load data basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH); // sent data halIntOff(); // Put MCU to sleep. halMcuSetLowPowerMode(HAL_MCU_LPM_3); // Will turn on global halIntOn(); // interrupt enable Yellow_LED1=1; halMcuWaitMs(300); // Key delay Yellow_LED1=0; } if(KEY3==0){ // if S3 is detected pTxData[0] = 2; // Load data basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH); // sent data halIntOff(); // Put MCU to sleep. halMcuSetLowPowerMode(HAL_MCU_LPM_3); // Will turn on global halIntOn(); // interrupt enable Yellow_LED2=1; halMcuWaitMs(300); Yellow_LED2=0; } } } void main(void) { // Config basicRF basicRfConfig.panId = PAN_ID; basicRfConfig.channel = RF_CHANNEL; basicRfConfig.ackRequest = TRUE; halBoardInit(); IO_initial(); // Key delay
CC2530应用——按键控制灯光状态变化
CC2530应⽤——按键控制灯光状态变化独⽴新建⼯程并编写、编译代码,实现按键控制灯光闪烁状态的变换,实现以下任务要求:【1】程序开始运⾏:D4灯闪烁,D3、D5、D6灯熄灭。
【2】按下模块上的SW1按键松开后,实现D5、D6灯轮流闪烁。
【3】再次按下SW1按键,D5、D6灯灭。
【4】重复上述两个步骤。
此题需要定义⼀个灯光状态的标志位。
通过按键的标志位有三个状态。
状态1:D4灯闪烁,D3、D5、D6灯熄灭。
状态2:D5、D6灯轮流闪烁。
状态3:D5、D6灯灭。
1 #include "ioCC2530.h"23#define D3 P1_04#define D4 P1_15#define D5 P1_36#define D6 P1_47#define SW1 P1_289 unsigned char stat = 0; //灯光状态标志1011/*=======================简单的延时函数========================*/12void Delay(unsigned int t)13 {14while(t--);15 }16/*=======================端⼝初始化函数========================*/17void Init_Port()18 {19 P1SEL &= ~0x1b; //将P1_0,P1_1,P1_3,P1_4设置为通⽤I/O端⼝20 P1DIR |= 0x1b; //将P1_0,P1_1,P1_3,P1_4设置为输出⽅向21 P1 &= ~0x1b; //关闭4个LED灯2223 P1SEL &= ~0x04; //将P1_2设置为通⽤I/O端⼝24 P1DIR &= ~0x04; //将P1_2设置为输⼊⽅向25 P1INP &= ~0x04; //将P1_2设置为上拉/下拉26 P2INP &= ~0x40; //将P1_2设置为上拉27 }2829/*=====================D4灯闪烁函数======================*/30void D4_Flicker()31 {32 D4 = 1;33 Delay(60000);34 D4 = 0;35 Delay(60000);36 }3738/*=====================D5D6灯闪烁函数======================*/39void D5D6_Flicker()40 {41 D3 = 0;42 D4 = 0;43 D5 = 1;44 Delay(60000);45 D5 = 0;46 Delay(60000);47 D6 = 1;48 Delay(60000);49 D6 = 0;50 Delay(60000);51 }5253/*=======================按键扫描函数=========================*/54void Scan_Keys()55 {56if(SW1 == 0) //发现有SW1按键信号57 {58 Delay(100); //延时⽚刻,去抖动处理59if(SW1 == 0) //确认为SW1按键信号60 {61if(stat == 0)62 {63 stat = 1;64 }65else if(stat == 1) //重复66 {67 stat = 2;68 }69else if(stat == 2)70 {71 stat = 1;72 }7374 }75 }76 }7778/*==========================主函数============================*/ 79void main()80 {81 Init_Port(); //端⼝初始化82while(1)83 {84 Scan_Keys(); //按键扫描85switch(stat)86 {87case0: //上电状态,D4闪烁88 D4_Flicker();89break;90case1: //运⾏状态1:D5和D6闪烁91 D5D6_Flicker();92break;93case2: //运⾏状态2:D5和D6熄灭94 D5 = 0;95 D6 = 0;96break;97 }98 }99 }View Code。
CC2530按键控制流水灯
1、适用平台 佳杰科技 Q2530SB 硬件平台
2、实验设备
1.RF2530N 或者 RF2530仿真器 1块 1块 1条 1个
2
3、实验目的
让用户学会按键应用是这一常用的人机交互方式。本实验用 D1, D2, D3 灯及按键 S1 为 外设。采用 P10、P11、P14 口为输出口,驱动 D1/D2/D3,P01 口为输入口,接受按键信号 输入(高电平为按键信号) 。
#include <ioCC2530.h> #define uint unsi gned int #define ucha r unsigned cha r //定义控制灯的端口 #define RLED #define GLED #define YLED #define KEY1 //函数声明 voi d Delay(uint); voi d Ini tIO(void); voi d Ini tKey(void); ucha r KeyScan(void); // 延时函数声明 //初始化函数声明 // 初始化按键函数声明 // 按键扫描函数声明 3 P1_0 P1_1 P1_4 P0_1 //定义 LED1 为 P10 口控制 //定义 LED2 为 P11 口控制 // 定义 LED3 为 P14 口控制 // 定义按键为 P01 口控制
4、实验相关寄存器
相关寄存器:P1,P1DIR,P0SEL,P0INP, P0,P0DIR(前面以介绍过的这里不再重复介绍,寄存器 功能说明请参阅 CC2530Datasheet.pdf ) P0SEL(0XF3) P0INP( 0X8F) P0( 0X80) P0DIR(0XFD) P0 [7:0 ]功能设置寄存器,默认设置为普通 I/ O 口 P0[7: 0]作输入口时的电路模式寄存器 P0[7: 0]位寻址 I/ O 寄存器 P0 口输入输出设置寄存器,0:输入,1:输出
15_三个LED灯流水控制学习手册(精)
多媒体教案
课外作业
补充:PxINP寄存器的功能是什么?具体怎样设置?
备注
3.2 CC2530单片机GPIO模块原理
CC2530通用I/O接口寄存器
P1(P1口寄存器)
位号
位名
复位值
操作性
功能描述
7:0
P1[7:0]
0x00
读/写
P1端口普通功能寄存器,可位寻址
P1DIR(P1方向寄存器)
位号
设备要求:仿真器1台,电池板(或液晶板)1块,ZigBee模块1块,USB连接线1根。
任务说明:任务中操作了的寄存器有P1,P1DIR,没有设置而是取默认值的寄存器有P1SEL,P1INP。
学习手册
教师姓名
授课形式
讲练结合
授课时数
2
授课日期
授课班级
授课章节名称
及教学内容、
目的、要求
任务一、三个LED灯流水控制
教学内容:3.2 CC2530单片机GPIO模块原理及应用
教学要求:1、初步掌握GPIO模块原理
教学目的:1、使学生初步掌握GPIO模块原理
教学重点
教学难点
教学重点:CC2530的GPIO模块原理
0
读/写
P1_0功能0普通I/O,1外设功能
P1INP(P1输入模式寄存器)
位号
位名
复位值
操作性
功能描述
7
PDUP2
0
读/写
P2口上/下拉选择;0上拉,1下拉
6
PDUP1
0
读/写
P1口上/下拉选择;0上拉,1下拉
5
PDUP0
0
读/写
P0口上/下拉选择;0上拉,1下拉
基于CC2530的LED闪烁灯操作系统
基于CC2530的LED闪烁灯操作系统摘要:随着科技更新迭代,智能电子更加不断充裕市场技术,大部分产品用上了单片机就能达到事半功倍的效果,LED照明已经被广泛应用到日常生活和工业企业建设中,使用LED这种新型的光源的灯具或照明设施,具有寿命长,节约电能的优点[[1]]。
本文基于CC2530的LED灯无线控制系统,采用C#语言编写了PC 端照明控制软件[[2]],并引入RGB混光、按键指数优化算法来控制LED灯的闪烁频率和时长,达到LED灯具的亮灯闪烁功能以此来实现基础照明灯的智能化和可操作性。
关键词:LED灯 CC2530 控制软件1 引言LED驱动电路的构思预备在整个设计中十分重要,其内部运转和构造直接影响LED灯的功能和寿命。
智能灯具设计主要由三部分构成,分别是LED阵列、驱动电路和控制电路,其中内部的驱动电路性能的优胜更是决定性因素。
单片机是LED驱动电源系统的核心部件,它控制着LED驱动电源的脉冲信号,能够提高电源输出的效率,同时提高设备能效[[3]]。
想要改变单片机三种颜色灯光实现整个照明和灯光调制,通过操作单片机的系统控制功能,再搭配三基色配色原理即可完成。
CC2530无线控制系统可调试灯具的使用时长和频率变化,通过软件编程来改变单一的灯光闪烁。
文章基于CC2530的LED灯无线控制系统,利用RGB混光原理、按键指数优化多种算法来控制LED灯的闪烁频率和时长,通过C#语言软件编译了PC端照明控制软件,以这样的操作来实现LED灯具的亮灯闪烁功能,会更完美的呈现出LED灯带给现代人不同的视觉效果。
2 系统总体设计方案图1系统总体设计方案/系统结构图2.1 系统硬件结构CC2530模块如下图:图2硬件展示图CC2530创建其系统内部的网络节点只需要很低的材料成本,主要是用于生活实际应用和科研项目的芯片开发板。
它包含一个增强型的8位8051微控制器内核,完全适应低功耗要求的系统,内部包含数字内核和外设,带约有1.8V低配供电设备,提供了电源管理功能一方面可以实现通过使用不同用电模式提高用电效率、节省电池资源;一方面开发板内部提供了一个具有外联无线收发器内有内核管制调控装置的无线控制模块接口,停止和执行某项程序、存储器的移动、控制使用内部文件、设置代码断点等都可以通过调试接口进行操作,并且提供相关指令可完成内核中全部步骤的单步调试,通过连接开发板和烧录程序就能达到四种功能状态:发出命令、读取状态、自主操作和确定无线设备时间。
物联网应用基础实训 第四单元 CC2530单片机基础4
任务卡4.4 断而有序——通用I/O中断
3.中断函数 CC2530中断服务函数与一般自定义函数不同,有特定的书写格式: #pragma vector = 中断向量 //本任务SW1对应P1_2 ,向量值为PINT_VECTOR或 0X7B __interrupt void 函数名称(void) { /*此处编写中断处理函数的具体程序*/ PxIFG = 0; //清除Px引脚的中断状态标志位 //P1IFG = 0; PxIF = 0; //清除Px端口组的中断状态标志位 //P1IF = 0; }
任务卡4.4 断而有序——通用I/O中断
能力拓展4
1.编写一个程序,使用中断方式,用SW1键控制LED1的亮灭状态。要求如下 (1)ZigBee板上电后,LED1灯熄灭。 (2)按下SW1后,LED1灯点亮。 (3)再次按下SW1后,LED1灯熄灭。 (4)重复2、3步骤。
任务卡4.4 断而有序——通用I/O中断
{
if(flag_Pause == 0)
{
flag_Pause = 1;
}
else
{
flag_Pause = 0;
}
P1IFG &= ~0x04; //清除P1_2口中断标志位
}
P1IF = 0;
//清除P1口中断标志位
}
任务卡4.4 断而有序——通用I/O中断
(4)参照4单元资源文件夹中的4.5工程,编写此程序,实现流水灯启停效果。也可以 直接将工程中的hex文件烧写入ZigBee板中,观察效果。流水灯启停效果可以扫描二维 码4-6观看视频。
【按键控制流水灯设计报告】
按键控制流水灯设计报告一、项目名称:按键控制流水灯二、目的:通过对按键控制发光二极管项目的改变,设计出自己的方案,来加深对硬件技术的理解,同时锻炼关于硬件的编程技术,掌握keil等软件的使用。
三、硬件原理:数码管与发光二极管硬件电路图:芯片引脚电路图:按键与导航按键:四、软件原理:变量Key1,Key2,Key3分别代表第一个、第二个、第三个按键,值为零时表示按下了该按键。
那么可以写出一个判断条件,当这三个变量的值分别为1 时,就分别调用三个不同的函数,三个函数分别表示LED灯的三种不同的闪亮方式。
五、软件流程:首先判断哪一个变量的值为1,即哪一个按键被按下,然后就调用相应的函数。
六、关键代码:void main(){Init();P0=0x00;while(1){//其他两个key通过中断实现// if(Key3==0)// {// G_count=0;// while(G_count!=200);//延时10ms// while(!Key3)//等待直到释放按键// {// P0=0x33;// }// }if(Key1==0)fun2();if(Key2==0)fun3();if(Key3==0)fun4();}}七、操作说明:当把软件下载到电路板以后,给它插上电源,然后按下不同的按键,可以观察到LED灯亮。
八、存在的问题:原先的main()函数中只有KEY3,并没有Key1和Key2,所以暂时不清楚如何感应到按键一和按键二什么时候按下。
九、后续设计计划:可以设计更炫酷的亮灯方式。
以下是附加文档,不需要的朋友下载后删除,谢谢顶岗实习总结专题13篇第一篇:顶岗实习总结为了进一步巩固理论知识,将理论与实践有机地结合起来,按照学校的计划要求,本人进行了为期个月的顶岗实习。
这个月里的时间里,经过我个人的实践和努力学习,在同事们的指导和帮助下,对村的概况和村委会有了一定的了解,对村村委会的日常工作及内部制度有了初步的认识,同时,在与其他工作人员交谈过程中学到了许多难能可贵经验和知识。
CC2530中按键与LED研究
CC2530中按键与LED研究ZStack-CC2530-2.4.0-1.4.0 中按键与LED研究hal_key.h和hal_key.c文件/* Switches (keys) */#define HAL_KEY_SW_1 0x01 // Joystick up#define HAL_KEY_SW_2 0x02 // Joystick right#define HAL_KEY_SW_5 0x04 // Joystick center#define HAL_KEY_SW_4 0x08 // Joystick left#define HAL_KEY_SW_3 0x10 // Joystick down#define HAL_KEY_SW_6 0x20 // Button S1 if available#define HAL_KEY_SW_7 0x40 // Button S2 if available#define MY_KEY7 0xF7;(自己加的)#define MY_KEY6 0xF6;#define MY_KEY5 0xF5;#define MY_KEY4 0xF4;/* Joystick */#define HAL_KEY_UP 0x01 // Joystick up#define HAL_KEY_RIGHT 0x02 // Joystick right#define HAL_KEY_CENTER 0x04 // Joystick center#define HAL_KEY_LEFT 0x08 // Joystick left#define HAL_KEY_DOWN 0x10 // Joystick down说明TI 板子上的那个joystick上下左右键分别有对应的普通按键;hal_key.c中有个读取键值的函数(后面几个是我自己加的),先研究下普通的按键;uint8 HalKeyRead ( void ){uint8 keys = 0;if (HAL_PUSH_BUTTON1()){keys |= HAL_KEY_SW_6;}if ((HAL_KEY_JOY_MOVE_PORT & HAL_KEY_JOY_MOVE_BIT)) /* Key is active low */{keys |= halGetJoyKeyInput();}if(HAL_PUSH_BUTTON3()){keys |=MY_KEY7;}if(HAL_PUSH_BUTTON4()){keys |=MY_KEY6;}if(HAL_PUSH_BUTTON5()){keys |=MY_KEY5;}if(HAL_PUSH_BUTTON6()){keys |=MY_KEY4;}return keys;}hal_board_cfg.h文件中定义了/* ----------- Push Buttons ---------- */#define HAL_PUSH_BUTTON1() (PUSH1_POLARITY (PUSH1_SBIT))#define PUSH1_POLARITY ACTIVE_HIGH(就是原值)#define PUSH1_SBIT P0_1uint8 HalKeyRead ( void )调用HAL_PUSH_BUTTON1() ,当HAL_PUSH_BUTTON1()==1时,就把键值赋给keys;(这边有改成低电平触发)。
《无线短距离通信技术开发项目教程》教学课件—06 基于CC2530的按键控制LED灯的控制
0
读/写 P0_4输入模式:0 上拉/下拉,1 三态
3 MDP0_3
0
读/写 P0_3输入模式:0 上拉/下拉,1 三态
2 MDP0_2
0
读/写 P0_2输入模式:0 上拉/下拉,1 三态
1 MDP0_1
0
读/写 P0_1输入模式:0 上拉/下拉,1 三态
0 MDP0_0
0
读/写 P0_0输入模式:0 上拉/下拉,1 三态
一、实验原理
表6-4 P0INP (P0输入模式寄存器)
位号 位名 复位值 操作性
功能描述
7 MDP0_7
0
读/写 P0_7输入模式:0 上拉/下拉,1 三态
6 MDP0_6
0
读/写 P0_6输入模式:0 上拉/下拉,1 三态
5 MDP0_5
0
读/写 P0_5输入模式:0 上拉/下拉,1 三态
4 MDP0_4
位号 7 6 5 4 3 2 1 0
位名 DIRP0_7 DIRP0_6 DIRP0_5 DIRP0_4 DIRP0_3 DIRP0_2 DIRP0_1 DIRP0_0
实验1:CC2530 LED 灯闪烁实验
计算机科学与技术学院实验报告课程名称:无线传感器网络原理与应用实验一CC2530 LED灯闪烁实验一、实验目的熟悉鼎轩 WSN 实验平台使用的基本步骤,熟悉 IAR 开发环境,掌握 CC2530 芯片 LED 对应的 GPIO 引脚,并且熟练掌握 LED 的使用。
二、实验内容1)安装 IAR 开发环境;2)控制红灯、绿灯、蓝灯(蓝灯、黄灯、绿灯)交替闪烁。
三、实验环境硬件:鼎轩 WSN 实验箱(汇聚网关、烧录线),PC 机;软件:IAR 软件。
四、实验步骤目前网关上有红、绿、蓝 3 个 LED 灯,还另有一个红色的 LED 工作指示灯,节点上有红、蓝、黄、绿 4 个 LED 灯,其中,红灯是工作指示灯,蓝灯和黄灯主要用于程序调试。
现在对 LED 灯的操作主要是点亮和关闭,下面是CC2530 中 LED部分的原理图。
LED 颜色, MCU 管脚,信号控制关系如下:对于网关板:对于节点板:要想通过编程 P1,P2 引脚控制 LED 的亮灭,必须设置对应的引脚方向为输出,对应的暂存器为 P1DIR,P2DIR。
P2DIR :D0~D4 设置 P2_0 到到 P2_4 的方向D7 、D6 位作为端口 0 外设优先级的控制1)打开鼎轩 WSN 实验箱,检查实验箱设备,确保实验箱设备完整、连接无误后,连接电源线,打开电源开关;2)安装好 IAR 开发环境以及驱动程序,详细方法见说明资料;3)用烧录线连接汇聚网关上的烧录接口与 PC 机 USB 接口,连接方法可参考相应的说明资料;4) 双击打开目录(/cc2530-simple-demo/LED_BLINK)下的工程图标 AUTO.eww 打开工程;5) 点击 IAR 中的图标按钮编译程序;6)完成编译后若没有错误信息,将实验箱节点编程开关上汇聚网关开关拨上去,点击调试并下载按钮将程序下载到汇聚网关上;7) 运行程序,可以观察到红灯和绿灯交替闪烁。
8) 修改程序代码,实现红、蓝、绿三个灯一起闪烁。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cc2530按键控制流水灯
本次设计用LED1,LED2,LED3 灯及按键S1 为外设。
采用P10、P11、P14 口为输出口,驱动LED1/LED2/LED3,P01 口为输入口,接受按键信号输入(高电平为按键信号)。
1.高性能
2.4G 射频模块Q2530RF
Q2530RF是丘捷技基于TI公司第二代2.4GHz IEEE 802.15.4 /
RF4CE/ZigBee的第二代片上系统解决方案CC2530 F256的全功能模块,集射频收发及MCU控制功能于一体。
外围原件包含一颗32MHz晶振和一颗32.768KHz晶振及其他一些阻容器件。
射频部分采用巴伦匹配和外置高增益SMA天线,接收灵敏度高,发送距离远,空旷环境最大传输距离可达400米。
模块引出CC2530所有IO口,便于功能评估与二次开发。
2.多功能开发板Q2530EB
多功能扩展板Q2530EB 可支持多种射频主控模块(例如Q2530RF等),配置有串口液晶显示接口,USB供电接口,DC 5V电源接口,电池接口,RS232接口,DEBUG接口,五向按键及指示灯,红外遥控信号接收/发射等模块。
所有的外设均通过SPI总线/UART /DEBUG等接口与射频模块Q2530RF 相连,并完全受Q2530RF 控制和访问。
多功能仿真扩展板Q2530EB 采用三种电源供电方式:DC 5V供电、USB接口供电、电池供电,可在插座P5设置跳线选择,PIN1-PIN2 为电池供电,PIN2-PIN3 为外接直流电源或者USB接口供电。
电源开关为P4。
Q2530EB 板卡背面的电池盒可放置3节5号干电池,输出电压3.4~4.5V,板载电源电路将其调整到+3.3V 稳定的直流电压输出供后级使用。
当电池电压低于3.4V 时,应更换电池以保持模块正常工作。
Q2530EB 带有1个DC 5V的电源适配器接口P2和一个USB接口P1,输入电压经过稳压器降压为+3.3V输出供后极使用。