MSP430G2553汉语注释张光飞制作.docx
- 文档编号:15680340
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:29
- 大小:22.73KB
MSP430G2553汉语注释张光飞制作.docx
《MSP430G2553汉语注释张光飞制作.docx》由会员分享,可在线阅读,更多相关《MSP430G2553汉语注释张光飞制作.docx(29页珍藏版)》请在冰点文库上搜索。
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软件用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MSP430G2553 汉语 注释 张光飞 制作