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

正文內容

畢業(yè)設計論文基于labview串口的現場實時多通道溫度采集測量與實現(編輯修改稿)

2025-07-25 10:26 本頁面
 

【文章內容簡介】 的設計思想,主要包括下面幾部分:(1)編寫LCD1602驅動程序,實現對LCD1602的8字節(jié)寫命令操作函數、寫數據操作函數,調用寫命令函數初始化液晶屏以及通過寫命令和寫數據這兩個函數來編寫在指定的位置顯示單個字符、在指定的位置開始顯示字符串等擴展函數,便于在主程序中調用。通過在主程序中調用相應的LCD顯示函數,最終完成4路溫度值的顯示。(2)編寫ADC0832驅動程序,實現對4通道模擬電壓的采集。程序中包括相應通道的選擇和對A/D轉換結果1個字節(jié)的讀取。為了能方便在主函數中選擇轉換通道和讀取相應通道的A/D轉換結果。將程序設計成有兩個參數變量和帶返回值的函數,其中一參數變量用來選擇對那片芯片操作,另一個參數變量用來選擇轉換通道,最后的返回值則為A/D的轉換結果。(3)編寫串口通信程序,實現將A/D轉換的8位數字量通過串口發(fā)送到上位機。串口通信程序包括串口的初始化配置函數,串口1個字節(jié)發(fā)送函數。其中串口的初始化配置要特別注意波特率的設置,應該和上位機的波特率設置成一樣大小,保證串口通信更準確;而串口發(fā)送則采用查詢法。在主程序中通過調用發(fā)送子函數即可以將數據發(fā)送到上位機。(4)編寫主程序,實現在主程序中調用已編寫好的子程序,即將整個下位機的的功能在主程序中實現。在主函數中,首先對LCD160ADC082和串口進行初始化,然后在一個大循環(huán)中不停地采集A/D轉換的數據,并通過處理通過串口發(fā)送到上位,同時再經過適當的處理,在LCD上顯示出溫度值。為了使接收到的數據更準確,在取A/D轉換結果時,連續(xù)讀取10次,再求取平均值,而LCD溫度顯示函數則在定時器中斷調用,設置成每隔一段時間對溫度值進行刷新一次。下位機的主程序流程圖如圖31所示。YESYESYESNONONO開始結束LCD顯示、串口、A/D轉換、定時器中斷等初始化對4路A/D轉換每個通道各讀取10次,并保存將各通道采集到的10組A/D轉換結果分別求平均值,并保存串口發(fā)送數據到上位機是否定時器中斷?是否定時器中斷?是否定時器中斷? 進入中斷服務程序將各通道的數字量平均值轉換為電壓值將電壓值轉換為溫度值LCD1602顯示4通道溫度值開始結束圖31 下位機主程序流程圖 ADC0832驅動程序ADC0832未工作時其CS輸入端應為高電平,此時芯片禁止讀寫,CLK、DO和DI的電平值可任意。當要進行A/D轉換時,必須將CS使能端置低電平并且保持低電平直到轉換完全結束。使能CS之后,單片機向芯片時鐘輸入端CLK輸入時鐘脈沖,數據輸入端DI用于輸入數據進行A/D轉換通道的選擇,數據輸出端DO用于輸出A/D轉換的結果。在第一個時鐘脈沖的下降沿之前DI必須保持高電平,表示啟動信號,在第二和第三個下降沿之前DI輸入的數據用于選擇A/D的轉換通道。ADC0832的操作時序如圖32所示。圖32 ADC0832的時序圖在進行A/D轉換時,要用到兩片ADC0832,在進行A/D轉換時,先選擇其中一片芯片進行A/D轉換,讀取兩個通道的值,之后再選擇另外一個芯片進行A/D轉換,再讀取兩個通道的值。再選擇芯片時只能使能其中的一個芯片,而另外的一個芯片的使能端必須禁止。ADC0832驅動程序流程圖如圖33所示。開始選擇一片ADC0832選擇通道1選擇通道2保存轉換結果保存轉換結果選擇另一片ADC0832選擇通道3選擇通道4保存轉換結果保存轉換結果結束圖33 A/D轉換程序流程圖ADC0832在讀取轉換結果時,是在時鐘脈沖下串行輸出的,并且是最高位先輸出。讀取A/D轉換的部分代碼如下:for(i=0。i8。i++) //循環(huán)8次讀取1個字節(jié)數據{ val=val1。 //val用于暫存轉換結果,經過8次左移后即為轉換結果CLK=1。CLK=0。 //數據輸出在下降沿后有效if(DO) { val=val|0x01。 //若輸出為1則與0x01相或} } LCD1602顯示驅動程序LCD顯示驅動程序在進行數據的顯示時,先要對LCD寫入初始化控制命令字,初始化成功之后,寫入數據地址控制命令,再寫入數據才能把數據顯示出來。程序主要包括寫命令、寫數據、數據地址指針設定、顯示單個字符、顯示字符串等。LCD1602的寫操作時序如圖34所示。圖34 LCD1602寫操作時序 根據LCD1602寫操作時序圖可知,當RS為低電平,RW為高電平時為寫命令操作,控制命令主要是用設置LCD顯示模式、光標的設置等,單片機將8位數據送到LCD并行數據總線上,單片機給E數據端一個正脈沖信號,就可以將控制命令字寫入LCD。當RS為高電平,RW為高電平時為寫數據操作,LCD就會將接收到的數據在液晶屏上顯示出來。在進行數據顯示前需要先設置數據地址指針,這樣才能在想要的位置顯示出數據。LCD1602顯示驅動程序流程圖如圖35所示。NO YES開始LCD初始化根據想要顯示的位置計算相應的地址發(fā)送地址發(fā)送數據數據是否發(fā)送完?結束圖35 LCD1602顯示驅動程序流程圖 根據以上LCD寫操作時序和LCD顯示驅動程序流程圖編寫出相應的驅動函數,部分顯示函數如下:void Display_LCD_1602_dan_zi(uchar X,uchar Y,uchar Value) //在指定位置{ // 寫入一個字符,X為行,Y為列,Value為寫入的數據 LocationXY( X, Y)。 //確定字符顯示的位置函數 Write__or_dat(Value,1)。 //寫入數據函數}void Display_LCD_1602_duo_zi(uchar X,uchar Y,uchar *P) //顯示字符串函{ //數,P指向字符串的首地址 LocationXY( X, Y)。 //設定初始地址 while(*P){ Write__or_dat(*P,1)。P++。} } 串口通信程序 串口通信程序主要包括串口的初始化、串口數據發(fā)送,其中串口的初始化主要是用于設置波特率。在通信中采用的串口通信波特率為9600,在程序設計中采用查詢法發(fā)送數據,串口通信程序流程圖如圖36所示。NONOYESYES開始結束串口初始化將發(fā)送的數據寫入SBUFTI是否為1?TI清0數據是否發(fā)送完?圖36 串口通信程序流程圖 在進行串口通信程序編寫時,編寫單字節(jié)發(fā)送函數和字符串發(fā)送函數,其中部分程序代碼如下:void Sent_Byte(uchar dat) //發(fā)送單字節(jié)函數{ SBUF=dat。 //將數據送到緩沖器 while(!TI)。 //判斷是否發(fā)送完 TI=0。 //發(fā)送完清標志位}void Sent_Date(uchar *dat) //發(fā)送一個字符串函數{ while((*dat)!= 39。\039。) //如果字符串未結束,指針++指向下一個字符 { Sent_Byte(*dat)。 //發(fā)送單字節(jié)函數 dat++。 //指針++ } }4 上位機軟件設計 上位機人機交互界面設計此次設計的上位機人機交互界面主要分為兩個窗口,即實時數據窗口和歷史數據窗口,可以在使用過程中進行切換。實時數據窗口主要是用于實現4路溫度數據的實時顯示、實時溫度變化曲線顯示及實時溫度強度圖顯示。并且可以在本界面設定串口的有關配置,如波特率、數據位、奇偶校驗位等;另外可以設定設定溫度采集的速率、報警的溫度上限值、選擇數據的數據的存儲路徑等;同時可以開始和停止溫度的采集。除此之外,還顯示出模擬的數控機床熱變形誤差,當采集的溫度值超過設計的溫度上限時,報警指示燈就會閃爍并發(fā)出報警聲。因為實時窗口顯示的數據是變動的,鑒于此歷史數據窗口主要是用于歷史數據的讀取方便數據的分析。在進行數據顯示時,除了顯示溫度值外,還顯示出采集到溫度所對應的時間。圖41 實時數據顯示界面人機交互界面的實時數據顯示窗口設計如圖41所示。實時數據顯示窗口不僅可以顯示溫度隨時的變化曲線,以及用強度圖表中用顏色淺深來表示溫度大小。除了用數值來顯示溫度值外,還用4個類似于溫度計的柱體來直觀顯示溫度的大小。圖中開始按鈕可以用來控制數據的采集和暫停。 上位機程序框圖設計 主程序框圖設計 主程序通過串口接收下位機發(fā)送的4路A/D轉換采集到的8位數字量,通過數據處理,計算出溫度值、熱變形誤差,同時能在前面板顯示出來。另外還要實現報警、數據存儲和相關數據采集參數設定等功能。上位機的整體程序設計流程圖如圖42所示。NONONOYESYESYES開始接收緩沖區(qū)是否為空?采集按鈕是否按下?讀取接收緩沖區(qū)數據數據幀的解碼數據處理計算出溫度值數據存儲溫度數據、曲線及強度圖顯示是否超出設定溫度值?結束報警圖42 上位主程序流程圖 LABVIEW串口程序設計在LABVIEW程序串程序設計中,主要用到VISA配置串口、屬性節(jié)點、VISA讀取和簡單錯誤處理等幾部分組成,下面分別簡單介紹這幾個節(jié)點的使用。圖43 VISA配置串口如圖43所示為VISA配置串口節(jié)點,通過該節(jié)點可以很方便的對串口的參數進行配置,如波特率、奇偶校驗、停止位等,通過配置好相關參數,即對串口進行初始化,上位機才能與下位機通過串口通信。圖44 VISA串口數據讀取如圖44所示為串口緩沖區(qū)讀取節(jié)點,通過該節(jié)點可以讀取下位機發(fā)送到串口數據緩沖區(qū)里的數據。其中有一個比較重要的設置,就是VISA READ的“字節(jié)總數”這個輸入,由于在串口通信中,如果指定讀取100個串口緩沖區(qū)的字節(jié)數,如果當前緩沖區(qū)的數據量不足100個時,程序會一直停在VISA READ這個節(jié)點上,如果在超時的時間(默認是10秒)內還沒有湊足100個數據的話,程序就會報“Time out”的錯誤,如果超時時間設置得太長,有可能導致程序很長時間停止在VISA READ這個節(jié)點上。解決的辦法是使用“Bytes at Port”這個串口的屬性節(jié)點,這個屬性節(jié)點讀取當前串口緩沖區(qū)有字節(jié)數,然后將它的輸出連接到VISA READ的“讀取字節(jié)數”這個輸入端上即可,這樣當前緩沖區(qū)中有多少個字節(jié)就讀回多少個,不會有任何等待,該屬性節(jié)點如圖45所示。圖45 Bytes at Port屬性節(jié)點 將以上幾個節(jié)點正確連接起來,再結合while結構和判斷結構就可以實現對下位機發(fā)送來的數據進行不斷的讀取。其部分程序設計如圖46所示。圖46 串口數據讀取部分程序 串口數據幀解碼正位機發(fā)送來的采集到的4路數據,在讀取串口的數據之后并不知道接收到的數據是屬于那一路的,需要將各路的數據區(qū)分開來,再進行數據處理和顯示。上位機程序的編寫要根據下位機發(fā)送的數據幀格式來解碼,這樣才能獲取正確的數據。下位機發(fā)送的數據幀包括3個部分,包括2個字節(jié)的數據幀頭、4個字節(jié)的數據和1個字節(jié)的數據幀尾。將讀取的字符數據轉換為字節(jié)數組,再對數組里的數據進行數據幀解析,得出想要的數據。在程序設計中通過編寫數據幀解析子VI來供主程序調節(jié),數據幀解析程序采用公式節(jié)點來設計。公式節(jié)點在程序中相當于一個數據運算子程序,可以在公式結點中進行類似于C語言的編程,這樣可以大大減小程序的開發(fā)難度。公式節(jié)點可以進行參數的輸入和輸出,參數的傳遞通過輸入變量和輸出變量來傳遞。在子VI中設計兩個輸入參數變量,其中一個參數變量是數組,另一個參數變量是數組的長度,在程序中對輸入的數據進行數據幀解析。首先對數組的第一個元素進行查找,在數組長度范圍內,若找到兩個連續(xù)的數據幀幀頭,并且數組的下標加4后的數據為數據幀的幀尾,則數組幀頭和幀尾之間的四個字節(jié)即為下位機發(fā)送的4路采集到的數據,4個字節(jié)數據的通道分別與下位機發(fā)送時的通道相對應。公式節(jié)點的程序設計如圖47所示。圖47 公式節(jié)點數據幀解碼 數據處理和顯示將數據幀解碼得到的4
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1