CC2530遥控装置

作者&投稿:柘河 (若有异议请与网页底部的电邮联系)
遥控器编程问题,求解~

遥控器编程需对他的协议要有些了解才行(软件解码),下面给出51单片机接收中断程序,并加详细注释 ...
/**********************************************************/
void IR_IN() interrupt 0 //using 0
{
unsigned char j,k,N=0;
EX0 = 0;
delay(15);
if (IRIN==1)
{ EX0 =1;
return;
}
//确认IR信号出现
while (!IRIN) //等IR变为高电平,跳过9ms的前导低电平信号。
{delay(1);}

for (j=0;j<4;j++) //收集四组数据
{
for (k=0;k<8;k++) //每组数据有8位
{
while (IRIN) //等 IR 变为低电平,跳过4.5ms的前导高电平信号。
{delay(1);}
while (!IRIN) //等 IR 变为高电平
{delay(1);}
while (IRIN) //计算IR高电平时长
{
delay(1);
N++;
if (N>=30)
{ EX0=1;
return;} //0.14ms计数过长自动离开。
} //高电平计数完毕
IRCOM[j]=IRCOM[j] >> 1; //数据最高位补“0”
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //数据最高位补“1”
N=0;
}//end for k
}//end for j

if (IRCOM[2]!=~IRCOM[3])
{ EX0=1;
return; }

IRCOM[5]=IRCOM[2] & 0x0F; //取键码的低四位
IRCOM[6]=IRCOM[2] >> 4; //右移4次,高四位变为低四位

if(IRCOM[5]>9)
{ IRCOM[5]=IRCOM[5]+0x37;}
else
IRCOM[5]=IRCOM[5]+0x30;

if(IRCOM[6]>9)
{ IRCOM[6]=IRCOM[6]+0x37;}
else
IRCOM[6]=IRCOM[6]+0x30;

lcd_pos(0x4b);
lcd_wdat(IRCOM[6]); //第一位数显示
lcd_pos(0x4c);
lcd_wdat(IRCOM[5]); //第二位数显示

beep();
EX0 = 1;
}

CC2530用的是TI公司的zstack协议栈。学习zigbee关键在于多看官方给出的例程,基本的功能和用
法都有。对于zigbee组网,初学者不需要具体了解协议栈的内部结构,而且zstack是半开源的,你
也没机会了解核心代码,我们要做的就是了解应用程序的接口函数,然后应用它。如果你要实现温
度值的传输就要了解SimpleSensor.c和SimpleCollector.c,在ZStack-1.4.3-1.2.1的Projects
\zstack\Samples\SimpleApp下。

3.Zigbee超低功耗遥控器的设计
做zigbee设计首先要有zigbee协议栈,我用的是ZStack-1.4.3-1.2.1,芯片为CC2430。zigbee编程
主要在协议栈中修改。按你的要求应该用SimpleApp范例,在ZStack-1.4.3-1.2.1的Projects
\zstack\Samples\SimpleApp下。主要看SimpleSwitch.c和SimpleController.c两个文件。例如要
遥控LED灯的亮灭,由终端向协调器发送控制命令:
//SimpleSwitch.c
void zb_HandleKeys( uint8 shift, uint8 keys )
{
uint8 startOptions;
uint8 logicalType;

// Shift is used to make each button/switch dual purpose.
if ( shift )
{
if ( keys & HAL_KEY_SW_1 )
{
}
if ( keys & HAL_KEY_SW_2 )
{
}
if ( keys & HAL_KEY_SW_3 )
{
}
if ( keys & HAL_KEY_SW_4 )
{
}
}
else
{
if ( keys & HAL_KEY_SW_1 )
{
if ( myAppState == APP_INIT )
{
// In the init state, keys are used to indicate the logical mode.
// The Switch device is always an end-device
logicalType = ZG_DEVICETYPE_ENDDEVICE;
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);

// Do more configuration if necessary and then restart device with auto-start bit set

zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
startOptions = ZCD_STARTOPT_AUTO_START;
zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
zb_SystemReset();

}
else
{
// Initiate a binding with null destination
zb_BindDevice(TRUE, TOGGLE_LIGHT_CMD_ID, NULL);
}
}
if ( keys & HAL_KEY_SW_2 )
{
if ( myAppState == APP_INIT )
{
// In the init state, keys are used to indicate the logical mode.
// The Switch device is always an end-device
logicalType = ZG_DEVICETYPE_ENDDEVICE;
zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);


zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
startOptions = ZCD_STARTOPT_AUTO_START;
zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
zb_SystemReset();
}
else
{
// Send the command to toggle light
zb_SendDataRequest( 0xFFFE, TOGGLE_LIGHT_CMD_ID, 0,
(uint8 *)NULL, myAppSeqNumber, 0, 0 );
}
}
if ( keys & HAL_KEY_SW_3 )
{
// Remove all existing bindings
zb_BindDevice(FALSE, TOGGLE_LIGHT_CMD_ID, NULL);
}
if ( keys & HAL_KEY_SW_4 )
{
}
}
}
这个函数定义了开关的用法,按键1用来设置协调器,按键2用来设置终端或发送控制命令TOGGLE_LIGHT_CMD_ID,按键3用来绑定设备。
// SimpleController.c
void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData )
{
if (command == TOGGLE_LIGHT_CMD_ID)
{
// Received application command to toggle the LED
HalLedSet(HAL_LED_1, HAL_LED_MODE_TOGGLE);
}
}
若接收到数据,判断命令command是否为TOGGLE_LIGHT_CMD_ID,若是则点亮LED1。其实TOGGLE_LIGHT_CMD_ID值就定义为1,为了让读者明白含义所以用一串字符表示,初学者不要认为zigbee协议栈有多复杂,耐心的看下去问题都会迎刃而解。

ZigBee是一般用在多节点,低功耗,网状分布应用上,虽然没有用它做过遥控直升机模块;但是可以猜到该直升机的遥控模块式用CC2530 作为终端节点,可以控制;而遥控器是作为协调器,在终端节点加入后,进行控制。遥控器也是用CC2530做控制芯片,外围电路就是一些按键之类的。CC2530烧写只需要用到5根线,P2_1、P2_2、RESET、VCC、GND,你可以参考TI给出的参考原理图。多少增益要看你情况,增益大,发射距离大,功耗大。发射距离和功耗看你看重一点,综合考虑,折中选择。


索尼KOOV机器人可以让孩子学会编程吗?
索尼KOOV激发孩子们对编程的兴趣,可以让孩子学会编程。如果单单从外观上看,其有点类似乐高积木,但里面还暗藏乾坤。索尼KOOV由拼插模块、电子元件、支持Windows、MacOS以及iPad的专属索尼KOOV应用程序组成。套件的主体结构由拼搭模块、核心主板和传动类电机(直流电机和伺服电机)组成,为了更好的表现声光感...

我想买本子,但不知道买哪个.请朋友们给我建议一下吧
笔记本重量 2530g 外形尺寸 344×246×37-42mm (整体看,这款笔记本整机的性能还是不错,同时价格上...130万像素摄像头、支持人脸识别功能、杜比音效认证2.1重低音音响体系、支持遥控娱乐平台、一键恢复、蓝牙...联想c466at1400,大概4500左右 配置方面:这款机器采用赛扬双核T1400处理器(1.73GHz主频\/512KB二级缓存\/...

禹会区18545879435: CC2530遥控装置 -
於莺盐酸: ZigBee是一般用在多节点,低功耗,网状分布应用上,虽然没有用它做过遥控直升机模块;但是可以猜到该直升机的遥控模块式用CC2530 作为终端节点,可以控制;而遥控器是作为协调器,在终端节点加入后,进行控制.遥控器也是用CC2530做控制芯片,外围电路就是一些按键之类的.CC2530烧写只需要用到5根线,P2_1、P2_2、RESET、VCC、GND,你可以参考TI给出的参考原理图.多少增益要看你情况,增益大,发射距离大,功耗大.发射距离和功耗看你看重一点,综合考虑,折中选择.

禹会区18545879435: cc2530可以通过计算机无线控制吗 -
於莺盐酸: 电脑可以通过串口连接CC2530,然后计算机就可以通过串口控制这片CC2530和网络中的其它Zigbee SOC芯片进行控制和通讯了. 可以将Zigbee网络中各个节点的数据无线传输到PC端,当然PC也可以通过Zigbee Soc芯片发送指令给网络中的任何一个节点.

禹会区18545879435: ZigBee的CC2530和2430在使用上连接方式有没有什么区别啊?直接把2430换成2530行不行? -
於莺盐酸: 从硬件的角度来讲,两者不是PIN对PIN的兼容,所以电路图和Layout等等都不一样,从软件角度来说2430运行ZigBee2006,而CC2530支持的是ZigBee2007/pro,两代ZigBee协议不完全兼容,而且ZigBee2007有许多更好的特性,比如支持更大的网络,网络地址分配策略的更改等等.

禹会区18545879435: cc2530的简介 -
於莺盐酸: CC2530 结合了领先的RF 收发器的优良性能,业界标准的增强型8051 CPU,系统内可编程闪存,8-KB RAM 和许多其它强大的功能.CC2530 有四种不同的闪存版本:CC2530F32/64/128/256,分别具有32/64/128/256KB 的闪存.CC2530 具...

禹会区18545879435: zigbee cc2530参数 -
於莺盐酸: 在zigbee协议中在2.4G频段定义了16个信道,每个信道的中心频率相差5MHZ.因此其测试参数就是指测试中心频率低5MHZ的信道对本信道的影响,而测试条件就是:信号强度为-82dbm,测试信道是中心频率低5MHZ的信道,指定为0DB, 结果测出的典型值是49DB.

禹会区18545879435: xbee与cc2530哪个比较好,或者帮我分析一下两者在具体应用上的优缺点 -
於莺盐酸: 你说的虽然都是zibee的东东,但是他们确实有很大差别,xbee是模块应该有很多型号的包括2.4G和433m的zigBee模块/也有自己协议栈的,cc2530只是2.4G芯片,你如果需要做应用的话,需要自己开发硬件,除非你买开发好的板子.至于说好与坏,关键要看你的应用需求和实现的技术指标,如果能满足的要求就是好的.

禹会区18545879435: CC2530的zigbee模块怎么用,查看资料上写内部有一个51单片机.这个模块直接可以当单片机用吗? -
於莺盐酸: zigbee模块是基于51的片上soc,可以看做有通讯功能的增强单片机 也有些应用另外添加低功耗单片机如msp430等通过spi控制rf收发芯片

禹会区18545879435: 小弟正在学ZigBee,哪位大神可以帮我写一个CC2530的程序,功能:通过一个按键控制一个LED灯泡的三个亮度 -
於莺盐酸: 看看LED灯的接入方式, 如果LED灯的一端已经接地了,哪里把另外一端的电压直接拉高,记相应管脚赋值为1即可. 例如:P2端口的第一管(0号)脚输出至LED的一侧,LED灯的另外一侧接地.一般把P2端口使能,P2管脚的第一引脚为输出模式,然后P2=P2|1即可.

禹会区18545879435: cc2530 定时器 -
於莺盐酸: 1、陪定时器1的功能为特殊功能,不是普通IO 在PERCFG这里2、P1SEL引脚选择3、P1DIR设为输出4、T3CC0设置周期5、T3CC1设置占空比6、T3CCTL0 设置通道07、T3CCTL1 设置通道18、T3CTL设为模模式9、用T3CTL打开即可

禹会区18545879435: 如何用CC2530无线模块控制继电器? -
於莺盐酸: CC2530芯片与继电器的接法 中间需要用一个GPIO扩展芯片来实现,具体电路图 在下面

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网