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

正文內(nèi)容

基于msp430的溫度檢測系統(tǒng)設(shè)計與實現(xiàn)_終稿(參考版)

2024-08-31 15:17本頁面
  

【正文】 如圖 43 所示: 圖 43 報警模塊 上位機(jī) 輔助功能設(shè)計 用 ,一種就是利用 windows 的 API函數(shù),另一種則是利用 Visual Basic 中的控件 MS API 函數(shù)編寫串行通訊程序較為復(fù)雜,需要掌握大量的通訊知識,但是 它的 優(yōu)點就 是可實現(xiàn)的功能更 加 豐富,應(yīng)用面更加廣泛, 比較 適合編寫較為復(fù)雜的低層次通訊。 南京工程學(xué)院畢業(yè)設(shè)計說明書 (論文 ) 第 41頁 所以 系統(tǒng)跑得很不穩(wěn)定,甚至不能正常報警,或者報警后溫度就不變了,即使外界恢復(fù)到正常溫度,可報警器還是在報警, LED 也無法正 常顯示溫度。 如圖 41 所示: 圖 41 顯示模塊調(diào)試 南京工程學(xué)院畢業(yè)設(shè)計說明書 (論文 ) 第 40頁 溫度數(shù)據(jù)采集模塊 調(diào)試 我將溫度傳感器采集回的 11 位數(shù)據(jù)通過轉(zhuǎn)換后,存放在上面顯示模塊調(diào)試時設(shè)定的數(shù)組里,這 樣就將兩個模塊結(jié)合了起來初步實現(xiàn)了溫度的顯示,當(dāng)實現(xiàn)這一步時,我內(nèi)心是無比的喜悅,因為一個簡單的溫度計已經(jīng)完成了,可以說,到這一步,我基本上沒有遇到什么大的困難,有的就是參數(shù)的定義定重了,通過修改,很快就完成了。 顯示模塊調(diào)試 我首先將程序只實現(xiàn)簡單的顯示功能,通過預(yù)先設(shè)定好的 6 位數(shù)組值來實現(xiàn) LED 的動顯,若最終顯示成功,則我們進(jìn)入下一步調(diào)試,即將數(shù)據(jù)采集模塊加進(jìn)去。下面是上位機(jī)部分設(shè)計函數(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è)計說明書 (論文 ) 第 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è)計說明書 (論文 ) 第 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è)計說明書 (論文 ) 第 39頁 = 0 Next End If End Sub Private Sub rec0_Click() = End Sub Private Sub send0_Click() = End Sub 圖 38 上位機(jī)界面南京工程學(xué)院畢業(yè)設(shè)計說明書 (論文 ) 第 39頁 第 四 章 系統(tǒng)調(diào)試 和 結(jié)果分析 調(diào)試步驟 通過“ IAR For MSP430”軟件導(dǎo)入 C 語言程序,下載到實驗板上進(jìn)行相關(guān)調(diào)試。在串口設(shè)置界面中我們可以對計算機(jī)串口的串口號、波特率、是否加校驗位、停止位長度五個參數(shù)進(jìn)行設(shè)置。當(dāng)我們點 擊登錄按鈕時,計算機(jī)便會運行下面一段程序,顯示串口設(shè)置界面。界面繪制完成后,根據(jù)我們的功能要求,雙擊相應(yīng)的控件添加代碼,就可以完成主界面的繪制了。 系統(tǒng)主界面的設(shè)計 上位機(jī)的主界面是用來顯示下位機(jī)傳回的實時數(shù)據(jù),實施各種功能操作 窗口。 另一個 則是串口 的 參數(shù)設(shè)置界面。 上位機(jī) 及輔助功能設(shè)計 采用 VB 作為該系統(tǒng)的上位機(jī)編程語言, 而于此 同時利用 RS232來 實現(xiàn)與單片機(jī) 之 間的通訊, 我們 通過上位機(jī)可以設(shè)置 PC 機(jī) RS232 接口的參數(shù), 這樣我就可以用它來對下位機(jī)采集得到的數(shù)據(jù)進(jìn)行動態(tài)的顯示,同時可以 根據(jù)設(shè)定的上下限 來進(jìn)行報警,還可以完成控制下位機(jī)的啟停。此模塊包括了初始化端口和數(shù)據(jù)產(chǎn)生兩個部分,關(guān)于初始化端口部分只要設(shè)置相應(yīng)的端口做為輸出方向,關(guān)于數(shù)據(jù)輸出則要執(zhí)行相應(yīng)的輸出操作。 return ReadTemp()。 Skip()。 //延時 800ms 以上 do { i = Init_18B20()。i 0。 Convert()。 } while(i)。 } /******************************************* 函數(shù)名稱: ReadTemp 功 能:控制 DS18B20 完成一次溫度轉(zhuǎn)換 參 數(shù):無 返回值 :測 量的溫度數(shù)值 ********************************************/ uint Do1Convert(void) { uchar i。 //讀高位 temp = (temp8) | temp_low。 南京工程學(xué)院畢業(yè)設(shè)計說明書 (論文 ) 第 33頁 temp_low = Read_18B20()。 } /******************************************* 函數(shù)名稱: ReadTemp 功 能:從 DS18B20 的 ScratchPad 讀取溫度轉(zhuǎn)換結(jié)果 參 數(shù):無 返回值 :讀取的溫度數(shù)值 ********************************************/ uint ReadTemp(void) { uchar temp_low。 } /******************************************* 函數(shù)名稱: Convert 功 能:發(fā) 送溫度轉(zhuǎn)換命令 參 數(shù):無 南京工程學(xué)院畢業(yè)設(shè)計說明書 (論文 ) 第 32頁 返回值 :無 ********************************************/ void Convert(void) { Write_18B20(0x44)。 return temp。 DelayNus(10)。 //延時 45us DQ_out。 if(DQ_val) temp |= 0x80。 //延時 9us DQ_in。 //延時 6us DQ1。 DQ0。i 8。 _DINT()。 } /******************************************* 函數(shù)名稱: Read_18B20 功 能:從 DS18B20 讀取一個字節(jié)的數(shù)據(jù) 參 數(shù):無 返回值 :讀出的一個字節(jié)數(shù)據(jù) ********************************************/ uchar Read_18B20(void) { uchar i。 DelayNus(10)。 DelayNus(50)。 else DQ0。 //延時 6us if(wdata amp。i++) { 南京工程學(xué)院畢業(yè)設(shè)計說明書 (論文 ) 第 30頁 DQ0。 for(i = 0。 } /******************************************* 函數(shù)名稱: Write_18B20 功 能:向 DS18B20 寫入一個字節(jié)的數(shù)據(jù) 參 數(shù): wdata寫入的數(shù)據(jù) 返回值 :無 ********************************************/ void Write_18B20(uchar wdata) { uchar i。 DelayNus(400)。 DQ1。 //初始化失敗 } else { Error = 0。 _NOP()。 DelayNus(55)。 DelayNus(500)。 _DINT()。 //清除中斷標(biāo)志 } /******************************************* 函數(shù)名稱: Init_18B20 功 能:對 DS18B20 進(jìn)行復(fù)位操作 參 數(shù):無 返回值 :初始化狀態(tài)標(biāo)志: 1失敗 , 0成功 ********************************************/ uchar Init_18B20(void) { uchar Error。 //停止計數(shù) TACTL amp。 //等待 TACTL amp。 //增計數(shù)到 CCR0 while(!(TACTL amp。 BIT0) /******************************************* 函數(shù)名稱: DelayNus 功 能:實現(xiàn) N 個微秒的延時 參 數(shù): n延時長度 返回值 :無 說明 :定時器 A 的計數(shù)時鐘是 1MHz, CPU 主頻 8MHz 所以通過定時器延時能夠得到極為精確的延時 南京工程學(xué)院畢業(yè)設(shè)計說明書 (論文 ) 第 28頁 ********************************************/ void DelayNus(uint n) { CCR0 = n。= ~BIT0 define DQ_in P5DIR amp。 typedef unsigned int uint。在編程時,主要是根據(jù)傳感器的芯片 來說明 流程 ,說明是如何 思考的,通過寫入函數(shù) Write_18B20()將相應(yīng)的指令寫進(jìn)去,同時通過讀出函數(shù) ReadTemp()將相應(yīng)的溫度數(shù) 值讀出來,返回給系統(tǒng),從而實現(xiàn)溫度的轉(zhuǎn)換和顯示。 CPU 對 DS18B20 的訪問流程是:先對DS18B20 初始化,再進(jìn)行 RoI1操作命令, 最 在最后的 存儲操作 中 ,數(shù)據(jù)操作 DS18B20 的每一步都必須 嚴(yán)格遵循 工作時序和通信協(xié)議,主機(jī)控制DS18B20 完成溫度轉(zhuǎn)換這一過程 。 while(j)。 uint j。 while (i != 0) { i。 P5DIR |= 0xFF。 Busy)!=0)。 _NOP()。 南京工程學(xué)院畢業(yè)設(shè)計說明書 (論文 ) 第 26頁 SET_EN。 SET_RW。= 0x00。 CLR_EN。 //產(chǎn)生使能脈沖信號 _NOP()。 //將顯示數(shù)據(jù)寫入數(shù)據(jù)端口 _NOP()。 _NOP()。 //等待液晶不忙 SET_RS。 CLR_EN。 //產(chǎn)生使能脈沖信號 _NOP()。 //將命令字寫入數(shù)據(jù)端口 _NOP()。 _
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1