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

正文內(nèi)容

基于vb6[1]0的溫度數(shù)據(jù)采集系統(tǒng)(編輯修改稿)

2024-12-18 15:02 本頁面
 

【文章內(nèi)容簡介】 編寫的圖形界面把溫度的變化曲線顯示出來,并通過數(shù)據(jù)庫存儲(chǔ),可查詢歷史溫度記錄。 圖 總體設(shè)計(jì)框圖主控制器單片機(jī) AT89C51 具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。顯示電路顯示電路采用 8 位共陽極 LED 數(shù)碼管,從 P0 口輸出段碼,P2 口為 LED 的位選信號(hào)。單片機(jī)LED顯 示溫 度 傳 感 器復(fù)位電路時(shí)鐘振蕩蜂鳴器P C長沙學(xué)院畢業(yè)設(shè)計(jì)11溫度傳感器采用 DS18B20 溫度傳感器,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn) 9~12 位的數(shù)字值讀數(shù)方式。PC 實(shí)時(shí)顯示界面顯示實(shí)時(shí)溫度數(shù)據(jù)變化曲線的界面,采用 編輯,在 程序使用 的通用串口控件 MSCOMM 來對發(fā)送到串口的數(shù)據(jù)進(jìn)行采集處理。上下位機(jī)定義好通信協(xié)議和波特率。 設(shè)計(jì)中所需要的器件 單片機(jī):AT89C51 一塊; 溫度傳感器:DS18B20 一塊;8位共陽極數(shù)碼管 一塊; 30PF電容一個(gè),開關(guān)一個(gè),蜂鳴器一個(gè); 10K電阻 2個(gè)、5K的電阻排; 串行通信線。長沙學(xué)院畢業(yè)設(shè)計(jì)12 系統(tǒng)硬件設(shè)計(jì)系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,報(bào)警電路,單片機(jī)主板電路等,如圖 所示。長沙學(xué)院畢業(yè)設(shè)計(jì)13 圖 設(shè)計(jì)原理圖溫度傳感器的數(shù)據(jù)線接單片機(jī)的 口,單片機(jī)通過反復(fù)讀寫 口的狀態(tài)采集數(shù)據(jù),不過硬件簡單,軟件肯定復(fù)雜,讀寫時(shí)都有嚴(yán)格的時(shí)序要求。顯示電路采用 8 個(gè)共陽極的 LED 顯示,顯示代碼由 P0 口發(fā)送,當(dāng)使用 P0 口時(shí)需要接上拉電阻,P2 口的邏輯狀態(tài)作位選線信號(hào),達(dá)到分時(shí)選通的目的,當(dāng)相應(yīng)口為高電平時(shí) LED 才能顯示相應(yīng)代碼。實(shí)際使用中只用到七個(gè) LED,最后 2 個(gè)用來顯示攝氏度符號(hào),第二個(gè)用來顯示溫度的正負(fù),當(dāng)溫度為負(fù)時(shí),顯示“—”號(hào),為正時(shí)不顯示,同樣由軟件可以實(shí)現(xiàn),當(dāng)百位為零時(shí),百位不顯示,百位十位為零時(shí),百位十位都不顯示,這樣設(shè)計(jì)方便觀察,更加直觀。此外還接有蜂鳴器,當(dāng) DS18B20 不能正常工作時(shí)可以達(dá)到報(bào)警的目的。最后還要實(shí)現(xiàn)單片機(jī)與上位機(jī)通信的功能,所以要連接好串口,以便能向上位機(jī)發(fā)送或接受數(shù)據(jù)。按健復(fù)位電路是最簡單的手動(dòng)復(fù)位,使用比較方便,在程序跑飛時(shí),可以手動(dòng)復(fù)位,這樣就不用在重起單片機(jī)電源,就可以實(shí)現(xiàn)復(fù)位。 系統(tǒng)軟件設(shè)計(jì) 下位機(jī)軟件設(shè)計(jì)系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序,顯示數(shù)據(jù)刷新子程序等。 主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理 DS18B20 的測量的當(dāng)前溫度值,溫度測量每 1s 進(jìn)行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖 所示。長沙學(xué)院畢業(yè)設(shè)計(jì)14 圖 2..3 主程序流程圖 圖 讀溫度流程圖 讀出溫度子程序讀出溫度子程序的主要功能是讀出 RAM 中的 9 字節(jié),在讀出時(shí)需進(jìn)行 CRC 校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖 所示。 計(jì)算溫度子程序初始化調(diào)用顯示子程序1S 到?初次上電讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令的法國風(fēng)格 法國 NYNYY發(fā) DS18B20 復(fù)位命令發(fā)跳過 ROM 命令發(fā)讀取溫度命令讀取操作,CRC 校驗(yàn)9 字節(jié)完?CRC 校驗(yàn)正?確?移入溫度暫存器結(jié)束 NNY長沙學(xué)院畢業(yè)設(shè)計(jì)15發(fā) DS18B20 復(fù)位命令發(fā)跳過 ROM 命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束計(jì)算溫度子程序?qū)?RAM 中讀取值進(jìn)行轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖 所示。圖 計(jì)算溫度流程圖 圖 溫度轉(zhuǎn)換流程圖 溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用 12 位分辨率時(shí)轉(zhuǎn)換時(shí)間約為 750ms,在本程序設(shè)計(jì)中采用 1s 顯示程序延時(shí)法等待轉(zhuǎn)換的完成,如圖 所示。 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為 0 時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖 所示。 開始溫度零下?溫度值取補(bǔ)碼置“—”標(biāo)志計(jì)算小數(shù)位溫度值 計(jì)算整數(shù)位溫度值 結(jié)束置“+”標(biāo)志NY溫度數(shù)據(jù)移入顯示寄存器十位數(shù) 0?百位數(shù) 0?十位數(shù)顯示符號(hào)百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號(hào)) 結(jié)束NNYY長沙學(xué)院畢業(yè)設(shè)計(jì)16圖 顯示數(shù)據(jù)刷新流程圖   上位機(jī)軟件設(shè)計(jì)上位機(jī)是應(yīng)用 VB 進(jìn)行編寫的,它把下位機(jī)傳送上來是兩字節(jié)的十六進(jìn)制數(shù)據(jù)進(jìn)行解碼顯示出來。當(dāng)點(diǎn)擊采集溫度時(shí),上位機(jī)向下位機(jī)發(fā)送采集溫度命令字符“1” ,當(dāng)下位機(jī)接受到命令時(shí),向上位機(jī)發(fā)送數(shù)據(jù)。使用 編寫上位機(jī)程序,接收溫度數(shù)據(jù)并儲(chǔ)存在數(shù)據(jù)庫中;接收數(shù)據(jù)時(shí),能同步畫出溫度變化的曲線,系統(tǒng)可查詢歷史溫度信息。具體在上下位機(jī)程序里面體現(xiàn)出來。下圖 為上位機(jī)工作流程圖。長沙學(xué)院畢業(yè)設(shè)計(jì)17圖 上位機(jī)工作流程圖數(shù)據(jù)采集實(shí)時(shí)顯示程序設(shè)計(jì)思路:本程序使用 的通用串口控件 MSComm 來對發(fā)送到串口的數(shù)據(jù)進(jìn)行采集處理。 的 MSComm 通信控件提供了一系列標(biāo)準(zhǔn)通信命令的接口,它允許建立串口連接,可以連接到其他通信設(shè)備(如 Modem) .還可以發(fā)送命令、進(jìn)行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過程中可能發(fā)生的各種錯(cuò)誤和事件,從而可以用它創(chuàng)建全雙工 、事件驅(qū)動(dòng)的、高效實(shí)用的通信程序。一般說來,計(jì)算機(jī)都有一個(gè)或多個(gè)串行端口,它們依次為 ComCom2 、… ,這些串口還提供了外部設(shè)備與 PC 進(jìn)行數(shù)據(jù)傳輸和通信的通道。這些串口在 CPU 和外設(shè)之間充當(dāng)解釋器的角色。基本屬性與描述如下:屬性 描述CommPort 設(shè)置或返回通信端口號(hào)Settings 以字符串的形式設(shè)置或返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位和停止位PortOpen 設(shè)置或返回通信端口的狀態(tài)。也可以打開和關(guān)閉端口Input 返回和刪除接收緩沖區(qū)中的字符長沙學(xué)院畢業(yè)設(shè)計(jì)18Output 將字符串寫入發(fā)送緩沖區(qū) CommEvent 屬性為通信事件或錯(cuò)誤返回下列值之一,在該控件的對象庫中也可以找到這些常量。你只首先要確定一個(gè) msm 控件在 system 目錄下并且該控件已經(jīng)被 windows 注冊,程序才能正常運(yùn)行。有數(shù)據(jù)向串口發(fā)過來時(shí),程序可以將數(shù)據(jù)接收到,接收的數(shù)據(jù)是字符型的,那么將數(shù)據(jù)轉(zhuǎn)化為數(shù)字型的,再將這個(gè)數(shù)據(jù)的大小作為畫圖的某一個(gè)點(diǎn)的縱坐標(biāo),橫坐標(biāo)為數(shù)據(jù)的序,這個(gè)就是圖形顯示基本原理。查看原來的數(shù)據(jù)的原理也是這樣的,不同的地方就是,數(shù)據(jù)是從文件中來,同樣的也是將多個(gè)數(shù)據(jù)分成一個(gè)一個(gè)的,然后這一個(gè)數(shù)據(jù)的大小就是畫圖的某一個(gè)點(diǎn)的縱坐標(biāo),橫坐標(biāo)同樣為數(shù)據(jù)的序號(hào),再將這些點(diǎn)用線連起來就是曲線圖。圖形能移動(dòng)的原理,是我們首先改變的只是數(shù)據(jù),圖形并沒有變,但圖形的形式是由這些數(shù)據(jù)來確定的,當(dāng)數(shù)據(jù)發(fā)生變化后,我們通過刷新顯示區(qū)來變化的。VB 編寫的實(shí)時(shí)顯示界面如圖 所示,點(diǎn)擊查詢可查詢歷史溫度信息。長沙學(xué)院畢業(yè)設(shè)計(jì)19圖 實(shí)時(shí)溫度曲線顯示及查詢圖串口的波特率,串口號(hào)都采用下拉選擇的方式,在使用中可跟據(jù)情況選擇讀串口數(shù)據(jù)的原理是,只要當(dāng)有數(shù)據(jù)向串口發(fā)數(shù)據(jù)來時(shí),計(jì)算機(jī)就會(huì)自動(dòng)將其數(shù)據(jù)寫到一個(gè)特定的緩沖區(qū),我們只要寫程序去讀那個(gè)特定的緩沖區(qū)就可以了。此外為了保存和查詢歷史溫度數(shù)據(jù)還要在 VB 中設(shè)計(jì)建立連接到 Access 數(shù)據(jù)庫的控件,Data 控件是 Visual Basic 中的一個(gè)內(nèi)置數(shù)據(jù)控件,可以通過設(shè)置 Data 控件的 connect、DatabaseName 、RecordSource 屬性實(shí)現(xiàn)對數(shù)據(jù)庫的連接和訪問。建立的數(shù)據(jù)庫庫文件和 VB 中創(chuàng)建的工程文件必須放在放在同一目錄下 [5]。 。第 3 章 程序設(shè)計(jì) 下位機(jī)程序下位機(jī)程序的編寫主要使用 C 語言進(jìn)行編寫,可讀性要比匯編語言好很多。其中包括 DS18B20 的測溫模塊,顯示模塊和串口通信模塊,當(dāng)上位機(jī)向下位機(jī)發(fā)送讀溫度指令時(shí),單片機(jī)才會(huì)將所測得的數(shù)據(jù)傳給上位機(jī)。溫度采集系統(tǒng)的主程序設(shè)計(jì)如下:void main(void){長沙學(xué)院畢業(yè)設(shè)計(jì)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()。 }} }}主程序?yàn)橐粺o限循環(huán),單片機(jī)不斷從 DS18B20 的數(shù)據(jù)口采集數(shù)據(jù)信號(hào),用 flash標(biāo)志 DS18B20 是否正常,當(dāng) flash=1 時(shí)表示 DS18B20 不正常,就由軟件設(shè)置及時(shí)關(guān)閉LED 顯示并由蜂鳴器報(bào)警。當(dāng)一幀數(shù)據(jù)采集完畢即 RI 接受中斷標(biāo)志位為 1,判斷下位機(jī)是否接受到來自上位機(jī)的字符“1”對應(yīng)的 ASC 碼 49 時(shí)接收到時(shí)才開始將采集到的數(shù)據(jù)發(fā)送給上位機(jī)進(jìn)行處理,RI 標(biāo)志位必須由軟件清零。在串口通信模塊中,baudrate 的在程序初始化時(shí)已經(jīng)定義為 9600b/s,晶振頻率也已設(shè)定好。波特率的產(chǎn)生用定時(shí)器產(chǎn)生,在設(shè)置時(shí)選擇定時(shí)器 1,并將它的設(shè)為工作方式2,8 位的常數(shù)自動(dòng)重新裝載的定時(shí)器,這種工作方式可以省去用戶軟件中重裝初值的程序,簡化定時(shí)初值的計(jì)算方法,可以相當(dāng)精確的確定定時(shí)時(shí)間。計(jì)算出定時(shí)器的初長沙學(xué)院畢業(yè)設(shè)計(jì)21值之后,在設(shè)定串行口的工作方式,在這里令SCON=0X50,即 SCON 各位中,SM0=0,SM1=1,REN=1,其他控制字為 0,選擇為工作方式 1,8 位異步收發(fā)。令 TCON 中的 TR1=1,啟動(dòng)定時(shí)器,并禁止其他中斷。程序設(shè)計(jì)內(nèi)容如下所示: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ù)位的轉(zhuǎn)化才用了一定的技巧,由于實(shí)際顯示中只要求顯示一位小數(shù),而 DS18B20 每一位的轉(zhuǎn)化溫度為 ℃/LSB,當(dāng)每一位變化時(shí),第一位小數(shù)只有 16 種狀態(tài),我們只需一一算出放在一個(gè)數(shù)組中,通過查表指令即可獲取第一位小數(shù)的十進(jìn)制值。由于每一位變化為 ℃/LSB,通過移位操作,即可獲得一個(gè)新的關(guān)于溫度整數(shù)部分的數(shù)據(jù),部分設(shè)計(jì)顯示轉(zhuǎn)化程序如下: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ù)位十進(jìn)制數(shù),display[3]為百位十進(jìn)制數(shù),display[2] 為十位十進(jìn)制數(shù),display[1]為個(gè)位十進(jìn)制數(shù),通過查詢 LED 共陽極的顯示代碼程序,分時(shí)選通即可顯示當(dāng)前的溫度值。長沙學(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
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1