




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 本科畢業(yè)論文(設(shè)計(jì)) 題目:基于MSP430單片機(jī)和PC機(jī)串口通信 軟件設(shè)計(jì)姓 名: 張書(shū)建 學(xué) 號(hào): 10s062051018 專(zhuān) 業(yè): 電子信息工程 院 系: 電子通信工程 指導(dǎo)老師: 王瓊 實(shí)習(xí)單位: 京信通信安徽分公司完成時(shí)間: 5月30 安徽新華學(xué)院教務(wù)處制目 錄內(nèi)容摘要3ABSTRACT4第一章:引言41.1 課題意義與背景41.2 本文的設(shè)計(jì)目標(biāo)5第二章:串行通信接口系統(tǒng)結(jié)構(gòu)52.1串行通信的基本原理52.2 串行通信接口系統(tǒng)基本結(jié)構(gòu)6第三章:串行通信接口硬件電路分析83.1 串行通信接口硬件電路原理圖和分析83.2 硬件電路功能分析93.3 MSP430單片機(jī)串口寄存器介紹9
2、3.4 DS18B20寄存器的介紹12第四章:軟件設(shè)計(jì)144.1 下位機(jī)程序設(shè)計(jì)144.1.1 系統(tǒng)流程圖設(shè)計(jì)144.1.2 MSP430串口程序設(shè)計(jì)154.2上位機(jī)程序設(shè)計(jì)184.2.1 SerialPort類(lèi)的介紹184.2.2 基于Winform的可視化應(yīng)用程序設(shè)計(jì)20第五章: 系統(tǒng)測(cè)試及結(jié)果分析245.1 測(cè)試結(jié)果的記錄245.1.1 驗(yàn)證PC機(jī)通過(guò)RS232口傳輸字符到單片機(jī)并控制TFT液晶顯示245.1.2 驗(yàn)證單片機(jī)通過(guò)串口把DS18B20實(shí)時(shí)溫度傳遞給PC機(jī)顯示265.1.3驗(yàn)證PC機(jī)接受單片機(jī)通過(guò)串口發(fā)來(lái)的字符265.1.4 驗(yàn)證通過(guò)上位機(jī)的應(yīng)用程序的按鈕控制單片機(jī)的TFT使
3、顯示內(nèi)容275.2 測(cè)試結(jié)果的分析29結(jié) 論29參考文獻(xiàn)30附錄30附錄1.部分程序源代碼30附錄2.上位機(jī)部分程序源代碼35謝辭38綜述39封底39內(nèi)容摘要 在測(cè)量系統(tǒng)、工業(yè)控制、數(shù)據(jù)采集和智能儀器儀表領(lǐng)域中,串行通信是一種基本而又靈活方便的通信方式,串行接口是PC機(jī)與單片機(jī)之間實(shí)現(xiàn)數(shù)據(jù)交換的一種常用通信接口。本次畢業(yè)設(shè)計(jì)的任務(wù)是:基于MSP430系列單片機(jī)自身優(yōu)越的性能以及超低功耗的特點(diǎn), 設(shè)計(jì)MSP430F149單片機(jī)與上位機(jī)(PC機(jī))串行通信接口系統(tǒng)軟件,實(shí)現(xiàn)MSP430F149的USART與PC機(jī)通信功能。本課題設(shè)計(jì)的軟件環(huán)境是IAR Embedded Workbench EW430
4、、visual studio 2010和net framework 4.0,在此平臺(tái)上應(yīng)用C和C#語(yǔ)言設(shè)計(jì)編寫(xiě)了下位機(jī)(MSP430F149單片機(jī))串行通信程序和上位機(jī)基于WinForm可視化通信界面應(yīng)用程序,以及下位機(jī)TFT液晶顯示程序。經(jīng)通信接口電路實(shí)驗(yàn)測(cè)試,設(shè)計(jì)編寫(xiě)的軟件程序?qū)崿F(xiàn)了上位機(jī)與下位機(jī)的雙向通信功能,并通過(guò)上位機(jī)可視化窗口及下位機(jī)TFT液晶屏實(shí)時(shí)顯示通信內(nèi)容,達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。關(guān)鍵詞:MSP430F149,USART,RS-232協(xié)議,SerialPort 類(lèi) ABSTRACT In the measurement system, industry control, dat
5、a acquisition and intelligent instrumentation field, serial communication is a basic and flexible convenient communication mode, serial interface is a PC and single chip microcomputer realize data exchange between the common communication interface. The graduation design task is: MSP430 MCU based on
6、 their superior performance and low power consumption characteristics, design MSP430F149 single-chip microcomputer and the upper machine (PC) serial communication interface system software, realize the MSP430F149 USART and PC communication function. This topic design software environment is IAR Embe
7、dded Workbench EW430, visual studio 2010 and net framework 4.0, in this platform application C and C # write the next place machine design (MSP430F149 SCM) serial communication program and PC based on WinForm visual communication interface applications, and a machine under TFT LCD display program. T
8、he communication interface circuit experiment test, the design of the software program written realized the PC and a two-way communication under the machine function, and by using computer visualization window and a machine under TFT LCD screen display real-time communication content, achieve the ex
9、pected design goal.KEYWORDS: MSP430F149, USART, RS-232 agreement, SerilPort Class第一章:引言1.1 課題意義與背景計(jì)算機(jī)串口編寫(xiě)的通信軟件有著十分廣泛的應(yīng)用,如電話,傳真,視頻監(jiān)控.一般情況下,涉及到遠(yuǎn)程通信,自動(dòng)控制,大型車(chē)輛控制系統(tǒng)、機(jī)器人控制系統(tǒng)等。特別PC機(jī)與單片機(jī)的串口通信在工業(yè)控制中非常重要.MSP430系列單片機(jī)是一種超低功耗的混合信號(hào)控制器,在控制系統(tǒng)以及數(shù)據(jù)采集系統(tǒng)中有廣泛的應(yīng)用,在8MHz晶體下運(yùn)算能力達(dá)1MIPS(100萬(wàn)/秒),是傳統(tǒng)51單片機(jī)遠(yuǎn)遠(yuǎn)達(dá)不到的,這使該系列單片機(jī)采用C語(yǔ)言開(kāi)發(fā)有
10、很高的效率,所以廣泛應(yīng)用工業(yè)生產(chǎn),研究MSP430和PC的串口通信有著深遠(yuǎn)的意義.1.2 本文的設(shè)計(jì)目標(biāo)本設(shè)計(jì)是基于MSP430F149和PC機(jī)串口通訊。在硬件上要想與PC 串口或者其它帶有串口的終端設(shè)備相連接,必須要進(jìn)行EIA-RS-232-C 與MSP430 電平和邏輯關(guān)系的轉(zhuǎn)換,本設(shè)計(jì)采用MAX3232芯片,完成3V5V 電平與串口電平的雙向轉(zhuǎn)換;本設(shè)計(jì)依據(jù)MSP430F149的串行通信模塊的構(gòu)成,利用其異步通信模式的特點(diǎn),按照位尋址的方式設(shè)計(jì)的通信協(xié)議,依此設(shè)計(jì)出下位機(jī)的接收和發(fā)送程序和DS18B20,TFT程序,以及上位機(jī)的C#通信程序。第二章:串行通信接口系統(tǒng)結(jié)構(gòu)2.1串行通信的基
11、本原理按照通信的形式可以分為兩種,其中一種為并行傳輸?shù)耐ㄐ?,即并行通信(Parallel Communication),另一種則為串行通信(Serisl Communication)。這兩種通信方式的區(qū)別是,并行通信一次的傳輸數(shù)據(jù)量為8位(1個(gè)字節(jié));而串行通信則一次只能傳輸1位,傳輸1字節(jié)數(shù)據(jù)(8位)數(shù)據(jù)就需要8次才能傳出去,在實(shí)際應(yīng)用中串口通信用線少,傳輸容易,硬件電路連接方便。而且通過(guò)軟件設(shè)置PC和單片機(jī)的波特率,數(shù)據(jù)位,奇偶位一定要相同,如圖 圖1 PC機(jī)和單片機(jī)連接2.2 串行通信接口系統(tǒng)基本結(jié)構(gòu) PC機(jī)的串口是美國(guó)電子工業(yè)協(xié)會(huì)(EIA)制定的串口EIA-RS-232通信協(xié)議,其信號(hào)
12、電平采用負(fù)邏輯,邏輯“1”的電平是-5V15V,邏輯“0”的電平為+5V+15V,因?yàn)槠溆?V的噪聲容限,故最終限制接收器能識(shí)別低至+3V的信號(hào)作為邏輯“0”,高到-3V的信號(hào) 作為邏輯“1”。因此, RS-232-C最高傳輸速率為20kb/s,最大直接連接長(zhǎng)度為15m。 圖2 九針串口 圖2.2中DB9為即為我們選用的RS-232連接器9針串行口,其插針?lè)謩e對(duì)應(yīng)RS-232-C標(biāo)準(zhǔn)接口9根常用線。其對(duì)應(yīng)關(guān)系如表1所示。表1DB9管腳號(hào)插針功能說(shuō)明標(biāo)記1接收線信號(hào)檢出DCD2接收數(shù)據(jù)RD3發(fā)送數(shù)據(jù)TD4數(shù)據(jù)終端就緒DTR5信號(hào)地SG6數(shù)據(jù)傳輸設(shè)備就緒DSR7請(qǐng)求發(fā)送RTS8允許發(fā)送CTS9振鈴
13、指示RIMSP430F149串行通信接口實(shí)現(xiàn)了兩種功能,使得串行通信能夠以?xún)煞N模式通信。第一種模式是熟悉的異步串行通信協(xié)議UART;第二種模式是外圍模塊接口功能SPI,也得到廣泛應(yīng)用。經(jīng)過(guò)適當(dāng)?shù)能浻布O(shè)計(jì),這兩種模式可以交替使用。由MSP430F149內(nèi)部控制寄存器UCTL中的SYNC位來(lái)定義通信模式:SYNC=0: 選擇異步通信模式UARTSYNC=1: 選擇同步通信模式SPIMSP430F149有兩個(gè)異步串行通信接口,分別是USART0和USART1。如圖2.3所示。圖3 單片機(jī)MSP430F149的串口模塊第三章:串行通信接口硬件電路分析3.1 串行通信接口硬件電路原理圖和分析如圖3.1
14、所示。因?yàn)镻C機(jī)的RS232接口輸出正電平在+5+15V,負(fù)電平在-5-15V電平。而單片機(jī)是TTL電平,電壓范圍規(guī)定輸出高電平>2.4V,輸出低電平<0.4V。在室溫下,一般輸出高電平是3.5V,輸出低電平是0.2V。最小輸入高電平和低電平:輸入高電平>=2.0V,輸入低電平<=0.8V,所以通過(guò)MAX232將PC的RS232的電平轉(zhuǎn)換成符合單片機(jī)的TTL電平。單片機(jī)MSP430F149通過(guò)串口UART1 P3.6和P3.7和MAX232連接RIN和TXR1OUT。PC機(jī)通過(guò)的DB9的2、3引腳接TXRIN1和RXOUT1.從而實(shí)現(xiàn)串口通信。圖4 單片機(jī)MSP430F
15、149的串口通信原理圖3.2 硬件電路功能分析本次畢業(yè)設(shè)計(jì)的任務(wù)是基于上述的電路原理圖設(shè)計(jì)通信軟件程序模擬工業(yè)溫度控制的過(guò)程:1.PC機(jī)通過(guò)RS232口傳輸字符到單片機(jī)并控制TFT液晶顯示。2.單片機(jī)通過(guò)串口把DS18B20實(shí)時(shí)溫度傳遞給PC機(jī)顯示。3.PC機(jī)接受單片機(jī)串口發(fā)送來(lái)的DS18B20的溫度數(shù)據(jù)并在應(yīng)用軟件中顯示。從而模擬工業(yè)溫度控制。體現(xiàn)設(shè)計(jì)的價(jià)值。3.3 MSP430單片機(jī)串口寄存器介紹MSP430F149有兩個(gè)串口UART0和 UART1,本設(shè)計(jì)選用UART1串口。UART1串口工作方式通過(guò)下列寄存器設(shè)定。(1)串口控制寄存器UCTL圖5 串口控制寄存器格式PENA 允許位 0
16、 校驗(yàn)禁止 1 校驗(yàn)允許 PEA 奇偶校驗(yàn)位,該位在校驗(yàn)允許時(shí)有效0 奇校驗(yàn) 1 偶校驗(yàn)SPB 決定發(fā)送的停止位數(shù),但接收時(shí)接收器只檢測(cè) 1 位停止位0 1 位停止位 1 2 位停止位CHAR 字符長(zhǎng)度 0 7 位 1 8 位LISTEN 反饋選擇.選擇是否發(fā)送數(shù)據(jù)由內(nèi)部反饋給接收器0 無(wú)反饋 1 有反饋,發(fā)送信號(hào)由內(nèi)部反饋給接收器SYNC 模塊的模式選擇0 UART 模式異步 1 SPI 模式同步MM多機(jī)模式選擇位0 線路空閑多機(jī)協(xié)議 1 地址位多機(jī)協(xié)議(2)串口發(fā)送控制寄存器UxTCL圖6 串口發(fā)送控制寄存器格式SYNC 時(shí)鐘極性控制位0 UART 信號(hào)與UART 信號(hào)極性相同 1 UAR
17、T信號(hào)與 UART 信號(hào)極性相反SSEL1、SSEL0 時(shí)鐘源選擇,此兩位確定波特率發(fā)生器的時(shí)鐘源0 外部時(shí)鐘 UCLKI 1 輔助時(shí)鐘 ACLK2 子系統(tǒng)時(shí)鐘 SMCLK 3 子系統(tǒng)時(shí)鐘 SMCLKURXSE 接收觸發(fā)沿控制位0 沒(méi)有接收觸發(fā)沿檢測(cè) 1 有接收觸發(fā)沿檢測(cè)TXWAKE 傳輸喚醒控制0 下一個(gè)要傳輸?shù)淖址麨閿?shù)據(jù) 1 下一個(gè)要傳輸?shù)淖址堑刂稵XEPT 發(fā)送器空標(biāo)志,在異步模式與同步模式時(shí)是不一樣的。0 正在傳輸數(shù)據(jù)或者發(fā)送緩沖器(UTXBUF)有數(shù)據(jù) 1表示發(fā)送移位寄存器和 UTXBUF 空或者 SWRST=176543210FEPEOEEEBRKURXEIEURXWIERXWA
18、KERXERR圖7 單片機(jī)MSP430F149的串口接受控制寄存器FE 幀錯(cuò)志位0 沒(méi)有幀錯(cuò)誤 1 幀錯(cuò)誤PE 校驗(yàn)錯(cuò)誤標(biāo)志位0 校驗(yàn)正確 1 校驗(yàn)錯(cuò)誤OE 溢出標(biāo)志位0 無(wú)溢出 1 有溢出BRK 打斷檢測(cè)位0 沒(méi)有被打斷 1 被打斷URXEIE 接收出錯(cuò)中斷允許位0 不允許中斷,不接收出錯(cuò)字符并且不改變 URXIFG 標(biāo)志 1 允許中斷,出錯(cuò)字符接收并且能夠置位 URXIFGURXWIE 接收喚醒中斷允許位,當(dāng)接收到地址字符時(shí),該位能夠置位 URXIFG,當(dāng)URXEIE=0,如果接收內(nèi)容有錯(cuò)誤,該位不能置位 URXIFG。0 所有接收的字符都能夠置位 URXIFG 1 只能接收到地址字符才能
19、置位 URXIFG3.4 DS18B20寄存器的介紹1.DS18B20的特點(diǎn)全數(shù)字溫度轉(zhuǎn)換及輸出。 先進(jìn)的單總線數(shù)據(jù)通信。 最高12位分辨率,精度可達(dá)土0.5攝氏度。 12位分辨率時(shí)的最大工作周期為750毫秒。 可選擇寄生工作方式。 檢測(cè)溫度范圍為55°C +125°C (67°F +257°F) 內(nèi)置EEPROM,限溫報(bào)警功能。 64位光刻ROM,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接。 多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。2.DS18B20在本設(shè)計(jì)中一拖一的方式連接,如下圖圖8 MSP430F149與DS18B20連接圖 DS18B20有64ROM其前8位是單線系
20、列編碼 ,后面48位是芯片唯一的序列號(hào),最后8位是以上56的位的CRC碼(冗余校驗(yàn))。所以一個(gè)MSP430單片機(jī)可以同時(shí)帶多個(gè)DS18B20.第四章:軟件設(shè)計(jì)4.1 下位機(jī)程序設(shè)計(jì)4.1.1 系統(tǒng)流程圖設(shè)計(jì)下位機(jī)(MSP430單片機(jī))軟件設(shè)計(jì)包括DS18B20、單片機(jī)、TFT初始化模塊、串口通信程序模塊和主處理程序模塊。實(shí)現(xiàn)與上位機(jī)的串行通信和溫度及通信數(shù)據(jù)的實(shí)時(shí)顯示功能。設(shè)計(jì)的下位機(jī)軟件流程如圖4.1所示。圖9 下位機(jī)軟件流程圖4.1.2 MSP430串口程序設(shè)計(jì)一 軟件設(shè)計(jì)功能1.實(shí)現(xiàn)PC機(jī)和單片機(jī)液晶TFT字符顯示,從而掌握字符顯示原理。 2.單片機(jī)通過(guò)串口把DS18B20實(shí)時(shí)溫度傳遞給
21、PC機(jī)顯示。二 軟件設(shè)計(jì)思路1下位機(jī)(單片機(jī))和PC的串口都符合符合RS232通信協(xié)議,如圖10, 開(kāi)始位 數(shù)據(jù)位 奇偶校驗(yàn)位 停止位圖10 RS232通信協(xié)議所以下位機(jī)(單片機(jī))和PC的波特率和開(kāi)始位和奇偶校驗(yàn)位和停止位相同就可以實(shí)現(xiàn)串口通信。下位機(jī)(單片機(jī))通過(guò)配置寄存器圖現(xiàn)實(shí)波特率為1200.開(kāi)始位為1位、數(shù)據(jù)位為8位、無(wú)奇偶校驗(yàn)位、停止位1位。如配置串口控制寄存器UCTL。UCTL=0x10,就配置好的停止位、數(shù)據(jù)位、奇偶校驗(yàn)位、開(kāi)始位就這么簡(jiǎn)單。在下位機(jī)軟件編程中,因?yàn)榈腗SP430單片機(jī)的引腳都第二功能,而串口是第二功能,所以必須要讓單片機(jī)的引腳進(jìn)入第二功能。字符在TFT的現(xiàn)實(shí)原理
22、。PC機(jī)和單片機(jī)顯示字符原理類(lèi)似,通過(guò)的點(diǎn)陣的形式進(jìn)行顯示。如字符A的點(diǎn)陣圖的點(diǎn)陣為:寬x高=8x16 ,通過(guò)zimov2軟件生成C語(yǔ)言數(shù)組,/*- 文字: A -*/*- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=8x16 -*/0x00,0x00,0x00,0x10,0x10,0x18,0x28,0x28,0x24,0x3C,0x44,0x42,0x42,0xE7,0x00,0x00 取存在單片機(jī)的代碼段,然后通過(guò)軟件編程,顯示你需要的字符。實(shí)現(xiàn)PC機(jī)和單片機(jī)液晶TFT字符顯示具體的流程圖如圖11 圖11 MSP430F149的串口通信程序流程圖2.DS18B20的程序編寫(xiě),DS18B20
23、是單總線通信協(xié)議,對(duì)時(shí)序的要求非常嚴(yán)格。所以需要精確定時(shí),單片機(jī)MSP430F149的定時(shí)器功能強(qiáng)大,通過(guò)合理配置定時(shí)器的寄存器可以實(shí)現(xiàn)精確定時(shí),DS18B20在數(shù)據(jù)位傳輸?shù)臅r(shí)候低位在前,這點(diǎn)非常重要,DS18B20在進(jìn)行溫度啟動(dòng)和溫度轉(zhuǎn)換、溫度讀取的時(shí)候必須先進(jìn)行復(fù)位操作,具體操作看圖12流程圖圖12 DS18B20的流程圖 4.2上位機(jī)程序設(shè)計(jì)4.2.1 SerialPort類(lèi)的介紹上位機(jī)串口通信程序的開(kāi)發(fā)平臺(tái)是基于Windows操作系統(tǒng)的VS2010環(huán)境。VS2010軟件界面非常方便友好,編程工作量相對(duì)較小,只需進(jìn)行主要應(yīng)用功能的編程和少量界面控制的編程。上位機(jī)程序設(shè)計(jì)的關(guān)鍵技術(shù)是運(yùn)用C
24、#語(yǔ)言結(jié)合NET Framework 4.0中提供的SerialPort類(lèi),該類(lèi)主要實(shí)現(xiàn)串口數(shù)據(jù)通信等應(yīng)用。下面主要介紹該類(lèi)的主要屬性(表2)和方法(表3)。表2 SerialPort類(lèi)的常用屬性名 稱(chēng)說(shuō) 明BaseStream獲取 SerialPort 對(duì)象的基礎(chǔ) Stream 對(duì)象BaudRate獲取或設(shè)置串行波特率BreakState獲取或設(shè)置中斷信號(hào)狀態(tài)BytesToRead獲取接收緩沖區(qū)中數(shù)據(jù)的字節(jié)數(shù)BytesToWrite獲取發(fā)送緩沖區(qū)中數(shù)據(jù)的字節(jié)數(shù)CDHolding獲取端口的載波檢測(cè)行的狀態(tài)CtsHolding獲取“可以發(fā)送”行的狀態(tài)DataBits獲取或設(shè)置每個(gè)字節(jié)的標(biāo)準(zhǔn)數(shù)據(jù)位
25、長(zhǎng)度DiscardNull獲取或設(shè)置一個(gè)值,該值指示 Null 字節(jié)在端口和接收緩沖區(qū)之間傳輸時(shí)是否被忽略DsrHolding獲取數(shù)據(jù)設(shè)置就緒 (DSR) 信號(hào)的狀態(tài)DtrEnable獲取或設(shè)置一個(gè)值,該值在串行通信過(guò)程中啟用數(shù)據(jù)終端就緒 (DTR) 信號(hào)Encoding獲取或設(shè)置傳輸前后文本轉(zhuǎn)換的字節(jié)編碼Handshake獲取或設(shè)置串行端口數(shù)據(jù)傳輸?shù)奈帐謪f(xié)議IsOpen獲取一個(gè)值,該值指示 SerialPort 對(duì)象的打開(kāi)或關(guān)閉狀態(tài)NewLine獲取或設(shè)置用于解釋 ReadLine( )和WriteLine( )方法調(diào)用結(jié)束的值Parity獲取或設(shè)置奇偶校驗(yàn)檢查協(xié)議名 稱(chēng)說(shuō) 明ParityR
26、eplace獲取或設(shè)置一個(gè)字節(jié),該字節(jié)在發(fā)生奇偶校驗(yàn)錯(cuò)誤時(shí)替換數(shù)據(jù)流中的無(wú)效字節(jié)PortName獲取或設(shè)置通信端口,包括但不限于所有可用的 COM 端口ReadBufferSize獲取或設(shè)置 SerialPort 輸入緩沖區(qū)的大小ReadTimeout獲取或設(shè)置讀取操作未完成時(shí)發(fā)生超時(shí)之前的毫秒數(shù)ReceivedBytesThreshold獲取或設(shè)置 DataReceived 事件發(fā)生前內(nèi)部輸入緩沖區(qū)中的字節(jié)數(shù)RtsEnable獲取或設(shè)置一個(gè)值,該值指示在串行通信中是否啟用請(qǐng)求發(fā)送 (RTS) 信號(hào)StopBits獲取或設(shè)置每個(gè)字節(jié)的標(biāo)準(zhǔn)停止位數(shù)WriteBufferSize獲取或設(shè)置串行端口
27、輸出緩沖區(qū)的大小WriteTimeout獲取或設(shè)置寫(xiě)入操作未完成時(shí)發(fā)生超時(shí)之前的毫秒數(shù)表3 SerialPort類(lèi)的常用方法方 法 名 稱(chēng)說(shuō) 明Close關(guān)閉端口連接,將 IsOpen 屬性設(shè)置為False,并釋放內(nèi)部 Stream 對(duì)象Open打開(kāi)一個(gè)新的串行端口連接Read從 SerialPort 輸入緩沖區(qū)中讀取ReadByte從 SerialPort 輸入緩沖區(qū)中同步讀取一個(gè)字節(jié)ReadChar從 SerialPort 輸入緩沖區(qū)中同步讀取一個(gè)字符ReadLine一直讀取到輸入緩沖區(qū)中的 NewLine 值ReadTo一直讀取到輸入緩沖區(qū)中指定 value 的字符串Write已重載。將
28、數(shù)據(jù)寫(xiě)入串行端口輸出緩沖區(qū)WriteLine將指定的字符串和 NewLine 值寫(xiě)入輸出緩沖區(qū)4.2.2 基于Winform的可視化應(yīng)用程序設(shè)計(jì)串口畢業(yè)設(shè)計(jì)應(yīng)用軟件基于微軟的VS2010開(kāi)發(fā)平臺(tái)。運(yùn)用VS2010提供的Winform的可視化界面。利用工具中提供的SerialPort類(lèi)、Button類(lèi)、Text類(lèi)等實(shí)現(xiàn)串口的波特率,串口號(hào),停止位,數(shù)據(jù)位,起始位,接受數(shù)據(jù)顯示區(qū),發(fā)送數(shù)據(jù)顯示區(qū),溫度顯示。具體步驟如下(1)打開(kāi)VS2010開(kāi)發(fā)軟件圖13 啟動(dòng)VS2010(2)打開(kāi)文件>新建>windows窗體應(yīng)用程序圖14 創(chuàng)建Winform窗口程序(3)打開(kāi)左邊的工具箱增加Seri
29、alPort控件、Button控件、Text控件等然后拖入Winform界面中圖15 在Winform窗口程序中加入需要的控件(4)在Winform界面中,點(diǎn)擊SerialPort類(lèi),在界面的右下角出現(xiàn)屬性,設(shè)置波特率1200、停止位1、開(kāi)始位1、數(shù)據(jù)位8位、串口號(hào)。圖16設(shè)置SerialPort的屬性 (5)在Winform界面中,內(nèi)部代碼實(shí)現(xiàn)見(jiàn)附錄3上位機(jī)代碼 (6)生成的應(yīng)用程序圖17 最后生成上位機(jī)控制界面第五章: 系統(tǒng)測(cè)試及結(jié)果分析5.1 測(cè)試結(jié)果的記錄5.1.1 驗(yàn)證PC機(jī)通過(guò)RS232口傳輸字符到單片機(jī)并控制TFT液晶顯示圖18 上位機(jī)和單片機(jī)串口通信顯示結(jié)果 圖19 上位機(jī)通過(guò)
30、串口發(fā)送給單片機(jī)字符顯示結(jié)果圖20單片機(jī)接受PC機(jī)的字符并在TFT顯示字符結(jié)果5.1.2 驗(yàn)證單片機(jī)通過(guò)串口把DS18B20實(shí)時(shí)溫度傳遞給PC機(jī)顯示圖21 PC機(jī)顯示通過(guò)串口接受DS18B20的溫度結(jié)果5.1.3驗(yàn)證PC機(jī)接受單片機(jī)通過(guò)串口發(fā)來(lái)的字符圖22 PC機(jī)顯示通過(guò)串口接受單片機(jī)發(fā)來(lái)的字符結(jié)果5.1.4 驗(yàn)證通過(guò)上位機(jī)的應(yīng)用程序的按鈕控制單片機(jī)的TFT使顯示內(nèi)容圖23 單片機(jī)發(fā)送圖標(biāo)命令顯示新華學(xué)院圖標(biāo)結(jié)果圖24 單片機(jī)接受圖標(biāo)命令顯示新華學(xué)院圖標(biāo)結(jié)果圖25 上位機(jī)通過(guò)串口發(fā)送校訓(xùn)命令給單片機(jī)結(jié)果 圖26 單片機(jī)接受校訓(xùn)命令顯示新華學(xué)院校訓(xùn)結(jié)果5.2 測(cè)試結(jié)果的分析 通過(guò)無(wú)數(shù)次的修改程序
31、,終于達(dá)到畢業(yè)設(shè)計(jì)要求的結(jié)果。圖17結(jié)果分析通過(guò)PC機(jī)的串口向單片機(jī)串口發(fā)送一段英語(yǔ)字符驗(yàn)證單片機(jī)是否可以正確的接受并顯示在TFT液晶顯示器上。圖20結(jié)果分析,通過(guò)DS18B20采集室內(nèi)溫度,DS18B20將采集的數(shù)據(jù)發(fā)送給單片機(jī)進(jìn)行分析處理,然后把處理好的數(shù)據(jù)通過(guò)串口發(fā)送PC機(jī)顯示。結(jié) 論串行通信端口在系統(tǒng)控制的范疇中一直占據(jù)著及其重要的地位,它不僅沒(méi)有因?yàn)闀r(shí)代的進(jìn)步而遭淘汰,反而在規(guī)格上越來(lái)越完善,應(yīng)用也越來(lái)越廣泛。作為一種基本而又靈活方便的通信方式,串口通信被廣泛應(yīng)用于PC與單片機(jī)之間的數(shù)據(jù)交換以及其他工業(yè)控制與自動(dòng)控制中。本設(shè)計(jì)給出了上位PC機(jī)與下位單片機(jī)(MSP430F149)之間進(jìn)
32、行異步串行通信的解決方案,實(shí)現(xiàn)了上位機(jī)與下位機(jī)的雙向通信功能。上位機(jī)應(yīng)用VS2010開(kāi)發(fā)工具,運(yùn)用C#語(yǔ)言和Net Framework 4.0提供的SerialPort類(lèi)設(shè)計(jì)的可視化應(yīng)用程序界面,使系統(tǒng)控制界面化,可視化,給工業(yè)控制提供了方便。通過(guò)本次畢業(yè)設(shè)計(jì),使我對(duì)單片機(jī)和PC機(jī)的串口通信有的深刻的了解,從中學(xué)習(xí)很多知識(shí),雖然遇到很多問(wèn)題,通過(guò)請(qǐng)教和自我學(xué)習(xí)得到解決,加強(qiáng)自我面對(duì)困難的信心。參考文獻(xiàn)1 張晞,王德銀,張晨. MSP430系列單片機(jī)實(shí)用C語(yǔ)言程序設(shè)計(jì)M. 北京:人民郵電出版社,2005.2 MSP430 F149數(shù)據(jù)手冊(cè) 訊通科技3 12864C-1 液晶顯示器數(shù)據(jù)手冊(cè) 訊通科
33、技4 胡大可,MSP430系列FLASH型超低功耗16位單片機(jī)M北京:北京航空航天大學(xué)出版20105 MSP430 F149用戶手冊(cè)6陳明熒8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材M. 清華大學(xué)出版社,2004:2843.7 秦實(shí)宏,周龍等單片機(jī)原理與應(yīng)用技術(shù)M. 中國(guó)水利水電出版社,2005:3550.8 求是科技單片機(jī)通信技術(shù)與工程實(shí)踐M. 人民郵電出版社, 2004:1214.9 求是科技單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航M. 人民郵電出版社, 2004:122135.10 馬忠梅等單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)M. 北京航空航天大學(xué)出版社,2003:3739.11 楊將新,李華軍等單片機(jī)程序設(shè)計(jì)及應(yīng)用M.
34、電子工業(yè)出版社, 2006:142154.12 范風(fēng)強(qiáng),蘭蟬麗單片機(jī)語(yǔ)言C51應(yīng)用實(shí)戰(zhàn)集錦M. 電子工業(yè)出版社, 2005:212234.附錄附錄1.部分程序源代碼/* 模塊功能介紹:本模塊UART1主要是PC和單片機(jī)單機(jī)通信,通過(guò)配置串口的寄存器完成 波特率.開(kāi)始位、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位和串口單片機(jī)收發(fā)數(shù)據(jù)*/#include<msp430x14x.h>#include"uart.h"#include"msp430io.h"/* - 功能描述:UART1串口IO配置 函數(shù)作用:UART1串口IO配置P3.6/UTXD1 P3.7/UR
35、XD1 IO復(fù)位默認(rèn)為輸入 - 是輸入?yún)?shù): - 返回說(shuō)明:無(wú) */ void UART1_ioconfig(void) SETAFP3(BIT6);/將單片機(jī)的P3.6的引腳進(jìn)入第二串口發(fā)送功能 SETAFP3(BIT7); /將單片機(jī)的P3.7的引腳進(jìn)入第二串口接受功能 OUTDIRP3(BIT6); /將單片機(jī)的P3.6的引腳的方向設(shè)置成輸出 INDIRP3(BIT7); /將單片機(jī)的P3.7的引腳的方向設(shè)置成輸如/* - 功能描述:UART1串口初始化函數(shù) 函數(shù)作用:波特率1200,無(wú)奇偶校驗(yàn)位,一個(gè)開(kāi)始一個(gè)停止 數(shù)據(jù)8位,時(shí)鐘源選擇ACLK,如果想設(shè)置其他的格式請(qǐng)參考數(shù)據(jù)手冊(cè) - 是
36、輸入?yún)?shù):無(wú) - 返回說(shuō)明:無(wú) */ void UART1_Init() UCTL1|=CHAR; /長(zhǎng)度8位 UTCTL1|=SSEL0;/選擇ACLK時(shí)鐘為串口時(shí)鐘源 ME2|= UTXE1+URXE1; / 模塊允許寄存器設(shè)置,使能USART0 TXD/RXD U1BR0 = 0x1B; /配置寄存器使波特率為1200 U1BR1 = 0x00; UMCTL1 = 0x03; UCTL1&=SWRST; /開(kāi)啟串口工作 IE2|=URXIE1; / 中斷允許寄存器設(shè)置,接收中斷允許/* - 功能描述:UART1串口發(fā)送一個(gè)字節(jié) 函數(shù)作用:發(fā)送一個(gè)字節(jié)數(shù)據(jù)PC機(jī) - 是輸入?yún)?shù):
37、- 返回說(shuō)明:無(wú) */void UART1_Send_Byte(U8 c) TXBUF1=c;/發(fā)送寄存器接受用戶的數(shù)據(jù) while (!(IFG2&UTXIFG1);/ USART1發(fā)送UTXIFG1=1,表示UTXBUF1準(zhǔn)備好發(fā)送一下字符,不要寫(xiě)成 if (IFG2 & UTXIFG0!=0)/* - 功能描述:通過(guò)UART1串口終端接受一個(gè)字節(jié) 函數(shù)作用:接受PC機(jī)的一個(gè)字節(jié)數(shù)據(jù) - 是輸入?yún)?shù): - 返回說(shuō)明:無(wú) */#pragma vector=UART1RX_VECTOR_interrupt void UART1_RXISR(void) uchar temp; t
38、emp=U1RXBUF;/單片機(jī)PC機(jī)發(fā)來(lái)的數(shù)據(jù)#include<msp430x14x.h>#include"ds18b20.h"#include"msp430io.h"#include"delay.h"#define DQHIGH HIGHP2(BIT4)#define DQLOW LOWP2(BIT4)/* - 功能描述:DS18B20初始化 函數(shù)作用:DS18B20初始化 - 是輸入?yún)?shù):無(wú) - 返回說(shuō)明:初始化狀態(tài)標(biāo)志:1失敗,0成功 */ uchar DS18B20_Init()uchar state=0; _D
39、INT();/關(guān)中斷 DQHIGH;/數(shù)據(jù)線拉高 _NOP(); DQLOW; /數(shù)據(jù)線拉低 Delayus(720); DQHIGH; Delayus(55); P2DIR&=BIT4;/將P2.4方向設(shè)置成輸入或者INDIRP2(BIT2); _NOP(); if(P2IN&BIT4) /判斷DS18B20是否存在 state=1; P2DIR|=BIT4; /將P2.4方向設(shè)置成輸出 else state=0; P2DIR|=BIT4; /將P2.4方向設(shè)置成輸出 DQHIGH; _EINT(); Delayus(480); return state; /返回存在結(jié)果 /
40、* - 功能描述:DS18B20_Wirte 函數(shù)作用:向DS18B20寫(xiě)命令或者數(shù)據(jù) - 是輸入?yún)?shù):命令或者數(shù)據(jù) - 返回說(shuō)明:無(wú) */ void DS18B20_Wirte(uchar data) uchar i; _DINT(); P2DIR|=BIT4; /將P2.4方向設(shè)置成輸出 for(i=0;i<8;i+)/一位位的發(fā)送 DQLOW; Delayus(6); if(data&0x01)DQHIGH; /從低位開(kāi)始發(fā)送 else DQLOW; data=data>>1; Delayus(50); DQHIGH; Delayus(10); _EINT();
41、 /* - 功能描述:DS18B20_Read 函數(shù)作用:從DS18B20讀數(shù)據(jù) - 是輸入?yún)?shù):命令或者參數(shù) - 返回說(shuō)明:初始化狀態(tài)標(biāo)志:1失敗,0成功 */ uchar DS18B20_Read()uchar i; uchar temp=0; _DINT(); P2DIR|=BIT4; /將P2.4方向設(shè)置成輸出 for(i=0;i<8;i+)/一位位的接受 DQLOW; Delayus(6); DQHIGH; Delayus(8); P2DIR&=BIT4; /將P2.4方向設(shè)置成輸入 _NOP(); if(P2IN&BIT4) temp|=0x80; /讀取溫度
42、數(shù)據(jù)從低位開(kāi)始接受 Delayus(45); P2DIR|=BIT4; /將P2.4方向設(shè)置成輸出 DQHIGH; Delayus(10); _EINT();return temp; /返回讀取數(shù)據(jù)給單片機(jī)/* - 功能描述:Convert_temp 函數(shù)作用:從DS18B20讀數(shù)據(jù) - 是輸入?yún)?shù):命令或者參數(shù) */ uint Convert_temperture()uint T_LOW,i,T;DS18B20_Init();/復(fù)位DS18B20DS18B20_Wirte(0xcc);/發(fā)送跳過(guò)ROM命令DS18B20_Wirte(0x44);/發(fā)送溫度轉(zhuǎn)換命令for(i=20;i>0
43、;i-)Delayus(60000);/延遲750MS以上為的保證轉(zhuǎn)換完成 DS18B20_Init();DS18B20_Wirte(0xcc); /發(fā)送跳過(guò)ROM命令DS18B20_Wirte(0xbe);/發(fā)送讀ScratchPadT_LOW=DS18B20_Read();/讀低8位T=DS18B20_Read();/讀高8位T=T<<8; /數(shù)據(jù)轉(zhuǎn)換T|=T_LOW;return(T); /返回溫度數(shù)據(jù)附錄2.上位機(jī)部分程序源代碼using System;using System.Collections.Generic;using System.ComponentModel;
44、using System.Data;using System.Drawing;using System.Linq;using System.Text; /引用VS2010的頭文件using System.Windows.Forms;using System.IO.Ports;using System.Threading;namespace WindowsFormsApplication8 public partial class 書(shū)建 : Form private int num= 0; private bool IsRxShow = true; /接受數(shù)據(jù)標(biāo)示位 private bool I
45、sOpen = true; /串口開(kāi)關(guān)標(biāo)示位 private string hz; public 書(shū)建() InitializeComponent(); private void btn_open_Click_1(object sender, EventArgs e) if (IsOpen) try if (comm.IsOpen) comm.Close(); comm.PortName = cb_comm.Text; comm.BaudRate = Convert.ToInt32(cb_btl.Text); comm.DataBits = Convert.ToInt32(cb_sjw.Text); switch (cb_xyw.SelectedIndex) /選擇奇偶位 case 0: comm.Parity = Parity.None; break; cas
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專(zhuān)業(yè)推廣合同范本
- 代銷(xiāo)終止協(xié)議合同范例
- 公司股股合同范例
- 刷白涂紅合同范例
- 兩個(gè)買(mǎi)方三方合同范本
- 農(nóng)村征地合同范例
- 加工外包協(xié)議合同范例
- 出售合同范例寫(xiě)
- 農(nóng)村公墓建設(shè)合同范例
- 產(chǎn)品訂做合同范例
- 靜脈留置針完整版課件
- 人力資源課件 -非人力資源經(jīng)理的人力資源管理
- GB/T 24475-2023電梯遠(yuǎn)程報(bào)警系統(tǒng)
- 衢州市建筑工程質(zhì)量通病防治措施
- 《中式面點(diǎn)技藝(第二版)》教案(高教版)
- 《神經(jīng)梅毒》教學(xué)課件
- 六年級(jí)下冊(cè)數(shù)學(xué)同步學(xué)堂
- 【電氣專(zhuān)業(yè)】15D501建筑物防雷設(shè)施安裝
- 通信施工安全生產(chǎn)培訓(xùn)(登高作業(yè)施工專(zhuān)題)
- 四位數(shù)乘四位數(shù)乘法題500道
- 企業(yè)生產(chǎn)管理-9S現(xiàn)場(chǎng)管理培訓(xùn)PPT課件教材講義
評(píng)論
0/150
提交評(píng)論