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

正文內(nèi)容

儲油罐實時監(jiān)測系統(tǒng)的設(shè)計與實現(xiàn)(編輯修改稿)

2024-08-17 19:37 本頁面
 

【文章內(nèi)容簡介】 通常情況下我們采用的是 TO- 92 封裝的 DS18B20, 如 圖 。 圖 DS18B20 封裝 由于 DS18B20 采用的是 1- Wire 總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對 51 單片機來說,跟 I2C 總線設(shè)備一樣,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對 DS18B20 芯片的訪問。 DS18B20 是在一根 I/O 線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴格的時序要求。DS18B20 有嚴格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序,如圖 所示。所有時 序都是將主機作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 圖 DS18B20 的復(fù)位時序 長治學院學士學位論文 13 圖 DS18B20 的讀時序 DS18B20 的讀時序分為讀 0 時序和讀 1 時序兩個過程。 對于 DS18B20 的讀時隙是從主機把單總線拉低之后,在 15us 之內(nèi)就得釋放單總線,以讓 DS18B20 把數(shù)據(jù)傳輸?shù)絾慰偩€上。 DS18B20 在完成一個讀時序過程,至少需要 60us才能完成。 圖 DS18B20 的寫時序 DS18B20 的寫時序仍然分為寫 0 時序和寫 1 時序兩個過程。 對于 DS18B20 寫 0 時序和寫 1 時序的要求不同,當要寫 0 時序時,單總線要被拉低至少 60us,保證 DS18B20 能夠在 15us 到 45us 之間能夠正確地采樣 IO 總線上的 “0”電平,當要寫 1 時序時,單總線被拉低之后,在 15us 之內(nèi)就得釋放單總線 。 在本系統(tǒng)中, DS18B20 的 2 引腳 DQ 與主控器 STC90C516RD+ 的 P2^3 引腳相連,這條 I/O 線上只掛載了一個 DS18B20,所以在操作時不 必去理會 DS18B20的 ROM編碼,在單器件的情況下,為了節(jié)省時間則可以選擇跳躍 ROM 指令( define jump_ROM 長治學院學士學位論文 14 0xCC),即向 DS18B20 寫入指令: 0xCC。如過多芯片掛載使用此指令將會出現(xiàn)數(shù)據(jù)沖突,出現(xiàn)錯誤。 對 DS18B20 的整體操作如下: ; ROM 指令: 0xcc; : 0x44; ; ROM 指令: 0xcc; : 0xbe; ; ; 最后將讀到的溫度數(shù)據(jù)以十進制的表示方法返回給主調(diào)函數(shù)。 串口數(shù) 據(jù)發(fā)送模塊 串口數(shù)據(jù)發(fā)送模塊的主要功能是將溫度,壓力等數(shù)據(jù)用串口發(fā)送給上位機,實現(xiàn)對儲油罐的遠端檢測功能。在本系統(tǒng)中采用的串口數(shù)據(jù)通信芯片是 MAX485。 PC 機一般接收的 RS232 電平,不識別 RS485 的電平信號,所以在接收端需要將 RS485 電平轉(zhuǎn)換為 RS232 電平。 利用 MAX485 的主要原因是它的有效傳輸距離能達到 1500m,而普通 RS232 電平信號的有效距離最多也超不過 20m。在一個大型的煉油廠,儲油罐與上位機的距離不可能在 20m之內(nèi), RS232 電平無法滿足長距離傳輸數(shù)據(jù)的功能。 操作單片機發(fā)送串口 數(shù)據(jù)時,要利用定時器來設(shè)置波特率。主要的操作步驟: 選擇好工作方式,設(shè)置好串口的相應(yīng)的寄存器,設(shè)置好定時器的寄存器,將要發(fā)送的數(shù)據(jù)放入串口緩存區(qū)。 串口發(fā)送的數(shù)據(jù)順序是: 0x00, 0xff,油罐編號,溫度,底端壓力,上端壓力; 其中 0x00,和 0xff是數(shù)據(jù)校驗標志,當上位機收到一個數(shù)組后,先判斷第一位是 0x00,且第二位是 0xff后,就知道從第三位開始就是編號,溫度,壓力這些有效數(shù)據(jù)了,因為事先知道數(shù)據(jù)長度,就不用結(jié)束標志位了。 長治學院學士學位論文 15 向上位機發(fā)送的數(shù)據(jù)是源源不斷的發(fā)送上去,每秒鐘能發(fā)好幾次,上位機再選擇性的 接收數(shù)據(jù)并做出相應(yīng)的處理。在 windows 下使用串口調(diào)試工具,收到的數(shù)據(jù)如圖 所示。 圖 串口調(diào)試工具 用串口調(diào)試工具查看串口數(shù)據(jù)時,這些數(shù)據(jù)是以十六進制顯示的,而且是一連串的數(shù)據(jù),不知道它們代表的是什么意思。用一定的方法將這些數(shù)據(jù)解析完畢后,我們就可以很清楚的理解他們的意思了,在 linux平臺的終端中,顯示解析后的數(shù)據(jù)如圖 : 圖 linux 平臺的終端 數(shù)據(jù) 長治學院學士學位論文 16 顯示模塊 顯示模塊的功能是:將各傳感器檢測到的值經(jīng)其他相應(yīng)功能模塊處理之后,以數(shù)值的形式顯示在數(shù)碼管上 。相對而言,顯示模塊在本系統(tǒng)中是一個比較簡單的模塊,硬件上由一個八位的八段數(shù)碼管、一個 38 譯碼器( 74H138)和一個鎖存器( 74H373)構(gòu)成 ,如圖 所示。 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .0 /T 21P 1 .1 /T 2 E X2P 1 .2 /E C I3P 1 .3 /C E X 04P 1 .4 /C E X 15P 1 .5 /C E X 26P 1 .6 /C E X 37P 1 .7 /C E X 48P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C51 RD 2A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U37 4 HC 1 3 8X1CR Y S T A LC11nFC21nFR12 4 0 kD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U27 4 L S 3 7 3 圖 顯示電路 鎖存器的輸入端接單片機的 P0 口,將 P0 輸出的電平保存起來,防止其跳變。輸出端接數(shù)碼顯示管的段選信號。 38 譯碼器輸入端接單片機 三端, 8 個輸出端分別接 8 位數(shù)碼管上的位選信號。位選的電平邏輯可參考 38 譯碼器的真值表,在此不再贅述。 特別強調(diào)的是,在操作單片機給 三端賦值時,應(yīng)只給這三個端口賦值,盡量不要采用 “P2 = XXX”的形式。這樣雖然可以改變這三個端口的值,達到操作38 譯碼器的效果,但同時也改變了 P2 口其他五個端口的值,這就意味著對顯示模塊的操作可能會導(dǎo)致其他與 P2 口相連模塊的功能產(chǎn)生錯誤。 可以這樣賦值 : P2^0 = X; 長治學院學士學位論文 17 P2^1= X; P2^2= X。 但這種賦值方式在這三個端口值不斷變化的情況下,較為繁瑣,所以利用 C 語言按位與,按位或,左右位移等方法較為簡便,例如: P2 amp。= 0xf8。 /*給 P2 口賦位選值前,先將 p2 與( 1111 1000) 邏輯與,將 P2^0,P2^1,P2^2 清零,從而不影 響其他位原來的電平 */ P2 |= weitable[w]。 /*將位選信號放進 P2 口的低三位,只改 變 P2 口低三位的值,不影響其他位 */ 顯示模塊的程序代碼中對外提供一個接口: display(d , w)函數(shù)。 其中 d 是段選參數(shù),作用是顯示什么數(shù)字; w 是位選信號,作用是在那一位上顯示。調(diào)用起來相當方便。 顯示的方法是動態(tài)掃描顯示,即每次只能在數(shù)碼管的某一位上顯示一 個數(shù)字,顯示完當前數(shù)字之后立即顯示下一位數(shù)字,當中間間隔小于 20m時,由于人體視覺有一定的滯留時間,所以無法察覺閃爍感,視覺效果與多位同時顯示一致。 長治學院學士學位論文 18 4 系統(tǒng)設(shè)計之上位機部分 上位機可以是 x86 平臺的計算機,也可以是 32 位 ARM 嵌入式設(shè)備。一般對幾十個儲油罐進行監(jiān)測,系統(tǒng)的資源消耗不會很大,也可以說是輕而易舉一件事兒。通的 PC功耗一般都超過 150W,對儲油罐的監(jiān)測是永不間斷的,這種電能的消耗累計起來將是一個很大的量,粗略計算一下每天會消耗 電能 3 千瓦時 ,一年下來就是一千多 千瓦時 。但是用嵌入式設(shè)備制作一個專門 針對儲油罐 的 監(jiān)測系統(tǒng),功耗一般不會超過 10W,同樣能完成 PC 所能實現(xiàn)的 監(jiān)測 功能, 但 功耗比 PC 低的多。以下將簡單對這兩種方式做一簡要的說明。 PC 端軟件 軟件運行平臺: Linux for x86 32 位 軟件開發(fā)平臺: Red Hat Enterprise Linux 5 Qt for linux 上位機 PC 端軟件是在 linux 操作系統(tǒng)下編譯開發(fā)的,也是要運行在 linux 32 位平臺上。開發(fā)軟件是 , Qt是一個 1991 年由奇趣科技開發(fā)的跨平臺 C++圖形用戶界面應(yīng)用程序 開發(fā)框架, 20xx 年,奇趣科技被諾基亞公司收購, QT也因此成為 諾基亞 旗下的編程語言工具,我們熟知的塞班操作系統(tǒng)的圖形界面就是用 Qt寫的。因為 Qt是跨平臺程序開發(fā)軟件,所以將源代碼做極小量的修改,就可以在 Windows 平臺下運行了。 選擇 linux操作系統(tǒng)的原因是它很穩(wěn)定,而且是免費的,絕大多數(shù)大型 IT公司的服務(wù)器都采用的是 linux操作系統(tǒng),甚至就連微軟也采用了大量的 linux系統(tǒng)的服務(wù)器。作為工業(yè)監(jiān)測的設(shè)備,穩(wěn)定性是相當重要的,通常情況下 linux操作系統(tǒng)開機一年都不會出現(xiàn)任何問題,完全能滿足連續(xù)監(jiān)測的任務(wù)。 整個圖形化界面的源代碼由以下文件組成見圖 。 長治學院學士學位論文 19 圖 文件組織 其中 images 目錄內(nèi)是軟件內(nèi)的一些圖片, ;; ; 這四個文件是第三方為 Qt封裝的一個串口通訊的類, 。 化界面文件。 對串口的設(shè)置代碼如下: myCom = new Posix_QextSerialPort(/dev/ttyS0,QextSerialBase::Polling)。 myCom open(QIODevice::ReadWrite)。 myComsetBaudRate(BAUD9600)。 myComsetDataBits(DATA_8)。 myComsetParity(PAR_NONE)。 myComsetStopBits(STOP_1)。 myComsetFlowControl(FLOW_OFF)。 myComsetTimeout(10)。 readTimer = new QTimer(this)。 readTimerstart(1000)。 connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()))。 } 長治學院學士學位論文 20 這種接收方式相當于單片機的串口 工作 方式 2,就實現(xiàn)了 上位機 與下位機的串口通訊。軟件開啟 界 面 與 軟件 界 面 如圖 和 所示: 圖 軟件開啟界面 圖 操作界面 長治學院學士學位論文 21 這是一個簡單的監(jiān)測界面,出于實驗和整體界面布局美觀的考慮,暫時只設(shè)計了對四個儲油罐監(jiān)測的位置,若用于工業(yè)監(jiān)測時,在程序中很容易增加幾十個監(jiān)測位置。由于本人能力有限,暫時不能對該軟件做出太多的功能。但 是 Qt是一個很強大的東西,可以建立一個數(shù)據(jù)庫,對儲油量,溫度,壓力進行各種統(tǒng)計,可以繪制
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1