freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于msp430的溫度檢測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_終稿-資料下載頁

2024-08-27 15:17本頁面

【導(dǎo)讀】片機(jī),由于它的性價(jià)比和集成度高,受到廣大技術(shù)開發(fā)人員的青睞。MSP430單片機(jī)將會在工程技術(shù)應(yīng)用中得到廣泛的應(yīng)用。現(xiàn)了溫度的測量以及報(bào)警。

  

【正文】 //延時(shí) 9us DQ_in。 _NOP()。 if(DQ_val) temp |= 0x80。 DelayNus(45)。 //延時(shí) 45us DQ_out。 DQ1。 DelayNus(10)。 //延時(shí) 10us } _EINT()。 return temp。 } /******************************************* 函數(shù)名稱: Skip 功 能:發(fā)送跳過讀取產(chǎn)品 ID號命令 參 數(shù):無 返回值 :無 ********************************************/ void Skip(void) { Write_18B20(0xcc)。 } /******************************************* 函數(shù)名稱: Convert 功 能:發(fā) 送溫度轉(zhuǎn)換命令 參 數(shù):無 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 32頁 返回值 :無 ********************************************/ void Convert(void) { Write_18B20(0x44)。 } /******************************************* 函數(shù)名稱: Read_SP 功 能:發(fā)送讀 ScratchPad 命令 參 數(shù):無 返回值 :無 ********************************************/ void Read_SP(void) { Write_18B20(0xbe)。 } /******************************************* 函數(shù)名稱: ReadTemp 功 能:從 DS18B20 的 ScratchPad 讀取溫度轉(zhuǎn)換結(jié)果 參 數(shù):無 返回值 :讀取的溫度數(shù)值 ********************************************/ uint ReadTemp(void) { uchar temp_low。 uint temp。 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 33頁 temp_low = Read_18B20()。 //讀低位 temp = Read_18B20()。 //讀高位 temp = (temp8) | temp_low。 return temp。 } /******************************************* 函數(shù)名稱: ReadTemp 功 能:控制 DS18B20 完成一次溫度轉(zhuǎn)換 參 數(shù):無 返回值 :測 量的溫度數(shù)值 ********************************************/ uint Do1Convert(void) { uchar i。 do { i = Init_18B20()。 } while(i)。 Skip()。 Convert()。 for(i = 20。i 0。i) DelayNus(60000)。 //延時(shí) 800ms 以上 do { i = Init_18B20()。 } 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 34頁 while(i)。 Skip()。 Read_SP()。 return ReadTemp()。 } 報(bào)警模塊程序設(shè)計(jì) 本次報(bào)警模塊的處理比較簡單,有兩個(gè)部件組成,一個(gè)就是蜂鳴器,通過 I/O 口上送出來的數(shù)據(jù)來驅(qū)動蜂鳴器,而 LED 燈只要通過端口送出數(shù)據(jù)就可以。此模塊包括了初始化端口和數(shù)據(jù)產(chǎn)生兩個(gè)部分,關(guān)于初始化端口部分只要設(shè)置相應(yīng)的端口做為輸出方向,關(guān)于數(shù)據(jù)輸出則要執(zhí)行相應(yīng)的輸出操作。 同時(shí)在掃描 檢測溫度情況是用到了中斷處理,用 3ms 中斷,每過 3ms則檢測一下溫度是否在設(shè)定范圍內(nèi),若不在,則進(jìn)行相應(yīng)的報(bào)警參數(shù)設(shè)置,并且返回后,主程序通過判斷報(bào)警參數(shù)來進(jìn)行相應(yīng)的報(bào)警操作。 上位機(jī) 及輔助功能設(shè)計(jì) 采用 VB 作為該系統(tǒng)的上位機(jī)編程語言, 而于此 同時(shí)利用 RS232來 實(shí)現(xiàn)與單片機(jī) 之 間的通訊, 我們 通過上位機(jī)可以設(shè)置 PC 機(jī) RS232 接口的參數(shù), 這樣我就可以用它來對下位機(jī)采集得到的數(shù)據(jù)進(jìn)行動態(tài)的顯示,同時(shí)可以 根據(jù)設(shè)定的上下限 來進(jìn)行報(bào)警,還可以完成控制下位機(jī)的啟停。它的 組成大概有兩部分,一個(gè)是 主界面 ,即 實(shí)時(shí) 數(shù)據(jù)顯示界面。 另一個(gè) 則是串口 的 參數(shù)設(shè)置界面。在此部分的設(shè)計(jì)過程中,最重要的就是串口的初始化程序及接收發(fā)送程序。 系統(tǒng)主界面的設(shè)計(jì) 上位機(jī)的主界面是用來顯示下位機(jī)傳回的實(shí)時(shí)數(shù)據(jù),實(shí)施各種功能操作 窗口。 而且在 工程中涉及了 Msm 控件,這個(gè)控件需要 單擊工程選項(xiàng)在下拉菜單中選擇部件選項(xiàng),并在列表中選擇 Microsoft Comm control 控件列表項(xiàng),添加串口通訊所用的標(biāo)準(zhǔn)控件 Msm。界面繪制完成后,根據(jù)我們的功能要求,雙擊相應(yīng)的控件添加代碼,就可以完成主界面的繪制了。 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 35頁 圖 36 Comm控件選取 PC機(jī)與單片機(jī)的串口通訊我們采用由主機(jī)發(fā)送下位機(jī)識別號碼,下位機(jī)接收到后回傳自身采集信息,待主機(jī)收到回傳信息后,在主界面上進(jìn)行顯示并用曲線進(jìn)行實(shí)時(shí)顯示; 當(dāng)上位機(jī)發(fā)送 1 時(shí),傳回 1 點(diǎn)溫度值,并進(jìn)行實(shí)時(shí)顯示; 當(dāng)上位機(jī)發(fā)送 2 時(shí),傳回 2 點(diǎn)溫度值,并進(jìn)行實(shí)時(shí)顯示; 串口設(shè)置界面 我們在不同的 PC 機(jī)上運(yùn)行上位機(jī)時(shí),系統(tǒng)會自動為我們分配不同的COM口,為了能適應(yīng)在不同的 PC 機(jī)上運(yùn)行的需要,我們就必須對串口的參數(shù)進(jìn)行設(shè)置,所以我們又添加了串口參數(shù)設(shè)置界面。當(dāng)我們點(diǎn) 擊登錄按鈕時(shí),計(jì)算機(jī)便會運(yùn)行下面一段程序,顯示串口設(shè)置界面。 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 36頁 圖 37 上位機(jī)屬性頁面 在 VB 中我們可以用 MSComm 控件對計(jì)算機(jī)串口參數(shù)進(jìn)行設(shè)置。在串口設(shè)置界面中我們可以對計(jì)算機(jī)串口的串口號、波特率、是否加校驗(yàn)位、停止位長度五個(gè)參數(shù)進(jìn)行設(shè)置。 在 VB 中,設(shè)置為串口模式,輸入輸出都為文本形式,且大宋和接收一個(gè)字符就會觸發(fā) MMSComm1 事件和 OnComm 接收觸發(fā)事件;波特率設(shè)置為9600,可以根據(jù)具體設(shè)計(jì)情況改變波特率的大小,但是要與下位機(jī)的一致,接收觸發(fā)事件的處理,當(dāng)每發(fā)送 一次數(shù)據(jù)時(shí),就會發(fā)生 OnComm 事件,并返回?cái)?shù)據(jù)串,獲得溫度值。下面是上位機(jī)部分設(shè)計(jì)函數(shù): Form1: Private Sub denglu_Click(Index As Integer) Load Form2 End Sub Private Sub fanhui_Click(Index As Integer) Unload Me End Sub Form2: 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 37頁 Private Sub Command1_Click() Load Form3 End Sub Private Sub Command2_Click() Load Form1 End Sub Form3: Private Sub Command3_Click() Load Form2 End Sub Private Sub fasong_Click() Dim number As Integer Dim outbyte(0) As Byte number = Val() /把文本量轉(zhuǎn)換成數(shù)字量 outbyte(0) = CByte(number) /把數(shù)字量轉(zhuǎn)換成二進(jìn)制字節(jié)形式 = 0 = outbyte End Sub Private Sub Form_Load() = True 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 38頁 = 1 Dim number As Integer = 1 = 30 = 1 = 1 = For i = 1 To 30 = i = 0 = Next End Sub Private Sub MSComm1_OnComm() Dim indata As Variant Dim A(0) As Byte Select Case Case EvReceive indata = A(0) = AscB(indata) /把二進(jìn)制字節(jié)形式轉(zhuǎn)換成文本形式 = A(0) = 0 End Select = A(0) If = 30 Then For i = 1 To 30 = i 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 39頁 = 0 Next End If End Sub Private Sub rec0_Click() = End Sub Private Sub send0_Click() = End Sub 圖 38 上位機(jī)界面南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 39頁 第 四 章 系統(tǒng)調(diào)試 和 結(jié)果分析 調(diào)試步驟 通過“ IAR For MSP430”軟件導(dǎo)入 C 語言程序,下載到實(shí)驗(yàn)板上進(jìn)行相關(guān)調(diào)試。 對于此次畢業(yè)設(shè)計(jì)的系統(tǒng)調(diào)試涉及到 5 部分的設(shè)計(jì),即,主模塊程序設(shè)計(jì), LED 顯示模塊程序設(shè) 計(jì),溫度采集模塊程序設(shè)計(jì),報(bào)警模塊程序設(shè)計(jì),上位器及輔助功能設(shè)計(jì),先分開設(shè)計(jì)程序,最后在合在一起調(diào)試。 顯示模塊調(diào)試 我首先將程序只實(shí)現(xiàn)簡單的顯示功能,通過預(yù)先設(shè)定好的 6 位數(shù)組值來實(shí)現(xiàn) LED 的動顯,若最終顯示成功,則我們進(jìn)入下一步調(diào)試,即將數(shù)據(jù)采集模塊加進(jìn)去。這一步調(diào)試由于當(dāng)初實(shí)驗(yàn)做過,問題不大,基本上編好程序就出現(xiàn)了預(yù)期的結(jié)果。 如圖 41 所示: 圖 41 顯示模塊調(diào)試 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 40頁 溫度數(shù)據(jù)采集模塊 調(diào)試 我將溫度傳感器采集回的 11 位數(shù)據(jù)通過轉(zhuǎn)換后,存放在上面顯示模塊調(diào)試時(shí)設(shè)定的數(shù)組里,這 樣就將兩個(gè)模塊結(jié)合了起來初步實(shí)現(xiàn)了溫度的顯示,當(dāng)實(shí)現(xiàn)這一步時(shí),我內(nèi)心是無比的喜悅,因?yàn)橐粋€(gè)簡單的溫度計(jì)已經(jīng)完成了,可以說,到這一步,我基本上沒有遇到什么大的困難,有的就是參數(shù)的定義定重了,通過修改,很快就完成了。 如圖 42 所示: 圖 42 溫度采集模塊 報(bào)警模塊 調(diào)試 將上面兩個(gè)模塊調(diào)試完后,我很快又將報(bào)警模塊加了進(jìn)去,這次出現(xiàn)問題了,由于當(dāng)時(shí)對程序資源的分配不是很清楚,不知道什么是由 CPU 來處理,什么是由外圍模塊來處理,兩者資源是否占用同一個(gè),因此導(dǎo)致了最終在報(bào)警時(shí)不能正常顯示溫度的結(jié)果, 同時(shí)也犯了一個(gè)嚴(yán)重的錯誤,沒有考慮到中斷服務(wù)子程序執(zhí)行的時(shí)間比設(shè)定的中斷時(shí)間長后,整個(gè)系統(tǒng)的時(shí)序都亂掉了 。 南京工程學(xué)院畢業(yè)設(shè)計(jì)說明書 (論文 ) 第 41頁 所以 系統(tǒng)跑得很不穩(wěn)定,甚至不能正常報(bào)警,或者報(bào)警后溫度就不變了,即使外界恢復(fù)到正常溫度,可報(bào)警器還是在報(bào)警, LED 也無法正 常顯示溫度。后來經(jīng)過實(shí)驗(yàn)室學(xué)生的指點(diǎn),找到了解決的辦法,當(dāng)初我 用的延時(shí)程序是用 for 循環(huán)再減 1 計(jì)數(shù)來實(shí)現(xiàn)的,后來才知道運(yùn)用外圍模塊也可以實(shí)現(xiàn),而且不占用 CPU 資源,因此我想到了用定時(shí)器來實(shí)現(xiàn)延時(shí), 于是我 運(yùn)用了 Tamera 計(jì)時(shí)器,通過設(shè)置相應(yīng)的位,來實(shí)現(xiàn)了延時(shí)功能,從而使蜂鳴器和 LED 顯示燈都能正常的工作 。 如圖 43 所示: 圖 43 報(bào)警模塊 上位機(jī) 輔助功能設(shè)計(jì) 用 ,一種就是利用 windows 的 API函數(shù),另一種則是利用 Visual Basic 中的控件 MS API 函數(shù)編寫串行通訊程序較為復(fù)雜,需要掌握大量的通訊知識,但是 它的 優(yōu)點(diǎn)就 是可實(shí)現(xiàn)的功能更 加 豐富,應(yīng)用面更加廣泛, 比較 適合編寫較為復(fù)雜的低
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1