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

正文內(nèi)容

基于vb60的溫度數(shù)據(jù)采集系統(tǒng)畢業(yè)設(shè)計(jì)(文件)

2024-07-18 18:51 上一頁面

下一頁面
 

【正文】 ,在設(shè)置時(shí)選擇定時(shí)器 1,并將它的設(shè)為工作方式2,8 位的常數(shù)自動(dòng)重新裝載的定時(shí)器,這種工作方式可以省去用戶軟件中重裝初值的程序,簡化定時(shí)初值的計(jì)算方法,可以相當(dāng)精確的確定定時(shí)時(shí)間。 TMOD = 0x20。PCON amp。 }此外,在顯示模塊中,小數(shù)位的轉(zhuǎn)化才用了一定的技巧,由于實(shí)際顯示中只要求顯示一位小數(shù),而 DS18B20 每一位的轉(zhuǎn)化溫度為 ℃/LSB,當(dāng)每一位變化時(shí),第一位小數(shù)只有 16 種狀態(tài),我們只需一一算出放在一個(gè)數(shù)組中,通過查表指令即可獲取第一位小數(shù)的十進(jìn)制值。 display[4]=((temp_data[0]amp。display[1]=display[4]%100。長沙學(xué)院畢業(yè)設(shè)計(jì)22unsigned char code LEDData[ ] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0xff}當(dāng)然應(yīng)特別注意由于個(gè)位的顯示需要顯示小數(shù)點(diǎn),所以它的查表顯示代碼不一樣,應(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ù)時(shí),溫度高八位的前五位都為高電平,轉(zhuǎn)化時(shí)應(yīng)先將測得的溫度數(shù)據(jù)取反再在最低位加 1 進(jìn)行運(yùn)算,具體程序設(shè)計(jì)如下:if(temp_data[1]7) { flag_zf=1。}}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)容。主要使用方法如下:串口設(shè)置:(“波特率,校驗(yàn)方式,數(shù)據(jù)位數(shù),停止位數(shù)”)串口數(shù)據(jù):MSComm. InputMode(輸入模式設(shè)定)其具體程序設(shè)計(jì)如下:長沙學(xué)院畢業(yè)設(shè)計(jì)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 程序中設(shè)置為串口 1,輸入模式為二進(jìn)制,且接收和發(fā)送一個(gè)字符就會(huì)觸發(fā)MSComm1 的 OnComm 接收觸發(fā)事件。讀取儀表返回?cái)?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ù)處理。 Mid(buffer, 3, 3) amp。 Mid(buffer, 3, 3) amp。在設(shè)計(jì)過程中可以用虛擬串口和串口調(diào)試助手對所設(shè)計(jì)的 VB 程序進(jìn)行仿真,看是否達(dá)到設(shè)計(jì)要求。在這種背景下,選擇基于 的數(shù)據(jù)采集系統(tǒng)這個(gè)課題具有很大的現(xiàn)實(shí)意義,用 VB 編寫上位機(jī)程序,在 PC 上通過圖形界面就能控制下位機(jī)即單片機(jī)采集溫度數(shù)據(jù)長沙學(xué)院畢業(yè)設(shè)計(jì)26信號,設(shè)計(jì)直觀大方,使用 DS18B20 高靈敏度的溫度傳感器采集溫度數(shù)據(jù),再用AT89C51 處理數(shù)據(jù),由 7 位共陽極的 LED 數(shù)碼管顯示當(dāng)前溫度,并且可以通過串口向上位機(jī)傳送數(shù)據(jù),顯示實(shí)時(shí)溫度曲線和把數(shù)據(jù)存入數(shù)據(jù)庫中,方便查詢歷史溫度記錄。此外在設(shè)計(jì)要求的基礎(chǔ)上,還做了一定程度的功能擴(kuò)展,使用蜂鳴器來判斷溫度傳感器是否工作正常,并且在圖形界面上可以顯示歷史平均溫度,最大溫度,最小溫度。在畢業(yè)設(shè)計(jì)的過程中,針對所要設(shè)計(jì)的課題,我更加系統(tǒng)的學(xué)習(xí)了 語言和C 語言,能夠較熟練的運(yùn)用偉福、PROTEUS 和 等設(shè)計(jì)軟件,使我了解了測溫的原理和相關(guān)領(lǐng)域的知識。從論文開題時(shí)就給予了許多中肯意見,使我在之后的設(shè)計(jì)過程中能夠少走彎路,事半功倍。在跟隨謝老師學(xué)習(xí)的過程中,豐富了自己的理論知識和學(xué)術(shù)思想。 // 定義 DS18B20 端口 DQ sbit BEEP = P3^7。unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00}。 // 小數(shù)點(diǎn)bit flash=0。 // DQ 復(fù)位 Delay(8)。 // 拉高總線 Delay(8)。 return(presence)。 i 0。 // 給脈沖信號 if(DQ) dat |= 0x80。 for (i = 8。0x01。 }}/*********************************************************/void Read_Temperature(void)// 讀取溫度{ Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar(0xBE)。 if(temp_data[1]7) //當(dāng)溫度高八位中的高五位全為 O { flag_zf=1。}}Else {flag_zf=0} //判斷測得的溫度數(shù)據(jù)是正還是負(fù),如果為正,不做任何//理 display[4]=temp_data[0]amp。0xf0)4)|((temp_data[1]amp。display[2]=display[1]/10。 Delay(300)。 // 顯示 CP2 = 0xfe。 P2 = 0xfd。 //Delay(300)。長沙學(xué)院畢業(yè)設(shè)計(jì)33P0 =LEDData[display[2]]。 // 顯示百位P2 = 0xdf。 for (i=0。 // BEEP 取反 } BEEP=1。TL1=(unsigned char)(256 (XTAL / (32L * 12L * baudrate)))。 // 波特率不倍增TR1 = 1。while (!TI)。 init()。 // DS18B20 不正常,關(guān)閉顯示}if (RI) // 是否有數(shù)據(jù)到來{RI = 0。定義窗體級變量39。 采樣個(gè)數(shù)計(jì)數(shù)器Dim mark As Boolean 39。長沙學(xué)院畢業(yè)設(shè)計(jì)36Private Sub CmdStart_Click() 39。 默認(rèn)設(shè)置 Exit Sub End If If (Txttime 60) Or (Txttime ) Then MsgBox 參數(shù)錯(cuò)誤!間隔時(shí)間應(yīng)取“~60”之間的數(shù)。 初始化表格 If = True Then = 1000 * 39。 重新開始 End If End Sub長沙學(xué)院畢業(yè)設(shè)計(jì)3739。 恢復(fù)默認(rèn)值 = 1 = False = 開始采集 = False = amp。39。H808080 Else If = False Then = True長沙學(xué)院畢業(yè)設(shè)計(jì)38 mark = True = True = 停止采集 = amp。在窗體的 Load 事件中加入下列代碼對串口進(jìn)行初始化:39。 設(shè)置串口 = InputModeBinary 39。 設(shè)置波特率 Call tabinit 39。 如果串口已經(jīng)打開,則提示 MsgBox 沒有發(fā)現(xiàn)此串口或被占用, 49, 溫度采集系統(tǒng) Case Else MsgBox 沒有發(fā)現(xiàn)此串口或被占用, 49, 溫度采集系統(tǒng) End Select End Sub39。獲取溫度測量值并顯示39。 兩字節(jié)進(jìn)制溫度數(shù)據(jù) Dim datatemp2 As String 39。 接收完畢 = amp。 接收溫度數(shù)據(jù)個(gè)數(shù),兩字節(jié),低位在前 Inbyte = 39。 把接收的數(shù)據(jù)安十六進(jìn)制格式放入緩沖中 buffer = buffer + Hex(Inbyte(i)) Next i End Select 39。 Str(0) amp。 Mid(buffer, 1, 2)) * End If 39。 Trim(Mid(buffer, 3, 2)) Else datatemp2b = Mid(buffer, 4, 2) End If datatemp2 = datatemp2a amp。獲取十六進(jìn)制測量數(shù)據(jù) If Len(Trim(Mid(buffer, 1, 2))) = 1 Then datatemp2a = Str(0) amp。H amp。H amp。 不是兩字節(jié),表示接收錯(cuò)誤,跳出程序 counter = counter + 1 39。長沙學(xué)院畢業(yè)設(shè)計(jì)40 Exit Sub End If 39。 接收個(gè)數(shù)計(jì)數(shù) If num 1 Then 39。 接收數(shù)據(jù)暫存 Dim buffer As String 39。 接收觸法事件39。 繪制坐標(biāo)系 If = False Then = True 39。 接收 1 個(gè)字符觸法OnComm 事件 = 1 39。 載入窗體39。 End If End Sub39。Private Sub CmdStop_Click() 39。 填充停止?fàn)顟B(tài) Call renew 39。 默認(rèn)設(shè)置39。HFFamp。 默認(rèn)設(shè)置 Exit Sub End If If = True Then = False Call setCom
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1