劉偉韜 王新鵬 劉 晉 劉曉磊 楊 倩
摘要:文章介紹了基于Mega16單片機的瓦斯監(jiān)測裝置。該裝置具有測量、通信、存儲、查詢、顯示等功能,能夠滿足現(xiàn)場測量的需要。
關(guān)鍵詞:瓦斯 監(jiān)測 ATmega16
0 引言
瓦斯監(jiān)測是煤礦安全中非常重要的環(huán)節(jié),因此高性能的瓦斯監(jiān)測裝置對煤礦的安全系統(tǒng)十分重要?,F(xiàn)有的許多瓦斯監(jiān)測裝置存在著可操作性差,顯示不方便,反應(yīng)速度慢等問題。因此,筆者開發(fā)了基于Mega16單片機的瓦斯監(jiān)測裝置。
1 瓦斯檢測裝置硬件設(shè)計
1.1 總體設(shè)計:
該瓦斯監(jiān)測裝置主要由微處理器8位AVR ATmega16、傳感器采集電路、數(shù)據(jù)預(yù)處理電路、人機接口電路等組成。其工作原理如下:瓦斯傳感器隊瓦斯?jié)舛冗M行檢測,并產(chǎn)生一個電壓信號;數(shù)據(jù)預(yù)處理電路對此信號進行放大處理并將信號傳送到AVR ATmega16芯片的A/D轉(zhuǎn)換通道中。AVR ATmega16芯片控制A/D模塊工作得到數(shù)字信號并取若干次轉(zhuǎn)換的平均值,并將該信號與預(yù)設(shè)的標準值進行比較并存儲,當數(shù)字信號超過標準值時就產(chǎn)生聲光報警,低于標準值則不報警。人機接口包括鍵盤和LCD顯示屏,鍵盤主要用來調(diào)試日期,進行系統(tǒng)復(fù)位,LCD屏用來顯示實時瓦斯?jié)舛纫约皩崟r時鐘給出的日期和時間。當系統(tǒng)進入死機狀態(tài)時,看門狗可以對系統(tǒng)進行復(fù)位。
1.2 瓦斯傳感器與信號預(yù)處理電路 催化燃燒式傳感器突出的優(yōu)點是傳感器模塊化設(shè)計,體積小,安全性高,而且隨著對催化燃燒探頭的原理與生產(chǎn)工藝的深入研究,載體催化元件的穩(wěn)定性,抗中毒性,輸出線性等都有了大幅度的提高,更適合于在惡劣環(huán)境下對煤礦瓦斯的檢測。所以本系統(tǒng)選擇催化燃燒式瓦斯傳感器。信號預(yù)處理電路可以將傳感器輸出信號處理為適合A/D轉(zhuǎn)換的范圍。
1.3 A/D轉(zhuǎn)換 A/D轉(zhuǎn)換裝置主要通過ATmega 16芯片自帶的A/D轉(zhuǎn)換接口,這樣可以節(jié)省硬件成本,同時還起到簡化外接電路、節(jié)省端口的目的。內(nèi)置A/D轉(zhuǎn)換裝置具有10位精度、±2LSB的絕對精度、13?s~260?s的轉(zhuǎn)換時間、在最大精度下可達到每秒15kSPS的采樣速率、8路可選的單端輸入通道、ADC的電壓輸入范圍0~Vcc、可選擇的內(nèi)部2.56V的ADC參考電壓源、ADC轉(zhuǎn)換完成中斷等優(yōu)點。因而,ATmega 16完全適任本設(shè)計裝置的預(yù)期的任務(wù)。
1.4 數(shù)據(jù)存儲 ATmega 16單片機的強大的功能還體現(xiàn)在它的存儲功能上。ATmega 16支持EEPROM和flash的讀寫。單片機在對轉(zhuǎn)換信號進行處理后,將所得數(shù)據(jù)送至芯片自帶的EEPROM或flash中。由于EEPROM和flash支持多次讀寫,且掉電不會丟失數(shù)據(jù),因而非常適合在本設(shè)計中作為存儲器使用。
1.5 人機接口 LCD顯示屏是以HD44780為模型,它具有14個管腳,其中包括8個數(shù)據(jù)地址管腳,選片管腳,讀寫管腳等。本LCD屏不能顯示漢字,可用來顯示日期、時間和瓦斯?jié)舛鹊难b置。本LCD顯示系統(tǒng)可以顯示兩行40個字符,第一行輪流顯示日期和時間,其顯示更替由按鍵決定。第二行顯示瓦斯?jié)舛取T撏咚贡O(jiān)測裝置的鍵盤模塊是9位鍵盤,通過此鍵盤可以對傳感器的多項內(nèi)容進行設(shè)置,例如日期、時間和報警標準值。
1.6 聲光報警 當瓦斯?jié)舛瘸^預(yù)置的報警值時,及時進行現(xiàn)場報警顯得尤為重要。為了加強報警效果,本傳感器采用聲光同時報警的方式,當監(jiān)測到甲烷濃度值超過報警值時,蜂鳴器開始鳴響,高亮紅色數(shù)碼管對當前過限濃度也亮起來。
1.7 串行通信 Atmega16本身帶有串行通訊口,但其電平為TTL電平,必須通過MAX232進行電平轉(zhuǎn)換才能與PC機進行串行通訊。為了將信號轉(zhuǎn)化為可用,采用MAXIM公司的MAX232/MAX233芯片實現(xiàn)5V電路中和PC實現(xiàn)串口通信的電平轉(zhuǎn)換芯片。存儲數(shù)據(jù)的上傳由PC機控制,PC機向測試儀發(fā)送啟動發(fā)送或停止發(fā)送指令,即可完成數(shù)據(jù)上傳的啟動與終止。
2 瓦斯監(jiān)測裝置軟件設(shè)計
軟件設(shè)計大體上可以分為三部分,分別是主程序,串口中斷程序,定時器中斷程序。
2.1 主程序設(shè)計 主程序的主要作用是各項初始化并循環(huán)對鍵盤進行掃描。初始化包括時間的初始化,串口的初始化,LCD的初始化,定時器的初始化等。鍵盤掃描要判斷鍵盤是否被按下,如果未被按下則再循環(huán)掃描,如果被按下則返回不同的數(shù)值,并根據(jù)不同的數(shù)值做出相應(yīng)的動作,比如進入和退出設(shè)置狀態(tài),日期的設(shè)置,報警復(fù)位和系統(tǒng)復(fù)位等。
2.2 串口中斷程序 串口中斷程序主要用于和上位機的通信,當上位機向MEGA16發(fā)送命令時,則串口就會產(chǎn)生一個中斷來處理上位機的命令,MEGA16會先判斷指令是否是有效指令,如果不是則直接清除中斷標志位,如果是有效指令則判斷指令的類型并執(zhí)行相應(yīng)的操作,指令執(zhí)行完畢之后清除中斷標志位并退出中斷。
2.3 定時器中斷程序 當定時器產(chǎn)生中斷時,A/D轉(zhuǎn)化器進行一次AD轉(zhuǎn)換,并存儲轉(zhuǎn)換的數(shù)據(jù),然后將轉(zhuǎn)換數(shù)據(jù)與預(yù)設(shè)的標準值進行比較,如果沒有超過標準值則正常顯示,如果轉(zhuǎn)換值超過了標準值則先進行聲光報警,然后正常顯示。而顯示日期時要先判斷LCD是否處于設(shè)置狀態(tài),如果沒有處于設(shè)置狀態(tài)則正常顯示日期,否則還要判斷自定義變量是否是偶數(shù),如果是偶數(shù)則正常顯示日期的數(shù)字,如果是奇數(shù)則交替顯示“-”和日期。最后清除中斷標志位并退出中斷。
2.4 A/D轉(zhuǎn)換程序 AVR mega16有一個10位的逐次逼近型A/D轉(zhuǎn)換,其與一個8通道的模擬多路復(fù)用器連接,能對來自端口A的8路單端輸入電壓進行采樣。本系統(tǒng)采用定時器對A/D轉(zhuǎn)換的間隔進行控制,初步設(shè)定0.5秒轉(zhuǎn)換一次,當定時器計時滿產(chǎn)生中斷時就進行一次轉(zhuǎn)換。