基于單片機(jī)的酒精濃度測試的設(shè)計(jì)與研究樣本_第1頁
基于單片機(jī)的酒精濃度測試的設(shè)計(jì)與研究樣本_第2頁
基于單片機(jī)的酒精濃度測試的設(shè)計(jì)與研究樣本_第3頁
基于單片機(jī)的酒精濃度測試的設(shè)計(jì)與研究樣本_第4頁
基于單片機(jī)的酒精濃度測試的設(shè)計(jì)與研究樣本_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

畢業(yè)設(shè)計(jì)設(shè)計(jì)題目:基于單片機(jī)酒精濃度測試設(shè)計(jì)與研究系別:信息工程系班級:電子信息工程姓名:指導(dǎo)教師:年6月10日基于單片機(jī)酒精濃度測試設(shè)計(jì)與研究摘要對于人體內(nèi)酒精濃度高低判斷重要根據(jù)于人酒后所呼出氣體中酒精濃度高低做出恰當(dāng)判斷。隨著經(jīng)濟(jì)發(fā)展,人民生活水平提高,酒后駕駛所導(dǎo)致交通事故屢屢發(fā)生。為防止此類事故發(fā)生,交通執(zhí)法者檢測駕駛員與否酒后駕駛尤為重要。本文設(shè)計(jì)了一種基于單片機(jī)酒精濃度檢測報警系統(tǒng),單片機(jī)作為主控芯片。MQK2酒精傳感器將檢測到信息發(fā)送至芯片和設(shè)定閾值比較后判斷與否報警,若報警GSM模塊實(shí)現(xiàn)了將報警信號發(fā)送至手機(jī)端,同步在液晶顯示屏上顯示測量成果。本次設(shè)計(jì)檢測裝置將89c51作為重要控制芯片、MQ302A酒精傳感器、AD0804轉(zhuǎn)換器、AT89C51單片機(jī)控制器、聲光報警、LCD1602顯示屏、GSM模塊等構(gòu)成。文中對酒精濃度檢測原理做出詳細(xì)分析和設(shè)計(jì)方案,對各個子模塊進(jìn)行了論證和比較。硬件設(shè)計(jì)采用ProtelDXP軟件,完畢了各個模塊原理圖設(shè)計(jì)。軟件設(shè)計(jì)采用KeilB編程軟件,實(shí)現(xiàn)了對酒精濃度信號解決過程編程和調(diào)試。核心字:單片機(jī)酒精濃度傳感器LCD1602GSM模塊聲光報警DesignAndResearchOfTheAlcoholConcentrationTestBasedOnMCUAbstractMakeaproperjudgmentonthealcoholconcentrationofalcoholconcentrationtodeterminethemainbasistodrunktheexhaledgasinthelevelof.Withthedevelopmentofeconomy,people'slivingstandardsimprove,drunkendrivingcausedbytrafficaccidentshappenfrequently.Topreventthiskindofaccident,trafficlawenforcementdetectwhetherthedriverdrunkdrivingisparticularlyimportant.Thispaperdescribesthedesignofanalarmsystemfordetectingalcoholconcentrationbasedonsingle-chipmicrocomputer,microcontrollerasthemaincontrolchip.MQK2alcoholsensorwilldetecttheinformationsenttothechipandthesetthresholdcomparisontodeterminewhetherthealarm,thealarmGSMmoduletoachievethealarmsignalwillbesenttothemobilephoneterminal,atthesametime,themeasuredresultsaredisplayedontheLCDscreen.Thedetectiondevicedesignwillformthe89C51asthemaincontrolchip,MQ302Aalcoholsensor,AD0804converter,AT89C51controller,alarm,LCD1602display,GSMmoduleetc..Principleofalcoholconcentrationdetectioninthispapermakestheanalysisandthespecificdesignofeachmodule,arediscussedandcompared.ThehardwaredesignusingProtelDXPsoftware,completedthedesignofeachmoduleprinciplediagram.SoftwaredesignusingKeiluVision2,therealizationofsignalprocessingofalcoholconcentrationduringprogramminganddebugging.Keywords:SCMalcoholconcentrationsensorLCD1602GSMmodulesound-lightalarm目錄1引言 12系統(tǒng)總體方案設(shè)計(jì) 22.1總體設(shè)計(jì)思路分析 22.2總體設(shè)計(jì)框圖分析 23系統(tǒng)硬件設(shè)計(jì) 43.1.STC89C5A60S2單片機(jī)電路設(shè)計(jì) 43.1.1.STC89C5A60S2單片機(jī)特性概述 43.1.2STC89C5A60S2引腳功能 43.1.3晶振電路 53.1.4復(fù)位電路 63.2酒精濃度模塊設(shè)計(jì) 73.2.1酒精濃度傳感器MQ3特點(diǎn) 73.2.2A/D轉(zhuǎn)換電路 83.2.3MAX3232電路 93.3液晶顯示屏LCD1602 93.3.1LCD1602簡介 93.3.2系統(tǒng)LCD1602顯示闡明 103.4通信模塊設(shè)計(jì) 113.4.1GSM模塊簡介 123.5按鍵鍵盤設(shè)計(jì) 123.5.1按鍵鍵盤闡明 123.5.2按鍵電路設(shè)計(jì) 123.6報警電路設(shè)計(jì) 123.6.1蜂鳴器闡明 123.6.2發(fā)光二極管闡明 133.6.3聲光報警電路 134系統(tǒng)軟件設(shè)計(jì) 144.1軟件設(shè)計(jì)概述 144.1.1Keil軟件簡介 144.2系統(tǒng)軟件設(shè)計(jì) 144.2.1主程序流程圖 144.2.2酒精濃度檢測子程序 154.2.3LCD顯示子程序 154.2.4無線通信子程序 164.2.5報警子程序 204.2.5串行口子程序 215硬件焊接及調(diào)試 235.1概要闡明 235.1.1硬件焊接 235.1.2軟件調(diào)試 235.1.3軟硬聯(lián)調(diào) 235.2調(diào)試中浮現(xiàn)問題及解決辦法 246結(jié)論 25謝辭 26參照文獻(xiàn) 27附錄 281引言近年來,隨著國內(nèi)經(jīng)濟(jì)高速發(fā)展,人民生活水平迅速提高,越來越多人有了私家車,隨著而來酒后駕車導(dǎo)致交通事故也屢屢發(fā)生。酒后駕車引起交通事故是由于司機(jī)過量飲酒導(dǎo)致人體內(nèi)酒精濃度過高,麻痹神經(jīng),導(dǎo)致大腦反映遲緩,肢體不受控制等導(dǎo)致。近年前交通管理者鑒定駕駛?cè)藛T與否有飲酒只能靠主觀判斷、肉眼觀測和去醫(yī)院進(jìn)行血液中酒精含量檢測,這些不科學(xué)不及時辦法導(dǎo)致了諸多不必要誤會和麻煩;而當(dāng)前隨著著科技發(fā)展酒精濃度測試儀已經(jīng)基本裝備了交通管理者隊(duì)伍。為此,需要設(shè)計(jì)一款便攜式儀器可以監(jiān)測駕駛員體內(nèi)酒精含量。本畢業(yè)設(shè)計(jì)通過對酒精濃度測試研究和設(shè)計(jì),使學(xué)生結(jié)識理解單片機(jī)對數(shù)據(jù)采集分析過程、辦法與環(huán)節(jié),提高并鞏固學(xué)生所學(xué)理論知識,結(jié)合課題需要提高學(xué)生獲取新知識能力。使學(xué)生能掌握單片機(jī)基本用法。力求使學(xué)生在收集資料,查閱文獻(xiàn),調(diào)查研究,方案設(shè)計(jì),外文應(yīng)用,計(jì)算機(jī)解決,撰文論證,文字表達(dá)等方面加強(qiáng)訓(xùn)練,實(shí)現(xiàn)所學(xué)知識向能力轉(zhuǎn)化??梢约兪焓褂迷O(shè)計(jì)所依賴開發(fā)平臺。本文所述酒精濃度測試儀采用MQK2酒精濃度傳感器檢測人呼出氣體中酒精濃度并且輸出電壓信號,然后把信號輸出到高集成度混合集成芯片C8051F040作解決,并完畢數(shù)據(jù)采集、判斷解決、數(shù)據(jù)傳播等功能。測試儀進(jìn)行氣體測試基本環(huán)節(jié)是:單片機(jī)采集酒精傳感器響應(yīng)信號,并且進(jìn)行轉(zhuǎn)換,儲存在數(shù)據(jù)存儲器(SRAM)中,然后單片機(jī)進(jìn)行氣體濃度辨認(rèn),并且將成果輸出到液晶顯示屏上,同步可發(fā)出濃度閾值光(聲)警報信號也可通過網(wǎng)絡(luò)將警報發(fā)送至手機(jī)。2系統(tǒng)總體方案設(shè)計(jì)2.1總體設(shè)計(jì)思路分析本文所述酒精濃度測試儀分為硬件某些和軟件某些。其中硬件某些運(yùn)用MQ3氣敏傳感器采集空氣中酒精濃度,并轉(zhuǎn)換為電壓信號經(jīng)A/D轉(zhuǎn)換后傳給單片機(jī)系統(tǒng),由單片機(jī)及其外圍電路進(jìn)行信號解決,顯示濃度值以及超閾值聲光報警;并且將報警信號通過GSM模塊發(fā)送至所設(shè)定手機(jī)。軟件設(shè)計(jì)采用C語言編程,程序采用模塊化設(shè)計(jì)思想。各個子程序功能相對獨(dú)立,便于調(diào)試和修改。而硬件電路又大體可分為單片機(jī)小系統(tǒng)電路、A/D轉(zhuǎn)換電路、聲光報警電路、LED顯示電路,GSM模塊電路,各某些電路設(shè)計(jì)及原理將會在硬件電路設(shè)計(jì)某些詳細(xì)簡介;程序設(shè)計(jì)使C語言編程。2.2總體設(shè)計(jì)框圖分析本文總體設(shè)計(jì)框圖如下:酒精傳感器酒精傳感器顯示語音報警A/D轉(zhuǎn)換單片機(jī)GSM模塊網(wǎng)絡(luò)手機(jī)圖圖2-1系統(tǒng)總體設(shè)計(jì)框圖各模塊闡明功能如下:1.MQ3酒精濃度傳感器是一種檢測裝置對乙醇蒸汽有很高敏捷度和良好選取性。通過MQ3檢測空氣中酒精濃度后,檢測值通過數(shù)模轉(zhuǎn)換器傳送至單片機(jī),通過單片機(jī)解決與所設(shè)定閾值進(jìn)行比較,判斷與否報警。2.顯示某些是將采集到酒精濃度進(jìn)行顯示。本設(shè)計(jì)采用LCD1602顯示屏對采集到數(shù)據(jù)進(jìn)行顯示。1602液晶模塊內(nèi)部字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母大小寫、慣用符號、和日文假名等,完全可以滿足對溫濕度顯示。3.本設(shè)計(jì)為了更加便于使用,相比于普通酒精濃度測試儀增長了GSM模塊。當(dāng)單片機(jī)判斷所檢測到酒精濃度超過所設(shè)定閾值時,發(fā)出聲光報警同步并將報警信號發(fā)送至提前設(shè)定好手機(jī)。4.STC12C5A60S2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)單時鐘/機(jī)器周期(1T)單片機(jī),是高速/低功耗/超強(qiáng)抗干擾新一代51單片機(jī)。指令代碼完全兼5.GSM模塊內(nèi)有GSM射頻芯片、系帶解決芯片、存儲器、功放器件等??梢园l(fā)送手機(jī)短信。6..設(shè)定值由接受端按鍵控制,其中一種為設(shè)立鍵,另有兩個按鍵控制設(shè)定值加減,比較報警選用蜂鳴器和LED電路表達(dá)報警信號。3系統(tǒng)硬件設(shè)計(jì)3.1.STC89C5A60S2單片機(jī)電路設(shè)計(jì)3.1.1.STC89C5A60S2單片機(jī)特性概述STC12C5A60S2/AD/PWM系列單片機(jī)是宏晶科技生產(chǎn)單時鐘/機(jī)器周期(1T)單片機(jī),是高速/低功耗/超強(qiáng)抗干擾新一代51單片機(jī)。指令代碼完全兼容老式51單片機(jī),但是速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換。增強(qiáng)型8051CPU,1T,單時鐘/機(jī)器周期,工作頻率范疇:0-35MHz,相稱于普通80510~420MHz,片上集成1280字節(jié)RAM,有EEPROM功能(STC12C5A62S2/AD/PWM無內(nèi)部EEPROM),內(nèi)部集成MAX810專用復(fù)位電路(外部晶體12M如下時,復(fù)位腳可直接1K電阻到地);工作溫度范疇:-40-+85℃(工業(yè)級)/0-75℃(商業(yè)級)213.1.2STC89C5A60S2引腳功能1.增強(qiáng)型8051CPU,1T,單時鐘/機(jī)器周期,指令代碼完全兼容老式8051。2.工作電壓:STC12C5A60S2系列工作電壓:5.5V-3.3V(5V單片機(jī))。TC12LE5A60S2系列工作電壓:3.6V-2.2V(3V單片機(jī))3.工作頻率范疇:0-35MHz,相稱于普通80510~420MHz。4.顧客應(yīng)用程序空間8K/16K/20K/32K/40K/48K/52K/60K/62K字節(jié)5.片上集成1280字節(jié)RAM。6.通用I/O口(36/40/44個),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051老式I/O口)可設(shè)立成四種模式:準(zhǔn)雙向口/弱上拉,推挽/強(qiáng)上拉,僅為輸入/高阻,開漏每個I/O口驅(qū)動能力均可達(dá)到20mA,但整個芯片最大不要超過55mA。7.ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器可通過串口(P3.0/P3.1)直接下載顧客程序,數(shù)秒即可完畢一片。8.有EEPROM功能(STC12C5A62S2/AD/PWM無內(nèi)部EEPROM)10.內(nèi)部集成MAX810專用復(fù)位電路(外部晶體12M如下時,復(fù)位腳可直接1K電阻到地)。11.外部掉電檢測電路:在P4.6口有一種低壓門檻比較器,5V單片機(jī)為1.32V,誤差為+/-5%,3.3V單片機(jī)為1.30V,誤差為+/-3%。12.時鐘源:外部高精度晶體/時鐘,內(nèi)部R/C振蕩器(溫漂為+/-5%到+/-10%以內(nèi))1顧客在下載顧客程序時,可選取是使用內(nèi)部R/C振蕩器還是外部晶體/時鐘常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機(jī)為:11MHz~15.5MHz,3.3V單片機(jī)為:8MHz~12MHz,精度規(guī)定不高時,可選取使用內(nèi)部時鐘,但由于有制造誤差和溫漂,以實(shí)際測試為準(zhǔn)。13.共4個16位定期器,兩個與老式8051兼容定期器/計(jì)數(shù)器,16位定期器T0和T1,沒有定期器2,但有獨(dú)立波特率發(fā)生器,做串行通訊波特率發(fā)生器,再加上2路PCA模塊可再實(shí)現(xiàn)2個16位定期器。14.2個時鐘輸出口,可由T0溢出在P3.4/T0輸出時鐘,可由T1溢出在P3.5/T1輸出時鐘。15.外部中斷I/O口7路,老式下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷PCA模塊,PowerDown模式可由外部中斷喚醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通過寄存器設(shè)立到P4.2),CCP1/P1.4(也可通過寄存器設(shè)立到P4.3)。16.PWM(2路)/PCA(可編程計(jì)數(shù)器陣列,2路),也可用來當(dāng)2路D/A使用也可用來再實(shí)現(xiàn)2個定期器,也可用來再實(shí)現(xiàn)2個外部中斷(上升沿中斷/下降沿中斷均可分別或同步支持)。17.A/D轉(zhuǎn)換,10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬次)18.通用全雙工異步串行口(UART),由于STC12系列是高速8051,可再用定期器或PCA軟件實(shí)現(xiàn)多串口。19.STC12C5A60S2系列有雙串口,后綴有S2標(biāo)志才有雙串口,RxD2/P1.2(可通過寄存器設(shè)立到P4.2),TxD2/P1.3(可通過寄存器設(shè)立到P4.3)20.工作溫度范疇:-40-+85℃(工業(yè)級)/0-75℃(商業(yè)級)21.封裝:PDIP-40,LQFP-44,LQFP-48I/O口不夠時,可用2到3根普通I/O口線外接74HC164/165/595(均可級聯(lián))來擴(kuò)展I/O口,還可用A/D做按鍵掃描來節(jié)約I/O口,或用雙CPU,三線通信,還多了串口。3.1.3晶振電路晶振是石英振蕩器簡稱,它是時鐘電路中最重要部件,它重要作用是向顯卡、網(wǎng)卡、主板等配件各某些提供基準(zhǔn)頻率,它就像個標(biāo)尺,工作頻率不穩(wěn)定會導(dǎo)致有關(guān)設(shè)備工作頻率不穩(wěn)定,自然容易浮現(xiàn)問題。STC89C52片內(nèi)有一種高增益反相放大器,其輸入端(XTAL1)和輸出端(XTAL2)用于外接石英晶體和微調(diào)電容,構(gòu)成振蕩器,如圖3-2所示:電容C3和C4對頻率有微調(diào)作用,電容選取范疇普通為1.2~12MHz,晶振頻率越快,單片機(jī)指令周期越短,運(yùn)營越快。內(nèi)部時鐘信號由振蕩器輸出振蕩脈沖經(jīng)2分頻得到,用來控制單片機(jī)內(nèi)部各功能部件按照順序協(xié)調(diào)工作,其周期稱為時鐘周期。一種機(jī)器周期由6個時鐘周期構(gòu)成,指令周期以機(jī)器周期為單位,因此晶振頻率越快,單片機(jī)指令周期越短,運(yùn)營越快。本設(shè)計(jì)晶振選取頻率為11.0529MHz,電容選取30pF。經(jīng)計(jì)算得單片機(jī)工作機(jī)器周期約為:1μs。3.1.4復(fù)位電路為保證單片機(jī)系統(tǒng)穩(wěn)定可靠工作,復(fù)位電路是必可少一某些,復(fù)位電路第一功能是上電復(fù)位。所謂上電復(fù)位,是指在計(jì)算機(jī)上電瞬間,要在RST引腳上產(chǎn)生寬度不不大于10ms正脈沖,使計(jì)算機(jī)進(jìn)入復(fù)位狀態(tài)。等待系統(tǒng)電源穩(wěn)定后,復(fù)位信號停止。當(dāng)系統(tǒng)在工作中受到干擾后,容易浮現(xiàn)程序“跑飛”而盲目運(yùn)營甚至浮現(xiàn)死機(jī)現(xiàn)象。此時復(fù)位信號有效,使微機(jī)系統(tǒng)重新恢復(fù)正常運(yùn)營。當(dāng)前為止,單片機(jī)復(fù)位電路重要有四種類型:1.微分型復(fù)位電路;2.積分型復(fù)位電路;3.比較器型復(fù)位電路;4.看門狗型復(fù)位電路[7]。在本設(shè)計(jì)中,當(dāng)電源VCC上電時,因電容C3兩端電壓不能突變,因此RES在上電時會有一段時間為高電平,電容中電流越來越小,R1上電壓就越來越小,呈指數(shù)變化。過一段時間后,電容逐漸充電完畢,RST端恢復(fù)高電平,復(fù)位有效。持續(xù)一段時間后,復(fù)位撤除,微機(jī)開始工作。該電路具備構(gòu)造簡樸、實(shí)用等長處。本設(shè)計(jì)采用按鍵結(jié)合上電復(fù)位,當(dāng)電源連接后,按下按鍵則系統(tǒng)復(fù)位,單片機(jī)程序從頭開始執(zhí)行,詳細(xì)復(fù)位電路如圖3-3所示:3.2酒精濃度模塊設(shè)計(jì)3.2.1酒精濃度傳感器MQ3特點(diǎn)MQ3酒精濃度傳感器是一種檢測裝置對乙醇蒸汽有很高敏捷度和良好選取性,迅速反映和恢復(fù)速度,長期壽命和可靠性能,并且所需要驅(qū)動電路簡樸。MQ3酒精濃度傳感器探測濃度范疇為:0.01mg/L-10mg/L。合用于檢測機(jī)動車駕駛員與否為酒后駕駛;也可用于其她場合乙醇濃度檢測。MQ3型氣敏傳感器由微型Al2O3、陶瓷管和SnO2敏感層、測量電極和加熱器構(gòu)成敏感元件固定在塑料或者不銹鋼腔體內(nèi),加熱器為氣敏元件工作提供了必要工作條件。傳感器原則回路有兩某些構(gòu)成:其一為加熱回路;其二為信號輸出回路,它可以精確反映傳感器表面電阻變化。傳感器表面電阻RS變化,是通過與其串聯(lián)負(fù)載電阻RL上有效電壓信號VRL出面獲得。兩者之間關(guān)系表述為:RS/RL=(VC-VRL)/VRL,其中VC為回路電壓,10V。負(fù)載電阻RL可調(diào)為0.5~200K,加熱電壓Uh為5V。MQ3MQ3構(gòu)造和外形MQ3原則回路MQ3原則回路傳感器阻值變化率與酒精濃度、外界溫度之間關(guān)系傳感器阻值變化率與酒精濃度、外界溫度之間關(guān)系為了更好地使用酒精傳感器MQ3,現(xiàn)將MQ3原則工作條件和環(huán)境條件進(jìn)行簡介,如表一和表二所示。表一原則工作條件表二酒精傳感器MQ3環(huán)境條件3.2.2A/D轉(zhuǎn)換電路在單片機(jī)應(yīng)用系統(tǒng)中,被測量對象關(guān)于變化量,如溫度、壓力、流量、速度等非電物理量,須經(jīng)傳感器轉(zhuǎn)換成持續(xù)變化模仿電信號(電壓或電流),這些模仿電信號必要轉(zhuǎn)換成數(shù)字量后才干在單片機(jī)中用軟件進(jìn)行解決。實(shí)現(xiàn)模仿量轉(zhuǎn)換成數(shù)字量器件稱為A/D轉(zhuǎn)換器(ADC)。A/D轉(zhuǎn)換器大體分有三類:一是雙積分A/D轉(zhuǎn)換器,長處是精度高,抗干擾性好,價格便宜,但速度慢;二是逐次逼近式A/D轉(zhuǎn)換器,精度、速度、價格適中;三是并行A/D轉(zhuǎn)換器,速度快,價格也昂貴。本設(shè)計(jì)中采用A/D轉(zhuǎn)換器是STC12C5A60S2單片機(jī)內(nèi)部所帶A/D轉(zhuǎn)換器。此單片機(jī)A/D轉(zhuǎn)換為10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S(每秒鐘25萬次)3.2.3MAX3232電路MAX3232收發(fā)器采用專有低壓差發(fā)送器輸出級,具備一種完整串口(3路驅(qū)動器/5路接受器)。運(yùn)用雙電荷泵在3.0V至5.5V電源供電時可以實(shí)現(xiàn)真正RS-232性能。器件僅需四個0.1μF外部小尺寸電荷泵電容。MAX3222保證在120kbps數(shù)據(jù)速率下維持RS-232輸出電平。MAX3232具備2路接受器和2路驅(qū)動器。MAX3232電路如下圖所示:MAX323電路MAX323電路3.3液晶顯示屏LCD16023.3.1LCD1602簡介LCD1602分為帶背光和不帶背光兩種,基控制器大某些為HD44780,不帶背光比帶背光薄,在應(yīng)用中與否帶背光并無差別。LCD1602重要技術(shù)參數(shù):1.顯示容量:一行16個字符,共32字符;2.芯片工作電壓:4.5—5.5V;3.芯片工作電流:2.0mA(5.0V);4.模塊最佳工作電壓:+5V;5.每個字符尺寸:2.95×4.35mmLCD1602液晶模塊內(nèi)部控制器共有11條控制指令,分別為:指令1:清屏。指令碼0x01H,光標(biāo)復(fù)位到0x00H這個地址位置。指令2:光標(biāo)復(fù)位。光變應(yīng)當(dāng)回到地址0x00H。指令3:設(shè)立輸入模式。I/D:它表達(dá)光標(biāo)應(yīng)當(dāng)移動方向,高電平時候右移,低電平時候左移;S:它控制屏幕上所有文字方向是左移或右移,高電平有效,而低電平此位無效。指令4:用于顯示開關(guān)控制。D:它表達(dá)整體顯示開與關(guān),高電平時顯示為開,低電平時顯示為關(guān);C:它表達(dá)了光標(biāo)開與關(guān),有光標(biāo)時是高電平,無光標(biāo)時是低電平。B:它表達(dá)光標(biāo)閃爍,閃爍時高電平,不閃爍時低電平。指令5:光標(biāo)以及顯示移位。S/C:若移動顯示文字則是高電平,若移動光標(biāo)則是低電平;R/L:右移時高電平,左移時低電平。指令6:設(shè)立功能命令。D/L:4位總線時高電平,8位總線時低電平;D:高電平時,雙行顯示,低電平時,單行顯示;F:若為高電平,則顯示5×10,若為低電平,則顯示5×7。指令7:設(shè)立RAM地址。指令8:設(shè)立DDRAM地址。指令9:讀光標(biāo)地址以及忙信號。BF:為忙標(biāo)志位,忙時候是高電平,這時其不收命令或數(shù)據(jù),不忙時候是低電平。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。3.3.2系統(tǒng)LCD1602顯示闡明LCD1602采用原則14腳(無背光)或16腳(帶背光)接口,本設(shè)計(jì)選用16引腳帶背光接口,LCD1602引腳接口闡明如表3-2所示:表3-2LCD1602引腳接口闡明編號符號引腳闡明編號符號引腳闡明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令控制12D5數(shù)據(jù)5R/W讀/寫控制13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源電源端8D1數(shù)據(jù)16BLK背光源接地端在該設(shè)計(jì)系統(tǒng)中,單片機(jī)將DHT11溫濕度傳感器送入40位數(shù)據(jù)按照5個8位字節(jié)存入不同變量中,然后通過變換形式轉(zhuǎn)換為字符形式在LCD1602上顯示。本設(shè)計(jì)中LCD1602與單片機(jī)連接圖如圖3-5所示:圖3-5LCD1602顯示電路圖3-5LCD1602顯示電路從圖中可以看出:1引腳為接地端,與單片機(jī)地相連;2引腳接+5V電源,連接單片機(jī)+5V電源;3引腳為液晶顯示偏壓,連接一種最大阻值為10K電位器,通過調(diào)節(jié)電位器阻值可以調(diào)節(jié)液晶屏顯示清晰度,使酒精濃度數(shù)值清晰地顯示在液晶屏上;4引腳RS為寄存器選取,為高電平時選取數(shù)據(jù)寄存器,低電平時選取指令寄存器,設(shè)計(jì)時RS接單片機(jī)P2.0引腳,通過程序?qū)ζ錉顟B(tài)進(jìn)行控制;5引腳RW為讀/寫信號選取線,為高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作,設(shè)計(jì)時RW接單片機(jī)P2.1引腳,通過編程控制其狀態(tài)變化;6引腳E(或EN)端為模塊使能控制端,編程時結(jié)合RS和RW控制液晶屏完畢顯示任務(wù),硬件連接時接單片機(jī)P2.2引腳;7~14腳P0~P7為8位雙向數(shù)據(jù)端,和單片機(jī)P0口相連,程序中對LCD1602進(jìn)行寫命令和寫數(shù)據(jù)都通過這8個數(shù)據(jù)端進(jìn)行傳播;15腳為背光源正極,必要和電源正極相連;16腳為背光源負(fù)極,必要和電源負(fù)極相連。在使用液晶模塊之前要先進(jìn)行初始化,一方面要設(shè)立其顯示模式,在液晶模塊顯示字符時光標(biāo)是自動右移,不需要重新設(shè)立。在每次輸入指令前都要判斷液晶模塊與否處在忙狀態(tài)。3.4通信模塊設(shè)計(jì)隨著科學(xué)技術(shù)不斷發(fā)展,無線通信已經(jīng)滲入到人們生活,工作,和學(xué)習(xí)當(dāng)中。在智能家居、車輛監(jiān)控防盜、機(jī)器人控制、無線抄表、門禁系統(tǒng)、工業(yè)數(shù)據(jù)采集系統(tǒng)等方面都廣泛使用無線傳播模塊?,F(xiàn)今無線通信技術(shù)已經(jīng)十提成熟,無線通信模塊可以實(shí)現(xiàn)短時間、長距離、低功耗、高敏捷度、抗干擾性、高集成度,從而節(jié)約了人力、物力,并且還能進(jìn)行實(shí)時監(jiān)測,及時解決現(xiàn)場突發(fā)狀況。因而本設(shè)計(jì)選用無線傳播模塊GSM模塊作為酒精濃度測試通信模塊。3.4.1GSM模塊簡介GSM模塊是將GSM射頻芯片、基帶解決芯片、存儲器、功放器件等集成在一塊電路板上,具備獨(dú)立操作系統(tǒng)、GSM射頻解決、基帶解決并提供原則接口功能模塊。因而,GSM模塊具備發(fā)送SMS短信,語音通話,GPRS數(shù)據(jù)傳播等基于GSM網(wǎng)絡(luò)進(jìn)行通信所有基本功能。簡樸來講,GSM模塊加上鍵盤、顯示屏和電池,就是一部手機(jī)。在本設(shè)計(jì)中單片機(jī)解決數(shù)據(jù)通過MAX3232解決后通過串口將報警數(shù)據(jù)傳播到GSM模塊,然后GSM模塊將報警信號發(fā)送至所設(shè)定手機(jī)終端。3.5按鍵鍵盤設(shè)計(jì)3.5.1按鍵鍵盤闡明

按鍵是單片機(jī)系統(tǒng)中慣用信息輸入部件,同步也是人機(jī)對話中不可缺少輸入設(shè)備。在和單片機(jī)構(gòu)成系統(tǒng)時,按鍵普通有兩種接法,一種叫獨(dú)立式按鍵,另一種叫矩陣式按鍵。用口線較多時,可以將鍵盤接成矩陣形式,這種形式節(jié)約口線。本設(shè)計(jì)中采用是獨(dú)立式按鍵。3.5.2按鍵電路設(shè)計(jì)本設(shè)計(jì)中按鍵重要完畢對酒精濃度閾值設(shè)定。其電路圖如下:按鍵圖按鍵圖本設(shè)計(jì)中,S1按鍵為對酒精濃度控制選取鍵,S2和S3酒精濃度調(diào)節(jié)鍵,S2控制設(shè)定值增長,S3控制酒精濃度減小。3.6報警電路設(shè)計(jì)3.6.1蜂鳴器闡明蜂鳴器是一種一體化構(gòu)造電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、定期器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器分為有源與無源兩種。有源蜂鳴器直接接額定電源就可持續(xù)發(fā)聲,而無源蜂鳴器則和電磁揚(yáng)聲器同樣,需要接在音頻輸出電路中才干發(fā)聲。有源蜂鳴器和無源蜂鳴器重要差別是對輸入信號規(guī)定不同樣,有源蜂鳴器工作抱負(fù)信號是直流電,無源蜂鳴器工作抱負(fù)信號是方波。無源蜂鳴器接直流電是不會工作。本設(shè)計(jì)采用一種有源蜂鳴器進(jìn)行聲音報警。3.6.250年前人們已經(jīng)理解半導(dǎo)體材料可產(chǎn)生光線基本知識,第一種商用二極管產(chǎn)生于1960LED是英文lightemittingdiode(發(fā)光二極管)縮寫,它基本構(gòu)造是一塊電致發(fā)光半導(dǎo)體材料,置于一種有引線架子上,然后四周用環(huán)氧樹脂密封,起到保護(hù)內(nèi)部電路效果,因此LED抗震性能較好。發(fā)光二極管核心某些是由P型半導(dǎo)體和N型半導(dǎo)體構(gòu)成晶片,在P型半導(dǎo)體和N型半導(dǎo)體之間有一種過渡層,稱為PN結(jié)。在某些半導(dǎo)體材料PN結(jié)中,注入少數(shù)載流子與多數(shù)載流子復(fù)合時會把多余能量以光形式釋放出來,從而把電能直接轉(zhuǎn)換為光能。PN結(jié)加反向電壓,少數(shù)載流子難以注入,故不發(fā)光。這種運(yùn)用注入式電致發(fā)光原理制作二極管叫發(fā)光二極管,通稱LED。當(dāng)它處在正向工作狀態(tài)時(即兩端加上正向電壓),電流從LED陽極流向陰極時,半導(dǎo)體晶體就發(fā)出從紫外到紅外不同顏色光線,光強(qiáng)弱與電流關(guān)于。3.6.3本設(shè)計(jì)中采用是聲光同事報警,在采集到酒精濃度值超過報警值時,電路同事發(fā)出聲光報警信號。聲光報警電路如下圖:聲光報警電路聲光報警電路由上圖可以看出,蜂鳴器通過一種PNP型三極管放大連接。三極管選取9012型三極管,它發(fā)射極直接連接+5V電源,基極通過1K電阻和單片機(jī)P2.3引腳相連,集電極連接蜂鳴器正極,蜂鳴器負(fù)極接地。發(fā)光二極管樣機(jī)與單片機(jī)P1.6引腳相連,陰極接一種1K電阻與放大器發(fā)射極相連同事接在+5V電源上,電路重要作用是用9012三極管將基極電流放大以驅(qū)動蜂鳴器和發(fā)光二極管工作。工作過程為:當(dāng)酒精濃度值不不大于設(shè)定上限值,程序會將相應(yīng)三極管基極連接單片機(jī)引腳置為低電平,這樣三極管就可以驅(qū)動蜂鳴器和發(fā)光二極管工作,發(fā)出聲光報警。4系統(tǒng)軟件設(shè)計(jì)4.1軟件設(shè)計(jì)概述系統(tǒng)軟件設(shè)計(jì)是整個控制器系統(tǒng)設(shè)計(jì)至關(guān)重要構(gòu)成某些,軟件某些設(shè)計(jì)好壞,直接關(guān)系到整個系統(tǒng)功能實(shí)現(xiàn)和運(yùn)營可靠性。隨著計(jì)算機(jī)技術(shù)不斷進(jìn)步,計(jì)算機(jī)程序設(shè)計(jì)也在不斷向前發(fā)展,用來描述程序語言也在不斷地進(jìn)步完善,程序設(shè)計(jì)語言也從初期機(jī)器語言到用符號表達(dá)匯編語言以至發(fā)展到高檔語言。在設(shè)計(jì)過程中,人們也開始掙脫進(jìn)行程序設(shè)計(jì)必要先熟悉機(jī)器內(nèi)部構(gòu)造桎梏,把精力集中于解決思路和辦法上。本設(shè)計(jì)使用Keil軟件開發(fā)平臺。發(fā)送端、接受端和通信設(shè)備使用C語言編程實(shí)現(xiàn)。4.1.1Keil軟件簡介隨著單片機(jī)開發(fā)技術(shù)不斷發(fā)展,從普遍使用匯編語言到逐漸使用高檔語言開發(fā),單片機(jī)開發(fā)軟件也在不斷發(fā)展,KeilC51軟件是一種基于32位Windows環(huán)境應(yīng)用程序,支持C語言和匯編語言編程,其6.0以上版本將編譯和仿真軟件統(tǒng)一為uVision2(普通稱為uV2)。Keil提供涉及C編譯器、宏匯編、連接器、庫管理和一種功能強(qiáng)大仿真調(diào)試器等在內(nèi)完整開發(fā)方案。運(yùn)用Keil軟件編程流程:(1)建立一種新工程:單擊Project菜單,在彈出下拉菜單中選中NewProject選項(xiàng);(2)選取單片機(jī)型號,依照所使用單片機(jī)來選取,本設(shè)計(jì)所使用是STC89C52,選取STC89C52之后,然后點(diǎn)擊擬定設(shè)立工程配備參數(shù),選中創(chuàng)立HEX文獻(xiàn);(3)打開/建立程序文獻(xiàn)。創(chuàng)立文獻(xiàn)用*.c形式保存;(4)編譯和連接工程。在進(jìn)行編譯和鏈接前,需要將創(chuàng)立源代碼文獻(xiàn)添加到工程中,在SourceGroup1處單擊右鍵然后點(diǎn)addgroup..;(5)糾正程序中書寫和語法錯誤并重新編譯連接。在編譯窗口中把需要編譯程序輸入,然后點(diǎn)編譯按鈕,即可對所寫程序編譯。4.2系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì)分為C語言程序。C語言編寫程序又由主程序流程和子程序流程構(gòu)成,子程序流程分為:酒精濃度檢測子程序,LCD顯示子程序,無線通信子程序,按鍵設(shè)定上限值子程序和串行子程序。4.2.1主程序流程圖本設(shè)計(jì)發(fā)送端與接受端分別使用一種單片機(jī)作為控制芯片,發(fā)送端主程序涉及酒精濃度檢測子程序、顯示子程序、無線通信子程序初始化聲明,以及將各子程序聯(lián)系起來共同完畢發(fā)送端所有功能;接受端主程序涉及無線接受子程序、按鍵設(shè)定上限值、串口子程序初始化聲明及各子程序聯(lián)系。發(fā)送端和接受端主流程圖如圖4-1所示:開始酒精濃度檢測子程序開始酒精濃度檢測子程序無線通信子程序顯示子程序發(fā)送子程序各某些初始化開始GSM初始化接受數(shù)據(jù)子程序調(diào)用串口子程序串口初始化上下限設(shè)定子程序報警子程序圖4-1發(fā)送端與接受端主流程圖圖4-1發(fā)送端與接受端主流程圖4.2.2酒精濃度檢測子程序數(shù)據(jù)采集子程序重要是采集檢測傳感器輸出模仿電壓信號,并將其轉(zhuǎn)換為單片機(jī)程序控制所需數(shù)字量信號。一方面對AD轉(zhuǎn)換器進(jìn)行初始化,然后將其0通道輸入0-5V模仿信號轉(zhuǎn)換為相應(yīng)數(shù)字量OOH-FFH,然后將相應(yīng)數(shù)值存儲到3FH內(nèi)存單元。4.2.3LCD顯示子程序系統(tǒng)采用LCD1602液晶顯示模塊作為溫濕度顯示屏件。在對LCD1602編程時,一方面需要對其初始化,測試LCD1602與否處在忙碌狀態(tài),若忙碌則等待到空閑時間,檢測到空閑時對其進(jìn)行寫控制指令。初始化完畢后可以在指定地址上顯示相應(yīng)數(shù)據(jù)。由于LCD1602自帶字母字符庫和數(shù)字字符庫,因而可以直接可以在程序中寫字母和數(shù)字字符。顯示子程序流程圖如下圖4-3所示:子程序入口LCD與否忙碌?YNLCD1602初始化調(diào)用顯示程序返回主程序圖子程序入口LCD與否忙碌?YNLCD1602初始化調(diào)用顯示程序返回主程序圖4-3顯示子程序流程圖LCD初始化程序如下:voidLCD_Init(void){ LCD_EN=0;// LCD_WriteCmd(CMD_CLEAR_SCREEN);// _nop_(); LCD_WriteCmd(CMD_WORK_MODE); _nop_();// LCD_WriteCmd(CMD_HOME);// _nop_(); LCD_WriteCmd(CMD_INPUT_MODE3); _nop_(); LCD_WriteCmd(CMD_DISPLAY_MODE1); _nop_(); LCD_WriteCmd(CMD_DDRAM_ADDR);}4.2.4無線通信子程序本設(shè)計(jì)中采用GSM模塊作為通信模塊,將報警信號發(fā)送至提前設(shè)定好手機(jī)終端。并且所要報警手機(jī)號碼可以通過發(fā)送短信方式進(jìn)行更改。其主程序如下:#include"gsm.h"externunsignedcharuart1_busy;unsignedcharct=0;unsignedcharxdatagsm_buffer[120];voiddelay_ms(unsignedcharms){ unsignedintj; for(ms;ms>0;ms--) for(j=110*12;j>0;j--);}voidclear_buffer(){ unsignedchari; for(i=0;i<120;i++) gsm_buffer[i]=0; ct=0;}unsignedcharinit_command(unsignedchar*command){ unsignedchartime=0;// uart1_init(); do{ uart1_sendstring(command); delay_ms(500); if(strstr(gsm_buffer,"OK")!=NULL) { time=0; clear_buffer(); return1; } else { clear_buffer(); } time++; if(time==MAX_TIME) return0; }while(1);}unsignedchargsm_init(){ if(init_command("AT\r")==0) returnAT_ERROR; if(init_command("AT+CSCA?\r")==0) returnCSCA_ERROR; if(init_command("AT+CNMI=1,1,2\r")==0) returnCNMI_ERROR; if(init_command("AT+CMGF=1\r")==0) returnCMGF_ERROR; return0;}voidsend_message(unsignedchar*num,unsignedchar*s){ uart1_sendstring("AT+CMGF=1\r"); delay_ms(500); uart1_sendstring("AT+CSMP=17,167,0,0\r"); delay_ms(500); uart1_sendstring("AT+CSCS=GSM\r"); delay_ms(500); uart1_sendstring("AT+CMGS="); uart1_sendstring(num); uart1_send('\r'); delay_ms(500); uart1_sendstring(s); uart1_send(0x1a);// delay_ms(500); clear_buffer(); }unsignedcharis_message_coming(){ returnct;}voidget_message(unsignedchar*numbuf,unsignedchar*buf){ unsignedchar*p; unsignedchar*p1; unsignedcharn; delay_ms(1000); if(strstr(gsm_buffer,"+CMTI")!=NULL) { p=strchr(gsm_buffer,','); n=*(p+1); clear_buffer(); uart1_sendstring("AT+CMGR="); uart1_send(n); uart1_send('\r'); delay_ms(1000); p=strchr(gsm_buffer,','); p+=2; p1=strchr(p,'"'); memset(numbuf,0,20); memcpy(numbuf,p,p1-p); // p=NULL; p1+=1; p1=strchr(p1,'"'); p1+=1; p1=strchr(p1,'"'); p1+=3; p=strchr(p1,'\r'); if(p==NULL) memcpy(buf,p1,(gsm_buffer+119-p1)); else memcpy(buf,p1,p-p1); /* if(p==NULL) { memcpy(buf,p1,39); } else { if((p-p1)<39) memcpy(buf,p1,p-p1); else memcpy(buf,p1,39); }*/ p1=NULL; clear_buffer(); uart1_sendstring("AT+CMGD="); uart1_send(n); uart1_send('\r'); delay_ms(10); clear_buffer(); } else { clear_buffer(); }}voiduart1()interrupt4{if(RI){ if(ct<119) { gsm_buffer[ct]=SBUF; ct++; }RI=0;}if(TI){TI=0; uart1_busy=1;}}4.2.5報警子程序系統(tǒng)設(shè)定閾值保存在以50H開始3個單元,是為了便于比較和顯示,閾值百位放入50H中,十位放入5lH,個位放人52H中。本電路中報警電路分為蜂鳴器報警電路和發(fā)光報警電路兩某些,當(dāng)輸入端P2.3為低電平時,有電流通過蜂鳴器,蜂鳴器發(fā)出聲音報警;而當(dāng)輸入端為高電平時不報警。當(dāng)輸人端P1.6為低電平時,LED點(diǎn)亮報警,反之輸入端P1.6為高電平則不報警。報警子程序執(zhí)行之前,將報警閾值轉(zhuǎn)換為壓縮BCD碼并存儲在兩個存儲單元中。傳感器輸入值經(jīng)A/D轉(zhuǎn)換后,一方面調(diào)用比較子程序,再進(jìn)行數(shù)據(jù)解決、數(shù)據(jù)顯示和測量值與閾值之間比較運(yùn)算,不大于閾值則繼續(xù)執(zhí)行顯示程序,若不不大于閾值則將單片機(jī)P1.6、P2.3兩端口清零進(jìn)行聲光報警。40H、4lH、42H單元存儲A/D轉(zhuǎn)換后,并進(jìn)行十進(jìn)制轉(zhuǎn)換后成果。40H和50H分別存儲是解決后測量值與閾值百位壓縮BCD碼,41H和51H分別存儲是解決后測量值與閾值十位壓縮BCD碼,42H和52H分別存儲是解決后測量值與閾值個位壓縮BCD碼。程序一方面對40H、50H中值進(jìn)行比較大小,如果40H中值不不大于50H中值,則進(jìn)行報警。4.2.5串行口子程序串行傳送數(shù)據(jù)時需傳8個值,兩個監(jiān)測點(diǎn)溫濕度值和4個設(shè)定溫濕度上限值。發(fā)送前要先對串口初始化,設(shè)立波特率等參數(shù)。發(fā)送中將兩組溫濕度值存儲到一種數(shù)組中,每次發(fā)送時調(diào)用8次串口發(fā)送程序?qū)?shù)據(jù)發(fā)送出去。對SCON選工作方式,對PCON設(shè)波特率加倍位“SMOD”(缺省值=0),采用中斷方式,要打開ES串口中斷容許位和總中斷EA位。初始化程序如下:voiduart1_init(){/* SCON=0X50; TMOD=0X20; PCON&=-(FOSC/32/BAUD); TH1=TL1=0xfd; TR1=1; ES=1; EA=1;*/ PCON|=0x80; //UART0DoubleRateEnable SCON=0x50; //UART0setas10bit,UART0RXenable TMOD&=~(1<<6); //Timer1SetasTimer,12T TMOD=(TMOD&~0x30)|0x20; //Timer1setas8bitsautorelaod TH1=T1_TimerReload; //Loadthetimer TR1=1; ES=1; EA=1;}voiduart2_init(){/* S2CON=0X5a; BRT=-(FOSC/32/BAUD1); AUXR=0X14; IE2=0X01; EA=1; */ AUXR|=(1<<3); //串口2波特率加倍 S2CON=(S2CON&0x3f)|(1<<6); //串口2模式1,8位UART,(2^S2SMOD/32)*BRT溢出率 S2CON|=1<<4; //容許串2接受 AUXR|=1<<4; //baudrateuseBRT BRT=BRT_Reload; IE2|=1; //容許串口2中斷}需要發(fā)送數(shù)據(jù)通過單片機(jī)串口SBUF送出去,完畢后會自動將發(fā)送完畢標(biāo)志位TI置1,通過檢測TI值檢測與否發(fā)送完畢。5硬件焊接及調(diào)試5.1概要闡明本設(shè)計(jì)硬件焊接涉及單片機(jī)最小系統(tǒng)模塊、酒精濃度采集模塊、無線通信模塊、LCD顯示模塊。一方面需要使用ProtelDXP軟件繪制整體電路原理圖,然后按照設(shè)計(jì)原理規(guī)定使用Keil軟件新建工程,編寫程序。程序分模塊編寫完畢后通過Keil軟件進(jìn)行編譯調(diào)試,程序沒有語法問題后生成HEX文獻(xiàn),并將某些模塊HEX文獻(xiàn)添加到Proteus中進(jìn)行仿真,最后下載到硬件中進(jìn)行調(diào)試。在本次設(shè)計(jì)中,酒精濃度采集采用MQ3氣敏傳感器,輸出信號為數(shù)字信號可直接與單片機(jī)進(jìn)行通信,因而電路連接簡樸明了。酒精濃度顯示模塊選用液晶顯示模塊LCD1602,LCD1602由16引腳與單片機(jī)連接,連線以便,自身自帶字母和數(shù)字字符庫,又便于編程,非常適合本設(shè)計(jì)對于溫濕度顯示規(guī)定。無線傳通信模塊采用GSM模塊。5.1.1硬件焊接在焊接硬件之前一方面要先繪制好電路原理圖。在電路原理圖繪制過程中,由于不太熟悉ProtelDXP軟件,我通過查閱有關(guān)參照資料、明確了電路圖繪制流程。在添加某些元件過程中基本元件庫中沒有,這時候就需要自己建立元件庫編輯元件,并將編輯好元件添加到原理圖中。系統(tǒng)焊接前應(yīng)熟悉各芯片引腳,焊接時參照電路圖,仔細(xì)地連接引腳。按照如下原則進(jìn)行焊接:1.先焊接各芯片電源線和地線,這樣保證各芯片有對的工作電壓;2.同類芯片應(yīng)順序焊接,在一片焊接并檢查好之后,其她同類芯片便可以參照第一片進(jìn)行焊接。這樣便可大大節(jié)約時間,也可減少出錯率。5.1.2軟件調(diào)試本系統(tǒng)軟件系統(tǒng)很大,所有用C語言來編寫。程序編寫完畢后,一方面進(jìn)行編譯保證程序沒有語法問題,之后再生成HEX文獻(xiàn)才可如下載到單片機(jī)中。除了語法差錯外,當(dāng)確認(rèn)程序沒問題時,再下載到單片機(jī)來調(diào)試。采用是自下到上調(diào)試辦法,即單獨(dú)調(diào)試好每一種模塊,然后再連接成一種完整系統(tǒng),最后完畢一種完整系統(tǒng)調(diào)試。5.1.3軟硬聯(lián)調(diào)系統(tǒng)做好后,檢查電路沒有問題后將程序下載到硬件電路,進(jìn)行系統(tǒng)完整調(diào)試。重要任務(wù)是檢查與否按照設(shè)想功能顯示效果,并校正數(shù)值。依照實(shí)測數(shù)據(jù),逐漸校正數(shù)據(jù),使測量成果更精確。這里采用分模塊調(diào)試,各模塊沒有問題后再將模塊組合到一起進(jìn)行調(diào)試,得到最后成果。5.2調(diào)試中浮現(xiàn)問題及解決辦法硬件焊接完畢后,一方面進(jìn)行硬件電路檢查調(diào)試,硬件連接沒問題后開始進(jìn)行程序編寫及調(diào)試,最后將程序下載到硬件上進(jìn)行整體調(diào)試。在設(shè)計(jì)操作過程中遇到問題及解決辦法如下:1.單片機(jī)最小系統(tǒng)焊接完畢后,發(fā)現(xiàn)復(fù)位電路不起作用,無法對單片機(jī)復(fù)位。檢查電路發(fā)現(xiàn)無論開關(guān)閉合還是啟動,單片機(jī)復(fù)位引腳電壓沒有變化,闡明開關(guān)焊接有問題,經(jīng)檢查發(fā)現(xiàn)開關(guān)連接兩個引腳不能實(shí)現(xiàn)開關(guān)和閉合,用萬用表測開關(guān)兩個腳電阻,找到兩個腳開關(guān)不閉合時阻值無窮大而閉合后阻值為0,重新焊好后單片機(jī)可以正常使用。2.程序編寫完畢往硬件下載時怎么也下載不進(jìn)去,串口無法找到。通過詢問其她同窗懂得本來需要安裝串口驅(qū)動才可如下載,安裝后程序可以正常下載。3.在調(diào)試溫濕度顯示時發(fā)現(xiàn)LCD1602總是一片綠屏,什么都沒有顯示。查找有關(guān)資料理解到此時應(yīng)當(dāng)調(diào)節(jié)VL連接滑動變阻器。通過調(diào)節(jié)電阻,終于可以正常顯示溫濕度值。6結(jié)論本設(shè)計(jì)是采用單片機(jī)編程控制酒精濃度采集控制系統(tǒng),重要實(shí)現(xiàn)了對酒精濃度實(shí)時顯示、酒精濃度超標(biāo)后報警、報警信號傳播,基本完畢了任務(wù)書規(guī)定。一方面,通過收集資料,理解更多關(guān)于酒精濃度檢測狀況,設(shè)計(jì)出酒精濃度檢測系統(tǒng)整體構(gòu)成方案;另一方面,研究酒精濃度傳感器檢測電路,無線通信模塊特性,酒精濃度顯示實(shí)現(xiàn)條件,完畢硬件電路設(shè)計(jì);再次,對系統(tǒng)各模塊進(jìn)行C語言編程設(shè)計(jì),完畢整體軟件設(shè)計(jì);最后,運(yùn)用Keil軟件進(jìn)行程序調(diào)試,運(yùn)用單片機(jī)開發(fā)板進(jìn)行酒精濃度檢測模塊,無線模塊及軟硬件調(diào)試,成功后,動手焊接電路板,完畢畢設(shè)所有任務(wù)。本系統(tǒng)設(shè)計(jì)具備如下幾種長處:(1)可實(shí)時檢測酒精濃度數(shù)值;(2)采用無線通信傳播數(shù)據(jù),更加符合當(dāng)代酒精濃度檢測使用規(guī)定,節(jié)約了物力人力;(3)增長報警功能更提供了警示意義。由于研究時間、設(shè)計(jì)水平與個人能力有限因素,本設(shè)計(jì)還存在一定問題和可改進(jìn)地方:(1)由于程序過長和無線傳播因素,數(shù)據(jù)顯示需要一點(diǎn)延時時間;(2)系統(tǒng)設(shè)計(jì)重要偏重于檢測,還可增長某些控制功能使設(shè)計(jì)更加智能化;如果在此設(shè)計(jì)基本上進(jìn)一步完善,應(yīng)用起來可以更加智能化。此外酒精濃度檢測裝置可以用更加敏捷且精準(zhǔn)酒精濃度傳感器,使檢測更加精準(zhǔn)。這樣完善后設(shè)計(jì)會更加完美,應(yīng)用場合會更加廣泛。謝辭畢業(yè)設(shè)計(jì)是培養(yǎng)咱們工作能力最后一種實(shí)踐性學(xué)習(xí)環(huán)節(jié)。它不但是咱們四年大學(xué)所學(xué)知識一次綜合性復(fù)習(xí)與考查,同步也是理論聯(lián)系實(shí)際一種過程,為后來從事專業(yè)技術(shù)工作奠定了一定基本。本次畢業(yè)設(shè)計(jì)培養(yǎng)了我綜合運(yùn)用理論知識和實(shí)踐技能去分析和解決實(shí)際工作中普通工程技術(shù)問題能力,使我建立了對的設(shè)計(jì)思想,學(xué)會了如何把四年所學(xué)理論知識運(yùn)用到實(shí)踐當(dāng)中去。掌握了基于單片機(jī)來設(shè)計(jì)一種檢測系統(tǒng)辦法,并進(jìn)一步鞏固、擴(kuò)大和深化了我所學(xué)電路,單片機(jī),C語言等課程基本知識和基本技能,提高了我設(shè)計(jì)電路,解決問題能力。在畢業(yè)設(shè)計(jì)過程中,我感受頗多。一方面要感謝父母這樣近年對我培養(yǎng);也要感謝學(xué)校系部為咱們提供以便良好畢設(shè)環(huán)境;更要特別感謝指引教師王蕾教師,從課題研究、開題報告到電路設(shè)計(jì)調(diào)試及論文撰寫都是在教師悉心指引下完畢。在設(shè)計(jì)最困難時候,王教師指引與協(xié)助使我度過了難關(guān),她給了我諸多中肯參照意見,系統(tǒng)成功實(shí)現(xiàn)離不開她辛勤汗水。同步也十分感謝在實(shí)驗(yàn)室各位同窗,從器件焊接調(diào)試到程序編寫和最后調(diào)試完畢,她們予以了我非常多協(xié)助,讓我感受到了咱們這個集體溫暖和情誼,是值得我畢生愛惜。在設(shè)計(jì)中,由于個人能力有限,設(shè)計(jì)中存在一定漏洞和錯誤,敬請各位教師指正批評,以使我對自己局限性得到及時發(fā)現(xiàn)并修正。在這里,向在這次畢業(yè)設(shè)計(jì)中予以過協(xié)助我教師們表達(dá)衷心感謝。參照文獻(xiàn)[3]張毅剛,彭喜元.單片機(jī)原理與應(yīng)用設(shè)計(jì)[M].北京:電子工業(yè)出版社,:56-60[6]李群芳,肖看.單片機(jī)原理、接口及應(yīng)用[M].北京:清華大學(xué)出版社,:46-49[9]于志贛.液顯LCD1602模塊應(yīng)用[J].期刊論文機(jī)電技術(shù),:13-14附錄主程序:#include"reg52.h"#include"gsm.h"#include"uart.h"#include"lcd.h"#include"STC12EEPROM.H"#define INTRAM_enable() AUXR&=~0x02sfrP1ASF=0x9D; //12C5AsfrADC_CONTR=0xBC; //帶AD系列sfrADC_RES=0xBD; //帶AD系列sfrADC_RESL=0xBE; //帶AD系列#defineADC_OFF() ADC_CONTR=0#defineADC_ON (1<<7)#defineADC_90T (3<<5)#defineADC_180T (2<<5)#defineADC_360T (1<<5)#defineADC_540T 0#defineADC_FLAG (1<<4) //軟件清0#defineADC_START (1<<3) //自動清0#defineADC_CH0 0#defineADC_CH1 1#defineADC_CH2 2#defineADC_CH3 3#defineADC_CH4 4#defineADC_CH5 5#defineADC_CH6 6#defineADC_CH7 7sbitK1=P1^1;sbitK2=P1^2;sbitK3=P1^4;sbitSPK=P1^5;sbitLED=P1^6;bittel_number_ready=0; unsignedchargsm_ok=0;unsignedcharxdatanum[20]={0};unsignedcharxdatanum_to_send[20]={0};unsignedcharxdatamsg[40]={0};unsignedcharstate=0;unsignedcharcur_value=0;unsignedcharwaring_value;unsignedintad_value;unsignedintadc10_start(unsignedcharchannel);voidinit();voiddisplay();voidread_sensor();voidnv_init();voidkey();voidwaring();unsignedcharis_tel_number(unsignedchar*s);voidmain(){ unsignedchar*p=NULL; init();// send_message("","test"); while(1) { key(); display(); waring(); read_sensor(); if(gsm_ok==0) { if(is_message_coming()!=0) { get_message(num,msg); send_message(num,"receive"); if(strstr(msg,"set:")!=NULL) { p=strchr(msg,':'); p++; memset(num,0,14); memcpy(num,p,11); if(is_tel_number(num)) { memcpy(num_to_send,num,11); EEPROM_write_n(1,num_to_send,11); tel_number_ready=1; } else { p=NULL; } } memset(msg,0,40); } } }}voidinit(){ uart1_init(); LCD_Init(); nv_init(); switch(gsm_init()) { caseAT_ERROR: LCD_ShowString(0,0,"ATERROR"); gsm_ok=1; break; caseCSCA_ERROR: LCD_ShowString(0,0,"CSCAERROR"); gsm_ok=1; break; caseCNMI_ERROR: LCD_ShowString(0,0,"CNMIERROR"); gsm_ok=1; break; caseCMGF_ERROR: LCD_ShowString(0,0,"CMGFERROR"); gsm_ok=1; break; default: LCD_ShowString(0

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論