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

正文內(nèi)容

基于vb60的溫度數(shù)據(jù)采集系統(tǒng)畢業(yè)設(shè)計論文單片機(jī)控制-wenkub.com

2025-02-22 10:52 本頁面
   

【正文】 設(shè)置波特率 Call tabinit 39。 設(shè)置串口 = InputModeBinary 39。在窗體的 Load 事件中加入下列代碼對串口進(jìn)行初始化:39。H808080 Else If = False Then = True長沙學(xué)院畢業(yè)設(shè)計38 mark = True = True = 停止采集 = amp。39。 恢復(fù)默認(rèn)值 = 1 = False = 開始采集 = False = amp。 重新開始 End If End Sub長沙學(xué)院畢業(yè)設(shè)計3739。 初始化表格 If = True Then = 1000 * 39。 默認(rèn)設(shè)置 Exit Sub End If If (Txttime 60) Or (Txttime ) Then MsgBox 參數(shù)錯誤!間隔時間應(yīng)取“~60”之間的數(shù)。長沙學(xué)院畢業(yè)設(shè)計36Private Sub CmdStart_Click() 39。 采樣個數(shù)計數(shù)器Dim mark As Boolean 39。定義窗體級變量39。 // DS18B20 不正常,關(guān)閉顯示}if (RI) // 是否有數(shù)據(jù)到來{RI = 0。 init()。while (!TI)。 // 波特率不倍增TR1 = 1。TL1=(unsigned char)(256 (XTAL / (32L * 12L * baudrate)))。 // BEEP 取反 } BEEP=1。 for (i=0。 // 顯示百位P2 = 0xdf。長沙學(xué)院畢業(yè)設(shè)計33P0 =LEDData[display[2]]。 //Delay(300)。 P2 = 0xfd。 // 顯示 CP2 = 0xfe。 Delay(300)。display[2]=display[1]/10。0xf0)4)|((temp_data[1]amp。}}Else {flag_zf=0} //判斷測得的溫度數(shù)據(jù)是正還是負(fù),如果為正,不做任何//理 display[4]=temp_data[0]amp。 if(temp_data[1]7) //當(dāng)溫度高八位中的高五位全為 O { flag_zf=1。 // 跳過讀序號列號的操作 WriteOneChar(0xBE)。 WriteOneChar(0xCC)。 }}/*********************************************************/void Read_Temperature(void)// 讀取溫度{ Init_DS18B20()。0x01。 for (i = 8。 // 給脈沖信號 if(DQ) dat |= 0x80。 i 0。 return(presence)。 // 拉高總線 Delay(8)。 // DQ 復(fù)位 Delay(8)。 // 小數(shù)點bit flash=0。unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00}。 // 定義 DS18B20 端口 DQ sbit BEEP = P3^7。在跟隨謝老師學(xué)習(xí)的過程中,豐富了自己的理論知識和學(xué)術(shù)思想。從論文開題時就給予了許多中肯意見,使我在之后的設(shè)計過程中能夠少走彎路,事半功倍。在畢業(yè)設(shè)計的過程中,針對所要設(shè)計的課題,我更加系統(tǒng)的學(xué)習(xí)了 語言和C 語言,能夠較熟練的運(yùn)用偉福、PROTEUS 和 等設(shè)計軟件,使我了解了測溫的原理和相關(guān)領(lǐng)域的知識。此外在設(shè)計要求的基礎(chǔ)上,還做了一定程度的功能擴(kuò)展,使用蜂鳴器來判斷溫度傳感器是否工作正常,并且在圖形界面上可以顯示歷史平均溫度,最大溫度,最小溫度。26在這種背景下,選擇基于 的數(shù)據(jù)采集系統(tǒng)這個課題具有很大的現(xiàn)實意義,用 VB 編寫上位機(jī)程序,在 PC 上通過圖形界面就能控制下位機(jī)即單片機(jī)采集溫度數(shù)據(jù)信號,設(shè)計直觀大方,使用 DS18B20 高靈敏度的溫度傳感器采集溫度數(shù)據(jù),再用AT89C51 處理數(shù)據(jù),由 7 位共陽極的 LED 數(shù)碼管顯示當(dāng)前溫度,并且可以通過串口向上位機(jī)傳送數(shù)據(jù),顯示實時溫度曲線和把數(shù)據(jù)存入數(shù)據(jù)庫中,方便查詢歷史溫度記錄。在設(shè)計過程中可以用虛擬串口和串口調(diào)試助手對所設(shè)計的 VB 程序進(jìn)行仿真,看是否達(dá)到設(shè)計要求。 Mid(buffer, 3, 3) amp。 Mid(buffer, 3, 3) amp。讀取儀表返回數(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 進(jìn)制的格式放入緩沖中,便于之后的數(shù)據(jù)處理。主要使用方法如下:串口設(shè)置:(“波特率,校驗方式,數(shù)據(jù)位數(shù),停止位數(shù)”)串口數(shù)據(jù):MSComm. InputMode(輸入模式設(shè)定)23其具體程序設(shè)計如下:Private 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 程序中設(shè)置為串口 1,輸入模式為二進(jìn)制,且接收和發(fā)送一個字符就會觸發(fā)24MSComm1 的 OnComm 接收觸發(fā)事件。}}Else {flag_zf=0} 其中 temp_data[1] 為溫度數(shù)據(jù)的高八位,temp_data[0]為溫度數(shù)據(jù)的低八位,flag_zf=1 表示溫度為負(fù),進(jìn)行相應(yīng)轉(zhuǎn)化再執(zhí)行上面的顯示轉(zhuǎn)化程序,為正則直接執(zhí)行顯示轉(zhuǎn)化程序里的內(nèi)容。unsigned char code LEDData[ ] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0xff}當(dāng)然應(yīng)特別注意由于個位的顯示需要顯示小數(shù)點,所以它的查表顯示代碼不一樣,應(yīng)為下面的程序:unsigned char code LEDData1[ ] ={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff}由于測溫范圍包含負(fù)數(shù),還要對溫度的正負(fù)進(jìn)行判別,由 DS18B20 的特性可知,當(dāng)溫度為負(fù)數(shù)時,溫度高八位的前五位都為高電平,轉(zhuǎn)化時應(yīng)先將測得的溫度數(shù)據(jù)取反再在最低位加 1 進(jìn)行運(yùn)算,具體程序設(shè)計如下:if(temp_data[1]7) { flag_zf=1。display[1]=display[4]%100。 display[4]=((temp_data[0]amp。 }此外,在顯示模塊中,小數(shù)位的轉(zhuǎn)化才用了一定的技巧,由于實際顯示中只要求顯示一位小數(shù),而 DS18B20 每一位的轉(zhuǎn)化溫度為 ℃/LSB,當(dāng)每一位變化時,第一位小數(shù)只有 16 種狀態(tài),我們只需一一算出放在一個數(shù)組中,通過查表指令即可獲取第一位小數(shù)的十進(jìn)制值。PCON amp。 TMOD = 0x20。波特率的產(chǎn)生用定時器產(chǎn)生,在設(shè)置時選擇定時器 1,并將它的設(shè)為工作方式212,8 位的常數(shù)自動重新裝載的定時器,這種工作方式可以省去用戶軟件中重裝初值的程序,簡化定時初值的計算方法,可以相當(dāng)精確的確定定時時間。) {send_char()。 }if (RI) {RI = 0。 init()。 。VB 編寫的實時顯示界面如圖 所示,點擊查詢可查詢歷史溫度信息。你只首先要確定一個 msm 控件在 system 目錄下并且該控件已經(jīng)被 windows 注冊,程序才能正常運(yùn)行。一般說來,計算機(jī)都有一個或多個串行端口,它們依次為 ComCom2 、… ,這些串口還提供了外部設(shè)備與 PC 進(jìn)行數(shù)據(jù)傳輸和通信的通道。具體在上下位機(jī)程序里面體現(xiàn)出來。程序流程圖如圖 所示。其程序流程圖如圖 所示。系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。實際使用中只用到七個 LED,最后 2 個用來顯示攝氏度符號,第二個用來顯示溫度的正負(fù),當(dāng)溫度為負(fù)時,顯示“—”號,為正時不顯示,同樣由軟件可以實現(xiàn),當(dāng)百位為零時,百位不顯示,百位十位為零時,百位十位都不顯示,這樣設(shè)計方便觀察,更加直觀。 單片機(jī):AT89C51 一塊; 溫度傳感器:DS18B20 一塊;8位共陽極數(shù)碼管 一塊; 30PF電容一個,開關(guān)一個,蜂鳴器一個; 10K電阻 2個、5K的電阻排; 串行通信線。顯示電路顯示電路采用 8 位共陽極 LED 數(shù)碼管,從 P0 口輸出段碼,P2 口為 LED 的位選信單片機(jī)LED顯 示溫 度 傳 感 器復(fù)位電路時鐘振蕩蜂鳴器P C11號。方案二 :進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器 DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。用單片機(jī)系統(tǒng)接收溫度傳感器的溫度數(shù)據(jù),并在數(shù)碼管上顯示當(dāng)前溫度值,可測溫范圍-55125 攝氏度,精度 攝氏度。另外,由于 DS18B20 單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。器件中還有一個計數(shù)門,當(dāng)計數(shù)門打開時,DS18B20 就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進(jìn)行計數(shù)進(jìn)而完成溫度測量。因此,可用多只 DS18B20 同時測量溫度并進(jìn)行報警搜索。當(dāng)符號位 S=0 時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位 S=1 時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計算十進(jìn)制數(shù)值。第 9 字節(jié)讀出前面所有8字節(jié)的 CRC 碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。低 5 位一直為1,TM是工作模式位,用于設(shè)置 DS18B20 在工作模式還是在測試模式,DS18B20 出廠時該位被設(shè)置為 0,用戶要去改動,R1 和 R0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。頭 2 個字節(jié)包含測得的溫度信息,第 3 和第 4 字節(jié) TH 和 TL 的拷貝,是易失的,每次上電復(fù)位時被刷新。 圖 DS18B20
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1