




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于單片機(jī)的溫度采集儀表設(shè)計
1基于rs-84-rtu協(xié)議的顯示該系統(tǒng)使用圖1所示的485個線結(jié)構(gòu),以測量不同場景中每個點(diǎn)的分散分布的溫度。ms-485接口和計算機(jī)使用ru協(xié)議進(jìn)行通信。該結(jié)構(gòu)可以進(jìn)行長距離可靠的數(shù)據(jù)傳輸,主控計算機(jī)可以遠(yuǎn)距離對現(xiàn)場進(jìn)行監(jiān)控,計算機(jī)監(jiān)控程序采用LabVIEW設(shè)計實(shí)現(xiàn)。2單天開的設(shè)備設(shè)計2.1溫度控制系統(tǒng)測試采集儀表的硬件電路結(jié)構(gòu)如圖2所示,采用STC89C52RC單片機(jī)作為控制核心,STC89C52RC單片機(jī)是國產(chǎn)的新一代超強(qiáng)抗干擾、高速、低功耗51內(nèi)核單片機(jī),價格便宜,工作電壓為3.4~5.5V,具有8K的Flash程序存儲器,512字節(jié)RAM,并自帶有看門狗和E2PROM;內(nèi)部固化ISP引導(dǎo)功能,可以直接用三線串口進(jìn)行在線編程,編程速度快。利用I/O口的一個位實(shí)現(xiàn)與多個溫度傳感器的連接,人機(jī)界面采用液晶顯示模塊LCD12232,待機(jī)時輪流顯示當(dāng)前儀表的各路溫度,通過按鍵可設(shè)置溫度報警限。溫度超過報警限,通過IO口控制相應(yīng)的報警指示燈閃爍和繼電器動作,實(shí)現(xiàn)聲光報警。同時,采用MODBUS通信協(xié)議進(jìn)行數(shù)據(jù)傳輸。2.2基于i/o的分布式測溫系統(tǒng)在網(wǎng)絡(luò)測溫系統(tǒng)中的應(yīng)用采用一線數(shù)字溫度傳感器DS18B20組成的多點(diǎn)測溫系統(tǒng),具有節(jié)省I/O資源,結(jié)構(gòu)簡單、成本低以及便于擴(kuò)展和維護(hù)等優(yōu)點(diǎn),因此在分布式測溫系統(tǒng)中有著廣泛的應(yīng)用前景。2.3ds18b20中數(shù)據(jù)暫存器要得到溫度數(shù)據(jù),主機(jī)必須嚴(yán)格按照DS18B20的單總線的操作協(xié)議進(jìn)行,協(xié)議的流程為:初始化DS18B20→發(fā)送ROM操作命令→發(fā)送存儲器操作命令→處理數(shù)據(jù)。設(shè)計中用到的ROM操作命令有:讀ROM命令[33H],匹配ROM[55H],跳過ROM[CCH]。DS18B20中有9字節(jié)的數(shù)據(jù)暫存器,前5個字節(jié)按順序依次存儲的內(nèi)容為:溫度低8位、溫度高8位、TH、TL、配置寄存器,且TH、TL和配置寄存器的內(nèi)容可以保存在E2PROM中,掉電后數(shù)據(jù)不丟失,在DS18B20上電復(fù)位時,自動將數(shù)據(jù)從E2PROM中讀入數(shù)據(jù)暫存器中。單片機(jī)采集程序中用到的暫存器操作命令有:讀暫存器命令[BEH];寫暫存器命令[4EH];復(fù)制暫存器命令[48H];溫度轉(zhuǎn)換命令[44H];將E2PROM中的數(shù)據(jù)拷貝回暫存器命令[B8H]。2.4rs-133/33轉(zhuǎn)換系統(tǒng)采用一個PC作為主機(jī),多個單片機(jī)采集表作為從機(jī),采用RS-485半雙工方式,構(gòu)成485總線的現(xiàn)場監(jiān)控系統(tǒng)。主機(jī)采用輪詢的方式獲取數(shù)據(jù),采用485標(biāo)準(zhǔn),可獲得較遠(yuǎn)的通信距離,和較好的抗干擾性。單片機(jī)采用RS-485接口,而計算機(jī)只有RS-232接口,因此必須進(jìn)行RS-485/232轉(zhuǎn)換。為了防止共模干擾,單片機(jī)和485芯片之間采用了光耦進(jìn)行光電隔離,同時將A和B端之間加匹配電阻,一般可選約100Ω的電阻。在易遭受靜電沖擊的場合,可采用抗高壓靜電沖擊的接口芯片,如MAX485E、MAX487E等。2.5id控制設(shè)計LCD采用帶中文字庫的12232液晶顯示模塊,這里采用串行數(shù)據(jù)接口,只用到串行數(shù)據(jù)輸入端SID、串行時鐘CLK、片選端CS,減少了與CPU的接口以及電路板布線。設(shè)要傳送的8位數(shù)據(jù)為D7D6D5D4D3D2D1D0,傳送數(shù)據(jù)過程如下:(1)首先發(fā)送控制字;(2)將數(shù)據(jù)的高4位按D7D6D5D40000格式發(fā)送;(3)數(shù)據(jù)的低4位按D3D2D1D00000格式發(fā)送。2.6門狗形成單元為防止死機(jī)、進(jìn)一步提高單片機(jī)系統(tǒng)的抗干擾能力,在系統(tǒng)中采用X5045芯片實(shí)現(xiàn)了硬件看門狗電路。X5045是一種多功能監(jiān)控芯片,具有可編程選則復(fù)位時間的看門狗定時功能和電壓跌落檢測功能,另外還具有512字節(jié)的E2PROM,可以擦寫1010次,并可以完成16字節(jié)的頁寫入功能。X5045狀態(tài)寄存器的WD1和WD0用于選擇看門狗定時溢出時間,這里將其均設(shè)為0時溢出時間為1.4s.工作時看門狗定時器電路監(jiān)測X5045的WDI引腳的輸入來判斷MCU是否正常工作,在設(shè)定的定時時間內(nèi),MCU必須在WDI引腳上產(chǎn)生一個由高到低的電平變化來復(fù)位看門狗定時器,否則說明MCU工作不正常,X5045將產(chǎn)生一個復(fù)位信號。復(fù)位看門狗程序如下:voidReset-wdog(void){CS=0;CS=1;}2.7儀表具體的號碼修改儀表的編號存在X5045的E2PROM中,單片機(jī)上電時首先讀取存儲在X5045中的儀表編號并存入RAM中,以便與上位機(jī)通信使用。另外可通過設(shè)置多級液晶菜單的方式修改儀表的編號。圖3為修改設(shè)備編號界面。按SET鍵進(jìn)入圖3所示界面,按↑↓鍵選擇“修改設(shè)備編號”項,再按SET鍵即進(jìn)入設(shè)備編號設(shè)置界面,此時按↑↓鍵可以修改設(shè)備編號。3表中的軟件設(shè)計3.1溫度報警系統(tǒng)控制主程序首先初始化串口、DS18B20和液晶顯示模塊,然后向單總線發(fā)送匹配ROM命令定位一個指定的DS18B20,之后發(fā)送讀取溫度暫存器命令,讀出TH和TL值,存入單片機(jī)RAM中。然后,進(jìn)入完成多路溫度的巡檢、報警和分屏顯示的循環(huán)程序;當(dāng)檢測到任一路溫度超出報警限時,通過I/O口驅(qū)動報警電路,同時將報警信息上傳,當(dāng)檢測到溫度恢復(fù)正常后自動取消報警。每檢測到一個DS18B20,都將檢測到的溫度存入指定的RAM單元,以便與上位計算機(jī)通信時將數(shù)據(jù)上傳。3.2提取18b20執(zhí)行初始化后,在單總線上向18B20發(fā)送讀序列號命令33H,接著用讀字節(jié)函數(shù)連續(xù)讀取8個字節(jié),即為18B20的64位序列號,程序如下。Init-DS18B20();//初始化WriteOneChar(0x33);//讀序列號命令for(i=0;i<8;i++){a[i]=ReadOneChar();}3.3控制板程序暫存單元修改該系統(tǒng)可以在下位機(jī)設(shè)置溫度上限和下限,掉電后數(shù)據(jù)不會丟失。上電時DS18B20會自動將E2PROM中的數(shù)據(jù)拷貝回暫存器,單片機(jī)先讀取指定DS18B20的溫度報警限TH和TL值,程序如下:Read-alarm(){Init-DS18B20();//初始化18B20WriteOneChar(0x55);//發(fā)送匹配ROM命令for(i=0;i<8;i++)//發(fā)送18B20序列號{WriteOneChar(DS18B20[i]);}WriteOneChar(0xBE);//讀取暫存器a=ReadOneChar();b=ReadOneChar();c=ReadOneChar();d=ReadOneChar();alarm=c;alarm=d;//轉(zhuǎn)存TH、TL}(1)報警限設(shè)定界面如圖4所示。通過“←”符號,選擇設(shè)定上限還是下限,按SET鍵后“←”變?yōu)椤?”號,表示被選中,此時即可修改單片機(jī)程序報警限暫存單元中的值;修改完畢按SET鍵,則自動調(diào)用寫入報警限函數(shù),將修改后的報警限存入指定的DS18B20的暫存器和E2PROM.(2)向DS18B20的E2PROM寫入報警限函數(shù)是關(guān)鍵,該程序完成向指定18B20的暫存器寫入報警限,并將報警限拷貝到E2PROM的功能。流程圖如圖5所示。3.4ds18b20工作流程多點(diǎn)測溫時,單片機(jī)首先發(fā)送跳過ROM命令,接著發(fā)送溫度轉(zhuǎn)換命令,單總線上所有的DS18B20收到命令后同時進(jìn)行溫度轉(zhuǎn)換,然后順序發(fā)送事先得到的ROM序列號,逐個讀取轉(zhuǎn)換后的溫度值,并調(diào)用數(shù)據(jù)轉(zhuǎn)換和顯示程序?qū)囟蕊@示在LCD上。每次采集到的最新溫度存入發(fā)送暫存單元,當(dāng)上位機(jī)通過串口采集數(shù)據(jù)時,串口中斷程序即可按MODBUS-RTU協(xié)議的格式將數(shù)據(jù)上傳。主機(jī)對單總線器件DS18B20操作流程為:初始化操作;執(zhí)行跳過ROM操作命令;啟動溫度轉(zhuǎn)換;初始化操作;發(fā)送匹配ROM操作命令(55H);發(fā)送18B20序列號;讀暫存器。單總線器件所有的數(shù)據(jù)都在一根線上傳輸,這就必然對時序有嚴(yán)格的要求,因此嚴(yán)格按照DS18B20總線操作時序編寫驅(qū)動函數(shù)是正確測溫的關(guān)鍵,一般來說,DS18B20的底層驅(qū)動函數(shù)主要是初始化DS18B20函數(shù)、讀8位數(shù)據(jù)函數(shù)、寫8位數(shù)據(jù)函數(shù)。對DS18B20的所有操作都是通過調(diào)用這些驅(qū)動函數(shù)實(shí)現(xiàn)的。3.5主機(jī)的顯示程序DS18B20轉(zhuǎn)換后的溫度數(shù)據(jù)是以16位帶符號二進(jìn)制補(bǔ)碼形式存放的,其高字節(jié)的高4位為符號位(全0表示正,全1表示負(fù)),低字節(jié)的低4位為小數(shù)部分,中間8位是整數(shù)部分。主機(jī)必需首先判斷符號位,若為正,則直接將二進(jìn)制轉(zhuǎn)換為十進(jìn)制后調(diào)用LCD顯示程序;若為負(fù)溫度,則須先將二進(jìn)制補(bǔ)碼變?yōu)樵a,再調(diào)用LCD顯示程序。3.6地址碼、校驗(yàn)碼系統(tǒng)采用MODBUS協(xié)議的RTU模式實(shí)現(xiàn)上位計算機(jī)與下位采集表的通信,前者作為主設(shè)備,后者為從設(shè)備,并根據(jù)主設(shè)備發(fā)來的命令執(zhí)行相應(yīng)操作。主設(shè)備發(fā)送的查詢命令包括地址碼、功能碼、數(shù)據(jù)區(qū)、校驗(yàn)碼。從機(jī)返回的信息中包括地址碼、執(zhí)行動作的功能碼、數(shù)據(jù)和錯誤校驗(yàn)碼。協(xié)議中的錯誤檢測碼可以增加系統(tǒng)的安全和效率。這里采用CRC-16校驗(yàn)算法。程序如下:modbus-crc(){uintCRC=0xFFFF;for(i=0;i<m;i++){CRC=modbus-receive[i]^CRC;for(j=0;j<8;j++){if(CRC&0x01){CRC=CRC>>1^0xA001;}elseCRC=CRC>>1;}}CRCL=(uchar)(CRC&0xff);CRCH=(uchar)(CRC>>8);}3.7表中的混合通信程序設(shè)計3.7.1進(jìn)制到情況由于DS18B20轉(zhuǎn)換后的溫度用2字節(jié)表示,按ModBus協(xié)議,計算機(jī)讀取1號采集表的8路溫度,采用03號命令發(fā)送的16進(jìn)制信息幀為010300000008440C,440C為前面6字節(jié)的CRC-16校驗(yàn)碼。從機(jī)返回的16進(jìn)制數(shù)據(jù)包格式為如表1所示。3.7.2特征獲取及處理系統(tǒng)采用MODBUS-RTU的06號命令,實(shí)現(xiàn)上位機(jī)對采集表報警限的設(shè)置。下位機(jī)串口接收到PC的數(shù)據(jù)后,若是本機(jī)地址或廣播地址,且功能碼為06,則調(diào)用相應(yīng)的應(yīng)答函數(shù),分離出報警限數(shù)據(jù),分別送入高限暫存單元和低限暫存單元,然后調(diào)用寫報警限函數(shù),將數(shù)據(jù)寫入DS18B20中。4計算機(jī)監(jiān)控程序的設(shè)計4.1溫度巡檢和溫度監(jiān)控LabVIEW是虛擬儀器領(lǐng)域具有代表性的圖形編程開發(fā)平臺,在基于計算機(jī)的儀器控制、數(shù)據(jù)采集、分析與處理、數(shù)據(jù)通信等領(lǐng)域得到廣泛應(yīng)用。該系統(tǒng)中計算機(jī)完成的主要功能是:通過PC串口按照MODBUSRTU協(xié)議對下位機(jī)進(jìn)行溫度巡檢,在LabVIEW的前面板調(diào)用數(shù)值顯示控件進(jìn)行溫度顯示;可以在計算機(jī)監(jiān)控程序中修改串口通信參數(shù)和采樣間隔,并對下位采集儀表的報警限進(jìn)行初始化。在VI的程序框圖中采用LabVIEW的for循環(huán)結(jié)構(gòu)實(shí)現(xiàn)對多個采集表的巡檢。MODBUS協(xié)議的消息發(fā)送至少要有3.5個字符時間的間隔。因此需在循環(huán)中加入延時。基于LabVIEW開發(fā)的采集系統(tǒng)人機(jī)界面如圖6所示。4.2軟件設(shè)計接口通信LabVIEW具有強(qiáng)大的VISA庫,是用于儀器編程的標(biāo)準(zhǔn)I/O函數(shù)庫及相關(guān)規(guī)范的總和,VISA庫駐留于計算機(jī)系統(tǒng)中,其實(shí)質(zhì)是一種標(biāo)準(zhǔn)的API,VISA通過調(diào)用底層驅(qū)動程序?qū)崿F(xiàn)對儀器的操作。VISA適用于各種儀器類型,如VXI儀器、RS-232串行接口儀器、USB儀器、GPIB接口儀器等,為計算機(jī)與儀器連接通信提供了極大的方便。系統(tǒng)利用LabVIEW中提供的VISA庫中的串口通信函數(shù),按照MODBUSRTU協(xié)議編寫通信程序,實(shí)現(xiàn)與下位機(jī)的通信,LabVIEW與下位機(jī)的通信采用的函數(shù)節(jié)點(diǎn)如下:(1)VISAConfigureSerialPort,指定用來通信的串口號,并可通過此函數(shù)節(jié)點(diǎn)設(shè)定通信參數(shù);(2)VISAWrite,向指定的串口向下位機(jī)發(fā)送數(shù)據(jù);(3)VISARead,讀取指定串口中的數(shù)據(jù)到緩沖區(qū),注意在端口bytecount指定要讀取的字節(jié)數(shù)量;(4)VISAClose,結(jié)束與指定串口的通信。4.3校驗(yàn)碼的校驗(yàn)在LabVIEW中利用公式節(jié)點(diǎn)FormulaNode實(shí)現(xiàn)CRC校驗(yàn),程序如圖7所示,FormulaNode的入口參數(shù)buf為要校驗(yàn)的字節(jié)數(shù)組,len為被校驗(yàn)數(shù)組的長度,出口參數(shù)CRCHi和CRCLo分別為計算出的校驗(yàn)碼的高低字節(jié)。程序中將其封裝成子VI.4.4個溫度轉(zhuǎn)換程序,根據(jù)本數(shù)據(jù)的轉(zhuǎn)換,將其作為一個生DS18B20的溫度數(shù)據(jù)采用12位的分辨率,DS18B20的步進(jìn)值為0.0625℃,因此將采集到的數(shù)據(jù)乘以0.0625即為溫度數(shù)據(jù)的攝氏讀數(shù)。由于各采集點(diǎn)的溫度數(shù)據(jù)都需要在LabVIEW中進(jìn)行轉(zhuǎn)換,因此將轉(zhuǎn)換程序做成一個子VI,入口參數(shù)為溫度的高字節(jié)和低字節(jié),出口參數(shù)為轉(zhuǎn)換后的數(shù)據(jù),直接調(diào)用此VI即可。轉(zhuǎn)換程序如圖8所示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國摩托車減震套數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國手推液壓堆高車數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國家庭使用特種停車設(shè)備數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國多用復(fù)膜壓合機(jī)數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國塑架折式5倍放大鏡數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國兒童自行車鞍座殼數(shù)據(jù)監(jiān)測研究報告
- 關(guān)注農(nóng)業(yè)植保員考試趨勢試題及答案
- 掌握體育市場的基礎(chǔ)知識試題及答案
- 從案例看醫(yī)療倫理論理模擬訓(xùn)練的必要性
- 企業(yè)辦公的未來方向區(qū)塊鏈技術(shù)與云計算的結(jié)合
- 血液科護(hù)士對輸血反應(yīng)的識別與處理
- 《工程材料基礎(chǔ)》課件
- 渠道施工課件
- 預(yù)防艾滋病宣傳教育主題班會
- Part1-2 Unit1 Travel 教案-【中職專用】高一英語精研課堂(高教版2021·基礎(chǔ)模塊2)
- 城市普通中小學(xué)校校舍建設(shè)標(biāo)準(zhǔn)
- 數(shù)字化時代的金融監(jiān)管
- 《瘋狂動物城》全本臺詞中英文對照
- 金融風(fēng)險傳染性研究
- 小學(xué)科學(xué)實(shí)驗(yàn)?zāi)夸?-6年級新教科版
- 成人體外心肺復(fù)蘇專家共識(2023版)解讀
評論
0/150
提交評論