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

正文內(nèi)容

基于vb60的溫度數(shù)據(jù)采集系統(tǒng)畢業(yè)設(shè)計-在線瀏覽

2025-08-14 18:51本頁面
  

【正文】 溫度報警觸發(fā)器TH和TL,可通過軟件寫入戶報警上下限。高速暫存 RAM 的結(jié)構(gòu)為 8 字節(jié)的存儲器,結(jié)構(gòu)如圖 所示。第 5 個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。該字節(jié)各位的定義如圖 3 所示。TM R1 1R0 1 1 1 1....圖  DS18B20 字節(jié)定義由表 可見,DS18B20 溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。 表 DS18B20 溫度轉(zhuǎn)換時間表溫度 LSB溫度 MSBTH 用戶字節(jié) 1TL 用戶字節(jié)2配置寄存器保留保留保留CRCR0R1000101119101112分 辨 率 /位 溫 度 最 大 轉(zhuǎn) 向 時 間 /ms375750....長沙學(xué)院畢業(yè)設(shè)計7高速暫存RAM的第 8 字節(jié)保留未用,表現(xiàn)為全邏輯 1。當(dāng) DS18B20 接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以 ℃/LSB 形式表示。表 2 是一部分溫度值對應(yīng)的二進(jìn)制溫度數(shù)據(jù)。若 T>TH 或 T<TL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機(jī)發(fā)出的報警搜索命令作出響應(yīng)。在 64 位 ROM 的最高有效字節(jié)中存儲有循環(huán)冗余檢驗(yàn)碼(CRC) 。DS18B20 的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器 1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器 2 的脈沖輸入。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器 溫度寄存器中,計數(shù)器 1 和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。系統(tǒng)對 DS18B20 的各種操作按協(xié)議進(jìn)行。長沙學(xué)院畢業(yè)設(shè)計9第 2 章 系統(tǒng)設(shè)計 功能與設(shè)計方案 功能要求設(shè)計一個基于 Visual Basic 的數(shù)據(jù)采集系統(tǒng)。 使用 編寫上位機(jī)程序,接收溫度數(shù)據(jù)并儲存在數(shù)據(jù)庫中;接收數(shù)據(jù)時,要求能同步畫出溫度變化的曲線;要求系統(tǒng)可查詢歷史溫度信息。 設(shè)計方案 方案論證方案一:由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨長沙學(xué)院畢業(yè)設(shè)計10被測溫度變化的電壓或電流采集過來,進(jìn)行 A/D 轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到 A/D 轉(zhuǎn)換電路,感溫電路比較麻煩。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計也比較簡單,故采用了方案二。 圖 總體設(shè)計框圖主控制器單片機(jī) AT89C51 具有低電壓供電和體積小等特點(diǎn),四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。單片機(jī)LED顯 示溫 度 傳 感 器復(fù)位電路時鐘振蕩蜂鳴器P C長沙學(xué)院畢業(yè)設(shè)計11溫度傳感器采用 DS18B20 溫度傳感器,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn) 9~12 位的數(shù)字值讀數(shù)方式。上下位機(jī)定義好通信協(xié)議和波特率。長沙學(xué)院畢業(yè)設(shè)計12 系統(tǒng)硬件設(shè)計系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,報警電路,單片機(jī)主板電路等,如圖 所示。顯示電路采用 8 個共陽極的 LED 顯示,顯示代碼由 P0 口發(fā)送,當(dāng)使用 P0 口時需要接上拉電阻,P2 口的邏輯狀態(tài)作位選線信號,達(dá)到分時選通的目的,當(dāng)相應(yīng)口為高電平時 LED 才能顯示相應(yīng)代碼。此外還接有蜂鳴器,當(dāng) DS18B20 不能正常工作時可以達(dá)到報警的目的。按健復(fù)位電路是最簡單的手動復(fù)位,使用比較方便,在程序跑飛時,可以手動復(fù)位,這樣就不用在重起單片機(jī)電源,就可以實(shí)現(xiàn)復(fù)位。 主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時顯示、讀出并處理 DS18B20 的測量的當(dāng)前溫度值,溫度測量每 1s 進(jìn)行一次。長沙學(xué)院畢業(yè)設(shè)計14 圖 2..3 主程序流程圖 圖 讀溫度流程圖 讀出溫度子程序讀出溫度子程序的主要功能是讀出 RAM 中的 9 字節(jié),在讀出時需進(jìn)行 CRC 校驗(yàn),校驗(yàn)有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。 計算溫度子程序初始化調(diào)用顯示子程序1S 到?初次上電讀出溫度值溫度計算處理顯示數(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è)計15發(fā) DS18B20 復(fù)位命令發(fā)跳過 ROM 命令發(fā)溫度轉(zhuǎn)換開始命令 結(jié)束計算溫度子程序?qū)?RAM 中讀取值進(jìn)行轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其程序流程圖如圖 所示。 顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為 0 時將符號顯示位移入下一位。 開始溫度零下?溫度值取補(bǔ)碼置“—”標(biāo)志計算小數(shù)位溫度值 計算整數(shù)位溫度值 結(jié)束置“+”標(biāo)志NY溫度數(shù)據(jù)移入顯示寄存器十位數(shù) 0?百位數(shù) 0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) 結(jié)束NNYY長沙學(xué)院畢業(yè)設(shè)計16圖 顯示數(shù)據(jù)刷新流程圖   上位機(jī)軟件設(shè)計上位機(jī)是應(yīng)用 VB 進(jìn)行編寫的,它把下位機(jī)傳送上來是兩字節(jié)的十六進(jìn)制數(shù)據(jù)進(jìn)行解碼顯示出來。使用 編寫上位機(jī)程序,接收溫度數(shù)據(jù)并儲存在數(shù)據(jù)庫中;接收數(shù)據(jù)時,能同步畫出溫度變化的曲線,系統(tǒng)可查詢歷史溫度信息。下圖 為上位機(jī)工作流程圖。 的 MSComm 通信控件提供了一系列標(biāo)準(zhǔn)通信命令的接口,它允許建立串口連接,可以連接到其他通信設(shè)備(如 Modem) .還可以發(fā)送命令、進(jìn)行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過程中可能發(fā)生的各種錯誤和事件,從而可以用它創(chuàng)建全雙工 、事件驅(qū)動的、高效實(shí)用的通信程序。這些串口在 CPU 和外設(shè)之間充當(dāng)解釋器的角色。也可以打開和關(guān)閉端口Input 返回和刪除接收緩沖區(qū)中的字符長沙學(xué)院畢業(yè)設(shè)計18Output 將字符串寫入發(fā)送緩沖區(qū) CommEvent 屬性為通信事件或錯誤返回下列值之一,在該控件的對象庫中也可以找到這些常量。有數(shù)據(jù)向串口發(fā)過來時,程序可以將數(shù)據(jù)接收到,接收的數(shù)據(jù)是字符型的,那么將數(shù)據(jù)轉(zhuǎn)化為數(shù)字型的,再將這個數(shù)據(jù)的大小作為畫圖的某一個點(diǎn)的縱坐標(biāo),橫坐標(biāo)為數(shù)據(jù)的序,這個就是圖形顯示基本原理。圖形能移動的原理,是我們首先改變的只是數(shù)據(jù),圖形并沒有變,但圖形的形式是由這些數(shù)據(jù)來確定的,當(dāng)數(shù)據(jù)發(fā)生變化后,我們通過刷新顯示區(qū)來變化的。長沙學(xué)院畢業(yè)設(shè)計19圖 實(shí)時溫度曲線顯示及查詢圖串口的波特率,串口號都采用下拉選擇的方式,在使用中可跟據(jù)情況選擇讀串口數(shù)據(jù)的原理是,只要當(dāng)有數(shù)據(jù)向串口發(fā)數(shù)據(jù)來時,計算機(jī)就會自動將其數(shù)據(jù)寫到一個特定的緩沖區(qū),我們只要寫程序去讀那個特定的緩沖區(qū)就可以了。建立的數(shù)據(jù)庫庫文件和 VB 中創(chuàng)建的工程文件必須放在放在同一目錄下 [5]。第 3 章 程序設(shè)計 下位機(jī)程序下位機(jī)程序的編寫主要使用 C 語言進(jìn)行編寫,可讀性要比匯編語言好很多。溫度采集系統(tǒng)的主程序設(shè)計如下:void main(void){長沙學(xué)院畢業(yè)設(shè)計20uchar receive。 while(1) { Read_Temperature()。 }else {P2 = 0x00。receive = SBUF。s39。 }} }}主程序?yàn)橐粺o限循環(huán),單片機(jī)不斷從 DS18B20 的數(shù)據(jù)口采集數(shù)據(jù)信號,用 flash標(biāo)志 DS18B20 是否正常,當(dāng) flash=1 時表示 DS18B20 不正常,就由軟件設(shè)置及時關(guān)閉LED 顯示并由蜂鳴器報警。在串口通信模塊中,baudrate 的在程序初始化時已經(jīng)定義為 9600b/s,晶振頻率也已設(shè)定好。計算出定時器的初長沙學(xué)院畢業(yè)設(shè)計21值之后,在設(shè)定串行口的工作方式,在這里令SCON=0X50,即 SCON 各位中,SM0=0,SM1=1,REN=1,其他控制字為 0,選擇為工作方式 1,8 位異步收發(fā)。程序設(shè)計內(nèi)容如下所示:void init(void){EA = 1。TH1=(unsigned char)(256 (XTAL / (32L * 12L * baudrate)))。 SCON = 0x50。= 0x00。IE = 0x00。由于每一位變化為 ℃/LSB,通過移位操作,即可獲得一個新的關(guān)于溫度整數(shù)部分的數(shù)據(jù),部分設(shè)計顯示轉(zhuǎn)化程序如下:display[4]=temp_data[0]amp。display[0]=ditab[display[4]]。0xf0)4)|((temp_data[1]amp。display[3]=display[4]/100。display[2]=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]為個位十進(jìn)制數(shù),通過查詢 LED 共陽極的顯示代碼程序,分時選通即可顯示當(dāng)前的溫度值。 temp_data[1]=!( temp_data[1]) temp_data[0]=!( temp_data[0])。if(temp_data[0]=0) { temp_data[1]= temp_data[1]+1。其他延時子程序以及 DS18B20 的讀寫子程序,可見附錄 1 的完整的 DS18B20 溫度采集系統(tǒng)程序設(shè)計,在這里不做詳細(xì)介紹了。本程序使用 的通用串口控件 MSComm 來對發(fā)送到串口的數(shù)據(jù)進(jìn)行采集處理。波特率設(shè)置為 9600,可以根據(jù)具體設(shè)計情況更改波特率的大小,但要與下位機(jī)的一致。接收觸發(fā)事件的處理,當(dāng)每發(fā)送一次指令時,就會觸發(fā) OnComm 事件,并返回數(shù)據(jù)串,通過計算獲取溫度測量值并顯示出來,具體設(shè)計程序如下: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ù)的判定,接收到的溫度數(shù)據(jù)應(yīng)為兩字節(jié),且低位在前,當(dāng)接收到的數(shù)據(jù)不是兩字節(jié)時,表示接收錯誤,跳出此程序。H amp。 Str(0) amp。H amp。 Mid(buffer, 1, 2)) * End If 39。采集的溫度數(shù)據(jù)還通過 Data 控件存入數(shù)據(jù)庫中。整個 VB 界面及數(shù)據(jù)庫程序的編寫見附錄 2 所示。傳統(tǒng)的溫度采集方法費(fèi)時且精度較差,而如今各個行業(yè)對溫度數(shù)據(jù)的要求越來越高,如科研實(shí)驗(yàn)室,因此新型的數(shù)字溫度計大量出現(xiàn),其中最普遍的是使用傳感器和單片機(jī)組成采集電路就可以 獲得較高的精度要求。讀數(shù)方便,測量范圍廣,測溫準(zhǔn)確。在整個采集系統(tǒng)中,包括溫度采集程序,串口通信程序,和上位機(jī) VB 的程序,數(shù)據(jù)庫等等幾個部分,為了避免干擾,當(dāng)上位機(jī) VB 界面點(diǎn)擊“采集溫度 ”時,向下位機(jī)發(fā)送特定字符,當(dāng)下位機(jī)識別正確字符,才將溫度數(shù)據(jù)傳送給上位機(jī)??梢赃x擇串口和波特率滿足不同要求,設(shè)置采集間隔時間,顯示不同時間范圍的溫度滿足不同場合的測溫要求。在設(shè)計過程中,對整個系統(tǒng)硬件和軟件的分析,采用模塊化程序設(shè)計的方法,流程圖分析設(shè)計思路,將系統(tǒng)分成幾個模塊,最終進(jìn)行整合,從而實(shí)現(xiàn)了基于 的數(shù)據(jù)采集系統(tǒng)的設(shè)計。就個人而言,在這次畢業(yè)設(shè)計鍛煉了個人意志以及在克服困難的毅力,培養(yǎng)了我在一定的壓力下進(jìn)行研究和設(shè)計的心理素質(zhì),獨(dú)立處理問題的能路,提高了我查找運(yùn)用各種參考資料以及與其他人溝通交流解決問題的能力。參考文獻(xiàn)[1] 黃仁欣.單片機(jī)原理及應(yīng)用技術(shù)[M] .北京:清華大學(xué)出版社,2022:5662.[2] 馬忠梅,籍順心等.單片機(jī)的 C 語
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1