Zigbee LED 灯闪烁实验

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Zigbee LED闪烁实验
罗汉江
LED闪烁实验
1.前言:简单介绍这个实验的应用
2.实验现象:闪烁LED1 闪烁
3.实验讲解:对LED 部分原理图、寄存器、代码、编程方法详细讲解
4.实验步骤:实验的流程。

LED闪烁实验
1.前言: 通过LED灯的闪烁实验能让你对编译环境和程序
架构有一定的认识,为以后的学习和更大型的程序
打下基础,增加信心。

2.实验现象:通过程序实验闪烁LED1。

LED闪烁实验
3.实验讲解:对LED 部分原理图、寄存器、代码详细讲解
LED
闪烁实验
CC2530 的IO 口配置我们需要配置三个寄存器P1SEL 、P1DIR 、P1INP 。

IO 口功能如下表所示:
3.实验讲解:对LED 部分原理图、寄存器、代码详细讲解
LED闪烁实验
3.实验讲解:对LED 部分原理图、寄存器、代码详细讲解
* P1SEL (0:普通IO 口1:第二功能)
* P1DIR (0:输入1:输出)
* P1INP (0:上拉/下拉1:三态)
按照表格寄存器内容,我们对LED1,也就是P1_0 口进行配置,当
P1_0 输出低电平时LED1 被点亮。

所以配置如下:
P1SEL &=~0x01; //作为普通IO 口P1DIR |= 0x01; //P1_0 定义为输出
P1INP &=~0X01; //打开上拉
由于CC2530 寄存器初始化时默认是:
P1SEL=0x00; P1DIR |= 0xff; P1INP =0X00;
所以IO 口初始化我们可以简化初始化指令:
P1DIR |= 0x01; //P1_0 定义为输出
LED闪烁实验
3.实验讲解:对LED 部分原理图、寄存器、代码详细讲解•Led.h
•#ifndef _LED_H_
•#define _LED_H_
•# include <ioCC2530.h>
•#define LED1 P1_0
•#define LED1_On() LED1=1;
•#define LED1_Off() LED1=0;
•extern void Led_Init(void);
•extern void Delay(unsigned int time);
•#endif
LED闪烁实验
3.实验讲解:对LED 部分原理图、寄存器、代码详细讲解•代码
•# include <ioCC2530.h>
•# include "Led.h"
•void Led_Init(void)
•{
•P1SEL &= ~(1 << 0); //设置P1_0为GPIO
•P1DIR |=(1<<0); //设置P1_0为输出模式
•LED1=0;
•}
•void Delay(unsigned int time)
•{
•unsigned int i,j;
•for(i=0;i<time;i++)
•for (j=0;j<10000;j++);
•}
LED闪烁实验
3.实验讲解:对LED 部分原理图、寄存器、代码详细讲解•Main()代码
•# include "Led.h"
•void main(void)
•{
•Led_Init();
•while(1)
•{
•LED1_On() ;
•Delay(10);
•LED1_Off() ;
•Delay(10);
•}
•}
LED闪烁实验4.实验步骤:实验的流程。

建立空白Test文件夹
建立空白新工程
另存到已经建立的文件夹,project 名称为Test (Test.ewp)
点击全部保存的图标
另存为同名的workspace文件
(Test.eww)
新建file
建立Led.h文件
Led.h •#ifndef _LED_H_
•#define _LED_H_
•# include <ioCC2530.h>
•#define LED1 P1_0
•#define LED1_On() LED1=1;
•#define LED1_Off() LED1=0;•extern void Led_Init(void);
•extern void Delay(unsigned int time);•#endif
#define LED1_On() LED1=1; #define LED1_Off() LED1=0;
将Led.h加入工程中
保存Led.h文件
保存Led.c文件
代码•# include <ioCC2530.h>
•# include "Led.h"
•void Led_Init(void)
•{
•P1SEL &= ~(1 << 0); //设置P1_0为GPIO
•P1DIR |=(1<<0); //设置P1_0为输出模式•LED1=0;
•}
•void Delay(unsigned int time)
•{
•unsigned int i,j;
•for(i=0;i<time;i++)
•for (j=0;j<10000;j++);
•}
写入main()代码,保存
加入工程中
Main()代码•# include "Led.h"
•void main(void)
•{
•Led_Init();
•while(1)
•{
•LED1_On() ;
•Delay(10);
•LED1_Off() ;
•Delay(10);
•}
•}
main.c加入工程
设置编译环境
未设置前
选中CC2530F256.i51
选好其他选项,near,large,PDAta stack reentrant
选择linker,config,勾选Override default,点击Linker command file,选择lnk51ew_cc2530F256.xcl
打开Debugger选项,setup,Driver 选择Texas Instruments
点击Device Description file,勾选Override default,选中
devices/_generic文件夹
选中io8051.ddf
设置output,打勾override default,修改为.hex, 选中Allow C-SPY-specific extra output file
进入单步调试状态
调试、排错、下载、实验、成功!
点击全速运行,红灯闪烁
挑战自己
•1、怎样修改参数,改变灯的闪亮速度?•2、
–#define LED1_On() LED1=1; 灯亮还是灭?
实验看看
•3、怎样让绿色灯闪亮?。

相关文档
最新文档