郭占苗
(蘇州大學(xué)應(yīng)用技術(shù)學(xué)院,江蘇 蘇州 215325)
燃爆災(zāi)情時(shí)有發(fā)生,人類防患于未然的意識越來越強(qiáng),在很多生產(chǎn)現(xiàn)場禁煙,杜絕酒精等易燃?xì)怏w泄漏,以保證生產(chǎn)及人身的安全。在科技日新月異的今天,設(shè)計(jì)一種智能煙霧酒精報(bào)警系統(tǒng)用于高危生產(chǎn)現(xiàn)場顯得尤為重要。煙霧酒精報(bào)警器是用來監(jiān)測環(huán)境中煙霧和酒精的濃度,當(dāng)環(huán)境酒精濃度或煙霧濃度超過設(shè)定閾值后,報(bào)警器就會調(diào)取相應(yīng)的語音模塊中提前存儲的語音信息進(jìn)行報(bào)警,這樣就可以使值班工作人員及早發(fā)現(xiàn)事故隱患,及時(shí)采取安全措施,避免燃爆事故發(fā)生[1]。同時(shí),該煙霧酒精報(bào)警系統(tǒng)不但價(jià)格低廉,而且具有智能化,在油庫、化工場所和燃?xì)獾热菀装l(fā)生可燃煙霧和酒精泄露的高危場所均具有較大的實(shí)用價(jià)值。
如圖1所示,智能煙霧酒精報(bào)警系統(tǒng)以STC15F2K60S2作為核心控制器件,傳感器選用MQ-2 型氣體傳感器實(shí)現(xiàn)對煙霧的檢測,MQ-3對酒精濃度進(jìn)行檢查。傳感器將采集到的相關(guān)信息通過PCF8591芯片進(jìn)行AD轉(zhuǎn)換, 經(jīng)單片機(jī)處理后把信號傳給LCD12864顯示屏顯示。 當(dāng)超過煙霧和酒精閾值時(shí),播放MY2490-16P 語音模預(yù)設(shè)的聲音信息,通過揚(yáng)聲器輸出報(bào)警提示語音[2]。

圖1 煙霧酒精報(bào)警器原理框圖

圖2 主程序流程圖
系統(tǒng)主程序流程圖如圖2所示,系統(tǒng)在初始化結(jié)束后,自動(dòng)執(zhí)行主程序并調(diào)用各個(gè)功能模塊子程序,完成對煙霧酒精濃度參數(shù)檢測、參數(shù)設(shè)置、顯示、報(bào)警等功能。當(dāng)系統(tǒng)上電開機(jī)初始化之后,煙霧酒精傳感器檢測周圍環(huán)境煙霧和酒精濃度,通過A/D轉(zhuǎn)換,在單片機(jī)中運(yùn)算處理數(shù)據(jù),當(dāng)超過閾值時(shí),系統(tǒng)執(zhí)行報(bào)警程序。
傳感器MQ-2通常被用在家庭或工廠的氣體泄漏監(jiān)測裝置,并適用于對液化天然氣,丁烷,丙烷,甲烷,乙醇,氫氣和煙霧等化學(xué)物品的檢測。MQ-3型傳感器是酒精傳感器,當(dāng)檢測到所處環(huán)境中存在酒精蒸汽時(shí),傳感器的電導(dǎo)率隨空氣中酒精氣體濃度的增加而增加[3],其模擬端(A0)的輸出電壓信號與酒精濃度的特性曲線近似為線性關(guān)系,輸出端連接到AD轉(zhuǎn)換器的2腳將模擬量轉(zhuǎn)化為與傳感器檢測濃度相對應(yīng)的數(shù)字量。無論是酒精傳感器還是煙霧傳感器的濃度檢測,程序設(shè)計(jì)上限調(diào)節(jié)數(shù)值范圍設(shè)置均為“100”,根據(jù)實(shí)際需求可以對參數(shù)進(jìn)行修改設(shè)置。
在按鍵模塊中,單片機(jī)P42接的是設(shè)置鍵,P35是“+”鍵,按下一次按鍵數(shù)值加1,P34是“-”鍵,按下一次按鍵數(shù)值減1,可以用來調(diào)整閾值參數(shù)的范圍。初始值將煙霧的上限設(shè)置為“72”,酒精的濃度上限設(shè)置為“80”。在按鍵掃描函數(shù)中,首先對設(shè)置鍵進(jìn)行按鍵判斷,按鍵按下一次,執(zhí)行“key1n++;”,因?yàn)橛袩熿F和酒精兩種傳感器的初值和閾值共四個(gè)參數(shù)可以進(jìn)行設(shè)置,所以執(zhí)行語句“if(key1n==4) key1n=1;”,可以通過按鍵設(shè)置四個(gè)參數(shù)的值[4]。進(jìn)一步,利用“if”和“switch”語句,對閾值和初值進(jìn)行修改,最后調(diào)用LCD12864液晶寫數(shù)據(jù)函數(shù)

進(jìn)行顯示,液晶顯示煙霧傳感器值的十位和個(gè)位,同理可以顯示酒精傳感器的值。
傳感器輸出的數(shù)據(jù)要通過A/D轉(zhuǎn)換模塊PCF8591進(jìn)行轉(zhuǎn)換再傳給單片機(jī)控制揚(yáng)聲器播放相應(yīng)的報(bào)警音樂。A/D轉(zhuǎn)換模塊的核心器件PCF8591的通信協(xié)議是I2C,其主要內(nèi)容包括起始信號,數(shù)據(jù)傳輸,應(yīng)答部分和結(jié)束信號程序的編寫,在編程時(shí)要符合I2C協(xié)議[5]。根據(jù)I2C協(xié)議的通信流程圖可知,編寫起始信號程序時(shí),要求在SCL為高電平期間,SDA由高到低產(chǎn)生一個(gè)下降沿,數(shù)據(jù)傳輸時(shí),與UART不同的是,按照高位在前低位在后的順序傳輸,而且數(shù)據(jù)在SCL低電平時(shí)候變化,SCL為高電平時(shí)讀取數(shù)據(jù)[6]。由PCF8591地址字節(jié)可知,寫地址字節(jié)是“0X90”,讀字節(jié)地址是“0X91”,當(dāng)SDA為低電平時(shí),表示有應(yīng)答,為高電平時(shí)無應(yīng)答,最后,在SCL為高電平期間,SDA由低到高產(chǎn)生一個(gè)上升沿表示信號結(jié)束。根據(jù)設(shè)計(jì)原理圖,MQ-3酒精報(bào)警器接PCF8591的AIN1,MQ-2煙霧報(bào)警器的輸出端接PCF8591的AIN0,通過調(diào)用函數(shù)“Pcf8591_Send(1)”發(fā)送通道1轉(zhuǎn)換命令,再調(diào)取“Pcf8591_Read( );”讀函數(shù),將讀出的值送給變量“MQ-3”與提前設(shè)定的閾值進(jìn)行比較,超過閾值時(shí)報(bào)警。因?yàn)镻CF8591是8位逐次逼近型ADC,液晶顯示的最大可調(diào)參數(shù)為“100”,所以通過“MQ_3=(MQ_3*100/255”語句將其轉(zhuǎn)換為顯示數(shù)值范圍為“0-100”之間,同樣的思路可以編寫對MQ-2煙霧報(bào)警器的參數(shù)進(jìn)行A/D轉(zhuǎn)換。
語音報(bào)警設(shè)計(jì)主要采用MY2490-16P語音模塊,該模塊的10腳和11腳連接揚(yáng)聲器,其7腳(RX)和8腳(TX)分別于單片機(jī)的P3.1和P3.0相連進(jìn)行UART串口通信[7]。串口發(fā)送數(shù)據(jù)函數(shù):

系統(tǒng)上電顯示為煙霧和酒精濃度均未超過閾值時(shí),揚(yáng)聲器播報(bào)存儲卡里面的指定合成語音“歡迎使用煙霧酒精報(bào)警系統(tǒng)”,該語音信息存儲在“03”號歌曲中,如果傳感器檢測到的數(shù)據(jù)超過了閾值就會播放語音模塊中存儲的相應(yīng)音樂信息,當(dāng)執(zhí)行語句“if(MQ_2>=yanwu_num )”時(shí),說明煙霧值超過閾值,則播報(bào)“02”號歌曲中語音信息,同理,當(dāng)執(zhí)行條件滿足“if(MQ_3>=jiujing_num)”時(shí),則播報(bào)“01”歌曲中的信息,共三首歌曲均存放在“01”號文件夾中。根據(jù)MY2490-16P語音模塊協(xié)議的控制命令格式可知,起始碼為“0X7E”,結(jié)束碼為“0XEF”。每隔20 ms延時(shí)串口分別依次往出發(fā)送“起始碼”“長度”“操作碼”“文件夾號”“歌曲名”“校驗(yàn)碼”和“結(jié)束碼”數(shù)據(jù),其中校驗(yàn)碼為“長度”“操作碼”“文件夾號”和“歌曲名”數(shù)值的異或值[8],通過該方式可實(shí)現(xiàn)指定文件夾曲目播放功能。
為節(jié)省單片機(jī)的IO口,LCD12864的15引腳接低電平,工作為串行模式。串行數(shù)據(jù)傳送共分為三個(gè)字節(jié),第一個(gè)字節(jié)的格式“1111ABC”(A為數(shù)據(jù)傳送方向控制,B為數(shù)據(jù)類型選擇,C固定為0),第二個(gè)字節(jié)是并行八位數(shù)據(jù)傳送的高四位,第四位補(bǔ)零,第三個(gè)字節(jié)是并行八位數(shù)據(jù)傳送的低四位。并行操作時(shí),向液晶寫的八位數(shù)據(jù)[9]。
編寫液晶程序時(shí),先進(jìn)行液晶初始化,初始化液晶先延時(shí)大于40毫秒的時(shí)間,選擇基本指令集,寫入“write_com(0x30);”進(jìn)行選擇8bit的數(shù)據(jù)流,寫入“write_com(0x0c);”實(shí)現(xiàn)整體顯示,游標(biāo)關(guān),不反白功能,通過寫入“write_com(0x01);”實(shí)現(xiàn)清除顯示,并且設(shè)定地址指針為00H(即光標(biāo)恢復(fù)到起點(diǎn))功能。其中調(diào)用到寫指令函數(shù),則編寫寫指令“void write_com(uchar com )”函數(shù),
寫指令時(shí),將“RS=0;”“RW=0;”“E”由高變低,送命令參數(shù)給寫字節(jié)函數(shù),最后進(jìn)行延時(shí)操作。同樣思路可編寫寫數(shù)據(jù)函數(shù),與寫指令不同之處就是將“RS=1;”,然后將數(shù)據(jù)送給寫字節(jié)函數(shù)。寫字節(jié)時(shí),數(shù)據(jù)分兩次發(fā)送,先發(fā)送高位數(shù)據(jù)再發(fā)送低位數(shù)據(jù),并且一個(gè)字節(jié)分高低四位分別發(fā)送,通過命令地址或者數(shù)據(jù)先與“0XF0”相與發(fā)送高四位,然后右移4位后與“0XF0”相與發(fā)送低四位的順序進(jìn)行傳輸。
根據(jù)LCD12864的漢字顯示坐標(biāo),第一行到第四行的起始地址分別是“0X80”“0X90”“0X88”“0x98”,每行可寫8個(gè)漢字或者16個(gè)字符(ASCII碼),注意在編寫時(shí),如果一個(gè)地址為一個(gè)字符時(shí),則要再加一個(gè)空格,否則會顯示亂碼。系統(tǒng)上電后顯示通過調(diào)用程序“l(fā)cd_pos(1,0); chinese("初始化中...");”讓液晶顯示漢字“初始化化中...”延時(shí)很短時(shí)間后,接著顯示主界面,第一行顯示“煙霧酒精報(bào)警系統(tǒng)”,第二行為MQ-2煙霧報(bào)警的初值和閾值,第三行為MQ-3酒精報(bào)警的初值與閾值,此時(shí)也可以操作按鍵調(diào)節(jié)初值或閾值參數(shù)。其中編寫寫漢字程序時(shí),用指針指向每行的首地址,當(dāng)一行沒結(jié)束時(shí),指針加加,指向下一個(gè)字的地址的方式實(shí)現(xiàn)[10],主要代碼是“while(*p!=' 主站蜘蛛池模板: 亚洲视频a| 18禁黄无遮挡网站| 2048国产精品原创综合在线| 性做久久久久久久免费看| 国产99视频精品免费观看9e| 97se亚洲综合在线| 国产欧美综合在线观看第七页| 呦视频在线一区二区三区| 就去色综合| 亚洲精品麻豆| 国产成a人片在线播放| 五月六月伊人狠狠丁香网| 国产欧美精品专区一区二区| 欧美午夜在线视频| 中文字幕在线不卡视频| 人妻出轨无码中文一区二区| 亚洲国产天堂久久综合| 99资源在线| 波多野结衣二区| 色综合色国产热无码一| 国产网站免费看| 一区二区偷拍美女撒尿视频| 欧洲在线免费视频| 欧美成人日韩| 九月婷婷亚洲综合在线| 亚洲色中色| av免费在线观看美女叉开腿| 久久精品一品道久久精品| 日韩午夜福利在线观看| 九色视频最新网址 | 国产在线观看成人91| 国产精品青青| 亚洲一级无毛片无码在线免费视频| 欧美不卡在线视频| 亚洲国产精品VA在线看黑人| 欧美日韩资源| 8090午夜无码专区| 91欧美亚洲国产五月天| 热久久国产| 国内精自视频品线一二区| 国产精品人成在线播放| 97青青青国产在线播放| 日本不卡免费高清视频| 色婷婷丁香| 中文字幕人成人乱码亚洲电影| 国产一区二区精品福利| 大陆精大陆国产国语精品1024| 东京热高清无码精品| 国产女人在线观看| 久久久国产精品无码专区| 91成人在线观看| 亚洲女同欧美在线| 久久96热在精品国产高清| 国产无遮挡猛进猛出免费软件| 国产精品人人做人人爽人人添| 亚洲精品午夜无码电影网| 91尤物国产尤物福利在线| 亚洲欧美h| 成人综合网址| 人妻丰满熟妇αv无码| 久一在线视频| 国产91丝袜| 制服丝袜亚洲| 一级片免费网站| 在线观看网站国产| 亚洲香蕉久久| 欧美不卡二区| 内射人妻无码色AV天堂| 国产不卡国语在线| 国产人前露出系列视频| 99热这里只有精品久久免费| 久久狠狠色噜噜狠狠狠狠97视色| 欧美日韩免费在线视频| 精品国产91爱| 成人毛片免费观看| 亚洲AV无码乱码在线观看代蜜桃 | 亚洲成人一区二区三区| 国产精品污污在线观看网站| 免费毛片网站在线观看| 99re在线视频观看| 91 九色视频丝袜| 福利在线不卡|