还剩21页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验一验证性试验#includemsp430f
6638.hintflag;voidDCmotorintp{switchp{case0:{P1OUT=~BIT0;//停转P1OUT=~BIT6;P1OUT=~BIT7;break;}case1:{P1OUT|=BIT0;//正转P1OUT|=BIT6;P1OUT=~BIT7;break;}case2:{P1OUT|=BIT0;P1OUT=~BIT6;P1OUT|=BIT7;break;}}}int__invoid{WDTCTL=WDTPW|WDTHOLD;//StopwatchdogtimerP4REN|=BIT0+BIT1+BIT2+BIT3+BIT4;//上下拉电阻使能P4OUT|=BIT0+BIT1+BIT2+BIT3+BIT4;//设置为上拉电阻P4DIR|=BIT5+BIT6+BIT7;//LED管脚设置P5DIR|=BIT7;P8DIR|=BIT0;P1DIR|=BIT0+BIT6+BIT7;while1{ifP4INBIT0==0{//按键S7__delay_cycles160000;ifP4INBIT0==0{flag=2;}}ifP4INBIT4==0{//按键S3__delay_cycles160000;ifP4INBIT4==0{flag=1;}}DCmotorflag;}}设计性试验#includemsp430f
6638.hint__invoid{WDTCTL=WDTPW+WDTHOLD;P4REN|=BIT0+BIT2+BIT4;P4OUT|=BIT0+BIT2+BIT4;P1DIR|=BIT0+BIT6+BIT7;while1{ifP4INBIT0==0{__delay_cycles160000;ifP4INBIT0==0{P1OUT|=BIT0;P1OUT|=BIT6;P1OUT=~BIT7;}}ifP4INBIT4==0{__delay_cycles160000;ifP4INBIT4==0{P1OUT|=BIT0;P1OUT=~BIT6;P1OUT|=BIT7;}}ifP4INBIT2==0{__delay_cycles160000;ifP4INBIT2==0{P1OUT=~BIT0;}}}}
1、验证性实验利用MSP430F6638__板上的拨盘电位器,控制改变AD转换的输入电压值,转换后的数字量显示在段式液晶上面使用万用表测得当前输入电压,通过计算得到转换后的理想的数字量与液晶显示的数字量进行比较/**__in.c*/#includemsp430f
6638.h#includestdint.h#includestdio.h#includestring.h#includedr_lcdseg.h//调用段式液晶驱动头文件#defineXT2_FREQ4000000#defineMCLK_FREQ16000000#define__CLK_FREQ4000000voidinitAdc{ADC12CTL0|=ADC12MSC;//自动循环采样转换ADC12CTL0|=ADC12ON;//启动ADC12模块ADC12CTL1|=ADC12CONSEQ1;//选择单通道循环采样转换ADC12CTL1|=ADC12SHP;//采样保持模式ADC12MCTL0|=ADC12INCH_15;//选择通道15,连接拨码电位器ADC12CTL0|=ADC12ENC;}voidinitClock{whileBAKCTLLOCKIO//解锁XT1引脚操作BAKCTL=~LOCKIO;UCSCTL6=~XT1OFF;//启动XT1,选择内部时钟源P7SEL|=BIT2+BIT3;//XT2引脚功能选择UCSCTL6=~XT2OFF;//启动XT2whileSFRIFG1OFIFG//等待XT
1、XT2与DCO稳定{UCSCTL7=~DCOFFG+XT1LFOFFG+XT2OFFG;SFRIFG1=~OFIFG;}UCSCTL4=SELA__XT1CLK+SELS__XT2CLK+SELM__XT2CLK;//避免DCO调整中跑飞UCSCTL1=DCORSEL_5;//6000kHz~
23.7MHzUCSCTL2=MCLK_FREQ/XT2_FREQ/16;//XT2频率较高,分频后作为基准可获得更高的精度UCSCTL3=SELREF__XT2CLK+FLLREFDIV__16;//XT2进行16分频后作为基准whileSFRIFG1OFIFG//等待XT
1、XT2与DCO稳定{UCSCTL7=~DCOFFG+XT1LFOFFG+XT2OFFG;SFRIFG1=~OFIFG;}UCSCTL5=DIVA__1+DIVS__1+DIVM__1;//设定几个CLK的分频UCSCTL4=SELA__XT1CLK+SELS__XT2CLK+SELM__DCOCLK;//设定几个CLK的时钟源}void__invoid{WDTCTL=WDTPW|WDTHOLD;//停止看门狗initClock;//配置系统时钟initLcdSeg;//初始化段式液晶initAdc;//初始化ADCvolatileunsignedintvalue=0;//设置判断变量while1//进入程序主循环{ADC12CTL0|=ADC12SC;//开始采样转换value=ADC12MEM0;//把结果赋给变量LCDSEG_DisplayNumbervalue0;//显示六位数,从111111-999999__delay_cyclesMCLK_FREQ/2;//延时500ms}}
2、设计性实验AD转换结束会产生中断,编写AD中断服务程序利用__发生器输出__(例如正弦波、三角波__)作为AD转换的输入,根据输入电压的大小控制LED灯的亮灭例如随着输入电压值的增大,LED1到LED5按顺序点亮;随着输入电压值减小,LED灯按顺序熄灭,LED和单片机IO口连接如下图所示#includemsp430f
6638.hint__invoid{WDTCTL=WDTPW+WDTHOLD;P4DIR|=BIT5+BIT6+BIT7;P5DIR|=BIT7;P8DIR|=BIT0;ADC12CTL0=ADC12MSC+ADC12ON+ADC12SHT1_8;ADC12CTL1=ADC12CONSEQ1+ADC12SHP;ADC12MCTL0=ADC12INCH_7;ADC12CTL0|=ADC12ENC;ADC12IE|=BIT0;ADC12CTL0|=ADC12SC;_EINT;}#prag__vector=ADC12_VECTOR__interruptvoidADC12ISRvoid{ifADC12MEM0=3413{P4OUT|=BIT5+BIT6+BIT7;P5OUT|=BIT7;P8OUT|=BIT0;}ifADC12MEM0=2730{P4OUT=~BIT5;P4OUT|=BIT7+BIT6;P5OUT|=BIT7;P8OUT|=BIT0;}ifADC12MEM0=2048{P4OUT=~BIT6+BIT5;P4OUT|=BIT7;P5OUT|=BIT7;P8OUT|=BIT0;}ifADC12MEM0=1365{P4OUT=~BIT5+BIT6+BIT7;P5OUT|=BIT7;P8OUT|=BIT0;}ifADC12MEM0=683{P4OUT=~BIT5+BIT6+BIT7;P5OUT=~BIT7;P8OUT|=BIT0;}ifADC12MEM00{P4OUT=~BIT5+BIT6+BIT7;P5OUT=~BIT7;P8OUT=~BIT0;}}实验四Zigbee无线通信及RS232串口通信实验
1、验证性实验利用两个Zigbee模块通信,一个模块作发射,一个作接收发射模块所在实验箱按下按键控制接收模块所在实验箱上LED1的亮灭,从而实现无线点灯的功能#includemsp430f
6638.htypedefunsignedcharuint8;//无符号8位整型变量typedefsignedcharint8;//有符号8位整型变量typedefunsignedshortuint16;//无符号16位整型变量typedefsignedshortint16;//有符号16位整型变量typedefunsignedlonguint32;//无符号32位整型变量typedefsignedlongint32;//有符号32位整型变量typedeffloatfp32;//单精度浮点数(32位长度)typedefdoublefp64;//双精度浮点数(64位长度)#defineTRUE1#defineFALSE0#defineNULL0//----------------------------------CC2520引脚定义------------------------------#defineRESET_ONP4OUT|=BIT1#defineRESET_OFFP4OUT=~BIT1#defineSCLK_ONP2OUT|=BIT4#defineSCLK_OFFP2OUT=~BIT4#defineMOSI_ONP2OUT|=BIT5#defineMOSI_OFFP2OUT=~BIT5#defineCSN_ONP3OUT|=BIT5#defineCSN_OFFP3OUT=~BIT5#defineVREG_EN_ONP4OUT|=BIT4#defineVREG_EN_OFFP4OUT=~BIT4#defineMISO_INP2INBIT6//P
2.6//#defineGPIO4_INP2IN0x40//#defineGPIO5_INP2IN0x20#defineGPIO0_INP4INBIT0//P
4.0#defineGPIO1_INP4INBIT2//P
4.2//-----------------------------------LED----------------------------------------#defineLED1_0P8OUT=~BIT0//输出0#defineLED1_1P8OUT|=BIT0//输出1#defineLED1_10P8OUT^=BIT0//输出1/0#defineLED2_0P5OUT=~BIT7//输出0#defineLED2_1P5OUT|=BIT7//输出1#defineLED2_10P5OUT^=BIT7//输出1/0//----------------------------------BELL----------------------------------------#defineBELL_0P6OUT=~BIT3//输出0#defineBELL_1P6OUT|=BIT3//输出1//-------------------------------射频芯片相关定义-------------------------------#defineREG_READ0x80#defineREG_WRITE0xC0#defineMEM_READ0x10#defineMEM_WRITE0x20#defineRXFIFO_READ0x30#defineTXFIFO_WRITE0x3A//--------------------------------CC2520命令字定义----------------------------#defineCMD_SNOP0x00#defineCMD_IBUFLD0x02#defineCMD_SIBUFEX0x03#defineCMD_SSAMPLECCA0x04#defineCMD_SRES0x09#defineCMD_SXOSCON0x40#defineCMD_SRXON0x42#defineCMD_STXON0x43#defineCMD_SRFOFF0x45#defineCMD_SFLUSHRX0x47#defineCMD_SFLUSHTX0x48//------------------CC2520配置寄存器-----------------------------------#defineFRMFILT00x00#defineFRMFILT10x01#defineSRC__TCH0x02#defineSRCSHORTEN00x04#defineSRCSHORTEN10x05#defineSRCSHORTEN20x06#defineSR__XTEN00x08#defineSR__XTEN10x09#defineSR__XTEN20x0A#defineFRMCTRL00x0C#defineFRMCTRL10x0D#defineRXENABLE00x0E#defineRXENABLE10x0F#defineEXCFLAG00x10#defineEXCFLAG10x11#defineEXCFLAG20x12#defineEXC__SKA00x14#defineEXC__SKA10x15#defineEXC__SKA20x16#defineEXC__SKB00x18#defineEXC__SKB10x19#defineEXC__SKB20x1A#defineEXCBINDX00x1C#defineEXCBINDX10x1D#defineEXCBINDY00x1E#defineEXCBINDY10x1F#defineGPIOCTRL00x20#defineGPIOCTRL10x21#defineGPIOCTRL20x22#defineGPIOCTRL30x23#defineGPIOCTRL40x24#defineGPIOCTRL50x25#defineGPIOPOLARITY0x26#defineGPIOCTRL0x28#defineDPUCON0x2A#defineDPUSTAT0x2C#defineFREQCTRL0x2E#defineFREQTUNE0x2F#defineTXPOWER0x30#defineF__STAT00x32#defineF__STAT10x33#defineFIFOPCTRL0x34#defineF__CTRL0x35#defineCCACTRL00x36#defineCCACTRL10x37#defineRSSI0x38#defineRSSISTAT0x39#defineRXFIRST0x3C#defineRXFIFOCNT0x3E#defineTXFIFOCNT0x3F//-------------------PSDU相关定义---------------------------//FRAME_CONTROL_FIELD//FRAME_TYPE#defineFRAME_TYPE_BEACCON0x00#defineFRAME_TYPE_DATA0x01#defineFRAME_TYPE_ACK0x02#defineFRAME_TYPE___C0x03#defineSECURITY_ENABLE0x00#defineFRAME_PENDING0x00#defineACKNOWLEDGMENT_REQUEST0x00#definePAN_ID_COMPRESSION0x00#defineDEST_ADDRESSING_MODE0x03#defineFRAME_VERSION0x01#defineSOUR___ADDRESSING_MODE0x03//#defineSEQUEN___NUMBER0x02//--------------------CC2520RAM地址-----------------------------------#defineRAM_IEEEADR0xEA#defineRAM_PANID0xF2#defineRAM_SHORTADR0xF4//----------------------函数原型------------------------voidCC2520_Initvoid;uint8CC2520_ReadReguint8addr;voidCC2520_WriteReguint8addruint8value;uint8CC2520_ReadRAMuint8addrHuint8addrL;voidCC2520_WriteRAMuint8addrHuint8addrLuint8value;voidCC2520_ReadRXFIFOvoid;voidCC2520_WriteTXFIFOvoid;voidCC2520_Com__nduint8cmd;voidCC2520_SetRxModevoid;uint8CC2520_RxPacketvoid;voidCC2520_TxPacketvoid;voidSPI_Initvoid;uint8SPI_Readvoid;voidSPI_Writeuint8txdata;uint8SPI_WriteReaduint8txdata;voidIO_Initvoid;voiddelay_msuint8n;voiddelay_10usuint8n;#defineCC2520_PSDU_Len127uint8CC2520_PSDU[1+CC2520_PSDU_Len];uint8CC2520_PSDU[1+CC2520_PSDU_Len];uint8CC2520_Sour___PANID
[2]={0xcc0xcc};uint8CC2520_Sour___ShortAddr
[2]={0xcc0xcc};uint8CC2520_Sour___IEEEAddr
[8]={0x120x340x560x7c0xcc0xcc0xcc0xcc};uint8CC2520_Destination_PANID
[2]={0xcc0xcc};uint8CC2520_Destination_ShortAddr
[2]={0xcc0xcc};uint8CC2520_Destination_IEEEAddr
[8]={0x120x340x560x7c0xcc0xcc0xcc0xcc};//******************************************************************************//系统初始化//******************************************************************************voidInitSys{P1DIR|=BIT0;//ACLKsetouttopinsP1SEL|=BIT0;P3DIR|=BIT4;//__CLKsetouttopinsP3SEL|=BIT4;whileBAKCTLLOCKIO//UnlockXT1pinsforoperationBAKCTL=~LOCKIO;UCSCTL6=~XT1OFF;//XT1OnUCSCTL6|=XCAP_3;//Internalloadcap//LoopuntilXT1faultflagiscleareddo{UCSCTL7=~XT2OFFG+XT1LFOFFG+DCOFFG;//ClearXT2XT1DCOfaultflagsSFRIFG1=~OFIFG;//Clearfaultflags}whileSFRIFG1OFIFG;//Testoscillatorfaultflag//InitializeDCOto
2.45MHz__bis_SR_registerSCG0;//DisabletheFLLcontrolloopUCSCTL0=0x0000;//SetlowestpossibleDCOxMODxUCSCTL1=DCORSEL_5;//SetRSELxforDCO=8MHzUCSCTL2=FLLD_1+243;//SetDCOMultiplierfor
2.45MHz//N+1*FLLRef=Fdco//243+1*32768=8MHz//SetFLLDiv=fDCOCLK/2__bic_SR_registerSCG0;//EnabletheFLLcontrolloop//Worst-casesettlingtimefortheDCOwhentheDCOrangebitsh__ebeen//changedisnx32x32xf_MCLK/f_FLL_referen__.SeeUCSchapterin5xx//UGforoptimization.//32x32x
2.45MHz/32768Hz=76563=MCLKcyclesforDCOtosettle__delay_cycles250000;//LoopuntilXT1XT2DCOfaultflagiscleareddo{UCSCTL7=~XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG;//ClearXT2XT1DCOfaultflagsSFRIFG1=~OFIFG;//Clearfaultflags}whileSFRIFG1OFIFG;//UCSCTL4=SELM__DCOCLK+SELM__DCOCLK;}//--------------------------SPI初始化函数---------------------------voidSPI_Initvoid{SCLK_OFF;CSN_ON;}//--------------------------SPI单字节读取函数---------------------------uint8SPI_Readvoid{uint8irxdata;rxdata=0x00;fori=0;i8;i++{rxdata=rxdata1;SCLK_ON;ifMISO_IN{rxdata|=0x01;}else{rxdata=~0x01;}SCLK_OFF;}returnrxdata;}//----------------------------SPI单字节写入函数---------------------------voidSPI_Writeuint8txdata{uint8i;fori=0;i8;i++{iftxdata0x80{MOSI_ON;}else{MOSI_OFF;}SCLK_ON;txdata=txdata1;SCLK_OFF;}}//----------------------------SPI单字节写入读取函数---------------------------uint8SPI_WriteReaduint8txdata{uint8irxdata;rxdata=0x00;fori=0;i8;i++{rxdata=rxdata1;iftxdata0x80{MOSI_ON;}else{MOSI_OFF;}SCLK_ON;ifMISO_IN{rxdata|=0x01;}else{rxdata=~0x01;}SCLK_OFF;txdata=txdata1;}returnrxdata;}//---------------------------CC2520寄存器读取函数--------------------------------------uint8CC2520_ReadReguint8addr{uint16value;CSN_OFF;SPI_Writeaddr|REG_READ;value=SPI_Read;CSN_ON;returnvalue;}//---------------------------CC2520寄存器写入函数--------------------------------------voidCC2520_WriteReguint8addruint8value{CSN_OFF;SPI_Writeaddr|REG_WRITE;SPI_Writevalue;CSN_ON;}//---------------------------CC2520RAM读取函数--------------------------------------uint8CC2520_ReadRAMuint8addrHuint8addrL{uint8value;CSN_OFF;SPI_WriteaddrH|MEM_READ;SPI_WriteaddrL;value=SPI_Read;CSN_ON;returnvalue;}//---------------------------CC2520RAM写入函数--------------------------------------voidCC2520_WriteRAMuint8addrHuint8addrLuint8value{CSN_OFF;SPI_WriteaddrH|MEM_WRITE;SPI_WriteaddrL;SPI_Writevalue;CSN_ON;}//---------------------------CC2520RXFIFIO读取函数--------------------------------------voidCC2520_ReadRXFIFOvoid{uint8i;CSN_OFF;SPI_WriteRXFIFO_READ;CC2520_PSDU
[0]=SPI_Read;fori=0;iCC2520_PSDU
[0];i++{CC2520_PSDU[1+i]=SPI_Read;}CSN_ON;CC2520_Com__ndCMD_SFLUSHRX;}//---------------------------CC2520TXFIFIO写入函数--------------------------------------voidCC2520_WriteTXFIFOvoid{uint8i;CC2520_Com__ndCMD_SFLUSHTX;CSN_OFF;SPI_WriteTXFIFO_WRITE;SPI_WriteCC2520_PSDU
[0];fori=0;iCC2520_PSDU
[0];i++{SPI_WriteCC2520_PSDU[1+i];}CSN_ON;}//---------------------------CC2520命令函数--------------------------------------voidCC2520_Com__nduint8cmd{CSN_OFF;SPI_Writecmd;CSN_ON;}//---------------------------CC2520设置接收函数--------------------------------------voidCC2520_SetRxModevoid{CC2520_Com__ndCMD_SRFOFF;CC2520_Com__ndCMD_SRXON;}//---------------------------CC2520判断接收函数--------------------------------------uint8CC2520_RxPacketvoid{if!GPIO0_INGPIO1_IN{returnTRUE;}returnFALSE;}//---------------------------CC2520发送函数--------------------------------------voidCC2520_TxPacketvoid{CC2520_Com__ndCMD_SRFOFF;CC2520_Com__ndCMD_STXON;while!GPIO0_IN;whileGPIO0_IN;}//-------------------------------led端口设置------------------------------------voidLED_IO_setvoid{P8DIR|=BIT0;P5DIR|=BIT7;}//-------------------------------RF2520端口设置---------------------------------voidRF2520_IO_setvoid{P2DIR|=BIT4+BIT5;P3DIR|=BIT5;P2DIR=~BIT6;P4DIR=~BIT0+~BIT2;P4DIR|=BIT1+BIT4;}//-------------------------------BELL端口设置-----------------------------------voidBELL_IO_setvoid{P6DIR|=0x08;P6SEL=0xF7;}//==========================按键端口设置=======================================voidKEY_IO_setvoid{P6DIR=~BIT1;P6REN|=BIT1;P6OUT|=BIT1;}//---------------------------CC2520射频芯片初始化函数--------------------------------------voidCC2520_Initvoid{RESET_OFF;__delay_cycles80000;//10MS//delay_ms10;RESET_ON;__delay_cycles80000;//10MS//delay_ms10;CC2520_Com__ndCMD_SXOSCON;__delay_cycles80000;//10MS//delay_ms10;CC2520_PSDU
[1]=PAN_ID_COMPRESSION6|ACKNOWLEDGMENT_REQUEST5|FRAME_PENDING4|SECURITY_ENABLE3|FRAME_TYPE_DATA0;CC2520_PSDU
[2]=SOUR___ADDRESSING_MODE6|FRAME_VERSION4|DEST_ADDRESSING_MODE2;CC2520_PSDU
[3]=SEQUEN___NUMBER;CC2520_PSDU
[4]=CC2520_Destination_PANID
[0];CC2520_PSDU
[5]=CC2520_Destination_PANID
[1];CC2520_PSDU
[6]=CC2520_Destination_IEEEAddr
[0];CC2520_PSDU
[7]=CC2520_Destination_IEEEAddr
[1];CC2520_PSDU
[8]=CC2520_Destination_IEEEAddr
[2];CC2520_PSDU
[9]=CC2520_Destination_IEEEAddr
[3];CC2520_PSDU
[10]=CC2520_Destination_IEEEAddr
[4];CC2520_PSDU
[11]=CC2520_Destination_IEEEAddr
[5];CC2520_PSDU
[12]=CC2520_Destination_IEEEAddr
[6];CC2520_PSDU
[13]=CC2520_Destination_IEEEAddr
[7];CC2520_PSDU
[14]=CC2520_Sour___PANID
[0];CC2520_PSDU
[15]=CC2520_Sour___PANID
[1];CC2520_WriteRAM0x03RAM_PANIDCC2520_Sour___PANID
[0];CC2520_WriteRAM0x03RAM_PANID+1CC2520_Sour___PANID
[1];CC2520_PSDU
[16]=CC2520_Sour___IEEEAddr
[0];CC2520_PSDU
[17]=CC2520_Sour___IEEEAddr
[1];CC2520_PSDU
[18]=CC2520_Sour___IEEEAddr
[2];CC2520_PSDU
[19]=CC2520_Sour___IEEEAddr
[3];CC2520_PSDU
[20]=CC2520_Sour___IEEEAddr
[4];CC2520_PSDU
[21]=CC2520_Sour___IEEEAddr
[5];CC2520_PSDU
[22]=CC2520_Sour___IEEEAddr
[6];CC2520_PSDU
[23]=CC2520_Sour___IEEEAddr
[7];CC2520_WriteRAM0x03RAM_IEEEADRCC2520_Sour___IEEEAddr
[0];CC2520_WriteRAM0x03RAM_IEEEADR+1CC2520_Sour___IEEEAddr
[1];CC2520_WriteRAM0x03RAM_IEEEADR+2CC2520_Sour___IEEEAddr
[2];CC2520_WriteRAM0x03RAM_IEEEADR+3CC2520_Sour___IEEEAddr
[3];CC2520_WriteRAM0x03RAM_IEEEADR+4CC2520_Sour___IEEEAddr
[4];CC2520_WriteRAM0x03RAM_IEEEADR+5CC2520_Sour___IEEEAddr
[5];CC2520_WriteRAM0x03RAM_IEEEADR+6CC2520_Sour___IEEEAddr
[6];CC2520_WriteRAM0x03RAM_IEEEADR+7CC2520_Sour___IEEEAddr
[7];CC2520_WriteRegGPIOCTRL00x2A;CC2520_WriteRegGPIOCTRL10x27;CC2520_Com__ndCMD_SFLUSHRX;CC2520_Com__ndCMD_SFLUSHTX;__delay_cycles80000;//10MS//delay_ms10;}//==========================================主函数==============================================================void__invoid{uint8tf=0;WDTCTL=WDTPW+WDTHOLD;//禁止看门狗InitSys;RF2520_IO_set;VREG_EN_ON;//BELL_IO_set;LED_IO_set;KEY_IO_set;SPI_Init;CC2520_Init;CC2520_SetRxMode;LED1_0;LED2_0;//LED1LED2while1{ifP6INBIT1==0{__delay_cycles1280000;//10MS//__delay_cycles400000;//10MS//__delay_cycles80000;//10MSifP6INBIT1==0{tf=1;LED2_10;//LED2亮-灭或者灭-亮CC2520_PSDU
[0]=23+48+2;CC2520_PSDU
[25]=2;}iftf==1//表明按键按下{CC2520_WriteTXFIFO;CC2520_TxPacket;CC2520_SetRxMode;tf=0;CC2520_PSDU
[25]=0;}}/*ifP4INBIT1{tf=1;LED2_1;CC2520_PSDU
[0]=23+48+2;CC2520_PSDU
[25]=2;}*///====================================================================================================ifCC2520_RxPacket{CC2520_ReadRXFIFO;CC2520_SetRxMode;ifCC2520_PSDU
[25]==2{CC2520_PSDU
[25]=0;LED1_10;//BELL_0;//LED1亮}/*ifCC2520_PSDU
[25]==2{CC2520_PSDU
[25]=0;LED1_0;//BELL_1;}*/}}}
2、设计性实验利用MSP430F6638单片机的USCI_Ax模块进行RS232串口通信,实现PC机和单片机的双向通信,要求如下
(1)单片机发送数字0到9至PC机,从数字5开始发送,每隔1s发送一个数若单片机__板上按下一按键(例如S3),则数字加1后进行发送,加到9以后,又从0开始,若没有按键按下,则继续发送当前的数字在PC机上用串口调试助手软件查看PC机接收的数据是否正确
(2)PC机向单片机发送点灯的命令如果单片机接收到PC机发送的数字1,则点亮单片机__板上的LED1;接收到PC机发送的数字2,则点亮单片机__板上的LED2,……,直到LED5点亮#includemsp
430.hintflagTimer=0flagkey=0flagPC=0;unsignedcharsend_data[]={5};unsignedcharrecv_data[];intTimeNum=0;voidUART_RS232_Initvoid{P8SEL|=0x0c;UCA1CTL1|=UCSWRST;UCA1CTL1|=UCSSEL_1;UCA1BR0=0x03;UCA1BR1=0x00;UCA1MCTL=UCBRS_3+UCBRF_0;UCA1CTL1=~UCSWRST;UCA1IE|=UCRXIE;}voidTimerA_Initvoid{TA0CTL|=MC_1+TASSEL_2+TACLR;TA0CCTL0=CCIE;TA0CCR0=50000;}int__invoid{WDTCTL=WDTPW+WDTHOLD;P4DIR=BIT5+BIT6+BIT7;P5DIR=BIT7;P8DIR=BIT0;P4REN|=BIT4;P4OUT|=BIT4;TimerA_Init;UART_RS232_Init;_EINT;while1{ifP4INBIT4==0{flagkey=1;}ifflagTimer==1{flagTimer=0;ifflagkey==1{flagkey=0;send_data
[0]++;ifsend_data
[0]9send_data
[0]=0;}UCA1TXBUF=send_data
[0];}ifflagPC==1{flagPC=0;switchrecv_data
[0]{case1:P8OUT|=BIT0;P5OUT=~BIT7;P4OUT=~BIT5;P4OUT=~BIT6;P4OUT=~BIT7;break;case2:P8OUT=~BIT0;P5OUT|=BIT7;P4OUT=~BIT5;P4OUT=~BIT6;P4OUT=~BIT7;break;case3:P8OUT=~BIT0;P5OUT=~BIT7;P4OUT|=BIT5;P4OUT=~BIT6;P4OUT=~BIT7;break;default:break;}}#prag__vector=USCI_A1_VECTOR__interruptvoidUSCI_A1_ISRvoid{switch__even_in_rangeUCA1IV4{case0:break;case2:while!UCA1IFGUCTXIFG;recv_data
[0]=UCA1RXBUF;flagPC=1;break;case4:break;default:break;}}#prag__vector=TIMER0_A0_VECTOR__interruptvoidTimer_Avoid{TimeNum++;ifTimeNum=20{TimeNum=0;flagTimer=1;}}
1、验证性实验学习MSP430F6638中DAC12模块的使用通过配置相关的寄存器,实现了在P
7.6引脚中产生了一个0-
3.3V之间的固定模拟电压用万用表测量输出管脚P
7.6的电压,并与计算得到的理想输出电压进行比较#includemsp430f
6638.hvoid__invoid{WDTCTL=WDTPW+WDTHOLD;intija=[0x000x000x000x000x000x000x010x020x020x030x040x050x060x070x080x090x0A0x0B0x0D0x0E0x100x110x130x150x160x180x1A0x1C0x1E0x200x220x250x270x290x2B0x2E0x300x330x350x380x3A0x3D0x400x430x450x480x4C0x4E0x510x550x570x5A0x5D0x600x630x660x690x6C0x6F0x720x760x790x7C0x800x800x830x860x__0x8D0x900x930x960x990x9C0x9F0x0A20x0A50x0A80x0AB0x0AE0x0B10x0B40x0B70x0BA0x0BC0x0BF0x0C20x0C50x0C70x0CA0x0CC0x0CF0x0D10x0D40x0D60x0D80x0DA0x0DD0x0DF0x0E10x0E30x0E50x0E70x0E90x0EA0x0EC0x0EE0x0EF0x0F10x0F20x0F40x0F50x0F60x0F70x0F80x0F90x0FA0x0FB0x0FC0x0FD0x0FD0x0FE0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FE0x0FD0x0FD0x0FC0x0FB0x0FA0x0F90x0F80x0F70x0F60x0F50x0F40x0F20x0F10x0EF0x0EE0x0EC0x0EA0x0E90x0E70x0E50x0E30x0E10x0DE0x0DD0x0DA0x0D80x0D60x0D40x0D10x0CF0x0CC0x0CA0x0C70x0C50x0C20x0BF0x0BC0x0BA0x0B70x0B40x0B10x0AE0x0AB0x0A80x0A50x0A20x9F0x9C0x990x960x930x900x8D0x__0x860x830x800x800x7C0x790x780x720x6F0x6C0x690x660x630x600x5D0x5A0x570x550x510x4E0x4C0x480x450x430x400x3D0x3A0x380x350x330x300x2E0x2B0x290x270x250x220x200x1E0x1C0x1A0x180x160x150x130x110x100x0E0x0D0x0B0x0A0x090x080x070x060x050x040x030x020x020x010x000x000x000x000x000x00]P7DIR|=BIT6;P7SEL|=BIT6;DAC12_0CTL0|=DAC12IR;DAC12_0CTL0|=DAC12SREF_1;DAC12_0CTL0|=DAC12AMP_5;DAC12_0CTL0|=DAC12CALON;DAC12_0CTL0|=DAC12OPS;DAC12_0CTL0|=DAC12ENC;while1{fori=0;i5;i++forj=0;j257;j++DAC12_0DAT=a[j];fori=0;i5;i++forj=0;j257;j++DAC12_0DAT=2*a[j];}}
2、设计性实验掌握MSP430F6638中DAC12模块的使用通过配置相关的寄存器,实现在P
7.6引脚中连续输出两种幅度(幅度分别为__cc和__cc/2)的正弦波电压,用示波器测量输出管脚P
7.6,查看正弦波是否符合要求#includemsp430f
6638.hvoid__invoid{WDTCTL=WDTPW+WDTHOLD;intij;volatileunsignedchara[]=[0x000x000x000x000x000x000x010x020x020x030x040x050x060x070x080x090x0A0x0B0x0D0x0E0x100x110x130x150x160x180x1A0x1C0x1E0x200x220x250x270x290x2B0x2E0x300x330x350x380x3A0x3D0x400x430x450x480x4C0x4E0x510x550x570x5A0x5D0x600x630x660x690x6C0x6F0x720x760x790x7C0x800x800x830x860x__0x8D0x900x930x960x990x9C0x9F0x0A20x0A50x0A80x0AB0x0AE0x0B10x0B40x0B70x0BA0x0BC0x0BF0x0C20x0C50x0C70x0CA0x0CC0x0CF0x0D10x0D40x0D60x0D80x0DA0x0DD0x0DF0x0E10x0E30x0E50x0E70x0E90x0EA0x0EC0x0EE0x0EF0x0F10x0F20x0F40x0F50x0F60x0F70x0F80x0F90x0FA0x0FB0x0FC0x0FD0x0FD0x0FE0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FF0x0FE0x0FD0x0FD0x0FC0x0FB0x0FA0x0F90x0F80x0F70x0F60x0F50x0F40x0F20x0F10x0EF0x0EE0x0EC0x0EA0x0E90x0E70x0E50x0E30x0E10x0DE0x0DD0x0DA0x0D80x0D60x0D40x0D10x0CF0x0CC0x0CA0x0C70x0C50x0C20x0BF0x0BC0x0BA0x0B70x0B40x0B10x0AE0x0AB0x0A80x0A50x0A20x9F0x9C0x990x960x930x900x8D0x__0x860x830x800x800x7C0x790x780x720x6F0x6C0x690x660x630x600x5D0x5A0x570x550x510x4E0x4C0x480x450x430x400x3D0x3A0x380x350x330x300x2E0x2B0x290x270x250x220x200x1E0x1C0x1A0x180x160x150x130x110x100x0E0x0D0x0B0x0A0x090x080x070x060x050x040x030x020x020x010x000x000x000x000x000x00];P7DIR|=BIT6;P7SEL|=BIT6;DAC12_0CTL0|=DAC12IR;DAC12_0CTL0|=DAC12SREF_1;DAC12_0CTL0|=DAC12AMP_5;DAC12_0CTL0|=DAC12CALON;DAC12_0CTL0|=DAC12OPS;DAC12_0CTL0|=DAC12ENC;while1{fori=0;i5;i++forj=0;j257;j++DAC12_0DAT=8*a[j];fori=0;i5;i++forj=0;j257;j++DAC12_0DAT=16*a[j];}}。