资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,CC2530,基础实验,第一步:安装,IAR 8.10,方法:,打开安装文件,选择,IAR,安装,官方推荐默认安装在系统盘:,相关软件安装,提示要求输入,License,,由,IAR 8.10,注册机生成,选项正确后生成,License,复制到,License#,处:,输入注册码后按提示一步步进行安装,直至完成程序安装。程序安装完成后默认路径为,:,安装完成软件界面如下:,第,二,步:,CC DEBUGGER,驱动安装方法,我们将网蜂的,CC DEBUGGER,插进电脑,提示找到新硬件,选择列表安装。,驱动的路径如下图,前提是已经安装,IAR 8.1 0,。,安装完成后,重新拔插仿真器,在设备管理器里找到,Chipcon SRF04EB,,说明驱动安装完成,如下图所示。,工程文件的快速建立,第一步:,打开,IAR,软件,新建一个,Project-Create New Project,,选择默认选项可以了,点击,OK,。保存在自己希望的路径。,第二步:,新建文件,输入,#include,我们基础实验需要用到的也只有这个头文件。然后保存为,.c,格式到工程文件路径下。,第三步:,输入程序然,后保存,。,在左边工程里单击右键,-add-,刚保存的,C,文件,添加,文件到工程,。,第四步:,在,IAR,里配置一下几个选项。打开,(,右点击工程名字,)Project-Options,,,General Options,配置如图,General Options,参数,,单击圆圈所示按钮,先向上返回上一级目录,然后打开,Texas Instruments,文件夹,选择,CC2530F256,芯片。,选择,LinkerConfigLinker command file,选项。单击,LinkerConfig,配置,所示按钮,导出配置文件,先向上返回上一级目录,然后打开,Texas Instruments,文件夹,选择,lnk51ew_cc2530F256.xcl,。,第五步:,然后在,Debugger,选项的,Driver,里选择,Texas Instruments,(使用编程器仿真),下面选择,io8051.ddf,文件,如,图,所示。至此,基本配置已经完成。,第六步:,Project-Make,编译后显示,0,错误和,0,警告。将网蜂,CC DEBUGGER,和开发板连接好,然后点击,:Project-Download and Debug(,下载与仿真,),。快捷键所示:,程序在下载中:,下载完成,进入仿真调试界面,常用按钮如所示。,点击,GO(,全速运行,),,程序执行。使,CC DEBUGGER,可以直接在,IAR,中下载程序并调试。结束后程序仍然保留在芯片,flash,内,相当于烧写工具。,实验,一:,点亮,LED1,GEC,电池板的,LED,部分原理图:,CC2530,的,IO,口配置我们需要配置三个寄存器,P1SEL,、,P1DIR,、,P1INP,。,IO,口,功能如下表所示:,*P1SEL,(0,:普通,IO,口,1,:第二功能,),*P1DIR,(0,:输入,1,:输出,),*P1INP,(0,:上拉,/,下拉,1,:三态,),按照表格寄存器内容,我们对,LED1,,也就是,P1_0,口进行配置,当,P1_0,输出低电平时,LED1,被点亮。所以配置如下:,P1SEL,/,作为普通,IO,口,P1DIR,|=0 x01;/P1_0,定义为输出,P1INP,/,打开上拉,由于,CC2530,寄存器初始化时默认是:,P1SEL,=0 x00;,P1DIR,=0 x00;,P1INP,=0X00;,所以,IO,口初始化我们可以简化初始化指令:,P1DIR,|=0 x01;/P1_0,定义为输出,/*,程序描述:点亮,LED1,*/,#include,#define LED1 P1_0 /,定义,P10,口为,LED1,控制端,void IO_Init(void),P1DIR|=0 x01;/P1_0,定义为输出,void main(void),IO_Init();/,调用初始化程序,LED1=1;/,点亮,LED1,while(1);,实验二:按键实验,要求,:依次按下按键,S3,控制,LED1,的亮和灭,GEC,电池底板的,KEY,和,LED,原理图:,LED1,初始化:,P1SEL /,作为普通,IO,口,P1DIR|=0 x01;/P1_0,定义为输出,P1INP /,打开上拉,按键,S3,初始化:,P1SEL /,设置,P1.2,为普通,IO,口,P1DIR /,按键在,P1.2,口,设置为输入模式,P1INP /,打开,P1.2,上拉电阻,不影响,由于,CC2530,寄存器初始化时默认是:,P1SEL=0 x00;,P1DIR=0 x00;,P1INP=0X00;,所以,IO,口初始化我们可以简化初始化指令:,P1DIR|=0 x01;/P1_0,定义为输出,P1DIR /,按键在,P1.2,口,设置为输入模式,/*,程序描述:依次按下按键,S3,控制,LED1,的亮和灭,*/,#include,#define uint unsigned int,#define uchar unsigned char,/,定义控制,LED,灯的端口,#define LED1 P1_0 /LED1,为,P1.0,口控制,#define KEY3 P1_2 /KEY1,为,P1.2,口控制,/,函数声明,void Delayms(uint);/,延时函数,void InitLed(void);/,初始化,LED1,void KeyInit();/,按键初始化,uchar KeyScan();/,按键扫描程序,/*,延时函数,*/,void Delayms(uint xms)/i=xms,即延时,i,毫秒,uint I,j;,for(i=xms;i0;i-),for(j=587;j0;j-);,/*,LED,初始化函数,*/,void InitLed(void),P1DIR|=0 x01;/P1_0,定义为输出,LED1=1;/LED1,灯熄灭,/*,按键初始化函数,*/,void InitKey(),P1SEL /,设置,P1.2,为普通,IO,口,P1DIR /,按键在,P1.2,口,设置为输入模式,P1INP /,打开,P1.2,上拉电阻,不影响,/*,按键检测函数,*/,uchar KeyScan(void),if(KEY3=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,的外部中断我们需要配置三个寄存器,P0IEN,、,PICTL,、,P0IFG,、,IEN1,。,各寄存器功能如下表所示:,按照表格寄存器内容,我们对,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;/,初始化中断标志位,/*,程序描述:按键,S3,外部中断方式改变,LED1,状态,*/,#include,#define uint unsigned int,#define uchar unsigned char,/,定义控制,LED,灯的端口,#define LED1 P1_0/,定义,LED1,为,P1.0,口控制,#define KEY3 P1_2 /,中断口,/,函数声明,void Delayms(uint);/,延时函数,void InitLed(void);/,初始化,P1,口,void KeyInit();/,按键初始化,uchar KeyValue=0;,/*,/,延时函数,*/,void Delayms(uint xms)/i=xms,即延时,i,毫秒,uint i,j;,for(i=xms;i0;i-),for(j=587;j0;j-);,/*,LED,初始化程序,*/,void InitLed(void),P1DIR|=0 x01;/P1_0,、,P1_1,定义为输出,LED1=1;/LED1,灯熄灭,/*,KEY,初始化程序,-,外部中断方式,*/,void InitKey(),P1IEN|=0X04;/P1.2,设置为中断方式,PICTL|=0X02;/,下降沿触发,IEN2|=0X10;/,允许,P1,口中断,;,P1IFG /,初始化中断标志位,EA=1;,/*,中断处理函数,*/,#pragma vector=P1INT_VECTOR /,格式:,#pragma vector=,中断向,/,量,紧接着是中断处理程序,_interrupt void P1_ISR(void),Delayms(10);/,去除抖动,if(KEY3=0),LED1=LED1;/,改变,LED1,状态,P1IFG /,清中断标志,P1IF=0;/,清中断标志,while(KEY3);,/*,主函数,*/,void main(void),InitLed();/,调用初始化函数,InitKey();,while(1),
展开阅读全文