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

正文內(nèi)容

儲(chǔ)油罐實(shí)時(shí)監(jiān)測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-免費(fèi)閱讀

2025-08-12 19:37 上一頁面

下一頁面
  

【正文】 return temp。 write_byte(jump_ROM)。 i8。 receive_data = 0。 i++)。 deceive_ready = DQ。 for(i=0。 TR1 = 1。 //初始化串口 SBUF = i。 3 串口發(fā)送模塊代碼 /******************************************************************** * 文件名 : 串口發(fā)送 .c * 描述 : 該文件實(shí)現(xiàn)通過串口把數(shù)據(jù)從單片機(jī)發(fā)送到電腦, 。 for(j=0。 duan = 1。 //上端壓力返回函數(shù) unsigned char pdow()。 //儲(chǔ)油罐編號 , 在 文件里定義賦值 COM_Out(wd)。 display (ge,3)。 wd = wendu()。 ( 3) 本系統(tǒng)中采用的數(shù)學(xué)模型不適合計(jì)算球狀等不規(guī)則形狀的儲(chǔ)油罐。 ( 3)邏輯錯(cuò)誤。 程序運(yùn)行中的錯(cuò)誤 在設(shè)計(jì)好程序代碼后,就要進(jìn)行錯(cuò)誤處理與調(diào)試。 ARM 嵌入式設(shè)備端軟件 軟件運(yùn)行平臺(tái): Linux for ARM 32 位 軟件開發(fā)平臺(tái): Red Hat Enterprise Linux 5 armlinuxgcc Qt for linux 其實(shí)無論是 PC 上還是嵌入式設(shè)備上,源代碼都是一致的,只不過編譯的軟件不一樣。 myComsetTimeout(10)。 化界面文件。以下將簡單對這兩種方式做一簡要的說明。 /*將位選信號放進(jìn) P2 口的低三位,只改 變 P2 口低三位的值,不影響其他位 */ 顯示模塊的程序代碼中對外提供一個(gè)接口: display(d , w)函數(shù)。 38 譯碼器輸入端接單片機(jī) 三端, 8 個(gè)輸出端分別接 8 位數(shù)碼管上的位選信號。 串口發(fā)送的數(shù)據(jù)順序是: 0x00, 0xff,油罐編號,溫度,底端壓力,上端壓力; 其中 0x00,和 0xff是數(shù)據(jù)校驗(yàn)標(biāo)志,當(dāng)上位機(jī)收到一個(gè)數(shù)組后,先判斷第一位是 0x00,且第二位是 0xff后,就知道從第三位開始就是編號,溫度,壓力這些有效數(shù)據(jù)了,因?yàn)槭孪戎罃?shù)據(jù)長度,就不用結(jié)束標(biāo)志位了。 對 DS18B20 的整體操作如下: ; ROM 指令: 0xcc; : 0x44; ; ROM 指令: 0xcc; : 0xbe; ; ; 最后將讀到的溫度數(shù)據(jù)以十進(jìn)制的表示方法返回給主調(diào)函數(shù)。數(shù)據(jù)和命令的傳輸都是低位在先。 DS18B20 溫度差傳感器是一個(gè)數(shù)字傳感器,這就省去了 A/D 轉(zhuǎn)換的麻煩,在硬件電路上只有一根數(shù)據(jù)線,占用硬件資源很少,硬件上的節(jié)約同樣需要軟件來補(bǔ)償,這就注定了操作 DS18B20 的繁瑣性。數(shù)據(jù)傳送時(shí),先傳送最高位( MSB),每一個(gè)被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有 9 位)。 //ISendByte 是數(shù)據(jù)發(fā)送函數(shù) p1=IRcvByte(0x91)。 D3 是保留位??偩€地址的最后一位為方向位,當(dāng)主控器件對 A/D器件進(jìn)行讀操作時(shí)為 1,進(jìn)行寫操作時(shí)為 0。C 總線以串行的方式進(jìn)行傳輸。 (2). A/D 轉(zhuǎn)換部分 本系統(tǒng)要對兩個(gè)模擬壓力量進(jìn)行監(jiān)測,如果使用傳統(tǒng)的 8 位并行 A/D 轉(zhuǎn)換器件,光數(shù)據(jù)口就會(huì)占據(jù) 16 個(gè) I/O 口,對于一個(gè)只有 4 組 8 位 I/O 口的單片機(jī)來說,這種硬 件上的開銷實(shí)在比較大。 根據(jù)式( 3)計(jì)算當(dāng)前液位高度 h時(shí),用到的壓力值都是比值關(guān)系,所以無須計(jì)算出確切的物理壓力量來。由此可以推出當(dāng)前液位的壓力差也就是底端的壓力值 。如圖 所示, 其中 P1, P2 是底端和上端的壓力值。 方案比較 i. 下位機(jī)端: 顯然,用 C 語言開發(fā)下位機(jī)程序有 可讀性強(qiáng)、易于編程、代碼量低的優(yōu)點(diǎn),而且 可以降低開發(fā)難度與 開發(fā) 周期。 ii. 上位機(jī)端: 方案一: 使用 Delphi 作為開發(fā)工具, Delphi 是著名的 Borland 公司開發(fā)的可視化軟件開發(fā) 工具。 兩種硬件 方案論證 結(jié)合兩種硬件方案,采用的硬件結(jié)構(gòu)有所不同,方案 2 用單片機(jī)作為硬件系統(tǒng),顯然電路復(fù)雜,可靠性較低,而且無法向上位機(jī)發(fā)送數(shù)據(jù),實(shí)現(xiàn)遠(yuǎn)端監(jiān)測。 2. 儲(chǔ)油罐實(shí)時(shí)監(jiān)測與計(jì)量 儲(chǔ)油罐狀態(tài)實(shí)時(shí)監(jiān)測:儲(chǔ)油罐液位等參數(shù)的實(shí)時(shí)監(jiān)測。 ( 3)兼容性。而國內(nèi)研制的系統(tǒng)大多計(jì)算精度低、穩(wěn)定性和可靠性差。 本系統(tǒng)針對上述問題,采用相應(yīng)的傳感器采集儲(chǔ)油罐內(nèi)的溫度和壓力,并通過單片機(jī)將儲(chǔ)油量、溫度值顯示出來;同時(shí)利用串口將各項(xiàng)數(shù)據(jù)發(fā)送給上位機(jī),從而進(jìn)行更精確的計(jì)算與統(tǒng)計(jì)。系統(tǒng)運(yùn)行安全可靠,性能穩(wěn)定,可以在惡劣環(huán)境長期連續(xù)工作。在軟件方面,要求人機(jī)界面友好, 操作簡便;在硬件方面,要求維護(hù)檢修方便。 整個(gè)系統(tǒng)的工作流程大致如下:壓力傳感器從儲(chǔ)油罐終端采集到數(shù)據(jù) , 經(jīng)單片機(jī)處理( A/D 轉(zhuǎn)換) 后 顯示到現(xiàn)場端的數(shù)碼管上,同時(shí)通過串口傳輸給上位機(jī),實(shí)現(xiàn)遠(yuǎn)端監(jiān)測,連入計(jì)算機(jī),計(jì)算機(jī)顯示并保存上傳的液位數(shù)據(jù),并可以通過管理軟件對數(shù)據(jù)來進(jìn)行后續(xù)處理。特點(diǎn)是執(zhí) 行效率高。編程語言是 C++,是面向?qū)ο蟮恼Z言,功能強(qiáng)大。其中涉及到的內(nèi)容有 I2C 總線驅(qū)動(dòng), A/D 轉(zhuǎn)換,數(shù)學(xué)建模等內(nèi)容。 壓差法的 計(jì)算的思路是 : 壓差比 = 液面高度比 圖 儲(chǔ)油罐數(shù) 學(xué)模型 兩個(gè)傳感器之間的相對高度 h0是事先設(shè)定且固定的 ,也就是說底端的壓力值 P1減去上端的壓力值 P2,就是這段液位的壓差 。 需要說的一點(diǎn) , P1 和 P2 是兩個(gè)模擬壓力量 , 經(jīng) 8 位的 A/D 轉(zhuǎn)化器轉(zhuǎn)換后得到的數(shù)字值。 但是在下位機(jī)端,單片機(jī)計(jì)算乘除運(yùn)算比較吃力,而且精確度相當(dāng)差。 PCF8591 的 3 個(gè)地址引腳A0, A1 和 A2 可用于硬件地址編程,允許在同個(gè) I178。 PCF8591 采用典型的 I2C 總線接口尋址方法,即總線地址由器件地址、引腳地址和方向位共同組成??刂谱止?jié)存放于控制寄存器中的格式如圖 所示: 長治學(xué)院學(xué)士學(xué)位論文 9 圖 控制寄存器格式 其中: D0 D1 兩位是 A/D 通道編號: 00 通道 0, 01 通道 1, 10 通道 2, 11 通道 3;在本系統(tǒng)中利用 A/D 通道 0 和 A/D 通道 1。 將這個(gè)過程結(jié)合到本系統(tǒng)中, PCF8591 的器件地址為 1001,引腳地址為 000,寫操作時(shí)方向位為 0,即 0x90,讀操作時(shí)方向位為 1,即 0x91??墒怯?I2C 總線傳輸數(shù)據(jù)只需占用主控器件的兩個(gè)引腳 ,就能傳輸 8 個(gè)外圍器件的數(shù)據(jù) ,相當(dāng)節(jié)省硬件資源 .所以綜合利弊 ,本系統(tǒng)采用 I2C總線設(shè)備來傳輸壓力值數(shù)據(jù) . 它的工作原理如下: I2C 總線設(shè)備由一條數(shù)據(jù)總線 SDA 和一條時(shí)鐘總線 SCL與中控器件相連 , I2C 總線進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時(shí)鐘線上的信號為低電平期間,且高電平狀態(tài)維持一定的時(shí)間(一般為 5 微秒)以后,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化(如圖 ) 。在本系統(tǒng)中,這種策略體現(xiàn)在對 A/D 轉(zhuǎn)換芯片PCF8591 的操作上,詳細(xì)內(nèi)容在上文中介紹到了。該協(xié)議定義了幾種信號的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序,如圖 所示。 對于 DS18B20 寫 0 時(shí)序和寫 1 時(shí)序的要求不同,當(dāng)要寫 0 時(shí)序時(shí),單總線要被拉低至少 60us,保證 DS18B20 能夠在 15us 到 45us 之間能夠正確地采樣 IO 總線上的 “0”電平,當(dāng)要寫 1 時(shí)序時(shí),單總線被拉低之后,在 15us 之內(nèi)就得釋放單總線 。在一個(gè)大型的煉油廠,儲(chǔ)油罐與上位機(jī)的距離不可能在 20m之內(nèi), RS232 電平無法滿足長距離傳輸數(shù)據(jù)的功能。相對而言,顯示模塊在本系統(tǒng)中是一個(gè)比較簡單的模塊,硬件上由一個(gè)八位的八段數(shù)碼管、一個(gè) 38 譯碼器( 74H138)和一個(gè)鎖存器( 74H373)構(gòu)成 ,如圖 所示。 但這種賦值方式在這三個(gè)端口值不斷變化的情況下,較為繁瑣,所以利用 C 語言按位與,按位或,左右位移等方法較為簡便,例如: P2 amp。一般對幾十個(gè)儲(chǔ)油罐進(jìn)行監(jiān)測,系統(tǒng)的資源消耗不會(huì)很大,也可以說是輕而易舉一件事兒。作為工業(yè)監(jiān)測的設(shè)備,穩(wěn)定性是相當(dāng)重要的,通常情況下 linux操作系統(tǒng)開機(jī)一年都不會(huì)出現(xiàn)任何問題,完全能滿足連續(xù)監(jiān)測的任務(wù)。 myComsetParity(PAR_NONE)。軟件開啟 界 面 與 軟件 界 面 如圖 和 所示: 圖 軟件開啟界面 圖 操作界面 長治學(xué)院學(xué)士學(xué)位論文 21 這是一個(gè)簡單的監(jiān)測界面,出于實(shí)驗(yàn)和整體界面布局美觀的考慮,暫時(shí)只設(shè)計(jì)了對四個(gè)儲(chǔ)油罐監(jiān)測的位置,若用于工業(yè)監(jiān)測時(shí),在程序中很容易增加幾十個(gè)監(jiān)測位置。 長治學(xué)院學(xué)士學(xué)位論文 23 5 系統(tǒng)調(diào)試 調(diào)試計(jì)劃 1.審查設(shè)計(jì)方案,檢查是否有涉及方向的錯(cuò)誤。這種錯(cuò)誤在編譯時(shí)有提示,通常是變量定義錯(cuò)誤,或語法結(jié)構(gòu)錯(cuò)誤。 圖 錯(cuò)誤數(shù)據(jù)調(diào)試結(jié)果 長治學(xué)院學(xué)士學(xué)位論文 28 6 總結(jié)分析 經(jīng)過兩個(gè)多月的奮斗,畢業(yè)設(shè)計(jì)終于順利完成了,但是仍有許多不足之處,需要在以后的學(xué)習(xí)和實(shí)踐過程中改進(jìn),比如說: ( 1) 由于本人水平有限,加之時(shí)間較倉 促,多次嘗試在系統(tǒng)中添加數(shù)據(jù)庫,添加統(tǒng)計(jì)功能,遺憾的是均未能成功,但是面向?qū)ο蟮?Qt 圖形編輯軟件完全支持這些功能,在以后的學(xué)習(xí)過程中可以添加進(jìn)去。 uchar x。 ge = p%10。 COM_Out(0x00)。//顯示函數(shù) void COM_Out(uchar i)。 */ uchar code duantable[10] = {0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}。/*給 P2 口賦位選值前,先將 p2 與( 1111 1000)邏輯與, // 將 P2^0,P2^1,P2^2 清零,從而不影響其他位原來的電平 */ P2 |= weitable[w]。 } /*顯示一個(gè)數(shù)字的時(shí)候,調(diào)用 display()即可, 格式: display(段 ,位 )。 TL1 = 0xFd。 SCON = 0x50。 //TI 清零 } /******************************************************************** 長治學(xué)院學(xué)士學(xué)位論文 36 * 文件名 : * 描述 : 該文件實(shí)現(xiàn)了用溫度傳感器件 DS18B20 對溫度的采集 ***********************************************************************/ include include define uchar unsigned char define uint unsigned int define jump_ROM 0xCC //總線上只有一個(gè)器件, 0xcc 表示不對 ROM 編碼做出反 應(yīng) define start 0x44 //收到只個(gè)指令后芯片做一次溫度轉(zhuǎn)換 define read_EEROM 0xBE sbit DQ = P2^3。 delay(29)。 DQ = 1。 DQ=1。 } return(receive_data)。 delay(5)。 TMPL = read_byte()。 unsigned char read_bit(void)。 write_byte(jump_ROM)。 0x01。 i++) { if(read_bit()) { receive_data = receive_data + (m i)。 if(bitval==1) DQ=1。 //返回 DQ 的電平狀態(tài) } /******************************************************************** * 名稱 : read_bit() ***********************************************************************/ uchar read_bit(void) { 長治學(xué)院學(xué)士學(xué)位論文 37 uchar i。 } /******************************************************************** * 名稱
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1