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

正文內容

基于vb60的溫度數(shù)據(jù)采集系統(tǒng)畢業(yè)設計(編輯修改稿)

2025-07-24 18:51 本頁面
 

【文章內容簡介】 理。查看原來的數(shù)據(jù)的原理也是這樣的,不同的地方就是,數(shù)據(jù)是從文件中來,同樣的也是將多個數(shù)據(jù)分成一個一個的,然后這一個數(shù)據(jù)的大小就是畫圖的某一個點的縱坐標,橫坐標同樣為數(shù)據(jù)的序號,再將這些點用線連起來就是曲線圖。圖形能移動的原理,是我們首先改變的只是數(shù)據(jù),圖形并沒有變,但圖形的形式是由這些數(shù)據(jù)來確定的,當數(shù)據(jù)發(fā)生變化后,我們通過刷新顯示區(qū)來變化的。VB 編寫的實時顯示界面如圖 所示,點擊查詢可查詢歷史溫度信息。長沙學院畢業(yè)設計19圖 實時溫度曲線顯示及查詢圖串口的波特率,串口號都采用下拉選擇的方式,在使用中可跟據(jù)情況選擇讀串口數(shù)據(jù)的原理是,只要當有數(shù)據(jù)向串口發(fā)數(shù)據(jù)來時,計算機就會自動將其數(shù)據(jù)寫到一個特定的緩沖區(qū),我們只要寫程序去讀那個特定的緩沖區(qū)就可以了。此外為了保存和查詢歷史溫度數(shù)據(jù)還要在 VB 中設計建立連接到 Access 數(shù)據(jù)庫的控件,Data 控件是 Visual Basic 中的一個內置數(shù)據(jù)控件,可以通過設置 Data 控件的 connect、DatabaseName 、RecordSource 屬性實現(xiàn)對數(shù)據(jù)庫的連接和訪問。建立的數(shù)據(jù)庫庫文件和 VB 中創(chuàng)建的工程文件必須放在放在同一目錄下 [5]。 。第 3 章 程序設計 下位機程序下位機程序的編寫主要使用 C 語言進行編寫,可讀性要比匯編語言好很多。其中包括 DS18B20 的測溫模塊,顯示模塊和串口通信模塊,當上位機向下位機發(fā)送讀溫度指令時,單片機才會將所測得的數(shù)據(jù)傳給上位機。溫度采集系統(tǒng)的主程序設計如下:void main(void){長沙學院畢業(yè)設計20uchar receive。 init()。 while(1) { Read_Temperature()。 if (flash==0) {Disp_Temperature()。 }else {P2 = 0x00。 }if (RI) {RI = 0。receive = SBUF。if (receive == 39。s39。) {send_char()。 }} }}主程序為一無限循環(huán),單片機不斷從 DS18B20 的數(shù)據(jù)口采集數(shù)據(jù)信號,用 flash標志 DS18B20 是否正常,當 flash=1 時表示 DS18B20 不正常,就由軟件設置及時關閉LED 顯示并由蜂鳴器報警。當一幀數(shù)據(jù)采集完畢即 RI 接受中斷標志位為 1,判斷下位機是否接受到來自上位機的字符“1”對應的 ASC 碼 49 時接收到時才開始將采集到的數(shù)據(jù)發(fā)送給上位機進行處理,RI 標志位必須由軟件清零。在串口通信模塊中,baudrate 的在程序初始化時已經定義為 9600b/s,晶振頻率也已設定好。波特率的產生用定時器產生,在設置時選擇定時器 1,并將它的設為工作方式2,8 位的常數(shù)自動重新裝載的定時器,這種工作方式可以省去用戶軟件中重裝初值的程序,簡化定時初值的計算方法,可以相當精確的確定定時時間。計算出定時器的初長沙學院畢業(yè)設計21值之后,在設定串行口的工作方式,在這里令SCON=0X50,即 SCON 各位中,SM0=0,SM1=1,REN=1,其他控制字為 0,選擇為工作方式 1,8 位異步收發(fā)。令 TCON 中的 TR1=1,啟動定時器,并禁止其他中斷。程序設計內容如下所示:void init(void){EA = 1。 TMOD = 0x20。TH1=(unsigned char)(256 (XTAL / (32L * 12L * baudrate)))。TL1=(unsigned char)(256 (XTAL / (32L * 12L * baudrate)))。 SCON = 0x50。PCON amp。= 0x00。TR1 = 1。IE = 0x00。 }此外,在顯示模塊中,小數(shù)位的轉化才用了一定的技巧,由于實際顯示中只要求顯示一位小數(shù),而 DS18B20 每一位的轉化溫度為 ℃/LSB,當每一位變化時,第一位小數(shù)只有 16 種狀態(tài),我們只需一一算出放在一個數(shù)組中,通過查表指令即可獲取第一位小數(shù)的十進制值。由于每一位變化為 ℃/LSB,通過移位操作,即可獲得一個新的關于溫度整數(shù)部分的數(shù)據(jù),部分設計顯示轉化程序如下:display[4]=temp_data[0]amp。0x0f。display[0]=ditab[display[4]]。 display[4]=((temp_data[0]amp。0xf0)4)|((temp_data[1]amp。0x0f)4)。display[3]=display[4]/100。display[1]=display[4]%100。display[2]=display[1]/10。display[1]=display[1]%10。其中小數(shù)位所查的表為:unsigned char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}在程序中 display[0]為小數(shù)位十進制數(shù),display[3]為百位十進制數(shù),display[2] 為十位十進制數(shù),display[1]為個位十進制數(shù),通過查詢 LED 共陽極的顯示代碼程序,分時選通即可顯示當前的溫度值。長沙學院畢業(yè)設計22unsigned char code LEDData[ ] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0xff}當然應特別注意由于個位的顯示需要顯示小數(shù)點,所以它的查表顯示代碼不一樣,應為下面的程序:unsigned char code LEDData1[ ] ={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff}由于測溫范圍包含負數(shù),還要對溫度的正負進行判別,由 DS18B20 的特性可知,當溫度為負數(shù)時,溫度高八位的前五位都為高電平,轉化時應先將測得的溫度數(shù)據(jù)取反再在最低位加 1 進行運算,具體程序設計如下:if(temp_data[1]7) { flag_zf=1。 temp_data[1]=!( temp_data[1]) temp_data[0]=!( temp_data[0])。temp_data[0]= temp_data[0]+1。if(temp_data[0]=0) { temp_data[1]= temp_data[1]+1。}}Else {flag_zf=0} 其中 temp_data[1] 為溫度數(shù)據(jù)的高八位,temp_data[0]為溫度數(shù)據(jù)的低八位,flag_zf=1 表示溫度為負,進行相應轉化再執(zhí)行上面的顯示轉化程序,為正則直接執(zhí)行顯示轉化程序里的內容。其他延時子程序以及 DS18B20 的讀寫子程序,可見附錄 1 的完整的 DS18B20 溫度采集系統(tǒng)程序設計,在這里不做詳細介紹了。 上位機程序 在上位機 VB 程序的編寫中,最重要的是串口的初始化程序和接收觸發(fā)程序的設計。本程序使用 的通用串口控件 MSComm 來對發(fā)送到串口的數(shù)據(jù)進行采集處理。主要使用方法如下:串口設置:(“波特率,校驗方式,數(shù)據(jù)位數(shù),停止位數(shù)”)串口數(shù)據(jù):MSComm. InputMode(輸入模式設定)其具體程序設計如下:長沙學院畢業(yè)設計23Private Sub Form_Load()On Error GoTo err: = 1 = InputModeBinary = 1 = 1 = 9600,n,8,2 Call tabinit Call ScaleSys If = False Then = True mark = True = False Exit Suberr: Select Case Case PortAlreadyOpen MsgBox 沒有發(fā)現(xiàn)此串口或被占用, 49, 溫度采集系統(tǒng) Case Else MsgBox 沒有發(fā)現(xiàn)此串口或被占用, 49, 溫度采集系統(tǒng) End Select End Sub在 VB 程序中設置為串口 1,輸入模式為二進制,且接收和發(fā)送一個字符就會觸發(fā)MSComm1 的 OnComm 接收觸發(fā)事件。波特率設置為 9600,可以根據(jù)具體設計情況更改波特率的大小,但要與下位機的一致。程序中還編寫了錯誤處理程序,當串口被占長沙學院畢業(yè)設計24用時會轉去執(zhí)行 err 程序,出現(xiàn)系統(tǒng)報錯。接收觸發(fā)事件的處理,當每發(fā)送一次指令時,就會觸發(fā) OnComm 事件,并返回數(shù)據(jù)串,通過計算獲取溫度測量值并顯示出來,具體設計程序如下:Private Sub MSComm1_OnComm() Dim Inbyte() As Byte Dim buffer As String Dim datatemp2a, datatemp2b As String Dim datatemp2 As String Dim count As Integer 39。讀取儀表返回數(shù)據(jù)串 Select Case Case EvReceive count = Inbyte = If count 2 Then Exit Sub counter = counter + 1 For i = LBound(Inbyte) To UBound(Inbyte) buffer = buffer + Hex(Inbyte(i)) Next i End Select程序中,接收到的數(shù)據(jù)暫存在 Inbyte()中,buffer 為溫度數(shù)據(jù)緩存,接收到的數(shù)據(jù)按 16 進制的格式放入緩沖中,便于之后的數(shù)據(jù)處理。此外程序還添加了接收溫度數(shù)據(jù)的判定,接收到的溫度數(shù)據(jù)應為兩字節(jié),且低位在前,當接收到的數(shù)據(jù)不是兩字節(jié)時,表示接收錯誤,跳出此程序。為了在 VB 界面能夠顯示當前的溫度值,需要將采集的兩字節(jié)溫度數(shù)據(jù)轉化為十進制測量數(shù)據(jù),轉化程序如下:If Len(Trim(Mid(buffer, 1, 2))) = 1 Then長沙學院畢業(yè)設計25 datatemp(num) = Val(amp。H amp。 Mid(buffer, 3, 3) amp。 Str(0) amp。 Mid(buffer, 1, 2)) * Elsedatatemp(num) = Val(amp。H amp。 Mid(buffer, 3, 3) amp。 Mid(buffer, 1, 2)) * End If 39。保存數(shù)據(jù) Data_save (datatemp(num))此外,本 VB 程序還做了一定的功能擴展,能夠顯示歷史溫度的最大值和最小值以及平均值,還可通過下拉方式選擇合適的波特率、串口和采樣間隔時間。采集的溫度數(shù)據(jù)還通過 Data 控件存入數(shù)據(jù)庫中。在設計過程中可以用虛擬串口和串口調試助手對所設計的 VB 程序進行仿真,看是否達到設計要求。整個 VB 界面及數(shù)據(jù)庫程序的編寫見附錄 2 所示。第 4 章 結論 隨著科技的發(fā)展,在各個領域都要用到數(shù)據(jù)采集系統(tǒng),其中就包括最普遍的溫度的數(shù)據(jù)采集。傳統(tǒng)的溫度采集方法費時且精度較差,而如今各個行業(yè)對溫度數(shù)據(jù)的要求越來越高,如科研實驗室,因此新型的數(shù)字溫度計大量出現(xiàn),其中最普遍的是使用傳感器和單片機組成采集電路就可以 獲得較高的精度要求。在這種背景下,選擇基于 的數(shù)據(jù)采集系統(tǒng)這個課題具有很大的現(xiàn)實意義,用 VB 編寫上位機程序,在 PC 上通過圖形界面就能控制下位機即單片機
點擊復制文檔內容
高考資料相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1