参考cc2430基础实验说明_第1页
参考cc2430基础实验说明_第2页
参考cc2430基础实验说明_第3页
参考cc2430基础实验说明_第4页
参考cc2430基础实验说明_第5页
已阅读5页,还剩60页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

CC2430基础实验一自动闪 实验介 CC2430基础实验二按键控制开 实验介 CC2430基础实验三按键控制闪 CC2430基础实验四T1的使 实验介 CC2430基础实验五T2的使 CC2430基础实验六T3的使 CC2430基础实验七T4的使 CC2430基础实验八定时器中 CC2430基础实验九外部中 CC2430基础实验十片内温 CC2430基础实验十一 CC2430基础实验十二 CC2430基础实验十三单片机串口发 CC2430基础实验十四在PC用串口控制 实验流程 CC2430基础实验十五在PC用串口收数并发 实验流程 CC2430基础实验十六串口时钟PC显 实验流程 CC2430基础实验十七系统睡眠工作状 CC2430基础实验十八系统唤 CC2430基础实验十九睡眠定时器的使 CC2430基础实验二十看门狗模 CC2430基础实验二十一喂 CC2430基础实验二十二定时唤 CC2430CC2430I/0LEDP1端口普通功能P1DIR(P1方向寄存器70P1_760P1_650P1_540P1_430P1_320P1_210P1_100P1_0P1SEL(P1功能选择寄存器70P1_760P1_650P1_540P1_430P1_320P1_210P1_100P1_0voidDelay(uintn);{uintfor(tt{uintfor(tt= for(tt= for(ttfor(tt= for(tt= for(tt= }{P1DIR|0x03;{P1DIR|0x03;P10、P11RLED=1;YLED=1;//LED} CC2430P1参见实验一说明文档P1DIR参见实验一说明文档P1SEL参见实验一说明文档P1INP(P1输入模式寄存器7060504030201000voidInitial(void)CC2430基础实验一。voidInitKey(void);voidvoid{P1SEL&~0X0C;//P12,P13P1DIR&~0X0C;//P12P1INP| } }unsignedcharucharuchar{if(K1=={if(K1=={}//#defineK1}if(K2=={if(K2=={}}}返回1,P1_3对应的按键按下返回2。CC2430 P1DIR参见实验一说明文档P1SEL参见实验一说明文档P1INPvoidInitial(void)CC2430基础实验一。voidInitKey(void);CC2430基础实验二。unsignedcharKeyScan(void);CC2430CC2430T1P1见实验一说明文档P1DIR见实验一说明文档P1SEL见实验一说明文档70605040在在计数器达到计数定时器1计数时钟分步000183212800 自动重 比较计11方voidInitial(void);{{P1DIRP1DIR=0x03;//P10P11RLED=YLED T1CTL0x3d;//128分频;自动重装模式(0x0000}CC2430T2实验中操作了的寄存器有P1 IEN0等寄存器。 P1SELCC2430实验一P1DIRCC2430实验一F(T2配置寄存器70当比较中断发生硬件置160当一个周期发生时50T2当一个溢出比较发14—030取T2计数值高82—01100T2,通过读出该位可以知道T2的状态T2PEROF2(T22寄存器7060504-0溢出计数捕获/溢出计数置溢出计数比较值的-164位的值得到最后一次发生捕获时溢出计数值的19-16节,写该寄存器设定寄存器得到后一次发生捕获时溢出计数捕获值/时间周期值低字节,写该寄存器设定T2寄存器得到后一次发生捕获时溢出计数值700所有中16-0500140013001200110010001void{LED_ENALBLEvoid{LED_ENALBLE启用//用T2来做实验} EA=T2IE=1;\\\\\CC2430T3实验中操作了的寄存器有 P1SELCC2430实验一P1DIRCC2430实验一00000120104011816326412840T33120清计数值,写10001DOWN(从0x00计数一次T3CC0计数11UP/DOWN(0x00到T3CC0再到T3CCTL0(T30捕获/比较控制寄存器7—061通道0比较输出模式选时的发生0001(发生比较0010(发生比较0100111(发生上比为0或UP/DOWN模式下为0或UP/DOWN模式下0xff时)0(发生比较0x00时)200001T3CC0(T30捕获/比较值寄存器T3CCTL1(T31捕获/比较控制寄存器7—0610通道1比较输出模式选时的发生0001(发生比较0010(发生比较0100111(发生上比为0或UP/DOWN模式下为0或UP/DOWN模式下0xff时)0(发生比较0x00时)200001T3CC1(T31捕获/比较值寄存器void{P1DIRvoid{P1DIR=RLED=YLED=//初始化TIMER34_ENABLE_OVERFLOW_INT(3,1);开T3#pragmavector=#pragmavector=interruptvoid{//IRCON={counter=}}//10次中断LEDdo{T##timer##CTLdo{T##timer##CTL=EA=1;T3IE=(val)?T##timer##CTL|0x08:T##timer##CTL&~0x08;\\ 复位T3相关寄存器#defineTIMER34_INIT(timer)\#defineTIMER34_INIT(timer)\do T##timer##CTL=0x06;\T##timer##CCTL0=0x00;\T##timer##CC0=0x00;\T##timer##CCTL1=0x00;\T##timer##CC1=0x00;}while(T3CTL=(T3CTL=(val)?T3CTL|0X10:\功能:val1,T3正常运行,val0,T3停止计数设置T3工作方式CC2430T4实验中操作了的寄存器有 P1SELCC2430实验一P1DIRCC2430实验一00000120104011816326412840T43120清计数值,写10001DOWN(从0x00计数一次T4CC0计数UP/DOWN(0x00到T4CC0再到T4CCTL0(T40捕获/比较控制寄存器7—061通道0比较输出模式选时的发生0001(发生比较0010(发生比较0100111(发生上比为0或UP/DOWN模式下为0或UP/DOWN模式下0xff时)0(发生比较0x00时)200001T4CC0(T40捕获/比较值寄存器T4CCTL1(T41捕获/比较控制寄存器7—0610通道1比较输出模式选时的发生0001(发生比较0010(发生比较0100111(发生上比为0或UP/DOWN模式下为0或UP/DOWN模式下0xff时)0(发生比较0x00时)200001T4CC1(T41捕获/比较值寄存器void{P1DIRvoid{P1DIR=led1=led2=//初始化TIMER34_ENABLE_OVERFLOW_INT(4,1);开T4#pragmavector=#pragmavector=interruptvoid{//IRCON={counter=0;RLED=!RLED;}//10次中断LED}}do{T##timer##CTL=EA=1;T4IE=do{T##timer##CTL=EA=1;T4IE=(val)?T##timer##CTL|0x08:T##timer##CTL&~0x08;\\复位T4相关寄存器#defineTIMER34_INIT(timer)\#defineTIMER34_INIT(timer)\do T##timer##CTL=0x06;\T##timer##CCTL0=0x00;\T##timer##CC0=0x00;\T##timer##CCTL1=0x00;\T##timer##CC1=0x00;}while \(T##timer##CTL=(val)?T##timer##CTL|0X10:功能:timer34。val1,定时器正常运行,val0,定时器停\\T4CTL&=~0X03;\/*UP/ runing*/*/*/\4_MODE_MODULOCC24304来改变小灯的状态,T42000实验中操作了的寄存器有P1,P1SEL,P1DIR,T4CTL,T4CCTL0,T4CC0,T4CCTL1,T4CC1 P1SELCC2430实验一P1DIRCC2430实验一 void{void{dodo\\=0x06;P1DIR=led1=led2=//初始化TIMER34_ENABLE_OVERFLOW_INT(4,1);//T4#pragmavector=#pragmavector=interruptvoid{IRCON=0x00; if(counter<1000)counter++;//10次中断LED闪烁一轮{counter GlintFlag //GlintFalg1,LED}}do{T##timer##CTL=EA=1;T4IE=do{T##timer##CTL=EA=1;T4IE=(val)?T##timer##CTL|0x08:T##timer##CTL&~0x08;\\复位T4相关寄存器T##timer##CCTL0T##timer##CCTL0=0x00;\T##timer##CC0=0x00;\T##timer##CCTL1=0x00;\T##timer##CC1=0x00;}while \(T##timer##CTL=(val)?T##timer##CTL|0X10:功能:timer34。val1,定时器正常运行,val0,定时器停\\\\T4CTL&=~0X03;\/*UP/ runing*/*/*/\ 4_MODE_MODULOCC2430 P1SELCC2430实验一P1DIRCC2430实验一P1INPCC2430实验二P1IEN(P1口中断掩码7060504030201000PICTL(P口中断控制寄存器7—06050403020P2(0-4)10P1(0-7)00P0(0-7)1—500140013001200110P2010001void{void{RLED=GLED=P2INP&=~0X40;//选择上拉P1IEN|=0X0c; //P12P13PICTL| EA=IEN2|= //P1IE=P1IFG& }voidP1_ISR(void);#pragma#pragmavector=interruptvoid{{P1IFG=0;RLED=!RLED;}P1IF=}CC2430 CLKCON(时钟控制寄存器7132K32KRC6132M 000001010011110—SLEEP(睡眠模式控制寄存器7—060R50RR00011020R/W节能控制,OSC状态改变的时候硬件清001000017—060T1I/O50T3I/O40T4I/O—1000700SPI1UART6001500SPI1SPI4001300120011001U0BUF的00R01U0GCR(0常规控制寄存器7001空600由CPOL跳向非CPOL时采样,CPOL跳向CPOL时输出1CPOL跳向CPOLCPOL跳向非5001在U0BAUD(0波特率控制寄存器波特率尾数,与70RADC60R0没有转换启动AD转换00011116(01,10会在执行后返00)00普通模式 01LFSR-AD转换参考电 1.25V 外部参考电压AIN7输 8位 10 12 14位A/D转换选择,如果A/D转换后立A/D voidDelay(uintvoid{CLKCON&=void{CLKCON&=while(!(SLEEP&0x40));CLKCON&=~0x47;SLEEP|=0x04;PERCFG=P0SEL=U0GCR|=10;U0BAUD|=UTX0IF=//baud_e=U0CSR|=IEN0|=}voidvoidUartTX_Send_String(char*Data,int{intj;{U0DBUF=*Data++;while(UTX0IF==UTX0IF=}}*data为发送缓冲的指针,len为发送数据的长度,在初始化串*((BYTE*((BYTExdata*)0xDF26)= UINT16UINT16for(i=0;i<4;i++{ADC_SINGLE_CONVERSION(ADC_REF_1_25_V|ADC_14_BIT|ADC_TEMP_SENS);value=ADCL>>value|=(((UINT16)ADCH)<<}value=accValue>>2;//devidebyreturn} ( (((ADC_VALUE)>>4)-CC2430 U0GCR参见实验十U0BAUD参见实验十 ADCCON1参见实验十ADCCON3参见实验十 voidDelay(uintvoidUartTX_Send_String(char*Data,intlen);参见实验十voidInitialAD(void);voidvoid{//P1outP1DIR=0x03;led1=led2=//P1控制//ADCH&=0X00;ADCCON1=//清EOCADCCON1|0X40;//}14位(最高精度)ADADC转换。CC2430 U0GCR参见实验十U0BAUD参见实验十 ADCCON1参见实验十ADCCON3参见实验十 voidDelay(uintvoidUartTX_Send_String(char*Data,intlen);参见实验十voidInitialAD(void);voidvoid{//P1led1=led2=//P1控制ADCH&=0X00;ADCCON1=//清EOCADCCON1|0X40;//}CC2430基础实验十三特率为57600。 voidDelay(uintvoid{CLKCON&=void{CLKCON&=CLKCON&=~0x47;SLEEP| PERCFG=0x00;P0SEL=0x3c;U0CSR|=U0GCR|=U0BAUD|=UTX0IF=}波特率为57600。使用晶振作为系统时钟源。voidUartTX_Send_String(char*Data,int{intvoidUartTX_Send_String(char*Data,int{intj;{U0DBUF=*Data++;while(UTX0IF==UTX0IF=}}函数功能:串口发字串,*Data为发送缓存指针,len为发送字串的长度,只能是在初始化函数voidinitUARTtest(void)调用才有效。发送完毕后返回,无返回值。CC2430基础实验十四PC命令是“11”。P1,P1DIR,P1SEL,CLKCON,SLEEP,PERCFG,U0CSR,U0GCR,U0BAUD,IEN0,U0DUB等寄存 U0GCR参见实验十U0BAUD参见实验十 void{CLKCON&=void{CLKCON&=CLKCON&=~0x47;SLEEP| PERCFG=P0SEL=0x3c;U0GCR|=10;U0BAUD|=UTX0IF=}波特率为57600。使用晶振作为系统时钟源。voidUartTX_Send_String(char*Data,int{intvoidUartTX_Send_String(char*Data,int{intj;{U0DBUF=*Data++;while(UTX0IF==UTX0IF=}}函数功能:串口发字串,*Data为发送缓存指针,len为发送字串的长度,只能是在初始化函数voidinitUARTtest(void)调用才有效。发送完毕后返回,无返回值。interruptvoidinterruptvoid{URX0IF=0; temp=U0DBUF;}}存放到temp变量,然后在主程序中去处理接收到的数据。CC2430基础实验十五在PC用串口收数字串末字节,CC2430PC,用串口助手可以显示P1,P1DIR,P1SEL,CLKCON,SLEEP,PERCFG,U0CSR,U0GCR,U0BAUD,IEN0,U0DUB等寄存 U0GCR参见实验十U0BAUD参见实验十 voidDelay(uintn);定性延时,参见实验一voidinitUARTtest(void);参见实验十五voidUartTX_Send_String(char*Data,intlen);参见实验十五voidUART0_ISR(void);参见实验十五CC2430基础实验十六PC U0GCR参见实验十U0BAUD参见实验十 -50P0403020100070捕捉RF61T10模式比较输出选择,指定计数值过T3CC0时的发生0001(发生比较0100111(发生上比为0或UP/DOWN模式下为0或UP/DOWN模式下201000177voidDelay(uintn);定性延时,参见实验一voidinitUARTtest(void);参见实验十五voidUartTX_Send_String(char*Data,intlen);参见实验十五voidUART0_ISR(void);参见实验十五void{T1CCTL0void{T1CCTL0=//T1CCTL0//T1ch0T1CC0H=0x03;T1CC0L=//0x0400=T1CTL|=//start//MODEIEN1|=0X02;IEN0|=//T1},T1CC0void{CLKCONvoid{CLKCON=//TICKSPD111}}void{void{P0SEL=0x3c;//1P0U0GCR|=10;U0BAUD|=UTX0IF=U0CSR|=IEN0|=}voidT1_ISR(void);interruptinterruptvoid{IRCON&~0x02;//清中断标志if(counter=={counter=timetemp led1 }}interruptvoidinterruptvoid{URX0IF=0; temp=U0DBUF;}}CC2430基础实验十七在小灯闪烁10次以后进入低功耗模式PM3。CC2430一共有4 -1-000R0/WSLEEP.MODE指定的电源模式,读出一定为0void void #define#definedo\\if(mode== {SLEEP&=~0x03;}elseif(mode==3)elseif(mode==3){SLEEP|=0x03;}\else{SLEEP&=~0x03;SLEEP|=mode;}\PCON|= }whileCC2430实验中操作了的寄存器有P1,P1DIR,P1SEL,P1IEN,P1CTL,IEN2,IEN0,P1IFG,P1INP,P2INP,CLKCON,SLEEP等寄存器。 70605040302010void voidvoidvoid{RLED=1;YLED=P1SEL&=~0X0C;P1DIR&=P1INPP1INP&~0X0c;//有上拉、下拉P2INP&=~0X40;//选择上拉P1IEN|= //P12PICTL| EA=IEN2|=0X10;//P1IE=P1IFG|= //P12voidPowerMode(ucharvoidvoidPowerMode(uchar{i=sel;{SLEEP|=i;PCON=0x01;}{PCON=}}CPUPM0-PM3而不可以从PM0-PM3进入全速运行。CC2430基础实验十九5PM2,在PM2SLEEPTIMER(ST)仍5PM2,这样周而复始的唤醒工作然后睡眠。系统睡眠的时间为8分32秒,这已经是最长睡眠时间。, 睡眠定时器计数/比较值[23-16]位。读出为ST睡眠定时器计数/比较值[7-0]ST计void voidvoidvoid{ST2=0X00;ST1=0X0f;ST0=EA1;//开中断STIE=1;STIF=}voidvoidvoid{{RLED=}}interruptvoidinterruptvoid{STIF=}{P1SEL&=~0X03;P1DIR|=0X03;RLED=1;GLED=}{P1DIR&=}\\\\\\\\\\\\\#defineRLED#defineGLED制#define#defineSET_MAIN_CLOCK_SOURCE(source)do if(sour

温馨提示

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

最新文档

评论

0/150

提交评论