cc2530基本实验1_第1页
cc2530基本实验1_第2页
cc2530基本实验1_第3页
cc2530基本实验1_第4页
cc2530基本实验1_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、第一步:安装第一步:安装IAR 8.10方法:方法:打开安装文件,选择IAR安装,官方推荐默认安装在系统盘:相关软件安装相关软件安装提示要求输入License,由IAR 8.10注册机生成,选项正确后生成License,复制到License#处:输入注册码后按提示一步步进行安装,直至完成程序安装。程序安装完成后默认路径为: 安装完成软件界面如下:第第二二步:步: CC DEBUGGER 驱动安装方法驱动安装方法 我们将网蜂的CC DEBUGGER插进电脑,提示找到新硬件,选择列表安装。驱动的路径如下图,前提是已经安装IAR 8.1 0。安装完成后,重新拔插仿真器,在设备管理器里找到Chipco

2、n SRF04EB,说明驱动安装完成,如下图所示。工程文件的快速建立工程文件的快速建立第一步:第一步:打开IAR软件,新建一个Project-Create New Project,选择默认选项可以了,点击OK。保存在自己希望的路径。第二步:第二步:新建文件,输入#include,我们基础实验需要用到的也只有这个头文件。然后保存为.c格式到工程文件路径下。第三步:第三步:输入程序然后保存。在左边工程里单击右键-add-刚保存的C文件,添加文件到工程。第四步:第四步:在IAR里配置一下几个选项。打开(右点击工程名字)Project-Options,General Options配置如图 Gener

3、al Options参数,参数,单击圆圈所示按钮,先向上返回上一级目录,然后打开Texas Instruments文件夹,选择CC2530F256芯片。 选择LinkerConfigLinker command file选项。单击LinkerConfig配置配置所示按钮,导出配置文件,先向上返回上一级目录,然后打开Texas Instruments文件夹,选择lnk51ew_cc2530F256.xcl。第五步:第五步:然后在Debugger选项的Driver里选择Texas Instruments(使用编程器仿真),下面选择io8051.ddf文件,如图所示。至此,基本配置已经完成。第六步:

4、第六步:Project-Make 编译后显示0错误和0警告。将网蜂CC DEBUGGER 和开发板连接好,然后点击:Project-Download and Debug (下载与仿真)。快捷键所示:程序在下载中:下载完成,进入仿真调试界面,常用按钮如所示。点击GO(全速运行),程序执行。使 CC DEBUGGER可以直接在IAR中下载程序并调试。结束后程序仍然保留在芯片flash内,相当于烧写工具。实验实验一:一:点亮点亮LED1GEC电池板的LED部分原理图:CC2530的IO口配置我们需要配置三个寄存器P1SEL P1SEL 、P1DIR P1DIR 、P1INPP1INP。IOIO口口功

5、能如下表所示:* * P1SEL P1SEL (0:普通IO口 1:第二功能)* * P1DIR P1DIR (0:输入 1:输出 )* * P1INP P1INP (0:上拉/下拉 1:三态 ) 按照表格寄存器内容,我们对LED1,也就是P1_0口进行配置,当P1_0输出低电平时LED1被点亮。所以配置如下: P1SELP1SEL &=0 x01; /作为普通IO口P1DIRP1DIR |= 0 x01; /P1_0定义为输出P1INPP1INP &=0X01; /打开上拉 由于CC2530寄存器初始化时默认是:P1SELP1SEL =0 x00; P1DIRP1DIR =

6、0 x00; P1INP P1INP =0X00; 所以IO口初始化我们可以简化初始化指令:P1DIR P1DIR |= 0 x01; /P1_0定义为输出/*程序描述:点亮LED1*/#include #include #define LED1 P1_0 /#define LED1 P1_0 /定义定义P10P10口为口为LED1LED1控制端控制端void IO_Init(void)void IO_Init(void) P1DIR |= 0 x01; /P1_0 P1DIR |= 0 x01; /P1_0定义为输出定义为输出 void main(void)void main(void) I

7、O_Init(); /IO_Init(); /调用初始化程序调用初始化程序LED1=1; /LED1=1; /点亮点亮LED1LED1while(1); while(1); 实验二:按键实验要求要求:依次按下按键:依次按下按键S3控制控制LED1的亮和灭的亮和灭GEC电池底板的KEY和LED原理图:LED1初始化:P1SEL &=0 x01; /作为普通IO口P1DIR |= 0 x01; /P1_0定义为输出P1INP &=0X01; /打开上拉 按键S3初始化:P1SEL &= 0X04; /设置P1.2为普通IO口 P1DIR &= 0X04; /按键在P

8、1.2口,设置为输入模式 P1INP &= 0 x04; /打开P1.2上拉电阻,不影响由于CC2530寄存器初始化时默认是: P1SEL = 0 x00; P1DIR = 0 x00; P1INP = 0X00; 所以IO口初始化我们可以简化初始化指令:P1DIR |= 0 x01; /P1_0定义为输出P1DIR &= 0X04; /按键在P1.2 口,设置为输入模式 /*程序描述:依次按下按键S3控制LED1的亮和灭*/#include #define uint unsigned int#define uchar unsigned char /定义控制定义控制LED灯的端

9、口灯的端口#define LED1 P1_0 /LED1为为P1.0口控制口控制#define KEY3 P1_2 /KEY1为为P1.2口控制口控制 /函数声明函数声明void Delayms(uint);/延时函数延时函数void InitLed(void);/初始化初始化LED1void KeyInit(); /按键初始化按键初始化uchar KeyScan(); /按键扫描程序按键扫描程序 /*延时函数延时函数*/void Delayms(uint xms) /i=xms 即延时即延时i毫秒毫秒 uint I,j; for(i=xms;i0;i-) for(j=587;j0;j-);/

10、* LED初始化函数初始化函数*/void InitLed(void)P1DIR |= 0 x01; /P1_0定义为输出定义为输出 LED1 = 1; /LED1灯熄灭灯熄灭 /* 按键初始化函数按键初始化函数*/void InitKey() P1SEL &= 0X04; /设置设置P1.2为普通为普通IO口口 P1DIR &= 0X04; /按键在按键在P1.2口,设置为输入模式口,设置为输入模式 P1INP &= 0 x04; /打开打开P1.2上拉电阻上拉电阻,不影响不影响/* 按键检测函数按键检测函数*/uchar KeyScan(void) if(KEY3=

11、0) Delayms(10); if(KEY3=0) while(!KEY3); /松手检测松手检测 return 1; /有按键按下有按键按下 return 0; /无按键按下无按键按下/* 主函数主函数*/void main(void)InitLed();/调用初始化函数调用初始化函数InitKey(); while(1) if(KeyScan() /按键改变按键改变LED状态状态 LED1=LED1; 实验三:外部中断要求要求:依次按下按键:依次按下按键S3控制控制LED1的亮和灭的亮和灭,通过中断通过中断方式。方式。GEC的KEY和LED部分原理图,如下图所示:CC2530的外部中断我

12、们需要配置三个寄存器P0IEN P0IEN 、PICTL PICTL 、P0IFGP0IFG、IEN1IEN1。各寄存器功能如下表所示:按照表格寄存器内容,我们对LED1和按键S1,也就是P1.0和P1.2口进行配置,当P1.2输出低电平时LED1被点亮,S3按下时P1.2产生外部中断从而控制LED1的亮灭。所以配置如下:LED1简化初始化:P1DIR |= 0 x01; /P1_0定义为输出外部中断初始化: P0IEN |= 0X10; /P04 设置为中断方式 PICTL |= 0X01; / 下降沿触发 IEN1 |= 0X20; / 允许P0口中断; P0IFG = 0 x00; /

13、初始化中断标志位/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *程序描述:按键程序描述:按键S3S3外部中断方式改变外部中断方式改变LED1LED1状态状态* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /#include #include #define uint unsigned int#define uint unsigned int

14、#define uchar unsigned char#define uchar unsigned char/定义控制定义控制LEDLED灯的端口灯的端口#define LED1 P1_0#define LED1 P1_0/定义定义LED1LED1为为P1.0P1.0口控制口控制#define KEY3 P1_2 /#define KEY3 P1_2 /中断口中断口/函数声明函数声明void Delayms(uint);void Delayms(uint);/延时函数延时函数void InitLed(void);void InitLed(void);/初始化初始化P1P1口口void KeyI

15、nit(); /void KeyInit(); /按键初始化按键初始化uchar KeyValue=0;uchar KeyValue=0;/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */延时函数延时函数* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /void Delayms(uint xms) /i=xms void Delayms(uint xms) /i=xms 即延时即延时i i毫秒毫秒 uint i,j; uint i,j; for(i=

16、xms;i0;i-) for(i=xms;i0;i-) for(j=587;j0;j-); for(j=587;j0;j-); / /* * * * * * * * * * * * * * * * * * * * * * * * * * * * *LEDLED初始化程序初始化程序* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /void InitLed(void)void InitLed(void) P1DIR |= 0 x01; /P1_0P1DIR |= 0 x01; /P1_0、P1_1P1_1定义为输出定义为输出

17、 LED1 = 1; /LED1 LED1 = 1; /LED1灯熄灭灯熄灭 / /* * * * * * * * * * * * * * * * * * * * * * * * * * * * *KEYKEY初始化程序初始化程序-外部中断方式外部中断方式* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /void InitKey()void InitKey() P1IEN |= 0X04; /P1.2 P1IEN |= 0X04; /P1.2 设置为中断方式设置为中断方式 PICTL |= 0X02; / PICTL |

18、= 0X02; / 下降沿触发下降沿触发 IEN2 |= 0X10; / IEN2 |= 0X10; / 允许允许P1P1口中断口中断; ; P1IFG &= 0 x04; / P1IFG &= 0 x04; / 初始化中断标志位初始化中断标志位 EA = 1; EA = 1; / /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * 中断处理函数中断处理函数 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ / #pragma vector = P1INT_VECTOR /#p

温馨提示

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

评论

0/150

提交评论