ZigBee基础实验课件_第1页
ZigBee基础实验课件_第2页
ZigBee基础实验课件_第3页
ZigBee基础实验课件_第4页
ZigBee基础实验课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

物联网专业2013年1月教师培训CC2530基础实验LED闪烁

定时器

串口控制LED

DS18B20温度采集

CC2530管脚图

LED闪烁

定时器

串口控制LED

DS18B20温度采集

编写程序,使板上的四个LED每隔50ms闪烁一次。LED闪烁实验目的实验电路原理图,LED1、LED2、LED3和LED4分别连接CC2530的P1.0、P1.1、P1.2和P1.3。LED闪烁实验原理通过控制CC2530寄存器来控制P1.0、P1.1、P1.2、P1.3使LED1、LED2、LED3、LED4、闪烁。P1DIR为方向寄存器,控制I/O口的输入输出。LED闪烁实验原理P0SEL寄存器为端口的功能选择,决定选择通用I/O口还是外设功能。LED闪烁实验原理1.新建一个IAR工程,在开始—程序—IAR—IAREmbeddedWorkbenchforMCS-517.51AEvalution。

LED闪烁实验步骤打开IAR后出现如所示界面,选择CreatNewProjectincurrentworkspace

LED闪烁实验步骤选择8051点击OKLED闪烁实验步骤保存工程名为forJ1(工程名可以根据自己的需求定)。LED闪烁实验步骤点击红色框部分新建一个程序文件,命名为main.c,点击红色框部分新建一个程序文件,命名为main.c,点击红色框部分新建一个程序文件,命名为main.c

。LED闪烁实验步骤#include<ioCC2530.h>//包含头文件

#defineuint8unsignedchar

#defineuint16unsignedint

#defineBIT(x)(1<<x)

/*点亮LED1*/

#defineLED1_ONP1_0=0;

/*熄灭LED1*/

#defineLED1_OFFP1_0=1;

/*点亮LED2*/

#defineLED2_ONP1_1=0;

/*熄灭LED2*/

#defineLED2_OFFP1_1=1;

/*点亮LED3*/

#defineLED3_ONP1_2=0;

/*熄灭LED3*/

#defineLED3_OFFP1_2=1;

/*点亮LED4*/

#defineLED4_ONP1_3=0;

/*熄灭LED4*/

#defineLED4_OFFP1_3=1;

LED闪烁实验代码voidmain(void)

{

/*各种初始化*/

initial();

/*主循环*/

while(1)

{

/*点亮4个LED*/

LED1_ON;

LED2_ON;

LED3_ON;

LED4_ON;

/*延时500ms*/

delayms(500);

/*熄灭4个LED*/

LED1_OFF;

LED2_OFF;

LED3_OFF;

LED4_OFF;

/*延时500ms*/

delayms(500);

}LED闪烁实验代码LED闪烁

定时器

串口控制LED

DS18B20温度采集

使用定时器1模模式控制LED1秒钟闪烁。

实验原理

定时器1运行在模模式,16位计数器从0x0000开始,每个活动时钟边沿增加1。当计数器达到T1CC0(溢出),寄存器T1CC0H:TICC0L保存的最终计数值,计数器将复位到0x0000,并继续递增。如果定时器开始于T1CC0以上的一个值,当达到最终计数值(0xFFFF)时,设置标志IRCON.T1IF和T1CTL.VOFIF。如果设置了相应的中断屏蔽位T1MIF.OVFIM以及IEN1.TIEN,将产生一个中断请求。模模式可以用于周期不是0xFFFF的应用程序定时器实验目的寄存器操作:定时器的模模式除了要控制T1CTL,还要选择一个比较通道。定时器实验原理寄存器操作:对于定时器的模模式要选择一个比较通道,在T1CCTL0定时器的模式选择中,选择比较模式。定时器实验原理寄存器操作:模模式中要向定时器设定载入值,使用T1CC0H和T1CCOL来装载比较值。定时器实验原理初始化程序

voidinitial(void)

{

/*设置P1.0为输出模式*/

P1DIR^=BIT(0);

/*关闭LED1*/

LED1=1;

/*初始化时钟*/

/*选择石英晶振*/

CLKCONCMD&=~BIT(6);

/*等待晶振稳定*/

while(!(SLEEPSTA&BIT(6)));

/*TICHSPD不分频,CLKSPD不分频*/

CLKCONCMD&=~(BIT(0)+BIT(1)+BIT(2)+BIT(6));

/*关闭不用的时钟*/

SLEEPCMD^=BIT(2);

串口控制LED实验主要程序/*设置定时器T1,128分频,模模式,从0计数到T1CC0*/

T1CTL|=BIT(1)+BIT(2)+BIT(3);

/*装入定时器初值(比较值)*/

T1CC0L=62500%256;

T1CC0H=62500/256;

/*设置捕获比较通道0为比较模式,用以触发中断*/

T1CCTL0^=BIT(2);

/*使能Timer1中断*/

T1IE=1;

/*开启总中断*/

EA=1;

}LED闪烁

定时器

串口控制LED

DS18B20温度采集

使用串口,配置相关的串口寄存器。

实验原理

PC机向CC2530发送控制指令,控制LED的开关,控制指令为“ope1,控制LED1开;ope2,控制LED2开。clo1,控制LED1关;惨clo2,控制LED2关。串口控制LED实验目的

串口控制LED实验电路原理图串口原理图串口跳线使用串口,配置相关的串口寄存器。CLKCONCMD寄存器为时钟控制命令,选择时钟晶振,在这里选择32MHz晶振串口控制LED寄存器配置SLEEPSTA寄存器为睡眠模式控制状态,当XOSC_STB位置1时,即震荡器稳定。串口控制LED寄存器配置U0CSR是串口0的控制和状态寄存器,设置串口方式及接收方式。串口控制LED寄存器配置U0CSR是串口0的控制和状态寄存器,设置串口方式及接收方式。串口控制LED寄存器配置初始化程序

voidinitial(void)

{

/*设置P1.0P1.1为输出模式*/

P1DIR^=BIT(0)+BIT(1);

/*关闭LED*/

P1_0=1;

P1_1=1;

/*初始化时钟*/

/*选择石英晶振*/

CLKCONCMD&=~BIT(6);

/*等待晶振稳定*/

while(!(SLEEPSTA&BIT(6)));

/*TICHSPD不分频,CLKSPD不分频*/

CLKCONCMD&=~(BIT(0)+BIT(1)+BIT(2)+BIT(6));

/*关闭不用的时钟*/

SLEEPCMD^=BIT(2);

/*初始化串口*/

串口控制LED实验主要程序/*设置管脚IO功能P0.2,P0.3*/

P0SEL^=BIT(2)+BIT(3)+BIT(4)+BIT(5);

/*设置为UART方式*/

U0CSR|=BIT(7);

/*波特率设为57600*/

U0GCR|=10; U0BAUD|=216; /*允许接收*/

U0CSR|=BIT(6);

/*允许接收中断*/

URX0IE=1;

/*开启总中断*/

EA=1;

}中断程序

#pragmavector=URX0_VECTOR

__interruptvoidURX0_ISR(void)

{

/*读出收到字节*/

temp=U0DBUF;

/*直接发送回去*/

U0DBUF=temp;

/*判断回车键*/

if(0x0d==temp)

{

/*收到回车键码,即作为一帧数据。清零接收计数器,设置标志位*/

RX_counter=0;

RX_flag=1;

}串口控制LED实验主要程序

else

{

/*收到的数据放入缓存*/

RX_buffer[RX_counter]=temp;

/*接收计数器增加*/

if(RX_counter<3)

RX_counter++;

}

}LED闪烁

定时器

串口控制LED

DS18B20温度采集

使用DS18B2采集温度,通过串口将采集的数据传输到PC机上。

实验原理

DSl820中有用于贮存测得的温度值的两个8位存贮器RAM编号为0号和1号,如果温度为负(1号存贮器存放温度值的符号)则1号存贮器8位全为1否则全为0,0号存贮器用于存放温度值的补码。DS18B20温度采集实验目的DSl820工作过程及时序

单总线上的所有处理均从初始化开始

ROM操作指令

总线主机检测到DSl820的存在

指令代码

ReadROM(读ROM)[33H]

MatchROM(匹配ROM)[55H]

SkipROM(跳过ROM][CCH]

SearchROM(搜索ROM)[F0H]

Alarmsearch(告警搜索)[ECH]

。DS18B20温度采集实验原理存储器操作命令

指令代码

WriteScratchpad(写暂存存储器)[4EH]

ReadScratchpad(读暂存存储器)[BEH]

CopyScratchpad(复制暂存存储器)[48H]

ConvertTemperature(温度变换)[44H]

RecallEPROM(重新调出)[B8H]

ReadPowersupply(读电源)[B4H]

DS18B20温度采集实验原理主机使用时间隙来读写DSl820的数据位和写命令字的位

初始化

主机总线to时刻发送一复位脉冲(最短为480us的低电平信号)接着在tl时刻释放总线并进入接收状态等待15-60usDSl820在检测到总线的上升沿之后,在t2时刻发出存在脉冲(低电平持续60-240us)。

DS18B20温度采集实验原理

DS18B20温度采集实验原理实验原理图如下:

DS18B20温度采集实验主要函数//DS18B20写命令voidDS18B20_Write(unsignedcharx);//DS18B20读数据unsignedcharDS18B20_Read(void);//DS18B20初始化/复位voidDS18B20_Init(void);//发送转换温度命令voidDS18B20_SendConvert(void);//DS18

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论