msp430f6638单片机实验程序Word格式文档下载.docx

上传人:b****5 文档编号:19891336 上传时间:2023-01-11 格式:DOCX 页数:30 大小:61.05KB
下载 相关 举报
msp430f6638单片机实验程序Word格式文档下载.docx_第1页
第1页 / 共30页
msp430f6638单片机实验程序Word格式文档下载.docx_第2页
第2页 / 共30页
msp430f6638单片机实验程序Word格式文档下载.docx_第3页
第3页 / 共30页
msp430f6638单片机实验程序Word格式文档下载.docx_第4页
第4页 / 共30页
msp430f6638单片机实验程序Word格式文档下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

msp430f6638单片机实验程序Word格式文档下载.docx

《msp430f6638单片机实验程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《msp430f6638单片机实验程序Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。

msp430f6638单片机实验程序Word格式文档下载.docx

ADC12CTL0|=ADC12ON;

//启动ADC12模块

ADC12CTL1|=ADC12CONSEQ1;

//选择单通道循环采样转换

ADC12CTL1|=ADC12SHP;

//采样保持模式

ADC12MCTL0|=ADC12INCH_15;

//选择通道15,连接拨码电位器

ADC12CTL0|=ADC12ENC;

voidinitClock()

while(BAKCTL&

LOCKIO)//解锁XT1引脚操作

BAKCTL&

=~(LOCKIO);

UCSCTL6&

=~XT1OFF;

//启动XT1,选择内部时钟源

P7SEL|=BIT2+BIT3;

//XT2引脚功能选择

=~XT2OFF;

//启动XT2

while(SFRIFG1&

OFIFG)//等待XT1、XT2与DCO稳定

UCSCTL7&

=~(DCOFFG+XT1LFOFFG+XT2OFFG);

SFRIFG1&

=~OFIFG;

UCSCTL4=SELA__XT1CLK+SELS__XT2CLK+SELM__XT2CLK;

//避免DCO调整中跑飞

UCSCTL1=DCORSEL_5;

//6000kHz~23.7MHz

UCSCTL2=MCLK_FREQ/(XT2_FREQ/16);

//XT2频率较高,分频后作为基准可获得更高的精度

UCSCTL3=SELREF__XT2CLK+FLLREFDIV__16;

//XT2进行16分频后作为基准

while(SFRIFG1&

{

UCSCTL5=DIVA__1+DIVS__1+DIVM__1;

//设定几个CLK的分频

UCSCTL4=SELA__XT1CLK+SELS__XT2CLK+SELM__DCOCLK;

//设定几个CLK的时钟源

voidmain(void)

WDTCTL=WDTPW|WDTHOLD;

//停止看门狗

initClock();

//配置系统时钟

initLcdSeg();

//初始化段式液晶

initAdc();

//初始化ADC

volatileunsignedintvalue=0;

//设置判断变量

while

(1)//进入程序主循环

ADC12CTL0|=ADC12SC;

//开始采样转换

value=ADC12MEM0;

//把结果赋给变量

LCDSEG_DisplayNumber(value,0);

//显示六位数,从111111-999999

__delay_cycles(MCLK_FREQ/2);

//延时500ms

2、设计性实验:

AD转换结束会产生中断,编写AD中断服务程序。

利用信号发生器输出信号(例如正

弦波、三角波信号)作为AD转换的输入,根据输入电压的大小控制LED灯的亮灭(例如随

着输入电压值的增大,LED1到LED5按顺序点亮;

随着输入电压值减小,LED灯按顺序熄

灭),LED和单片机IO口连接如下图所示。

intmain(void)

{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();

#pragmavector=ADC12_VECTOR

__interruptvoidADC12ISR(void)

{if(ADC12MEM0>

=3413)

{P4OUT|=BIT5+BIT6+BIT7;

P5OUT|=BIT7;

P8OUT|=BIT0;

if(ADC12MEM0>

=2730)

{P4OUT&

=~BIT5;

P4OUT|=BIT7+BIT6;

=2048)

=~(BIT6+BIT5);

P4OUT|=BIT7;

=1365)

=~(BIT5+BIT6+BIT7);

=683)

P5OUT&

=~BIT7;

0)

P8OUT&

实验四Zigbee无线通信及RS232串口通信实验

1、验证性实验

利用两个Zigbee模块通信,一个模块作发射,一个作接收。

发射模块所在实验箱按下按键控制接收模块所在实验箱上LED1的亮灭,从而实现无线点灯的功能。

typedefunsignedcharuint8;

//无符号8位整型变量

typedefsignedcharint8;

//有符号8位整型变量

typedefunsignedshortuint16;

//无符号16位整型变量

typedefsignedshortint16;

//有符号16位整型变量

typedefunsignedlonguint32;

//无符号32位整型变量

typedefsignedlongint32;

//有符号32位整型变量

typedeffloatfp32;

//单精度浮点数(32位长度)

typedefdoublefp64;

//双精度浮点数(64位长度)

#defineTRUE1

#defineFALSE0

#defineNULL0

//----------------------------------CC2520引脚定义------------------------------

#defineRESET_ON()P4OUT|=BIT1

#defineRESET_OFF()P4OUT&

=~BIT1

#defineSCLK_ON()P2OUT|=BIT4

#defineSCLK_OFF()P2OUT&

=~BIT4

#defineMOSI_ON()P2OUT|=BIT5

#defineMOSI_OFF()P2OUT&

=~BIT5

#defineCSN_ON()P3OUT|=BIT5

#defineCSN_OFF()P3OUT&

#defineVREG_EN_ON()P4OUT|=BIT4

#defineVREG_EN_OFF()P4OUT&

#defineMISO_IN(P2IN&

BIT6)//P2.6

//#defineGPIO4_IN(P2IN&

0x40)

//#defineGPIO5_IN(P2IN&

0x20)

#defineGPIO0_IN(P4IN&

BIT0)//P4.0

#defineGPIO1_IN(P4IN&

BIT2)//P4.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_READ(0x80)

#defineREG_WRITE(0xC0)

#defineMEM_READ(0x10)

#defineMEM_WRITE(0x20)

#defineRXFIFO_READ(0x30)

#defineTXFIFO_WRITE(0x3A)

//--------------------------------CC2520命令字定义----------------------------

#defineCMD_SNOP(0x00)

#defineCMD_IBUFLD(0x02)

#defineCMD_SIBUFEX(0x03)

#defineCMD_SSAMPLECCA(0x04)

#defineCMD_SRES(0x09)

#defineCMD_SXOSCON(0x40)

#defineCMD_SRXON(0x42)

#defineCMD_STXON(0x43)

#defineCMD_SRFOFF(0x45)

#defineCMD_SFLUSHRX(0x47)

#defineCMD_SFLUSHTX(0x48)

//------------------CC2520配置寄存器-----------------------------------

#defineFRMFILT0(0x00)

#defineFRMFILT1(0x01)

#defineSRCMATCH(0x02)

#defineSRCSHORTEN0(0x04)

#defineSRCSHORTEN1(0x05)

#defineSRCSHORTEN2(0x06)

#defineSRCEXTEN0(0x08)

#defineSRCEXTEN1(0x09)

#defineSRCEXTEN2(0x0A)

#defineFRMCTRL0(0x0C)

#defineFRMCTRL1(0x0D)

#defineRXENABLE0(0x0E)

#defineRXENABLE1(0x0F)

#defineEXCFLAG0(0x10)

#defineEXCFLAG1(0x11)

#defineEXCFLAG2(0x12)

#defineEXCMASKA0(0x14)

#defineEXCMASKA1(0x15)

#defineEXCMASKA2(0x16)

#defineEXCMASKB0(0x18)

#defineEXCMASKB1(0x19)

#defineEXCMASKB2(0x1A)

#defineEXCBINDX0(0x1C)

#defineEXCBINDX1(0x1D)

#defineEXCBINDY0(0x1E)

#defineEXCBINDY1(0x1F)

#defineGPIOCTRL0(0x20)

#defineGPIOCTRL1(0x21)

#defineGPIOCTRL2(0x22)

#defineGPIOCTRL3(0x23)

#defineGPIOCTRL4(0x24)

#defineGPIOCTRL5(0x25)

#defineGPIOPOLARITY(0x26)

#defineGPIOCTRL(0x28)

#defineDPUCON(0x2A)

#defineDPUSTAT(0x2C)

#defineFREQCTRL(0x2E)

#defineFREQTUNE(0x2F)

#defineTXPOWER(0x30)

#defineFSMSTAT0(0x32)

#defineFSMSTAT1(0x33)

#defineFIFOPCTRL(0x34)

#defineFSMCTRL(0x35)

#defineCCACTRL0(0x36)

#defineCCACTRL1(0x37)

#defineRSSI(0x38)

#defineRSSISTAT(0x39)

#defineRXFIRST(0x3C)

#defineRXFIFOCNT(0x3E)

#defineTXFIFOCNT(0x3F)

//-------------------PSDU相关定义---------------------------

//FRAME_CONTROL_FIELD

//FRAME_TYPE

#defineFRAME_TYPE_BEACCON0x00

#defineFRAME_TYPE_DATA0x01

#defineFRAME_TYPE_ACK0x02

#defineFRAME_TYPE_MAC0x03

#defineSECURITY_ENABLE0x00

#defineFRAME_PENDING0x00

#defineACKNOWLEDGMENT_REQUEST0x00

#definePAN_ID_COMPRESSION0x00

#defineDEST_ADDRESSING_MODE0x03

#defineFRAME_VERSION0x01

#defineSOURCE_ADDRESSING_MODE0x03

//

#defineSEQUENCE_NUMBER0x02

//--------------------CC2520RAM地址-----------------------------------

#defineRAM_IEEEADR(0xEA)

#defineRAM_PANID(0xF2)

#defineRAM_SHORTADR(0xF4)

//----------------------函数原型------------------------

voidCC2520_Init(void);

uint8CC2520_ReadReg(uint8addr);

voidCC2520_WriteReg(uint8addr,uint8value);

uint8CC2520_ReadRAM(uint8addrH,uint8addrL);

voidCC2520_WriteRAM(uint8addrH,uint8addrL,uint8value);

voidCC2520_ReadRXFIFO(void);

voidCC2520_WriteTXFIFO(void);

voidCC2520_Command(uint8cmd);

voidCC2520_SetRxMode(void);

uint8CC2520_RxPacket(void);

voidCC2520_TxPacket(void);

voidSPI_Init(void);

uint8SPI_Read(void);

voidSPI_Write(uint8txdata);

uint8SPI_WriteRead(uint8txdata);

voidIO_Init(void);

voiddelay_ms(uint8n);

voiddelay_10us(uint8n);

#defineCC2520_PSDU_Len127

uint8CC2520_PSDU[1+CC2520_PSDU_Len];

uint8CC2520_Source_PANID[2]={0xcc,0xcc};

uint8CC2520_Source_ShortAddr[2]={0xcc,0xcc};

uint8CC2520_Source_IEEEAddr[8]={0x12,0x34,0x56,0x7c,0xcc,0xcc,0xcc,0xcc};

uint8CC2520_Destination_PANID[2]={0xcc,0xcc};

uint8CC2520_Destination_ShortAddr[2]={0xcc,0xcc};

uint8CC2520_Destination_IEEEAddr[8]={0x12,0x34,0x56,0x7c,0xcc,0xcc,0xcc,0xcc};

//******************************************************************************

//系统初始化

voidInitSys()

P1DIR|=BIT0;

//ACLKsetouttopins

P1SEL|=BIT0;

P3DIR|=BIT4;

//SMCLKsetouttopins

P3SEL|=BIT4;

LOCKIO)//UnlockXT1pinsforoperation

=~(XT1OFF);

//XT1On

UCSCTL6|=XCAP_3;

//Internalloadcap

//LoopuntilXT1faultflagiscleared

do

=~(XT2OFFG+XT1LFOFFG+DCOFFG);

//ClearXT2,XT1,DCOfaultflags

//Clearfaultflags

}while(SFRIFG1&

OFIFG);

//Testoscillatorfaultflag

//InitializeDCOto2.45MHz

__bis_SR_register(SCG0);

//DisabletheFLLcontrolloop

UCSCTL0=0x0000;

//SetlowestpossibleDCOx,MODx

//SetRSELxforDCO=8MHz

UCSCTL2=FLLD_1+243;

//SetDCOMultiplierfor2.45MHz

//(N+1)*FLLRef=Fdco

//(243+1)*32768=8MHz

//SetFLLDiv=fDCOCLK/2

__bic_SR_register(SCG0);

//EnabletheFLLcontrolloop

//Worst-casesettlingtimefortheDCOwhentheDCOrangebitshavebeen

//changedisnx32x32xf_MCLK/f_FLL_reference.SeeUCSchapterin5xx

//UGforoptimization.

//32x32x2.45MHz/32,768Hz=76563=MCLKcyclesforDCOtosettle

__delay_cycles(250000);

//LoopuntilXT1,XT2&

DCOfaultflagiscleared

=~(XT2OFFG+XT1LFOFFG+XT1HFOFFG+DCOFFG);

//UCSCTL4=SELM__DCOCLK+SELM__DCOCLK;

//--------------------------SPI初始化函数---------------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1