430单片机C语言例程Word文档下载推荐.docx

上传人:b****4 文档编号:16539928 上传时间:2022-11-24 格式:DOCX 页数:17 大小:20.32KB
下载 相关 举报
430单片机C语言例程Word文档下载推荐.docx_第1页
第1页 / 共17页
430单片机C语言例程Word文档下载推荐.docx_第2页
第2页 / 共17页
430单片机C语言例程Word文档下载推荐.docx_第3页
第3页 / 共17页
430单片机C语言例程Word文档下载推荐.docx_第4页
第4页 / 共17页
430单片机C语言例程Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

430单片机C语言例程Word文档下载推荐.docx

《430单片机C语言例程Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《430单片机C语言例程Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

430单片机C语言例程Word文档下载推荐.docx

#include<

MSP430x14x.h>

//函数声明

voidInitSys();

intmain(void)

{

 

WDTCTL=WDTPW+WDTHOLD;

//关闭看门狗

InitSys();

//初始化

start:

//以下填充用户代码

LPM3;

//进入低功耗模式n,n:

0~4。

若不希望进入低功耗模式,屏蔽本句

gotostart;

}

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

系统初始化

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

voidInitSys()

unsignedintiq0;

//使用XT2振荡器

BCSCTL1&

=~XT2OFF;

//打开XT2振荡器

do

IFG1&

=~OFIFG;

//清除振荡器失效标志

for(iq0=0xFF;

iq0>

0;

iq0--);

//延时,等待XT2起振

while((IFG1&

OFIFG)!

=0);

//判断XT2是否起振

BCSCTL2=SELM_2+SELS;

//选择MCLK、SMCLK为XT2

//以下填充用户代码,对各种模块、中断、外围设备等进行初始化

_EINT();

//打开全局中断控制,若不需要打开,可以屏蔽本句

端口2中断函数

#pragmavector=PORT2_VECTOR

__interruptvoidPort2()

//以下为参考处理程序,不使用的端口应当删除其对于中断源的判断。

if((P2IFG&

BIT0)==BIT0)

//处理P2IN.0中断

P2IFG&

=~BIT0;

//清除中断标志

elseif((P2IFG&

BIT1)==BIT1)

//处理P2IN.1中断

=~BIT1;

BIT2)==BIT2)

//处理P2IN.2中断

=~BIT2;

BIT3)==BIT3)

//处理P2IN.3中断

=~BIT3;

BIT4)==BIT4)

//处理P2IN.4中断

=~BIT4;

BIT5)==BIT5)

//处理P2IN.5中断

=~BIT5;

BIT6)==BIT6)

//处理P2IN.6中断

=~BIT6;

else

//处理P2IN.7中断

=~BIT7;

LPM3_EXIT;

//退出中断后退出低功耗模式。

若退出中断后要保留低功耗模式,将本句屏蔽

USART1发送中断函数

#pragmavector=USART1TX_VECTOR

__interruptvoidUsart1Tx()

USART1接收中断函数

#pragmavector=USART1RX_VECTOR

__interruptvoidUstra1Rx()

端口1中断函数

多中断中断源:

P1IFG.0~P1IFG7

进入中断后应首先判断中断源,退出中断前应清除中断标志,否则将再次引发中断

#pragmavector=PORT1_VECTOR

__interruptvoidPort1()

if((P1IFG&

//处理P1IN.0中断

P1IFG&

elseif((P1IFG&

//处理P1IN.1中断

//处理P1IN.2中断

//处理P1IN.3中断

//处理P1IN.4中断

//处理P1IN.5中断

//处理P1IN.6中断

//处理P1IN.7中断

定时器A中断函数

CC1~2TA

#pragmavector=TIMERA1_VECTOR

__interruptvoidTimerA1()

//以下为参考处理程序,不使用的中断源应当删除

switch(__even_in_range(TAIV,10))

case2:

//捕获/比较1中断

break;

case4:

//捕获/比较2中断

case10:

//TAIFG定时器溢出中断

中断源:

CC0

#pragmavector=TIMERA0_VECTOR

__interruptvoidTimerA0()

AD转换器中断函数

多中断源:

摸拟0~7、VeREF+、VREF-/VeREF-、(AVcc-AVss)/2

没有处理ADC12TOV和ADC12OV中断标志

#pragmavector=ADC_VECTOR

__interruptvoidAdc()

if((ADC12IFG&

BIT0)==BIT0)

//通道0

elseif((ADC12IFG&

BIT1)==BIT1)

//通道1

BIT2)==BIT2)

//通道2

BIT3)==BIT3)

//通道3

BIT4)==BIT4)

//通道4

BIT5)==BIT5)

//通道5

BIT6)==BIT6)

//通道6

BIT7)==BIT7)

//通道7

BIT8)==BIT8)

//VeREF+

BIT9)==BIT9)

//VREF-/VeREF-

BITA)==BITA)

//温度

BITB)==BITB)

//(AVcc-AVss)/2

USART0发送中断函数

#pragmavector=USART0TX_VECTOR

__interruptvoidUsart0Tx()

USART0接收中断函数

#pragmavector=USART0RX_VECTOR

__interruptvoidUsart0Rx()

看门狗定时器中断函数

#pragmavector=WDT_VECTOR

__interruptvoidWatchDog()

比较器A中断函数

#pragmavector=COMPARATORA_VECTOR

__interruptvoidComparatorA()

定时器B中断函数

CC1~6TB

#pragmavector=TIMERB1_VECTOR

__interruptvoidTimerB1()

switch(__even_in_range(TBIV,14))

case6:

//捕获/比较3中断

case8:

//捕获/比较4中断

//捕获/比较5中断

case12:

//捕获/比较6中断

case14:

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

当前位置:首页 > 外语学习 > 法语学习

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

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