基于MSP430單片機的溫度測量及顯示系統(tǒng)_第1頁
基于MSP430單片機的溫度測量及顯示系統(tǒng)_第2頁
基于MSP430單片機的溫度測量及顯示系統(tǒng)_第3頁
基于MSP430單片機的溫度測量及顯示系統(tǒng)_第4頁
基于MSP430單片機的溫度測量及顯示系統(tǒng)_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄1.系統(tǒng)設(shè)計與框圖 22.系統(tǒng)硬件主要電路 22.1MSP430單片機模塊 22.1.1MSP430單片機工作特點 32.1.2MSP430單片機最小系統(tǒng) 32.2LCD1602液晶顯示模塊 42.2.1LCD1602引腳功能 42.2.2LCD1602指令說明 52.2.3LCD1602操作時序 62.3.DS18B20溫度采集模塊 72.3.1DS18B20封裝形式及引腳功能 72.3.2DS18B20內(nèi)部結(jié)構(gòu) 82.3.3DS18B20測溫原理 92.4.串口通信模塊 102.4.1串行通信概述 102.4.2RS232接口電路 113.系統(tǒng)軟件設(shè)計 123.1主程序 133.2DS18B20溫度采集程序 133.3LCD1602液晶溫度顯示程序 153.4串口程序 164.系統(tǒng)調(diào)試與結(jié)果分析 174.1LCD1602液晶溫度顯示 174.2串口通信上位機溫度顯示 174.3串口示波器顯示溫度變化曲線 185.總結(jié) 19參考文獻: 19基于MSP430單片機的溫度測量及顯示系統(tǒng)摘要:隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實現(xiàn),溫度自動檢測和顯示系統(tǒng)在很多領(lǐng)域得到廣泛應(yīng)用。人們在溫度檢測的準確度、便捷、快速等方面有著越來越高的要求。而傳統(tǒng)的溫度傳感器已經(jīng)不能滿足人們的需求,其漸漸被新型的溫度傳感器所代替。本文基于MSP430單片機,設(shè)計對環(huán)境溫度進行采集的溫度采集系統(tǒng)。利用DS18B20單總線進行溫度測量,并通過單片機將溫度顯示在LCD1602上,并利用虛擬串口顯示溫度變化的曲線。關(guān)鍵詞:MSP430;LCD1602;DS18B20;串口通信1.系統(tǒng)設(shè)計與框圖溫度采集系統(tǒng)是以MSP430單片機為核心的系統(tǒng),它主要包括溫度的采集、采集數(shù)據(jù)的處理、單片機通信、LCD液晶顯示等幾大模塊,具體方案如圖1-1所示:圖1-1系統(tǒng)框圖信號采集主要是由DS18B20及其外圍電路構(gòu)成。所得到的數(shù)字信號經(jīng)過單片機的處理后,將溫度值輸出到LCD1602液晶上顯示出來,同時通過串口通信發(fā)送到上位機上,并在串口示波器上顯示出溫度變化曲線,從而完成整個系統(tǒng)的工作。2.系統(tǒng)硬件主要電路2.1MSP430單片機模塊MSP430F149是一種新型的混合信號處理器,采用了美國德州儀器(TexasInstruments)公司最新低功耗技術(shù)(工作電流為0.1一400pA),它將大量的外圍模塊整合到片內(nèi),特別適合于開發(fā)和設(shè)計單片系統(tǒng)。2.1.1MSP430單片機工作特點MSP430149單片機主要具有如下特點:①低電壓、超低功耗。工作電壓3.3V,等待方式下工作電流為1.3wA,在RAM保持關(guān)閉工作方式下工作電流僅為0A。②具有12位的模數(shù)轉(zhuǎn)換器(ADC12),可以得到很高的精度,并且省去了使用專門的模數(shù)轉(zhuǎn)換器給設(shè)計電路板帶來的麻煩。③擁有大容量的存儲空間。存儲器方面包括多達60kFlashROM和2kRAM,如此數(shù)量的存儲空間完全可以滿足程序及數(shù)據(jù)的需要。④兩通道串行通信接口??捎糜谂c計算機進行異步或同步串行通信。⑤硬件乘法器。該乘法器獨立于CPU進行乘法運算的操作,在提高乘法運算速度的同時也提升了CPU的利用效率。⑥串行在系統(tǒng)編程。通過仿真器對程序進行下載,并通過專用軟件對程序及單片機的工作狀態(tài)進行監(jiān)控,極大地方便了程序的調(diào)試。2.1.2MSP430單片機最小系統(tǒng)MSP430單片機最小系統(tǒng)電路如圖2-1-2(1)和圖2-1-2(2)所示2.2LCD1602液晶顯示模塊LCD1602液晶顯示器也叫1602字符型液晶顯示器。它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成。每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。LCD1602是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊。2.2.1LCD1602引腳功能1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表2.1所示:表2.1引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。2.2.2LCD1602指令說明1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表2.2所示:表2.2控制命令表序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標復(fù)位到地址00H位置。指令2:光標復(fù)位,光標返回到地址00H。指令3:光標和顯示模式設(shè)置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示C:控制光標的開與關(guān),高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設(shè)置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8:DDRAM地址設(shè)置。指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。2.2.3LCD1602操作時序LCD1602讀寫操作時序如圖2-2-3(1)和圖2-2-3(2)所示:圖2-2-3(1)讀操作時序圖2-2-3(2)寫操作時序2.3.DS18B20溫度采集模塊DS18B20是Dallas公司繼DS1820后推出的一種改進型智能數(shù)字溫度傳感器,與傳統(tǒng)的熱敏電阻相比,只需一根線就能直接讀出被測溫度值,并可根據(jù)實際需求來編程實現(xiàn)9~12位數(shù)字值的讀數(shù)方式。2.3.1DS18B20封裝形式及引腳功能圖2-3-1DS18B20封裝及引腳功能如圖3-1-1所示,DS18B20的外形如一只三極管,引腳名稱及作用如下:GND:接地端。DQ:數(shù)據(jù)輸入/輸出腳,與TTL電平兼容。VDD:可接電源,也可接地。因為每只DS18B20都可以設(shè)置成兩種供電方式,即數(shù)據(jù)總線供電方式和外部供電方式。采用數(shù)據(jù)總線供電方式時VDD接地,可以節(jié)省一根傳輸線,但完成數(shù)據(jù)測量的時間較長;采用外部供電方式則VDD接+5V,多用一根導(dǎo)線,但測量速度較快。2.3.2DS18B20內(nèi)部結(jié)構(gòu)圖2-3-2DS18B20內(nèi)部結(jié)構(gòu)圖3-1-2中出示了DS18B20的主要內(nèi)部部件,下面對DS18B20內(nèi)部部分進行簡單的描述:(1)64位ROM。64位ROM是由廠家使用激光刻錄的一個64位二進制ROM代碼,是該芯片的標識號,如表2.3所示:表2.364位ROM標識8位循環(huán)冗余檢驗48位序列號8位分類編號(10H)MSBLSBMSBLSBMSBLSB第1個8位表示產(chǎn)品分類編號,DS18B20的分類號為10H;接著為48位序列號。它是一個大于281*1012的十進制編碼,作為該芯片的唯一標示代碼;最后8位為前56位的CRC循環(huán)冗余校驗碼,由于每個芯片的64位ROM代碼不同,因此在單總線上能夠并接多個DS18B20進行多點溫度實習(xí)檢驗。(2)溫度傳感器。溫度傳感器是DS18B20的核心部分,該功能部件可完成對溫度的測量通過軟件編程可將-55~125℃范圍內(nèi)的溫度值按9位、10位、11位、12位的分辨率進行量化,以上的分辨率都包括一個符號位,因此對應(yīng)的溫度量化值分別為0.5℃、0.25℃、0.125℃、0.0625℃,即最高分辨率為0.0625℃。芯片出廠時默認為12位的轉(zhuǎn)換精度。當(dāng)接收到溫度轉(zhuǎn)換命令(44H)后,開始轉(zhuǎn)換,轉(zhuǎn)換完成后的溫度以16位帶符號擴展的的二進制補碼形式表示,存儲在高速緩存器RAM的第0,1字節(jié)中,二進制數(shù)的前5位是符號位。如果測得的溫度大于0,這5位為0,只要將測得的數(shù)值乘上0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測得的數(shù)值需要取反加1再乘上0.0625即可得到實際溫度。(3)高速緩存器。DS18B20內(nèi)部的高速緩存器包括一個高速暫存器RAM和一個非易失性可電擦除的EEPROM。非易失性可點擦除EEPROM用來存放高溫觸發(fā)器TH、低溫觸發(fā)器TL和配置寄存器中的信息。(4)配置寄存器。配置寄存器的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換率。DS18B20工作是按此寄存器的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值,它是高速緩存器的第5個字節(jié),該字節(jié)定義如表2.4所示:表2.4匹配寄存器TMR0R111111TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,在DS18B20出廠時該位被設(shè)置為0,用戶不要去改動;R1和R0用來設(shè)置分辨率;其余5位均固定為1。DS18B20分辨率的設(shè)置如表2.3所示:表3.3DS18B20分辨率的設(shè)置R1R0分辨率最大轉(zhuǎn)換時間/ms009位93.750110位187.51011位3751112位750DS18B20依靠一個單線端口通訊。在單線端口條件下,必須先建立ROM操作協(xié)議,才能進行存儲器和控制操作。因此,控制器必須首先提供下面5個ROM操作命令之一:1)讀ROM;2)匹配ROM;3)搜索ROM;4)跳過ROM;5)報警搜索。這些命令對每個器件的激光ROM部分進行操作,在單線總線上掛有多個器件時,可以區(qū)分出單個器件,同時可以向總線控制器指明有多少器件或是什么型號的器件。成功執(zhí)行完一條ROM操作序列后,即可進行存儲器和控制操作,控制器可以提供6條存儲器和控制操作指令中的任一條。一條控制操作命令指示DS18B20完成一次溫度測量。測量結(jié)果放在DS18B20的暫存器里,用一條讀暫存器內(nèi)容的存儲器操作命令可以把暫存器中數(shù)據(jù)讀出。溫度報警觸發(fā)器TH和TL各由一個EEPROM字節(jié)構(gòu)成。如果沒有對DS18B20使用報警搜索命令,這些寄存器可以做為一般用途的用戶存儲器使用??梢杂靡粭l存儲器操作命令對TH和TL進行寫入,對這些寄存器的讀出需要通過暫存器。所有數(shù)據(jù)都是以最低有效位在前的方式進行讀寫。2.3.3DS18B20測溫原理DS18B20的測溫原理如圖3-1-3所示,其主要由斜率累加器、溫度系數(shù)振蕩器、減法計數(shù)器、溫度存儲器等功能部件組成。圖2-3-3DS18B20測溫原理DS1820是這樣測溫的:用一個高溫度系數(shù)的振蕩器確定一個門周期,內(nèi)部計數(shù)器在這個門周期內(nèi)對一個低溫度系數(shù)的振蕩器的脈沖進行計數(shù)來得到溫度值。計數(shù)器被預(yù)置到對應(yīng)于-55℃的一個值。如果計數(shù)器在門周期結(jié)束前到達0,則溫度寄存器(同樣被預(yù)置到-55℃)的值增加,表明所測溫度大于-55℃。同時,計數(shù)器被復(fù)位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性。然后計數(shù)器又開始計數(shù)直到0,如果門周期仍未結(jié)束,將重復(fù)這一過程。斜坡式累加器用來補償感溫振蕩器的非線性,以期在測溫時獲得比較高的分辨率。這是通過改變計數(shù)器對溫度每增加一度所需計數(shù)的的值來實現(xiàn)的。因此,要想獲得所需的分辨力,必須同時知道在給定溫度下計數(shù)器的值和每一度的計數(shù)值。DS18B20內(nèi)部對此計算的結(jié)果可提供0.5℃的分辨率。溫度以16bit帶符號位擴展的二進制補碼形式讀出,表2.5給出了溫度值和輸出數(shù)據(jù)的關(guān)系。數(shù)據(jù)通過單線接口以串行方式傳輸。DS18B20測溫范圍-55℃~+125℃,以0.5℃遞增。表2.5溫度數(shù)據(jù)關(guān)系溫度℃數(shù)據(jù)輸出(二進制)數(shù)據(jù)輸出(十六進制)+125000000001111101000FA+2500000000001100100032+0.500000000000000010001000000000000000000000-0.51111111111111111FFFF-251111111111001110FFCE-551111111110010010FF92S18B20遵循單總線協(xié)議,每次測溫時都必須有4個過程[6]:?初始化;?傳送ROM操作命令;?傳送ROM操作命令;?數(shù)據(jù)交換;2.4.串口通信模塊串行通信是一種能把二進制數(shù)據(jù)按位(逐位)進行傳送的一種通信方式。計算機與外界的通信有兩種基本方式:并行通信和串行通信。2.4.1串行通信概述串行通信按信息的格式又可分為異步通信和同步通信兩種方式。在異步通信中,每一個字符要用起始位和停止位作為字符開始和結(jié)束的標志,它是以字符為單位一個個地發(fā)送和接收。串行異步通信方式的特點是:數(shù)據(jù)在線路上傳送時是以一個字符(字節(jié))為單位,未傳送時線路處于空閑狀態(tài),空閑線路約定為高電平“1”。傳送一個字符又稱為一幀信息,傳送一幀信息時,每一個字符前加一個低電平的起始位,然后是數(shù)據(jù)位,數(shù)據(jù)位可以是5~8位,低位在前,高位在后,數(shù)據(jù)位后可以帶(也可以不帶)一個奇偶校驗位,最后是停止位,停止位用高電平表示,它可以是1位、1位半或2位(通常采用1位)。串行口工作方式分為以下四種:方式0:移位寄存器方式;方式1:8位數(shù)據(jù)異步通訊方式;方式2和方式3都是11為異步收發(fā)。2.4.2RS232接口電路串口通信電路如圖2-4-2所示:圖2-4-2RS232通訊電路3.系統(tǒng)軟件設(shè)計系統(tǒng)的程序主要包括主程序、讀出溫度子程序、寫出溫度子程序、溫度轉(zhuǎn)換命令字程序、計算溫度子程序和液晶顯示數(shù)據(jù)子程序。程序的功能是實時顯示溫度、讀出并處理DS18B20的測量溫度值,并通過串口通信發(fā)送到上位機顯示溫度,同時在串口示波器上顯示溫度變化曲線。其程序流程如圖3:圖3主程序流程圖3.1主程序主程序如下:voidmain(void){unsignedchari;unsignedchardis[5]={"00.0"};WDTCTL=WDTPW+WDTHOLD;InitSys();LCD_PortInit();LCD_init();LCD_clear();LCD_write_str(0,0,"TheTemperature:");LCD_write_str(5,1,"C");DS18B20_Reset();UART_PortInit();UART_Config();//溫度顯示與串口接收while(1){ds1820_start();//啟動一次轉(zhuǎn)換ds1820_read_temp();//讀取溫度數(shù)值dis[0]=temp_value%1000/100+0x30;dis[1]=temp_value%100/10+0x30;dis[2]='.';dis[3]=temp_value%10+0x30;LCD_write_str(0,1,dis);//Print_Str("123");for(i=0;i<4;i++){Send_Byte(dis[i]);Send_Byte('\n');}Delay_Nms(500);}}3.2DS18B20溫度采集程序在本次設(shè)計系統(tǒng)中P1^6口用來單片機與溫度傳感器通訊;它用到的相關(guān)函數(shù)如下:ds_init()18B20初始化;ds_write()向18B20中寫入數(shù)據(jù);ds_read()由18B20讀取數(shù)據(jù);ds_temp()從18B20中讀取溫度值;dis[]把溫度值送入1602中顯示。具體程序如下所示:#include"ds18b20.h"#include"delay.h"#defineuintunsignedint#defineucharunsignedchar#defineuintunsignedintuinttemp_value;unsignedcharDS18B20_Reset(void)//初始化和復(fù)位{unsignedchari;DQ_OUT;DQ_CLR;delay_us(500);//延時500uS(480-960)DQ_SET;DQ_IN;delay_us(80); //延時80uSi=DQ_R;delay_us(500);//延時500uS(保持>480uS)if(i){return0x00;}else{return0x01;}}//*************************************************************************// DS18B20讀一個字節(jié)函數(shù)//*************************************************************************unsignedchards1820_read_byte(void){unsignedchari;unsignedcharvalue=0;for(i=8;i!=0;i--){value>>=1;DQ_OUT;DQ_CLR;delay_us(4);//*延時4uS DQ_SET;DQ_IN;delay_us(10);//*延時10uS if(DQ_R){value|=0x80; }delay_us(60); //*延時60uS }return(value);}/*DS18B20字節(jié)寫入函數(shù)*/voidds1820_write_byte(unsignedcharvalue){unsignedchari;for(i=8;i!=0;i--){DQ_OUT;DQ_CLR;delay_us(4);//延時4uSif(value&0x01){DQ_SET; }delay_us(80); //延時80uSDQ_SET; //位結(jié)束value>>=1; }}//*************************************************************************// 發(fā)送溫度轉(zhuǎn)換命令//*************************************************************************/*啟動ds1820轉(zhuǎn)換*/voidds1820_start(void){DS18B20_Reset();ds1820_write_byte(0xCC); //勿略地址ds1820_write_byte(0x44); //啟動轉(zhuǎn)換}//*************************************************************************// DS8B20讀取溫度信息//*************************************************************************unsignedintds1820_read_temp(void){unsignedinti;unsignedcharbuf[9];DS18B20_Reset();ds1820_write_byte(0xCC); //勿略地址ds1820_write_byte(0xBE); //讀取溫度for(i=0;i<9;i++){buf[i]=ds1820_read_byte(); }i=buf[1];i<<=8;i|=buf[0];temp_value=i;temp_value=(uint)(temp_value*0.625);returni;}voiddata_do(uinttemp_d){uintA2t;A1=temp_d/100;//分出百,十,和個位A2t=temp_d%100;A2=A2t/10;A3=A2t%10;}3.3LCD1602液晶溫度顯示程序在本次設(shè)計系統(tǒng)中定義了P6^5口為1602液晶的使能端;P6^3為數(shù)據(jù)命令的選擇端;P6^4為讀寫選擇端。定義了有關(guān)的函數(shù):LCD_write_com()向1602寫入命令碼函數(shù)LCD_write_data()向1602寫入數(shù)據(jù)函數(shù)display()1602顯示函數(shù)lcd_init()1602初始化lcd_display()1602顯示初始化。具體程序如下所示:#include<msp430x14x.h>#include<math.h>#include"1602.h"#include"delay.h"voidLCD_PortInit(){P2DIR=0xff;P6DIR|=BIT3+BIT4+BIT5;}voidLCD_write_com(unsignedcharcom){ RS_CLR; RW_CLR; EN_SET; DATAPORT=com;//命令寫入端口 Delay_Nms(5); EN_CLR;}voidLCD_write_data(unsignedchardata){ RS_SET; RW_CLR; EN_SET; DATAPORT=data;//數(shù)據(jù)寫入端口 Delay_Nms(5); EN_CLR;}voidLCD_clear(void){//清屏幕顯示 Delay_Nms(5);}voidLCD_write_char(unsignedcharx,unsignedchary,unsignedchardata){if(y==0){ LCD_write_com(0x80+x);//第一行顯示}else{ LCD_write_com(0xC0+x);//第二行顯示}LCD_write_data(data);}voidLCD_write_str(unsignedcharx,unsignedchary,unsignedchar*s){ if(y==0){ LCD_write_com(0x80+x);//第一行顯示}else{ LCD_write_com(0xC0+x);//第二行顯示}while(*s!='\0'){ LCD_write_data(*s); s++;}}voidLCD_init(void){LCD_write_com(0x38); //顯示模式設(shè)置Delay_Nms(5);LCD_write_com(0x08); //顯示關(guān)閉Delay_Nms(5);LCD_write_com(0x01); //顯示清屏Delay_Nms(5);LCD_write_com(0x06); //顯示光標移動設(shè)置Delay_Nms(5);LCD_write_com(0x0C); //顯示開及光標設(shè)置Delay_Nms(5);}3.4串口程序#include"UART.h"#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlongvoidUART_PortInit(){P3SEL|=BIT4+BIT5;//設(shè)置IO口為第二功能模式,啟用UART功能P3DIR|=BIT4;P3DIR&=~BIT5;}voidUART_Config(){U0CTL|=SWRST+CHAR;//復(fù)位SWRST,8位數(shù)據(jù)模式U0TCTL|=SSEL0;//SMCLK為串口時鐘U0BR1=0x00;//BRCLK=1MHZ,Baud=BRCLK/NU0BR0=0x03;//N=UBR+(UxMCTL)/8U0MCTL=0x4A;//微調(diào)寄存器為0,波特率9600bpsME1|=UTXE0;//UART0發(fā)送使能ME1|=URXE0;//UART0接收使能U0CTL&=~SWRST;//IE1|=URXIE0;//接收中斷使能位}//*************************************************************************//串口0發(fā)送數(shù)據(jù)函數(shù)//*************************************************************************voidSend_Byte(uchardata){while(!(IFG1&UTXIFG0));//發(fā)送寄存器空的時候發(fā)送數(shù)據(jù)U0TXBUF=data;}//*************************************************************************//串口0發(fā)送字符串函數(shù)//********************************************************************

溫馨提示

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

最新文檔

評論

0/150

提交評論