MSP430G2553汉语注释张光飞制作.docx

上传人:b****7 文档编号:15680340 上传时间:2023-07-06 格式:DOCX 页数:29 大小:22.73KB
下载 相关 举报
MSP430G2553汉语注释张光飞制作.docx_第1页
第1页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第2页
第2页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第3页
第3页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第4页
第4页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第5页
第5页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第6页
第6页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第7页
第7页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第8页
第8页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第9页
第9页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第10页
第10页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第11页
第11页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第12页
第12页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第13页
第13页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第14页
第14页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第15页
第15页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第16页
第16页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第17页
第17页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第18页
第18页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第19页
第19页 / 共29页
MSP430G2553汉语注释张光飞制作.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MSP430G2553汉语注释张光飞制作.docx

《MSP430G2553汉语注释张光飞制作.docx》由会员分享,可在线阅读,更多相关《MSP430G2553汉语注释张光飞制作.docx(29页珍藏版)》请在冰点文库上搜索。

MSP430G2553汉语注释张光飞制作.docx

MSP430G2553汉语注释张光飞制作

#include

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//停止看门狗定时器

if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF)

{

while

(1);//如果校准常数擦除,捕获的CPU!

}

//ConfigureBasicClock

BCSCTL1=CALBC1_1MHZ;//设置范围

DCOCTL=CALDCO_1MHZ;//集检查官步+调制

BCSCTL3|=LFXT1S_2;//设置LFXT1

P1DIR=BIT6;//P1.6输出(绿色LED)

P1OUT=0;//LED关

IFG1&=~OFIFG;//清除OSCFault标志

BCSCTL2|=SELM_1+DIVM_0;//设置的MCLK

for(;;)

{

P1OUT=BIT6;//P1.6输出(绿色LED)_delay_cycles(100);

P1OUT=0;//绿色LED关闭

_delay_cycles(5000);

}

}

 

2.

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

//LaunchPadLab3-SoftwarePortInterruptService软件端口的中断服务

//MSP430G2xx2

//-----------------

///|\|XIN|-

//|||

//--|RSTXOUT|-

///|\||

//--o--|P1.3P1.0|-->LED

//\|/

//

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

#include

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//停止看门狗定时器P1DIR|=BIT0;//设定的P1.0输出方向

P1IES|=BIT3;//P1.3可高/低边

P1IFG&=~BIT3;//P1.3IFG清除

P1IE|=BIT3;//P1.3可中断启用

_BIS_SR(LPM4_bits+GIE);//进入LPM4中断

}

//Port1interruptserviceroutine端口1中断服务程序

#pragmavector=PORT1_VECTOR

__interruptvoidPort_1(void)

{

if(P1IFG&BIT3)

{

P1OUT^=BIT0;//P1.0切换

P1IFG&=~BIT3;//P1.3IFG清除

}

}

 

3.

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

//LaunchPadLab5-ADC10,SampleA10TempandConverttooCandoFADC10,样品A10的温度和转换

//MSP430G2452

//-----------------

///|\|XIN|-

//|||

//--|RSTXOUT|-

//||

//|A10|

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

#include"msp430g2553.h"

longtemp;

longIntDegF;

longIntDegC;

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//StopWDT

//ConfigureADC10

ADC10CTL1=INCH_10+ADC10DIV_3;//选择ADC通道温度传感器

ADC10CTL0=SREF_1+ADC10SHT_3+REFON+ADC10ON+ADC10IE;//选择ADC号源

__enable_interrupt();//使能中断。

TACCR0=30;//DelaytoallowReftosettle延迟让价解决

TACCTL0|=CCIE;//比较模式中断。

TACTL=TASSEL_2|MC_1;//TACLK=SMCLK,最多的模式。

LPM0;//等待延迟。

TACCTL0&=~CCIE;//禁用定时器中断

__disable_interrupt();

while

(1)

{

ADC10CTL0|=ENC+ADC10SC;//采样和转换启动

__bis_SR_register(LPM0_bits+GIE);//LPM0与中断功能

//oF=((A10/1024)*1500mV)-923mV)*1/1.97mV=A10*761/1024-468

temp=ADC10MEM;

IntDegF=((temp-630)*761)/1024;

//oC=((A10/1024)*1500mV)-986mV)*1/3.55mV=A10*423/1024-278

temp=ADC10MEM;

IntDegC=((temp-673)*423)/1024;

__no_operation();//SETBREAKPOINTHERE此设置断点

}

}

//ADC10interruptserviceroutine

#pragmavector=ADC10_VECTOR

__interruptvoidADC10_ISR(void)

{

__bic_SR_register_on_exit(LPM0_bits);//明确CPUOFF位从0(SR)

}

#pragmavector=TIMER0_A0_VECTOR

__interruptvoidta0_isr(void)

{

TACTL=0;

__bic_SR_register_on_exit(LPM0_bits);//明确CPUOFF位从0(SR)

}

 

4.

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

//MSP430F20xx演示-基本时钟,输出缓冲SMCLK,ACLK和MCLK/10//

//说明:

缓冲区ACLK从P2.0,P1.4脚和MCLK/10默认SMCLK(DCO)

//P1.5的。

//ACLK=LFXT1=VLO的,个MCLK=SMCLK=默认的DCO

////*安装辛XOUT之间的外部晶体需要ACLK*//

//MSP430F20xx

//-----------------

///|\|XIN|-

//|||

//--|RSTXOUT|-

//||

//|P1.4/SMCLK|-->SMCLK=DefaultDCO

//|P1.5|-->MCLK/10=DCO/10

//|P1.0/ACLK|-->ACLK=VLO

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

#include

unsignedchars;

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//关闭看门狗

BCSCTL3|=LFXT1S_2;//LFXT1=VLO

//DCOCTL=0;

//BCSCTL1=CALBC1_16MHZ;

//DCOCTL=CALBC1_16MHZ;

P1DIR|=0x31;//P1.0,和P1.4输出

P1SEL|=0x11;//P1.0,4ACLK/VLO的,SMCLK/DCO输出

//SMCLKSub-SystemMainClk,ACLK和SMCLK可以通过复用引脚输出,MCLK不能直接输出体现,MCLK可以配置为VLO或者DCO

while

(1)

{

P1OUT|=0x20;//P1.5=1,通过开关P1.5来体现MCLK,这两条指令的周期大概为SMCLK的1/10

P1OUT&=~0x20;//20;

}

}

 

5.

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

//MSP430xG46x演示-FLL的内部运行,在8MHz检查官

//说明:

此程序演示设置内部DCO运行

//为8MHz由FLL+自动校准。

//ACLK=LFXT1=32768Hz的,个MCLK=SMCLK=检查官=(121+1)×2×ACLK=7995392Hz

////*辛与XOUT之间的外部钟晶振需要ACLK*//

//

//MSP430xG461x

//-----------------

///|\|XIN|-

//|||32kHz

//--|RSTXOUT|-

//||

//|P1.1|-->MCLK=8MHz

//||

//|P1.5|-->ACLK=32kHz

//||

//

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

#include

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//停止看门狗定时器

FLL_CTL0|=DCOPLUS+XCAP18PF;//DCO+set,频率=xtalxDxN+1

SCFI0|=FN_4;//x2DCOfreq,8MHznominalDCO

SCFQCTL=121;//(121+1)x32768x2=7.99MHz

P1DIR=0x22;//P1.1口和P1.5的输出方向

P1SEL=0x22;//P1.1口和P1.5的输出MCLK和ACLK

while

(1);//循环到此

}

 

6.

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

//MSP430xG46x演示-Flash在系统编程,复制世嘉SegB

//

//说明:

此程序首先擦除闪烁赛格A,那么它的增量

//赛格一个值,然后擦除赛格B,然后复制赛格一个赛格B。

//假设的MCLK的550kHz-900kHz的。

////*NOP指令集在主循环中断点,以避免强调的Flash*//

//

//MSP430xG461x

//-----------------

///|\|XIN|-

//|||

//--|RSTXOUT|-

//||

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

#include

charvalue;//8位值写段

//Functionprototypes

voidwrite_SegA(charvalue);

voidcopy_A2B(void);

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//停止看门狗定时器

FCTL2=FWKEY+FSSEL0+FN0;//的MCLK/2闪存时序发生器

value=0;//初始化值

while

(1)//永远重复

{

write_SegA(value++);//写段,增量值

copy_A2B();//复制段A到B

_NOP();//此设置断点

}

}

voidwrite_SegA(charvalue)

{

char*Flash_ptr;//闪存的指针

unsignedinti;

Flash_ptr=(char*)0x1080;//初始化闪存的指针

FCTL1=FWKEY+ERASE;//设置擦除位

FCTL3=FWKEY;//清除锁定位

*Flash_ptr=0;//空写,擦除闪存段

FCTL1=FWKEY+WRT;//为写操作的WRT位

for(i=0;i<128;i++)

{

*Flash_ptr++=value;//写入值闪烁

}

FCTL1=FWKEY;//清除WRT的位

FCTL3=FWKEY+LOCK;//设置锁定位

}

 

voidcopy_A2B(void)

{

char*Flash_ptrA;//段指针

char*Flash_ptrB;//B段指针

unsignedinti;

Flash_ptrA=(char*)0x1080;//初始化闪存段A指针

Flash_ptrB=(char*)0x1000;//初始化闪存段B指针

FCTL1=FWKEY+ERASE;//设置擦除位

FCTL3=FWKEY;//清除锁定位

*Flash_ptrB=0;//空写,擦除闪存段B

FCTL1=FWKEY+WRT;//为写操作的WRT位

for(i=0;i<128;i++)

{

*Flash_ptrB++=*Flash_ptrA++;//复制值段A到段B

}

FCTL1=FWKEY;//清除WRT的位

FCTL3=FWKEY+LOCK;//设置锁定位

}

 

7.

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

//MSP430xG46x演示-软件P1.0口从LPM4中断

//

//说明:

P1.0的高/低的过渡会引发P1_ISR

//切换P2.1。

正常模式LPM4〜0.1uA。

LPM4电流可测

//与LED删除所有未使用的P1.x/P2.x配置为输出或输入

//拉高或低,确保P2.0的中断输入不浮动。

//ACLK=32.768kHz的,个MCLK=SMCLK=默认的DCO

//MSP430xG461x

//-----------------

///|\||

//|||

//--|RST|

///|\||

//--o--|P1.0P2.1|-->LED

//\|/

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

#include

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//停止看门狗

FLL_CTL0|=XCAP14PF;//配置负载帽

P2DIR=BIT1;//设置P2.1为输出方向

P1IES=BIT0;//H-L过渡

P1IE=BIT0;//使能中断

_BIS_SR(LPM4_bits+GIE);//LPM4,使中断

}

 

//Port1interruptserviceroutine端口1中断服务程序

#pragmavector=PORT1_VECTOR

__interruptvoidPort1_ISR(void)

{

unsignedvolatileinti;

for(i=10000;i>0;i--);//防抖动延时

P1IFG&=~BIT0;//清除P1IFG

if((P1IN&0x01)==0)

P2OUT^=0x02;//使用专用或切换P2.1

}

 

8.

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

//MSP430xG46x演示-软件P1.0口从LPM4中断

//

//说明:

P1.0的高/低的过渡会引发P1_ISR

//切换P2.1。

正常模式LPM4〜0.1uA。

LPM4电流可测

//与LED删除所有未使用的P1.x/P2.x配置为输出或输入

//拉高或低,确保P2.0的中断输入不浮动。

//ACLK=32.768kHz的,个MCLK=SMCLK=默认的DCO

//MSP430xG461x

//-----------------

///|\||

//|||

//--|RST|

///|\||

//--o--|P1.0P2.1|-->LED

//\|/

//

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

#include

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//停止看门狗

FLL_CTL0|=XCAP14PF;//配置负载帽

P2DIR=BIT1;//设置P2.1为输出方向

P1IES=BIT0;//H-L过渡

P1IE=BIT0;//使能中断

_BIS_SR(LPM4_bits+GIE);//LPM4,使中断

}

 

//Port1interruptserviceroutine端口1中断服务程序

#pragmavector=PORT1_VECTOR

__interruptvoidPort1_ISR(void)

{

unsignedvolatileinti;

for(i=10000;i>0;i--);//防抖动延时

P1IFG&=~BIT0;//清除P1IFG

if((P1IN&0x01)==0)

P2OUT^=0x02;//使用专用或切换P2.1

9.

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

//MSP430xG46x演示-USCI_A0,UARTISR的回声,检查官SMCLK115200

//(修改后的代码示例“msp430xG46x_uscia0_uart_01_115k.c”)

//

//说明:

回声一个接收到的字符,接收的ISR使用。

正常模式LPM0。

//USCI_A0RX中断触发的TX回声。

(01H009h)//1048576hz=1048576/115200=9.1波特率分频器

//ACLK=LFXT1=32768Hz的,个MCLK=SMCLK=默认的DCO=32×ACLK=1048576Hz

////*辛与XOUT之间的外部钟晶振需要ACLK*//

//MSP430FG4619

//-----------------

///|\|XIN|-

//|||32kHz

//--|RSTXOUT|-

//||

//|P2.5/UCA0RXD|<------------

//||115200-8N1

//|P2.4/UCA0TXD|------------>

//

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

#include"msp430xG46x.h"

voidmain(void)

{

volatileunsignedinti;

WDTCTL=WDTPW+WDTHOLD;//停止看门狗

FLL_CTL0|=XCAP14PF;//配置负载帽

do

{

IFG1&=~OFIFG;//清除OSCFault标志

for(i=0x47FF;i>0;i--);//标志设置时间

}

while((IFG1&OFIFG));//OSCFaultflagstillset?

P2SEL|=0x030;//P2.4,5=USCI_A0RXD/TXD

UCA0CTL1|=UCSSEL_2;//SMCLK

UCA0BR0=18;0x09;//1MHz115200

UCA0BR1=0;0x00;//1MHz115200

UCA0MCTL=0;0x02;//调制

UCA0CTL1&=~UCSWRST;//**初始化USCI状态机**

IE2|=UCA0RXIE;//启用USCI_A0RX中断

_BIS_SR(LPM0_bits+GIE);//进入LPM0,启用中断

}

//回显RXed字符,确认TX缓冲区是准备先

#pragmavector=USCIAB0RX_VECTOR

__interruptvoidUSCIA0RX_ISR(void)

{

while(!

(IFG2&UCA0TXIFG));

UCA0TXBUF=UCA0RXBUF;//TX->RXedcharacter

}

 

10.

/*******************************************************************************MSP-EXP430G2-LaunchPad软件用户

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2