模塊一ccsv使用指南msp430g2553指導書_第1頁
模塊一ccsv使用指南msp430g2553指導書_第2頁
模塊一ccsv使用指南msp430g2553指導書_第3頁
模塊一ccsv使用指南msp430g2553指導書_第4頁
模塊一ccsv使用指南msp430g2553指導書_第5頁
已閱讀5頁,還剩210頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

目模塊目模塊 CCSV5.4使用指 1.1概述 CCSV5.4的安 新建工 程序編 程序調(diào) 菜單欄其它常用功 模塊二 項目一點亮LED 2.1.1概 實驗任 硬件電 實驗設 實驗相關寄存 程序設 程序調(diào)試及結 小結與思 附本實驗所用的相關知 2.1.10程序清 項目二按鍵控制紅燈和綠燈交替亮 實驗任 硬件電 實驗設 實驗涉及寄存器簡 相關知識補 實驗調(diào)試及結 小結與思 程序清 項目三按鍵控制紅燈和綠燈交替亮滅(中斷 2.3.1概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 相關知識補 實驗調(diào)試及結 小結與思 程序清 項目四依次點亮數(shù)碼管的每一 2.4.1概 實驗任 硬件電 1實驗設 數(shù)實驗設 數(shù)碼管相關知 程序設 小結與思 附本實驗所用的相關知 程序清 項目五四位一體數(shù)碼管依次顯示0至 2.5.1概 實驗任 硬件電 實驗設 程序設 小結與思 附本實驗所用的相關知 程序清 項目六按鍵控制數(shù)碼管從0加到 實驗任 硬件電 實驗涉及寄存器簡 相關知識補 實驗調(diào)試及結 小結與思 程序清 項目七矩陣鍵盤控制數(shù)碼管顯示從0到 2.7.1概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 相關知識補 實驗調(diào)試及結 小結與思 程序清 項目八矩陣鍵盤控制數(shù)碼管擴 2.8.1概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 相關知識補 實驗調(diào)試及結 小結與思 程序清 模塊基礎時鐘與低功耗模塊實 2項目一項目一CPU運行在VOL時鐘 3.1.0時鐘基本知 3.1.1概 實驗任 硬件電 實驗設 實驗涉及時鐘源、寄存器簡 實驗調(diào)試及結 小結與思 程序清 項目二低功耗模 低功耗結 實驗任 3.1.4實驗設 模塊四比較器 項目一比較器實 4.1.1概 實驗任 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小結與思 附本實驗所用的相關知 程序清 項目二低壓報警實 4.2.1概 實驗任 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小結與思 程序清 模塊五定時/計數(shù)模塊實 項目一定時信號產(chǎn)生實 5.1.1概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小結與思 本實驗所用的相關知 程序清 項目二Timer_A實現(xiàn)定時功能35.2.1概 實驗任 5.2.1概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小結與思 本實驗所用的相關知 程序清 項目三看門狗作為計時器功能試 概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小結與思 程序清 項目四定時器Timer_A捕獲模塊實 概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小結與思 本實驗所用的相關知 程序清 項目五PWM波形輸出實 5.5.1概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 項目實驗調(diào)試及結 小結與思 程序清 PWM脈沖寬度調(diào) 5.6.1概 實驗任 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小結與思 4本實驗所用的相關知 程本實驗所用的相關知 程序清 模塊六 6.1概 ADC10結構及原理簡 6.2.1ADC10結 ADC10操作原 ADC10通道采樣模 實驗涉及寄存器簡介 項目一用ADC10實現(xiàn)內(nèi)部溫度采 實驗任 硬件電 實驗設 實驗涉及寄存器簡 相關知識補 實驗調(diào)試及結 小節(jié)與思 程序清 項目二用ADC10實現(xiàn)外部單通道單次采 實驗任 硬件電 實驗設 實驗涉及寄存器簡 相關知識補 實驗調(diào)試及結 小節(jié)與思 程序清 項目三用ADC10實現(xiàn)外部序列通道單次采 實驗任 硬件電 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小節(jié)與思 程序清 項目四用ADC10實現(xiàn)外部單通道重復采 實驗任 硬件電 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小節(jié)與思 程序清 項目二用ADC10實現(xiàn)外部通道序列重復采 5實驗任 硬件電 實驗任 硬件電 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小節(jié)與思 程序清 模塊七LCD液晶模塊顯 LCD1602模塊動態(tài)顯 7.1.1概 實驗任 硬件電 實驗設 實驗相關寄存 程序設 小結與思 附本實驗所用的相關知 程序清 項目二LCD顯示ADC內(nèi)部通道采樣溫 實驗任 硬件電 實驗設 實驗相關寄存 程序設 程序調(diào)試及結 小節(jié)與思 程序清 模塊八串口通 8.1概 實驗任 硬件電 實驗設 實驗相關寄存 USCI相關寄存 USART相關寄存 程序設 程序調(diào)試及結 附本實驗所用的相關知 MSP430G2553單片機串行口模塊介 波特率、波特率因子、位周 8.3.3MSP430的異步通信數(shù)據(jù)格式-----串行操作自動錯誤檢 8.8.4COM的硬件參數(shù)查 小結與思 8.10程序清 6模塊九中斷模塊實模塊九中斷模塊實 項目一IO口中斷應 9.1概 實驗任 硬件電 實驗設 實驗涉及寄存器簡 實驗調(diào)試及結 小結與思 程序清 模塊十綜合實 項目一PID溫度調(diào)節(jié)實 10.1概 實驗任 硬件原理 實驗設計說 軟件編寫說 實驗結 程序清 7模塊CCSV5.4進行嵌入式開發(fā),一個好調(diào)試平臺是必須的。CCS(CodeComposerStudio)美國德州儀器公司出品的代碼開發(fā)和調(diào)試套件,供用戶開發(fā)和調(diào)試DSP和模塊CCSV5.4進行嵌入式開發(fā),一個好調(diào)試平臺是必須的。CCS(CodeComposerStudio)美國德州儀器公司出品的代碼開發(fā)和調(diào)試套件,供用戶開發(fā)和調(diào)試DSP和1運行下載的安裝程序ccs_setup_0091.exe,當運行到如圖1.2.1I圖8223CompleteFeature94Next1.2.454Next1.2.451.2.5,6圖6圖 安裝進行7在彈出以下窗口后,如圖1.2.8DesktopShortcutCreateStartMenu7在彈出以下窗口后,如圖1.2.8DesktopShortcutCreateStartMenuShortcut1.31.CCSV5.42.Project2.Projectname“l(fā)esson24”3.Outputtype即輸出類型中有兩個選項:Executable和4Location中選擇存儲路徑,在此選擇默認路徑F:\workspace_v5_45.Device部分選擇器件的型號:在此Family選擇MSP430;VariantMSP430GXXXFamily系列,芯片選擇MSP430G2553;Connection6.選擇Emptymain.c)即帶主函數(shù)的空工程,點擊完成新工程創(chuàng)建.點擊View->ProjectExplorer,新工程將顯示于圖1.4程MSP430GXXXFamily系列,芯片選擇MSP430G2553;Connection6.選擇Emptymain.c)即帶主函數(shù)的空工程,點擊完成新工程創(chuàng)建.點擊View->ProjectExplorer,新工程將顯示于圖1.4程序圖(注:如果編譯按鈕沒出來,點擊右上方的CCSEdit,如圖圖1.4.2查看Problems圖1.5程序(注:如果編譯按鈕沒出來,點擊右上方的CCSEdit,如圖圖1.4.2查看Problems圖1.5程序1.5.1(注:如果調(diào)試窗口沒有出來,點擊View-圖ResumeSuspendTerminate4.Stepinto行過最后一句后是無法跳出的,這時可以點擊AssemblelyStepinto5.StepOverResumeSuspendTerminate4.Stepinto行過最后一句后是無法跳出的,這時可以點擊AssemblelyStepinto5.StepOver6.Step7.SoftReset點。1.5.3View->MemoryBrowser會彈出存儲器窗口,如圖1.5.2,為8-Hex-View->MemoryBrowser會彈出存儲器窗口,如圖1.5.2,為8-Hex-Style圖圖1.5.4圖1.5.4圖圖將圖3.P1OUT將圖3.P1OUT圖觀察P1OUT4.ViewMemoryatAddress,圖圖1.View->Expressions打開觀察器窗口,如圖1.5.10圖圖1.View->Expressions打開觀察器窗口,如圖1.5.10圖1.5.10觀察器窗口2.點擊newexpression可以添加變量,在此我們添加整型變量圖添加整型變量3.i上,右鍵選擇ViewMemory2.點擊newexpression可以添加變量,在此我們添加整型變量圖添加整型變量3.i上,右鍵選擇ViewMemoryatAddress,察變量i的值在存儲器中的變化情況如圖圖1.5.6點擊菜單View->Disassembly,可以得到匯編程序觀察窗口,該窗口顯示的是C言程序?qū)膮R編程序,如圖1.5.13所示圖1.5.7點擊1.FileFile->openFile-圖1.5.7點擊1.FileFile->openFile-File-File-2.EditUndoRedo3.View(1)點擊View->TIResourceExplorer可進入TI資源管理器,如圖Package右側的下拉窗口中可以觀察目前CCS中安裝的所有附加軟件。在3.View(1)點擊View->TIResourceExplorer可進入TI資源管理器,如圖Package右側的下拉窗口中可以觀察目前CCS中安裝的所有附加軟件。在裝430Ware,在430Ware中可以容易地找到MSP430所有系列型號的User’sguide以及參考例程(以msp430g2553為例,見圖1.6.2,圖1.6.3,1.6.4),此外430Ware還提供了大多數(shù)TI(持續(xù)更新中)里面包含MSP430所有的系列型號;DevelopmentTools,里面包括TIMSP430圖 Ti資源管理圖圖圖圖圖Ti(2)View->Project4.Navigate在程序中選中寄存器或特殊功能位,點擊OpenDeclaration寄存器或特殊功能位在頭文件中的定義,以寄存器P1OUT為例,如圖1.6.5圖圖Ti(2)View->Project4.Navigate在程序中選中寄存器或特殊功能位,點擊OpenDeclaration寄存器或特殊功能位在頭文件中的定義,以寄存器P1OUT為例,如圖1.6.5圖5.RunRun->Clock-6.Window6.Window模塊項目LED2.1.1概模塊項目LED2.1.1概2.1.2實驗任2.1.3硬件電2.1.2可知,紅色LED燈接的是P1.0LED燈接的是Pmsp430部上述端口,這些端口都可以直接用于輸入/輸出。MSP430轉換等.轉換等.1(2能可以通過它們7個控制存器來實現(xiàn)。InputTInputTOutput例i,例P1.1P1IFGporFlag例P1.1InterruptEdgeSelect,例Enable例Enable例P1.1ResisterEnable,程序首先要關閉看門狗定時器??撮T狗定時器(WDT,WatchDogTimer)MSP4302.1.91.while({};2.接賦值操作后,P1OUT=11001110,若采用位或操作即2.1.10程序清**程序員:王龍*s接賦值操作后,P1OUT=11001110,若采用位或操作即2.1.10程序清**程序員:王龍*s/******************頭文件//頭文件中包含了g2553中的寄存器定義和常用位定 {//關閉看門狗定//設置方向寄存器將P1.0P1.6設置為//初始化,將P1口所有引腳設為低電平,熄滅LED燈{//P1.0P1.6兩個引腳設為高電平點LED}}項目按鍵控制紅燈和綠燈交替亮硬件電2.2.1實驗設硬件電2.2.1實驗設2.2.4實驗涉及寄存器簡2.2.5相關知識補(2“|(3”^(4“~(5(2“|(3”^(4“~(5 P1DIR|=P1OUT|=6.P1OUT&= P1OUT&=~0x40,2.2.8程序2.2.8程序清**程序員:汪*s/******************頭文件#includevoid{WDTCTL=WDTPW|//P1DIR|=//P1.0和P1.6方向設置為輸出(此時和P1.6管腳的輸出狀態(tài)隨機P1DIR&=//P1.3方向設置P1OUT|=//P1.0設為高電平,點亮紅燈,同時P1.3設為上P1OUT&=//P1OUT|=//P1.0設為高電平,點亮紅燈,同時P1.3設為上P1OUT&=//P1.6輸出低電平,熄滅綠P1REN|=//P1.3上拉電阻{//{////{;判斷按鍵是否松開,若沒松開,程序一直執(zhí)行P1OUT//如果松開,P1.0和P1.6}}}}項目按鍵控制紅燈和綠燈交替亮滅(中斷2.3.1概2.3.2實驗任2.3.3硬件電2.3.4實驗設2.3.4實驗設2.3.5實驗涉及寄存器簡PxIE:IOPxIFG:IO0=中斷標志不成立,1=中斷條件曾經(jīng)成立IOPxIFG:IO0=中斷標志不成立,1=中斷條件曾經(jīng)成立IO2.3.6相關知識補1.2.3.例如其中“0x01”,“0x02”可分別換成即P1OUT&=~BIT1;POUT|=4.#pragmavector=PORT1_VECTOR:#pragma2.3.7實驗調(diào)試及結4.#pragmavector=PORT1_VECTOR:#pragma2.3.7實驗調(diào)試及結2.3.8小結與思2.3.9程序清**程序員:汪*s/******************頭文件#includevoid{WDTCTL=WDTPW|//P1DIR|= P1.0/******************頭文件#includevoid{WDTCTL=WDTPW|//P1DIR|= P1.0和P1.6方向設置為輸出,P1.3方向設置為輸P1OUT|=BIT0+ P1.0輸出高電平,點亮紅燈,同時P1.3設置為上拉輸P1OUT&=//P1.6輸出低電平,熄滅綠P1REN|=//P1.3上拉電阻P1IE|=P1IES|=//P1.3中斷下降P1IFG&=//清除P1.3//使能全局中}#pragma預處理指令,指明引起中斷的中斷向量類interruptvoid//中斷處理函{P1OUT^= P1.0和P1.6電平翻轉,LED燈交替點亮P1IFG&=//清除P1OUT^= P1.0和P1.6電平翻轉,LED燈交替點亮P1IFG&=//清除P1.3}項目依次點亮數(shù)碼管的每一2.4.1概特定的段就會發(fā)亮,所以就會形成我們眼睛看到的字樣了。如:顯示一個abgedfcdp8、9、A、B、C、D、E、F圖.3硬件電.3硬件電2.4.2圖2.4.4和圖2.4.5DDgfGNDaedGNDc.6程序設2.4.7小結與思10987 dp1234DDgfGNDaedGNDc.6程序設2.4.7小結與思10987 dp1234agd2.4.82.A&=B<=>A=A&BC語言里的位與操作,0&0=0;0&1=01&1=12.4.82.A&=B<=>A=A&BC語言里的位與操作,0&0=0;0&1=01&1=1ba為正數(shù)則高位補01后**程序員:王龍*s/******************頭文件int{//關閉看門狗定//P1口所有引腳設置為輸出//把P1口所有引腳設置為輸出高電平//把P2.0引腳設置為輸出,其余為輸入//P2.0引腳設置為輸出低電{ //點亮數(shù)碼aLED{//P2.0引腳設置為輸出低電{ //點亮數(shù)碼aLED{//調(diào)用延時函數(shù)//0各二進制數(shù)右移一位,高}}}項目四位一體數(shù)碼管依次顯示0至2.5.1概動態(tài)掃描方式采用分時片選的方法,是用接口電路將所有數(shù)碼管顯示器的0動態(tài)掃描方式采用分時片選的方法,是用接口電路將所有數(shù)碼管顯示器的0a.71.for{}數(shù)組類型數(shù)組名[]={元素1,元素2,元素 例a[2.5.8程序清**程序員:王龍*s/******************頭文件int{//關閉看門狗定//通過方向寄存器把P1口所有引腳設//P1口所有引腳設為輸出高電平//通過方向寄存P2P2.0P2.3引腳//P1口所有引腳設為輸出高電平//通過方向寄存P2P2.0P2.3引腳設為輸出//P2口的P2.0P2.3引腳設為輸出高電平unsignedchar//定義無符號字符型變量i,junsignedchartable[]=//定義無符號字符型數(shù)組table[10]unsignedcharselect[]=//定義無符號字符型數(shù)組select[4]{//for循環(huán)實現(xiàn)位選控制{//將數(shù)組select中的第i個元素附給P2//for循環(huán)實現(xiàn)段選控制{//將數(shù)組table中的第j個元素附給P1口作輸出電平//調(diào)用編譯器里延時函數(shù)進}}}}項目按鍵控制數(shù)碼管從0加到2.6.1項目按鍵控制數(shù)碼管從0加到2.6.1實驗任硬件電2.6.1實驗設2.6.4實驗涉及寄存器簡2.6.4實驗涉及寄存器簡2.6.5相關知識補P1OUT=2.6.6實驗調(diào)試及結2.6.7小結與思2.6.8程序清**2.6.7小結與思2.6.8程序清**程序員:汪*s/******************頭文件#includeunsignedcharunsignedcharvoid{//關閉P2DIR|=//P2.0方向設置P2REN|=//P2.1上拉電阻P2OUT|=//P2.1設置為上P1DIR|=//P1口設置為輸{//判斷P2.1模擬按鍵是否按{//延時//再次判斷P2.1模擬按鍵是否{//判斷P2.1模擬按鍵是否按{//延時//再次判斷P2.1模擬按鍵是否{//判斷P2.1模擬按鍵是否松P1OUT=//P1口輸出對應數(shù)碼管的P2OUT&=//為數(shù)碼管提供位選低電if(i>//判斷是否顯示到i=//i變量賦值為1,開始下一次}}}}項目矩陣鍵盤控制數(shù)碼管顯示02.7.1概.2實驗任硬件電.4實驗設.22.7.4實驗設2.7.5實驗涉及寄存器簡2.7.6相關知識補P2.0、P2.1(行線)2.7.7實驗調(diào)試及結2.7.8小結與思.7實驗調(diào)試及結2.7.8小結與思2.7.9程序清**程序員:汪*s/******************頭文件 unsignedcharvoidvoid{//設置P2.0和P2.1為輸//設置P2.2、P2.3和P2.4均為輸//設置P2.0和P2.1為上拉電P2REN|=//P2.0和P2.1上拉電阻使P1DIR|=//P1端口//設置P2.0和P2.1為上拉電P2REN|=//P2.0和P2.1上拉電阻使P1DIR|=//P1端口設置為}/**********************鍵盤掃描程序unsignedchar{unsignedchar//定義無符號變量key,并賦值為P2OUT&=//P2.2和P2.3(列線)設置為低if//判斷P2.0(第一行)是否有按鍵按{P2OUT|=//P2.2和P2.3(列線)設置為高P2OUT&=//僅P2.2列線輸出低電if//判斷P2.2(第一列)是否有按鍵按 確定按鍵位置{P2OUT&=//僅P2.3//判斷P2.3(第二列)是否有按鍵按//確定按鍵位置}}if//僅P2.3//判斷P2.3(第二列)是否有按鍵按//確定按鍵位置}}if//判斷P2.1(第二行)是否有按鍵按{P2OUT|=//P2.2和P2.3(列線)設置為高P2OUT&=//僅P2.2列線輸出低電if//判斷P2.2(第一列)是否有按鍵按 確定按鍵位置{P2OUT&=//僅P2.3//判斷P2.3(第二列)是否有按鍵按確定按鍵位置}}//將取得的鍵值返回}/***********************數(shù)碼管顯示void{unsignedcharunsigned//將取得的鍵值返回}/***********************數(shù)碼管顯示void{unsignedcharunsignedcharnum=//根據(jù)鍵值確定要顯示的數(shù){P1OUT=//設置P1口引腳P2OUT|=//P2.4設置為高P2OUT&=//P2.4輸出設置低電平,點}}項目矩陣鍵盤控制數(shù)碼管擴2.8.1概圖2.8.2數(shù)碼管接線原理2.8.4圖2.8.2數(shù)碼管接線原理2.8.4實驗設2.8.5實驗涉及寄存器簡2.8.6相關知識補2.8.6相關知識補已有詳細的介紹。可知,對于一組數(shù)碼管動態(tài)掃描顯示需要由兩組信號來控下返回;2、如果有鍵按下,找出具體的按鍵值(順序碼2.8.7實驗調(diào)試及結2.8.8小結與思2.8.8小結與思2.8.9程序清**程序員#include<msp430g2553.h>unsignedcharvoiddisplay();//定義顯示函void{WDTCTL{WDTCTL=WDTPW|P2DIR&=~(BIT0+BIT1+BIT2);P2DIR|=BIT2+BIT3+BIT5;P2OUT|=BIT0+BIT1+BIT4;//上P2REN|=P1DIR|=0xff;//循環(huán)執(zhí)行顯示函}unsignedcharkeyboard(){unsignedcharP2OUT&=0xd3;、//判斷P2.0(第一行)是否有按鍵按/*{P2OUT|=/*列線輸出高電平P2OUT&=~BIT2;/*列線循環(huán)輸出低電平{P2OUT&={P2OUT&=//確定按鍵位}}/*{P2OUT|=/*列線輸出高電平P2OUT&=~BIT2;{P2OUT&=~BIT3;{P2OUT&=~BIT5;}}{P2OUT|=/*列線輸出高電平P2OUTP2OUT&={P2OUT&=~BIT3;{P2OUT&=~BIT5;}}}}voiddisplay(){unsignedcharunsignedchara[]={0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};num=keyboard();{P1OUT=//P1.0輸出設置低電平,點}}模塊基礎時鐘與低功耗模塊實項目CPUVOL時鐘模塊基礎時鐘與低功耗模塊實項目CPUVOL時鐘ClockClock上述三個時鐘信號,是提供給CPULFXT1CLK、XT2CLK、DCOCLK、VLOCLK。LFXT1CLK、XT2CLK、DCOCLK、VLOCLKCPU、外設之間的“中間機構”,這個“中間機構”決定給哪個“晶振”給BasicClockModule+BasicClockModule+CPU是處理器的核心部分,它使用的時鐘始終是MCLKVLOCLK或者外接的晶振XT1產(chǎn)生的LFXT1CLK的XT2CLK或者DCOCLKVLOCLK或者外接的晶振XT1產(chǎn)生的LFXT1CLK的XT2CLK或者DCOCLK框圖中間紅色那里有一段標注:ConnectedonlywhenXT2not不可用時3.1.1概3.1.23.1.3硬3.1.23.1.3硬件電3.1.4實驗設使用任何ACLK外設時鐘。3.1.51、基礎時鐘模塊包括四個時鐘源 1、基礎時鐘模塊包括四個時鐘源 DCO2~DCO0:DCO頻率選擇,這些位可以在由RSELx決定的八個離散的DCO DIVA1~DIVA0:選擇ACLKXT5V:BCSCTL2,地址為58H,初始值為BCSCTL3XT2S1000.4-011- DIVA1~DIVA0:選擇ACLKXT5V:BCSCTL2,地址為58H,初始值為BCSCTL3XT2S1000.4選擇LFXT1CLK124801LFXT1OF:LFXT101IE101765432101600011011000101LFXT1OF:LFXT101IE10176543210160001101100011011102-11Bits7-2這些位被其他模塊使用。OFIFG振蕩器失效中斷標志位。011LFXT1:LFXT1LFXT1SMCLKMCLKBits7-2這些位被其他模塊使用。OFIFG振蕩器失效中斷標志位。011LFXT1:LFXT1LFXT1SMCLKMCLK2XT2:XT2XT2CLKXT2CLK信號沒有用作時鐘3、DCO振蕩器:振蕩器失效時,DCO振蕩器會自動被選做MCLK的時鐘(2)再次檢查OFIFG,如果仍置位,則重復(1)-(4)步,直到OFIFG=0常用時鐘模塊配置VLO=12kHZ(大約LFXT132.768kHZ(大約BCSCTL3|=BCSCTL3|=76543210Void{WDTCTL=WDTPW+//LFXT1VLO=12khz(////LFXT132.768khzIE1&=IFG1&=//ClearOSCFault時鐘源為//BCSCTL2|=SELM_0+SELS;時鐘源為Void{WDTCTL=WDTPW+//LFXT1VLO=12khz(////LFXT132.768khzIE1&=IFG1&=//ClearOSCFault時鐘源為//BCSCTL2|=SELM_0+SELS;時鐘源為{P1OUT^=}}ControlRegisterBCSCTL2|=SELM_3+附1、bis_SR_register(SCG1SCG0)DCOSR低功耗模式下運行。寄存器在工程頭文件中的設置如下*文件名:/******************頭文件#includevoid{//關閉看門狗P1.0/******************頭文件#includevoid{//關閉看門狗P1.0關閉VLO=12kHZ(大約清除OSCFaultstopWDTCTL=+BCSCTL3|=IFG1&=+MCLK時鐘源為BCSCTL2|=SELM_3+{P1OUT|=}開啟}MSP430通過軟件控制其時鐘系統(tǒng)可以工作在多種工作模式,包括1種活動模式和低功耗。圖314是MSP430F13x/F14x可以看出,在工作模式4(LPM4),單片機電流僅為0.1μA圖MSP430系列單片機是通過CPU中狀態(tài)寄存器SR中的SCG1、SCG2、OscOffSCG1:當SCG1復位時,使能SMCLK;SCG1置位,則禁止SMCLKSCG0:當SCG0復位時,直流發(fā)生器被激活,只有在SCG0置位且DCOCLKOscOff:當OscOff復位時,LFXTOscOffMCLK或SMCLK,LFXTCPUOff:當CPUOff復位,用于CPU的時鐘信號MCLK被激活,當CPU置位時,MCLK要實現(xiàn)整個MSP430單片機系統(tǒng)的低功耗運行,不僅要使CPU等都可以在主CPUCPU圖MSP430系列單片機是通過CPU中狀態(tài)寄存器SR中的SCG1、SCG2、OscOffSCG1:當SCG1復位時,使能SMCLK;SCG1置位,則禁止SMCLKSCG0:當SCG0復位時,直流發(fā)生器被激活,只有在SCG0置位且DCOCLKOscOff:當OscOff復位時,LFXTOscOffMCLK或SMCLK,LFXTCPUOff:當CPUOff復位,用于CPU的時鐘信號MCLK被激活,當CPU置位時,MCLK要實現(xiàn)整個MSP430單片機系統(tǒng)的低功耗運行,不僅要使CPU等都可以在主CPUCPU876543210保到某一低功耗工作模式下,在需要時使用中斷將CPU3.2.23.1.4實驗設序響應期間,軟件設定系統(tǒng)工作在低功耗模式4下,以實現(xiàn)系統(tǒng)的節(jié)能。3.1.5程序設計及說明#include<msp430g2553.h>voidmain(void){//到某一低功耗工作模式下,在需要時使用中斷將CPU3.2.23.1.4實驗設序響應期間,軟件設定系統(tǒng)工作在低功耗模式4下,以實現(xiàn)系統(tǒng)的節(jié)能。3.1.5程序設計及說明#include<msp430g2553.h>voidmain(void){//停止看門狗定P1.3可高/P1.3IFG//進入LPM4中WDTCTL=+P1IE|=}+routine端口1中斷服務//Port1interrupt#pragmainterruptvoid{if{P1OUT^=P1IFG}&P1.0P1.3IFG}SR;SR模塊比較器項目一比較器實4.1.1比較器A+(Comparator_A+)是一個模擬電壓比較器,支持精度的斜坡模塊比較器項目一比較器實4.1.1比較器A+(Comparator_A+)是一個模擬電壓比較器,支持精度的斜坡CAOUT為高電平,否則輸出分辨率。選擇輸出濾波器可以減小由比較器振蕩產(chǎn)生的誤差。(3)Timer_A..34.1.400011011000110110001101100011011比較器A1比較器A20.5VCC0.5VCCCASHORT:(BIT7)01通過對CASHORT76543210單的比較器的采樣和保持電路,其原理如下圖P2CA1(bit單的比較器的采樣和保持電路,其原理如下圖P2CA1(bitCAEX=1,NoP2CA0BIT6,BINoCAF(BIT0Comparator_A+outputisnotfiltered(比較器A+輸出沒有濾波NoCAF(BIT0Comparator_A+outputisnotfiltered(比較器A+輸出沒有濾波1Comparator_A+outputisfiltered(比較器A+輸出有濾波CACTL2寄存器相應位在頭文件中的定義如下圖CAPDx7-0CAPDx7-076543210:CA0在P1.0,CAPDxP1.xCAPD0P1.0,CAPD1P1.1 使能輸入緩沖 :CA0在P1.0,CAPDxP1.xCAPD0P1.0,CAPD1P1.1 使能輸入緩沖 ,用杜邦線連接輸入口P1.6,通過改變P1.6電壓,觀察燈亮滅狀態(tài)。實驗結果為當P1.6為高電平時P1.0紅燈亮,P1.6器當輸入信號Ui=UREF時,輸出信號就要產(chǎn)生突變。門限電壓UT=UREF,特性如下圖器當輸入信號Ui=UREF時,輸出信號就要產(chǎn)生突變。門限電壓UT=UREF,特性如下圖4.1.8*文件名:4.1.8*文件名:/******************頭文件#includevoid{ //打開比較器,選擇為參考電壓,內(nèi) //打開比較器,選擇為參考電壓,內(nèi)部參考電源接比較器//CA2作為輸入,輸出作濾波處理P1DIR&=~BIT2;//P1.2作為輸入口//P1.2作為第二功能即作為比較器輸入口使{{P1OUT&=~BIT0;//CAOUT=1,置位}P1OUT|=BIT0;//P1.0置為高}}作為比較器的輸入端并作濾波處理有兩種配置方1、CACTL2=P2CA4+P2CA0+CAF;2、*文件名:#includevoid{ //打開比較void{ //打開比較器,選擇為參考電壓,內(nèi)部參考電源接比較器負端,允許中//P1.2作為第二功能即作為比較器輸入口使_EINT();//打開總中}#pragmavector//比較器中斷聲明的固定格interruptvoidCOMPARE{P1OUT&=~BIT0;//p1.0取}.2驗4.2.3驗4.2.4.6小結與思4.2.7序.6小結與思4.2.7序*文件名:/******************頭文件#includevoid{if(CACTL2&//如果滿足P1.0P1.0|=&=~}intmain{WDTCTL=WDTPW+WDTHOLD;CA3{WDTCTL=WDTPW+WDTHOLD;CA3while{}//調(diào)用}模塊定時/計數(shù)模塊實模塊定時/計數(shù)模塊實項目一定時信號產(chǎn)生5.1.1重要的應用。MSP430G2553A(Timer_A)和定時器B(Timer_B)等模塊。在MSP430系列單片機中,都帶有一個16位定時/計數(shù)器Timer_A,用以精確定時器A能支持多個時序控制、多個捕獲/比較功能和多個PWMA..44CCRXTAXP1.11.1KHZP1.08HZP1.2550HZP1.1和P1.2端口方該寄存器主要是控制Px端口的I/O管腳作為一般I/O端口還是外圍模塊的該寄存器的相應比特設置為0I/O管腳。PEL0(ff快捷宏定義快捷宏定義Eg:TACTLTACLR計數(shù)器清零Eg:TACTL= 快捷宏定義快捷宏定義Eg:TACTLTACLR計數(shù)器清零Eg:TACTL= 該寄存器為定時器A模塊的中斷向量寄存器。CCR1的CCIFG中斷標志、CCR25-15為TAIVx(3比特0—捕獲/比較CCR1的捕獲/比較CCR2的————0010快捷宏定義0111(2)CCIS1- 00選擇10選擇快捷宏定義01選擇11選擇SCS00010快捷宏定義0111(2)CCIS1- 00選擇10選擇快捷宏定義01選擇11選擇SCS0SSCIxEQUxCAP101寄存器在工程頭文件中的設置如圖5.1.7:行,用示波器測取P1.1和P1.2的頻率。并觀察P1.0引腳的LED寄存器在工程頭文件中的設置如圖5.1.7:行,用示波器測取P1.1和P1.2的頻率。并觀察P1.0引腳的LED本實驗所用的相關知{反}Timer0_A0;Timer0_A1;TimerB的中斷向量:2.TimerA}Timer0_A0;Timer0_A1;TimerB的中斷向量:2.TimerA的中斷向量:斷中判斷是來自哪個的中斷。3._BIS_SR(LPM3_bits+_BIS_SR(GIE);等價于_EINT();_bis_SR_register(x)可以理解為是直接對SR狀態(tài)寄存器進行位操寄存器在工程頭文件中的設置如圖5.1.8、圖5.1.9:3圖5.1.9P1.1CCR0~1.1MHz/(2*500)=1100HzCCR1~1.1MHz/(2*1000)overflow~1.1MHz/(2*65536)==5.1.9序*文件名:#include<msp430g2553.h>int5.1.9序*文件名:#include<msp430g2553.h>int{WDTCTL=WDTPW+WDTHOLD;P1SEL|=0x06;P1DIR|=//P1.0P1.1、P1.2=OUTMOD_4=OUTMOD_4CCR14,CCTL1使能中斷TACTL=TASSEL_2+MC_2+TAIE;//時鐘源選擇_BIS_SR(LPM0_bits+0,}#pragmainterruptvoidTimer_A0{CCR0+=}CCR0#pragmainterruptvoid{switch(TA0IV{case2:CCR1+=case4:CCR1,P1.0case10:P1OUT^=0x01;}}項目Timer_A實現(xiàn)定時,P1.0case10:P1OUT^=0x01;}}項目Timer_A實現(xiàn)定時功能試.2通過本實驗的學習了解MSP430G2553Timer_A定時器的相關知識以及各個寄存.4定時時間t=TACCR0/ACLK。5.2.5行5.2.8本實驗所用的式下,5.2.8本實驗所用的式下,每個時鐘周TAR1.在TAR值超TACCR0寄存器(捕獲比較模塊0模式值)Timer_ATAIFG1.TA5.2.9序*文件名:/******************頭文件#includeint{WDTCTL=WDTPW+P1DIR|=0x01;P1.0TACCR0TACCTL0=CCIE;TACCR0=65536-1;TACTL=TASSEL_1+_BIS_SR(LPM3_bits+3,}//Timer_A0interruptserviceroutine#pragmavector=TIMER0_A0_VECTORinterruptvoidTimer_A{P1OUT^=}項目看門狗}項目看門狗作為計時器功能5.3.1執(zhí)行。5.3.2驗5.3.3件看門狗模塊結構如圖5.3.4驗實驗涉及寄存器簡5.3.4驗實驗涉及寄存器簡(WDTCNT它們在頭文件中的定義如圖(011)WDTIE定定斷許制(NonCPU。0禁止非屏蔽中斷7654321001101011(WDTCNT它們在頭文件中的定義如圖(011)WDTIE定定斷許制(NonCPU。0禁止非屏蔽中斷765432100110101110018110000101100定時時間0001101113.IFG11)WDTIFG:(01:蔽斷標非(1)無屏13.IFG11)WDTIFG:(01:蔽斷標非(1)無屏01IFG1&=~WDTIFG;//_EINT();#pragmavectorWDT_VECTOR//#pragmainterruptvoid{}//看門狗定時時間為8ms(選擇SMCLK時鐘源5.3.8序*文件名:76543210#include<msp430g2553.h>voidmain{#include<msp430g2553.h>voidmain{BCSCTL1=CALBC1_1MHZ;DCO為1MHZDCOCTL=CALDCO_1MHZ;P1DIR|=BIT6;//P1.6方向為輸出IE1|=WDTIE;//允許看門狗中斷IFG1&=~WDTIFG;//_EINT();_BIS_SR(LPM3_bits);;//進入低功耗}#pragmavector=interruptvoid{P1OUT^=BIT6;//P1.6IFG1&=~WDTIFG;//}Timer_A.2驗5.4.3件實驗5.4.3件實驗設行主計數(shù)器(TACCR0)計滿后復位,TAIFG1.中斷發(fā)生在計數(shù)值從TACCR0跳至0時刻。,TACCTL0主計數(shù)器(TACCR0)計滿后復位,TAIFG1.中斷發(fā)生在計數(shù)值從TACCR0跳至0時刻。,TACCTL0,TACCTL12TARTACCR2(,TACCTL2(TACCR00發(fā)生捕獲事件)獨占一個中斷源TIMERA0_VECTOR,其余3種事件共用另一個中斷源TIMERA1_VECTOR。對于需要緊急處理的捕獲事件建議使用通道0,因為它獨占一個TAIFG:Timer_A計數(shù)器計滿復位標志(位于TACTL寄存器)TAIE:Timer_A主計數(shù)器計滿中斷允許位(位于TACTL寄存器)CCIFG:Timer_A(TACCTL0/1/2)CCR1CCR1、CCR2、定時器溢出共用,在中斷函數(shù)中為10時為定時器溢出觸發(fā)的。TAR1,0xFFFF后溢出,TAR0,TAIFG1,或TAR重新賦值,也可以產(chǎn)生不同周期的定時中斷。連續(xù)模{語表塊一達合一)碼)碼)碼…句}//符代i\表{語句塊二合達式執(zhí)行代符{…句塊三合達執(zhí)行代語句。行<語句。行< 塊二>,然后結束語句。)2false,再繼續(xù)往下判斷其他表達式的5.4.9序*文件名:/******************頭文件intoverflow;//定義一個無符號字符型變量overflowvoid{WDTCTL=WDTPW+//P1.3設置為上拉輸入}#pragmainterruptvoidTimer_A1(void)//{{case{}elseif{}//溢出計數(shù)加}}5.5.1PWM(PulseWidthModulation)控制——脈沖寬度調(diào)制技術,通過對一系.35.5.4本實驗運用3定時器AA計至0時,AM0的值即可改變M的周期,改變x的值即可改變從x管腳輸出信號的占空比,x越大,占空比越大。本實驗設置M波形輸出管腳,設置3為5.5.5行5.5.5行本實驗主要運用Timer_A比較模塊的模式7(OUTMOD_7)輸出PWM5.5.8序*文件名:#include<msp430g2553.h>void{}voidmain{WDTCTLWDTPW|WDTHOLD;P1DIR|=BIT0+BIT2;P1OUT|=BIT0;//P1.0P1IEP1.3P1OUT|=BIT0;//P1.0P1IEP1.3&=Timer_A0_init();//調(diào)用void}#pragmainterruptvoidPORT1(void{P1IFG&=~0x08;//}項目六PWM沖寬5.6.1GND,控制所產(chǎn)生的方波信號,減小它的正占空比,從而達PWM加減調(diào)節(jié)的作用。5.6.2通過按鍵改變占空比,P1.3P1.4加它的正占空比,P1.2P1.6燈的變化情況。5.6.3本實驗主要運用Timer_A比較模塊功能實現(xiàn)PWM置,實現(xiàn)按鍵改變占空比,從而改變PWM波形,改變PWM波輸出電壓,本實驗通LEDPWM5.6.45.6.6小結與思本實驗主要運用Timer_A比較模塊的模式7(OUTMOD_7)輸出PWM波,通過按鍵5.6.6小結與思本實驗主要運用Timer_A比較模塊的模式7(OUTMOD_7)輸出PWM波,通過按鍵5.6.7出電壓的大小,也可改變輸出頻率?!?n據(jù)沖量相等效果相同的原理,PWM波形和正弦半波是等效的。對于正弦的負半PWM的通斷,就可以得到所需要的PWM波形。PWM調(diào)整負載功率的過程中,負載斷開時晶體管無電流通過,不發(fā)熱。負載PWM控制負載時,開關器件的總發(fā)熱量很小。相比于串聯(lián)耗散式的調(diào)整方法,PWM的缺點是負載功率高(1)POR(POR(Power-On-Reset)(2)RST/NMINMI(NMINonMaskableInterrupt)——不可屏蔽中斷CPU不能屏蔽)無論狀態(tài)寄存器中IF位的狀態(tài)如何,CPUNMI必須進行響應;NMI)RST/NMIFLASH3.P序*文件名:#include"msp430g2553.h"void{}voidmain(void{WDTCTL=WDTPW+{if{if//判斷P1.3{if(CCR1>=8000)elseCCR1+=1000;//否則{if(CCR1>=8000)elseCCR1+=1000;//否則}//判斷P1.3按鍵是否按}if{if{ifelseCCR1-//否則,CCR1=CCR1-}}}}模塊6.1單片機內(nèi)部通常集成的是10位ADC6.2ADC10ADC10(Analog-to-DigitalConverter10)是MSP單片機的模數(shù)轉換器,單片機內(nèi)部通常集成的是10位ADC6.2ADC10ADC10(Analog-to-DigitalConverter10)是MSP單片機的模數(shù)轉換器,可選擇內(nèi)部或者外部電壓參考源。并且內(nèi)部電壓參考源有2.5V6.2.1ADC10圖6.2.1ADC10的結構圖,由圖可以看到ADC108個外部采樣通道(A0~A7(A10(A12~A15圖ADC10圖ADC10詳見數(shù)據(jù)手冊。ADC10CLK需要作為轉換時鐘和產(chǎn)生采樣周期的時鐘,所以例:ADC10CTL1|=ADC10SSEL_2+ADC10DIV_8;//時鐘源選擇MCLK,83.3V1.5或者2.5V,即內(nèi)電壓部參考。它是可以向外輸出的,也可以向內(nèi)提供供,一個是AVSS(接地參考電壓,另一個是VREF-/VeREF-。和參考源電壓選擇。ADC10的核將輸入模擬量轉換成10位數(shù)字量并儲存在(03FF源分成2^N份,10位轉換位數(shù)則分成2^10-1=1023份,每一份的電壓相當于參考102模擬信號和數(shù)字信號的主要區(qū)別是,數(shù)字信號在時間和幅值上是離散的,轉換器即A/D轉化為數(shù)字信號。模擬信號--數(shù)字信號轉換器的采樣部分可以形象圖圖VIAxVS=RS=RI路選擇導通輸入電阻CI=輸入電容VC=電容充電電壓圖VIAxVS=RS=RI路選擇導通輸入電阻CI=輸入電容VC=電容充電電壓ADC10SR=ADC10SR=用上面給出的R1C1例如,如果RS為10kΩ,在ADC10SR=0時,tsample必須大于2.63μs;ADC10SR=0時,tsample必須大于4.33μsADC10通道采樣模1.1.ADC10將轉換后的結果存入寄存器ADC10MEM,ADC10的中斷標志位單通道單次采樣狀態(tài)轉換圖如圖圖圖序列通道采樣狀態(tài)轉移圖如圖圖圖單通道重復采樣狀態(tài)轉移圖如圖圖圖序列通道重復采樣狀態(tài)轉移圖如圖圖 序列通道重復采樣狀態(tài)轉移6.3圖 序列通道重復采樣狀態(tài)轉移6.31、轉換控制寄存器0,全稱ADC10Register0VR+VREF+VR+VREF+VR-VR-=VERF-/VeREF-+01Reference010SHI(轉換都需要觸發(fā)1SHI采樣輸入信號的第一個上升沿觸發(fā)采樣定時器,但是后續(xù)的采01+01參考源電壓01轉換都需要觸發(fā)1SHI采樣輸入信號的第一個上升沿觸發(fā)采樣定時器,但是后續(xù)的采01+01參考源電壓0101允許ADC10使用前提:總中斷被置位(GIE=1),又有中斷請求采樣轉換完成后,ADC10IFG被置為1單片機響應ADC10中斷以后,ADC10IFG自動被置位0,也可軟件置00101012、轉換控制寄存器,全稱ADC10ControlRegister1VREF-(Vcc-VREF-(Vcc-ADC10SC,ADC10011013、 輸入使能寄存器ADC10AE0,全稱Analog(Input)ControlRegister10013、 輸入使能寄存器ADC10AE0,全稱Analog(Input)ControlRegister10014、二進制格式如圖轉換結果為10位,以左對齊二進制補碼格式儲存,位15為最高位,位5-0為5、6、ADC10DTC1數(shù)據(jù)傳遞控制寄存器該寄存器設置了所有通道轉換數(shù)值轉換結果為10位,以左對齊二進制補碼格式儲存,位15為最高位,位5-0為5、6、ADC10DTC1數(shù)據(jù)傳遞控制寄存器該寄存器設置了所有通道轉換數(shù)值的總次0例如:ADC10DTC1=//通道的轉換數(shù)值傳遞總數(shù)為36.4.1用ADC10實現(xiàn)內(nèi)部溫度采.3本實驗利用ADC10t,由數(shù)碼管顯示輸出。其中設置了按鍵檢測功能,當按鍵按下不6.4.4其內(nèi)部溫度輸出電壓與溫度的線性關系如圖ADC10ADC10內(nèi)部溫度傳感器實際就是一個輸出電壓和溫度成理想的線性關系的零度校準公式:TEMP=(VTEMP-室溫校準公式:TEMP=(VTEMPV0為室溫下傳感器的輸出電壓,單位mV;T0為室溫,單位攝氏度。TEMP=(Nadc-TEMP_Result=(ADC10_Result-TEMP_Result=(ADC10_Result-TEMP_Result=(ADC10_Result-.7小節(jié)與思6.4.8**程序員:汪*svoiddisplay();unsignedchartable_1[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};voidmain(){{WDTCTL=WDTPW+WDTHOLP2OUT|=0x10;P1DIRP2REN|=0x10;ADC10CTL0|=REFON+SREF_1;ADC10CTL0|=ADC10SHT_3+MSC;//采樣保持時間設為64個ADC10CTLK周ADC10CTL1|=ADC10SSEL_3+SHS_0;ADC10時鐘源選擇MCLK,采樣保持源選擇ADC10SCADC10CTL1|=INCH_10;ADC10CTL0|=ADC10ON;{ADC10CTL0//獲得采樣轉換TEMP_Result=(ADC10_Result-//檢測按鍵P2.4是否按{//判斷是否到達警示溫度{//添加循環(huán),起到延時效display();//熄滅數(shù)碼管,整體達到閃爍效}//沒有達到警示溫度,數(shù)碼{display();//調(diào)用數(shù)碼管動}}//沒有按下檢測按鍵,數(shù)碼管不閃爍(即使超過警示溫度{display();//調(diào)用數(shù)碼管動}}}voiddisplay()//定義聲明動態(tài)掃描函{//P2.1為個位數(shù)碼管提供位//P1端控制顯示十位數(shù)}ADC10項目實驗任6.5.2件6.5.3驗ADC106.5.4實驗涉及寄存器簡介相關知識_nop_();NOPADC10SAunsigned 3.采樣輸入信號源3.采樣輸入信號源6.5.7小節(jié)與思6.5.8/*****************程序一**程序員:汪*sdoubledoubleADC10_A0;voidADC10(){ADC10CTL0|=SREF_1+ADC10SHT_3+REFON+REF2_5V+MSC+**+6410K25D10ADC10CTL1|=INCH_0+ADC10CTL1|=ADC10SSEL_3+SHS_0;ADC10時鐘源選擇SMCLK,采樣保持源選ADC10SCADC10AE0|=0x01;//開啟A0通}void{WDTCTL=WDTPW+WDTHO//設置ADC10CTL0//開始轉while((ADC10CTL0//經(jīng)過計算得出}/*****************程序二**程序員:汪*s/******************頭文件unsignedintm[1];doublevoid{void{//ADC10CTL1|=INCH_0+SHS_1+選擇轉換通道A0,選擇定時器A觸發(fā)采樣轉換,選擇單通道ADC10AE0=//采樣轉換通道A0ADC10DTC1|=TACCTL0=CCIE;//使能定時器ATACCTL1=OUTMOD_3;TACCR1=2;////選擇TA時鐘源為ACLK, bis_SR_register//使能中}#pragmavector=ADC10_VECTORinterruptvoid{ADC10_A0=//經(jīng)過計算得出//產(chǎn)生一條NOP}#pragmavector=TIMER0_A0_VECTORinterruptvoid{ADC10CTL0=SREF_1+ADC10SHT_2+REF2_5V+REFON+MSC+ADC10ON+/***********************基準源選取內(nèi)部參考源VREF+,設置采樣保持時間為16個AD10K25D10D10*************************/AD10T0=//ADC10轉換使ADC10SA=(unsignedint)m;//將轉換數(shù)據(jù)存入數(shù)組變量}ADC10實現(xiàn)項目實驗任6.6.2}ADC10實現(xiàn)項目實驗任6.6.2件6.6.3驗A0~A26.6.4實驗涉及寄存器簡介6.6.5分別接2.5V、0V、2.5V)6.6.7小節(jié)與思6.6.8**程序員:汪*sintdoublevoidADC10()//對ADC10模塊進行初始化設{ADC10CTL0|=SREF_1+ADC10SHT_3+REFON+REF2_5V+MSC+**+6410K25D10模ADC10CTL1|=INCH_2ADC10CTL1|=INCH_2+ADC10DTC1=0x03;ADC10AE0|=0x07;//開啟A2、A1、A0三個通}voidmain(void{ADC10CTL0//開始采/****************************獲得各通道的采樣值ADC10_A2=m[0];ADC10_A1=m[1];ADC10_A0=ADC10_A2=ADC10_A2*2.5/1023;ADC10_A0=}ADC10實現(xiàn)外部單通道重復項目實驗任6.7.2件6.7.3驗6.7.4實驗涉及寄存器簡介6.7.3驗6.7.4實驗涉及寄存器簡介6.7.5A0圖6.7.6小節(jié)與思.7**程序員:汪*sdoubleADC10_A0;voidADC10(){ADC10CTL0|=SREF_1+ADC10SHT_3+REFON+REF2_5V+MSC+**+6410K25D10ADC10CTL1|=INCH_0+ADC10CTL1|=ADC10SSEL_3+SHS_0;ADC10時鐘源選擇SMCLK,采樣保持源選擇ADC10SCADC10AE0|=0x01;//開啟A0通}void{WDTCTL=WDTPW+WDTHO{ADC10CTL0//開始轉while((ADC10CTL0//讀取采樣結果并累加,以便求平均//經(jīng)過計算得出//此延時,以便暫停查看ADC10_A0計算得出的//此延時,以便暫停查看ADC10_A0計算得出的電壓采}ADC10實現(xiàn)項目實驗任6.8.2件6.8.3驗本實驗選擇對A0~A2通道進行重復采樣,將A0~A2通道分別接入相應的電6.8.4實驗涉及寄存器簡介6.8.5鈕,待程序運行一段時間后,點擊暫停按鈕。查看數(shù)組m[]、a[]、b[]、c[]中由圖可以看出,a[0]=1023,a[1]=834,a[2]=0A23.3V2.5V,因此對應的采樣值達到最大1023(轉換位數(shù)為10位)。6.8.6小節(jié)與思6.8.7**程序員:汪*sintintdoublevoidADC10()//對ADC10模塊進行初始化設{ADC10CTL0|=SREF_1+ADC10SHT_3+REFON+REF2_5V+MSC+**+6410K25D10ADC10CTL1|=INCH_2+ADC10DTC1=0x0f;ADC10AE0|=0x07;//開啟A2、A1、A0三個通}voidmain(void{{ADC10_A2=ADC10CTL0{a[i]=ADC10_A2=ADC10_A2+b[i]=ADC10_A1=ADC10_A1+c[i]=ADC10_A0=ADC10_A0+}/*********************************通過for循環(huán)將m[0]、m[3]、m[6]、m[9]、m[12]的a0a1a0a1、a2、a3a4,b]c]510_2A10_1、D10_0****************************/AD10_2=(A10_25251023;ADC10_A0=}}模塊LCD液晶模塊顯模塊動態(tài)顯7.1.1概LCD(LiquidCrystalDisplay)大家詳細介紹目前常用的液晶顯示模塊1602的使用方法。7.1.2實驗任7.1.3硬件電1602對應引腳相連,然后1602對應引腳相連,然后數(shù)的模塊化,移植性較好。最后將程序放在CCSV5.4中運行,觀察液晶模塊16027.1.5實驗相關寄存7.1.7小結與思7.1.81.160212864LCDLCD液晶顯示模塊分為圖形128X644/8238×4(32)16×16點陣的漢字.也可完成12864液晶種類繁多,常用的控制器(接受來自微處理器的顯示信號轉化為LCD模塊能夠理解的命令)就有4種,每一種都有自己的特點。當然指令也各不相同。學習者不搞明白液晶類型,肯定是無從下手。1.12864液晶的型號通C,-1,-2,-312864(1)ST79206884。PSB是ST7920(2)KS0108688CS1CS2KS0108(3)T6963C類這種控制器功能強大,帶西文字庫。有文本和圖形兩種顯示方式。有文本和808FS是T6963C(4COGS6B0724ST7565,688,808COG之間也有間隔,起到了字符間距和行間距的作用。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。2.1602第1腳:VSS為電源地3.1602測的需要,RS,RW,E同時變化也不行;另外E=1要持續(xù)一定的時間。4.寫指令寫數(shù)據(jù)LCDLCD在進行內(nèi)部操作,此時模塊不接受外部指令和數(shù)據(jù)。D7=0LCD隨時可接5.1602寫指令000001NSS=1顯示左移(N=1)或右移S=06.顯示如圖7.1.3RAM說明:1602216個字符位。第一行字符位對應地址映射是00至0F;第二行字符位對應地址映射是40至4F。若將地址映射設為其他0001SDxx6.顯示如圖7.1.3RAM說明:1602216個字符位。第一行字符位對應地址映射是00至0F;第二行字符位對應地址映射是40至4F。若將地址映射設為其他0001SDxx7.7.例:顯示大寫字母方式一:lcd_w_dat(8.標識 字符例:#defineunsigned9指針類型名*指針變量名int*s,如果指針是指向一個整型變量的,那么“使指針值加一”意味著使地址值加4著把字符串首字符的地址賦給指針,例如char*s=”welcome”,如果指針是指向一個整型變量的,那么“使指針值加一”意味著使地址值加4著把字符串首字符的地址賦給指針,例如char*s=”welcome”,把字符‘ws。s=s+1;即把字符’es。由于指針是C語言一個非常重要的章節(jié),在這里不能詳細地介紹,如果想要有一個更加深入的了解,可以參考相關C語言書籍。*文件名:*s#include#defineuintunsigned#defineucharunsigned#definers_1rs_1表示寄存數(shù)#definers_0rs_0表示寄存指#definerw_1//宏定義rw_1#definerw_0//宏定義rw_0#defineen_1//宏定義en_1#defineen_0//宏定義en_0voidlcd_w_cmd(uchar{////將指令數(shù)據(jù)賦給P1}{//將顯示數(shù)據(jù)賦給P1}void{}voidlcd_w_string(ucharx,uchary,//寫字符串子函數(shù),x,y及指向無符號字符型變量的指針變量s是該子函數(shù)的{//由于字符串是以’\0‘結束的,當字符串輸出結束時,while循環(huán){}}voidlcd_w_string1(ucharx,uchary,寫字符串子函數(shù)1,x,y及指向無符號字符型變量的指針變量s1是該子函數(shù)的參{//如果y恒等于0//地址設為1602第一行的第x//地址設為1602第二行的第x//于字符串是以’\0‘結束的,當字符串輸出結束時,while{//}}void{//地址設為第一行的第0個字節(jié)處,輸出字符串welcomelcd_w_string1(2,1,"science//地址設為第二行的第2個字節(jié)處,輸出字符串science}}項目LCD顯示ADC內(nèi)部通道采樣7.2.1實驗任模塊1602顯示出來,并在超出設定溫度時閃爍報警。7.2.2硬件電1602對應引腳相連,然后1602對應引腳相連,然后接調(diào)用,最后將程序放在CCSV5.41602顯示情況二步:編寫液晶顯示所用的相關子函數(shù),ADC溫度采樣函數(shù)和按鍵檢測報警函7.2.7小節(jié)與思7.2.7小節(jié)與思7.2.8程序清*文件名:*s#include<msp430g2553.h>#defineuintunsigned#defineucharunsignedchar#definers_1P2OUT|=BIT0rs_1表示寄存數(shù)#definers_0rs_0表示寄存指#definerw_1//宏定義rw_1表示讀操作//rw_0表示寫操作#defineen_1//宏定義en_1#defineen_0//宏定義en_0int//uchartable[]={"TheTemp//uchar//int//voidlcd_w_cmd(uchar{//將指令數(shù)據(jù)賦給P1}voidlcd_w_dat(uchar{//將顯示數(shù)據(jù)賦給P1}void{}void//ADC溫度采集子//ADC工作模式選擇位單通ADC10CTL0|=ADC10SHT_3+MSC;ADC10CTL0|=ADC10SHT_3+MSC;ADC10CTL0|=ADC10ON;//打開ADC10模ADC10CTL0TEMP_Result=(ADC10_Result-}void{{}}void{{}}void{ADC10({{}}{}{}}}模塊通異步串行通信(serialportasynchronousserialcommunication;serialasynchronismcommunication)SCI(SerialCommunicationInterface)通信是計算機與人對話最傳統(tǒng)、最基Rate11位。所謂異步通信,是指數(shù)據(jù)傳送以字符為單位,字符與字符間的傳送是完全實驗任實驗任(2)實現(xiàn)功串口是計算機上一種非常通用設備通信的協(xié)議(不要與通用串行總線UniversalSerialBusUSB混淆RS232的串口。串口同時也是儀器儀表設備通用的通信協(xié)議;很多GPIB兼容的設備也帶有RS-232IEEE488定義并行通行狀態(tài)202接收數(shù)據(jù)。其他線用于握手(RS-232-C(EIARS-232-C)是目前最常用的一種串行通訊接口。1970年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計算RS-23225針的接口來定義的,對連接器的每個引腳的信號-515V;邏輯“0”+5+15V2V至+3V的信號作為邏輯“0”,高到-3V的信號作為邏輯“1”-515V;邏輯“0”+5+15V2V至+3V的信號作為邏輯“0”,高到-3V的信號作為邏輯“1”RS-232-C接口連接器一般使用型號為DB-25的25芯插頭座,通常插頭在端,插座在DTEPC機連接的RS-232-C的9芯插頭座,傳輸線采用屏蔽雙絞線。與2、33直接相連;口上面表格是對微機標準串行口而言的,還有許多非標準設備,如接收GPS主程序開將引腳連接串口初始下位機采集數(shù)據(jù)/顯串口發(fā)送數(shù)上位機顯示/控主程序結實驗相關上面表格是對微機標準串行口而言的,還有許多非標準設備,如接收GPS主程序開將引腳連接串口初始下位機采集數(shù)據(jù)/顯串口發(fā)送數(shù)上位機顯示/控主程序結實驗相關寄存8.5.1USCI相關寄存233222322333557757USCI_A0USCI_A11.USCI_A0USCI_A11.UCAxCTL1,USCI_Ax01(2)UCPAR:60101(4)UC7BIT:47位或801(5)UCSPB:30101(4)UC7BIT:47位或801(5)UCSPB:301UART(7)UCSYNC:0012.UCAxCTL1,USCI_Ax(1)UCSSELx:7-6USCI時鐘源選擇,這些位選取BRCLK(2)UCRXEIE:501(3)UCBRKIE:40101不休眠,所有接收字節(jié)都置位特率檢測的UART模式下只有同步場和間斷的組合才能置位UCAxRXIFG01在帶自動波特率檢測的UART模式下必須向UCAxTXBUF寫055h/同步區(qū)域。其他情況則要向發(fā)送緩沖寫0h01(7)UCSWRST:001USCI復位釋放來允許操作;USCI3.UCAxBR0,4.UCAxBR1,256)165.UCAxMCTL,1(7)UCSWRST:001USCI復位釋放來允許操作;USCI3.UCAxBR0,4.UCAxBR1,256)165.UCAxMCTL,USCI_AxUCBRFx:7-4UCOS16=1BITCLK16的調(diào)制模式。當UCOS16=0UCOS16:0016.UCAxSTAT,USCI_Ax(1)UCLISTEN:7,UCLISTEN01允許,UCAxTXD(2)UCFE:601(3)UCOE:第5位覆蓋錯誤標志.,當UCAxRXBUF中前一幀數(shù)據(jù)還未讀出新01(4)UCPE:第4位奇偶校驗錯誤標志.當UCPEN=0,UCPE被讀為01(5)UCB

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論