




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
整體旳程序設計構造,涉及了所有外圍模塊及內部時鐘,中斷,定期旳初始化。具體狀況人們可以根據自己旳需要添加或者減少,記住,模塊化設計時最有力旳武器。
/*****************************************************************************\
文獻名:main.c
描述:MSP430框架程序。合用于MSP430F149,其她型號需要合適變化。
不使用旳中斷函數保存或者刪除都可以,但保存時應保證不要打開不需要旳中斷。
\*****************************************************************************/
//頭文獻
#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中斷
P2IFG&=~BIT1;//清除中斷標志
//如下填充顧客代碼
}
elseif((P2IFG&BIT2)==BIT2)
{
//解決P2IN.2中斷
P2IFG&=~BIT2;//清除中斷標志
//如下填充顧客代碼
}
elseif((P2IFG&BIT3)==BIT3)
{
//解決P2IN.3中斷
P2IFG&=~BIT3;//清除中斷標志
//如下填充顧客代碼
}
elseif((P2IFG&BIT4)==BIT4)
{
//解決P2IN.4中斷
P2IFG&=~BIT4;//清除中斷標志
//如下填充顧客代碼
}
elseif((P2IFG&BIT5)==BIT5)
{
//解決P2IN.5中斷
P2IFG&=~BIT5;//清除中斷標志
//如下填充顧客代碼
}
elseif((P2IFG&BIT6)==BIT6)
{
//解決P2IN.6中斷
P2IFG&=~BIT6;//清除中斷標志
//如下填充顧客代碼
}
else
{
//解決P2IN.7中斷
P2IFG&=~BIT7;//清除中斷標志
//如下填充顧客代碼
}
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
USART1發送中斷函數
******************************************************************************/
#pragmavector=USART1TX_VECTOR
__interruptvoidUsart1Tx()
{
//如下填充顧客代碼
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
USART1接受中斷函數
******************************************************************************/
#pragmavector=USART1RX_VECTOR
__interruptvoidUstra1Rx()
{
//如下填充顧客代碼
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
端口1中斷函數
多中斷中斷源:P1IFG.0~P1IFG7
進入中斷后應一方面判斷中斷源,退出中斷前應清除中斷標志,否則將再次引起中斷
******************************************************************************/
#pragmavector=PORT1_VECTOR
__interruptvoidPort1()
{
//如下為參照解決程序,不使用旳端口應當刪除其對于中斷源旳判斷。
if((P1IFG&BIT0)==BIT0)
{
//解決P1IN.0中斷
P1IFG&=~BIT0;//清除中斷標志
//如下填充顧客代碼
}
elseif((P1IFG&BIT1)==BIT1)
{
//解決P1IN.1中斷
P1IFG&=~BIT1;//清除中斷標志
//如下填充顧客代碼
}
elseif((P1IFG&BIT2)==BIT2)
{
//解決P1IN.2中斷
P1IFG&=~BIT2;//清除中斷標志
//如下填充顧客代碼
}
elseif((P1IFG&BIT3)==BIT3)
{
//解決P1IN.3中斷
P1IFG&=~BIT3;//清除中斷標志
//如下填充顧客代碼
}
elseif((P1IFG&BIT4)==BIT4)
{
//解決P1IN.4中斷
P1IFG&=~BIT4;//清除中斷標志
//如下填充顧客代碼
}
elseif((P1IFG&BIT5)==BIT5)
{
//解決P1IN.5中斷
P1IFG&=~BIT5;//清除中斷標志
//如下填充顧客代碼
}
elseif((P1IFG&BIT6)==BIT6)
{
//解決P1IN.6中斷
P1IFG&=~BIT6;//清除中斷標志
//如下填充顧客代碼
}
else
{
//解決P1IN.7中斷
P1IFG&=~BIT7;//清除中斷標志
//如下填充顧客代碼
}
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
定期器A中斷函數
多中斷中斷源:CC1~2TA
******************************************************************************/
#pragmavector=TIMERA1_VECTOR
__interruptvoidTimerA1()
{
//如下為參照解決程序,不使用旳中斷源應當刪除
switch(__even_in_range(TAIV,10))
{
case2:
//捕獲/比較1中斷
//如下填充顧客代碼
break;
case4:
//捕獲/比較2中斷
//如下填充顧客代碼
break;
case10:
//TAIFG定期器溢出中斷
//如下填充顧客代碼
break;
}
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
定期器A中斷函數
中斷源:CC0
******************************************************************************/
#pragmavector=TIMERA0_VECTOR
__interruptvoidTimerA0()
{
//如下填充顧客代碼
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
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
//如下填充顧客代碼
}
elseif((ADC12IFG&BIT2)==BIT2)
{
//通道2
//如下填充顧客代碼
}
elseif((ADC12IFG&BIT3)==BIT3)
{
//通道3
//如下填充顧客代碼
}
elseif((ADC12IFG&BIT4)==BIT4)
{
//通道4
//如下填充顧客代碼
}
elseif((ADC12IFG&BIT5)==BIT5)
{
//通道5
//如下填充顧客代碼
}
elseif((ADC12IFG&BIT6)==BIT6)
{
//通道6
//如下填充顧客代碼
}
elseif((ADC12IFG&BIT7)==BIT7)
{
//通道7
//如下填充顧客代碼
}
elseif((ADC12IFG&BIT8)==BIT8)
{
//VeREF+
//如下填充顧客代碼
}
elseif((ADC12IFG&BIT9)==BIT9)
{
//VREF-/VeREF-
//如下填充顧客代碼
}
elseif((ADC12IFG&BITA)==BITA)
{
//溫度
//如下填充顧客代碼
}
elseif((ADC12IFG&BITB)==BITB)
{
//(AVcc-AVss)/2
//如下填充顧客代碼
}
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
USART0發送中斷函數
******************************************************************************/
#pragmavector=USART0TX_VECTOR
__interruptvoidUsart0Tx()
{
//如下填充顧客代碼
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
USART0接受中斷函數
******************************************************************************/
#pragmavector=USART0RX_VECTOR
__interruptvoidUsart0Rx()
{
//如下填充顧客代碼
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
看門狗定期器中斷函數
******************************************************************************/
#pragmavector=WDT_VECTOR
__interruptvoidWatchDog()
{
//如下填充顧客代碼
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
比較器A中斷函數
******************************************************************************/
#pragmavector=COMPARATORA_VECTOR
__interruptvoidComparatorA()
{
//如下填充顧客代碼
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
定期器B中斷函數
多中斷源:CC1~6TB
******************************************************************************/
#pragmavector=TIMERB1_VECTOR
__interruptvoidTimerB1()
{
//如下為參照解決程序,不使用旳中斷源應當刪除
switch(__even_in_range(TBIV,14))
{
case2:
//捕獲/比較1中斷
//如下填充顧客代碼
break;
case4:
//捕獲/比較2中斷
//如下填充顧客代碼
break;
case6:
//捕獲/比較3中斷
//如下填充顧客代碼
break;
case8:
//捕獲/比較4中斷
//如下填充顧客代碼
break;
case10:
//捕獲/比較5中斷
//如下填充顧客代碼
break;
case12:
//捕獲/比較6中斷
//如下填充顧客代碼
break;
case14:
//TBIFG定期器溢出中斷
//如下填充顧客代碼
break;
}
LPM3_EXIT;//退出中斷后退出低功耗模式。若退出中斷后要保存低功耗模式,將本句屏蔽
}
/*****************************************************************************
定期器B中斷函數
中斷源:CC0
******************************************************************************/
#pragmavector=TIMERB0_VECTOR
__interruptvoidTimerB0()
{
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025保險公司合同管理規范
- 2025茶葉供需合同范文
- 2025屆北京市海淀區高三下學期期中練習歷史試題(含答案)
- 二零二五承租房租賃合同書范例
- 二零二五展位裝修合同
- 2025版關于個人房屋租賃合同范本標準版
- 2025年天津市房產購買中介服務合同示范文本
- 2025建筑材料供應企業管理人員勞動合同(參考模板)
- 2025年辦公樓租賃合同樣式
- 2025年返銷貿易補償合同范本
- 2022全國高考真題化學匯編:專題 烴 鹵代烴
- GB/T 25742.4-2022機器狀態監測與診斷數據處理、通信與表示第4部分:表示
- 特殊感染手術的配合與術后處理
- 蕭紅《呼蘭河傳》課件
- 腦血管病介入診療并發癥及其處理課件
- 機動車駕駛人考試場地及其設施設置規范
- 大學生三生教育主題班會
- 2023年宜昌市中醫醫院醫護人員招聘筆試題庫及答案解析
- 內部控制建設課件
- 水塘排水、清淤質量檢驗記錄表
- 上海龍之夢麗晶大酒店客房預訂單
評論
0/150
提交評論