版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
[30]。KEIL4軟件調(diào)試界面如下圖4-1所示:圖4-1開發(fā)軟件界面4.2系統(tǒng)主程序設(shè)計(jì)本次設(shè)計(jì)選用32位微控制器作為核心控制單元,集成了一系列外圍模塊,包括OLED顯示器、超聲波測(cè)距傳感器、按鍵輸入設(shè)備、聲光報(bào)警裝置、時(shí)鐘組件以及聲音檢測(cè)元件與繼電器模塊,旨在構(gòu)建一個(gè)智能化的鐵路安全監(jiān)控系統(tǒng)。此系統(tǒng)通過C語言驅(qū)動(dòng),具備采集列車接近路口距離的功能,并能實(shí)時(shí)監(jiān)測(cè)特定音量。一旦列車接近距離與預(yù)設(shè)閾值相符且檢測(cè)到特定音量,系統(tǒng)將啟動(dòng)聲光報(bào)警模塊,同時(shí),人機(jī)交互界面將同步顯示當(dāng)前時(shí)間、詳細(xì)信息及報(bào)警內(nèi)容,確保操作人員及時(shí)獲得關(guān)鍵信息。主程序由四個(gè)關(guān)鍵子程序構(gòu)成:屏幕顯示模塊、超聲波測(cè)距模塊、按鍵輸入模塊、聲光報(bào)警模塊和聲音檢測(cè)模塊的邏輯處理。其中,后三者通過簡(jiǎn)單的輸入輸出接口(I/O)即可實(shí)現(xiàn)控制,無需復(fù)雜的程序邏輯支持,故而在設(shè)計(jì)文檔中未作深入闡述。系統(tǒng)啟動(dòng)后,將優(yōu)先執(zhí)行屏幕顯示、超聲波測(cè)距、按鍵輸入以及聲光報(bào)警這四個(gè)核心功能,通過調(diào)用相應(yīng)的子程序來完成數(shù)據(jù)展示、處理與反饋。詳細(xì)的程序流程圖見圖4-2,它直觀展示了各模塊間的交互關(guān)系和執(zhí)行順序,為系統(tǒng)運(yùn)行提供清晰指導(dǎo)。圖4-2鐵道口無人值守監(jiān)測(cè)系統(tǒng)主程序設(shè)計(jì)4.3顯示模塊程序設(shè)計(jì)首先設(shè)定目標(biāo)設(shè)備的地址配置,隨后按序傳輸包括內(nèi)存尋址機(jī)制、顯示時(shí)鐘的分頻系數(shù)、多路數(shù)據(jù)傳輸?shù)谋壤?、起始行定位、顯示區(qū)域偏移、對(duì)比度調(diào)整、電荷泵參數(shù)以及顯示模式在內(nèi)的初始化命令序列,最終完成數(shù)據(jù)的呈現(xiàn)與展示過程。在數(shù)據(jù)可視化過程中,為了精確控制顯示區(qū)域,需明確指定其坐標(biāo)范圍。此操作通常涉及調(diào)用預(yù)定義的字符圖案數(shù)組,以確保圖形元素的準(zhǔn)確表示。隨后,通過引用相應(yīng)的圖形庫(kù)或API,可以實(shí)現(xiàn)這些圖案的高效渲染。借助特定的寫入函數(shù),將生成的圖像序列直接輸出到屏幕上,從而實(shí)現(xiàn)直觀的數(shù)據(jù)呈現(xiàn)與交互。這一系列步驟確保了數(shù)據(jù)展示的清晰度與用戶界面的互動(dòng)性。以下是對(duì)OLCD模塊的部分代碼voidDisplayInit(void){ unsignedchari; for(i=0;i<2;i++)OLED_ShowCN(i*16,4,i+12,0);//測(cè)試顯示中文:距離 OLED_ShowChar(32,4,':',2,0); for(i=0;i<4;i++)OLED_ShowCN(i*16,6,i+20,0);//測(cè)試顯示中文:值班人員 OLED_ShowChar(64,6,':',2,0);}在OLED屏幕的第4行顯示“距離”二字,并在“距離”后面顯示冒號(hào)分隔符。在第6行顯示“值班人員”四字,并在“值班人員”后面顯示冒號(hào)分隔符。實(shí)現(xiàn)方式:(1)使用OLED_ShowCN()函數(shù)顯示預(yù)存的中文字模,通過計(jì)算位置參數(shù)(i*16)實(shí)現(xiàn)字符的橫向排列(2)使用OLED_ShowChar()顯示普通ASCII字符(冒號(hào))。具體的屏幕流程圖如下圖4-3所示。圖4-3oled程序設(shè)計(jì)4.4超聲波測(cè)距程序設(shè)計(jì)系統(tǒng)啟動(dòng)時(shí),執(zhí)行初始化流程,涵蓋對(duì)微控制器的I/O端口、定時(shí)器等硬件組件的配置以及超聲波模塊的初始化,確保各硬件模塊處于準(zhǔn)備狀態(tài)。隨后,調(diào)用超聲波測(cè)距算法,超聲波模塊向指定區(qū)域(如鐵道口)發(fā)射超聲波,并捕捉反射回的信號(hào),微控制器基于發(fā)射與接收信號(hào)之間的時(shí)間差,精確計(jì)算目標(biāo)物與鐵道口之間的實(shí)際距離。一旦檢測(cè)到距離接近預(yù)先設(shè)定的安全閾值,即判斷存在物體侵入鐵道口的危險(xiǎn)區(qū)域,這將對(duì)鐵路運(yùn)行安全造成潛在風(fēng)險(xiǎn)。此時(shí),系統(tǒng)立即激活聲光報(bào)警機(jī)制,向現(xiàn)場(chǎng)人員及過往車輛發(fā)出警告信號(hào),同時(shí),將警報(bào)信息實(shí)時(shí)傳輸至遠(yuǎn)程監(jiān)控中心,確保及時(shí)響應(yīng)并采取必要措施,維護(hù)鐵道口的安全。在距離參數(shù)未達(dá)到預(yù)設(shè)閾值的情況下,應(yīng)激活顯示模塊,實(shí)時(shí)更新并展示于顯示屏上,其信息涵蓋當(dāng)前鐵道口的安全狀況,特別是距離數(shù)值這一關(guān)鍵數(shù)據(jù)點(diǎn)。通過循環(huán)執(zhí)行測(cè)量距離、評(píng)估狀況與相應(yīng)操作的過程,一旦觸發(fā)警報(bào)信號(hào),系統(tǒng)將持續(xù)激活警報(bào)直至危險(xiǎn)消除。只有在檢測(cè)到鐵道口重新達(dá)到安全狀態(tài)時(shí),方才終止警報(bào)機(jī)制。以下是超聲波模塊的部分代碼:voidGetDistance(void){unsignedchari;Distance=(Get_SR04_Distance()*331)*1.0/10000;//單位cm if(Distance>=450)Distance=450; sprintf(display,"%5.1fcm",Distance); OLED_ShowStr(42,4,(unsignedchar*)display,2);//顯示距離值 if(VOICE==0&&Distance<DistanceMax) //有聲音且小于安全距離禁止 { BEEP=1; RELAY=0; LED=0; gateFlag=0; //門的狀態(tài)-關(guān) for(i=0;i<2;i++)OLED_ShowCN(i*16+88,2,i+18,0);//測(cè)試顯示中文:禁止 }else{ BEEP=0; RELAY=1; LED=1; gateFlag=1; //門的狀態(tài)-開 for(i=0;i<2;i++)OLED_ShowCN(i*16+88,2,i+10,0);//測(cè)試顯示中文:安全 }}功能實(shí)現(xiàn):使用HC-SR04超聲波模塊測(cè)量距離,在OLED上顯示當(dāng)前距離值,根據(jù)距離與預(yù)設(shè)閾值(DistanceMax)比較控制報(bào)警狀態(tài),進(jìn)而控制控制蜂鳴器、繼電器和LED的狀態(tài)實(shí)現(xiàn)方式:調(diào)用Get_SR04_Distance()獲取原始距離數(shù)據(jù),將時(shí)間轉(zhuǎn)換為距離(聲速331m/s),然后使用sprintf格式化距離字符串并顯示。測(cè)距模塊程序流程圖如下圖4-4所示:圖4-4超聲波測(cè)距程序設(shè)計(jì)4.5時(shí)鐘模塊程序設(shè)計(jì)為了確保設(shè)計(jì)的精確性與時(shí)間信息的有效呈現(xiàn),我們將選擇DS1302作為核心的時(shí)鐘模塊。該模塊通過IIC接口實(shí)現(xiàn)與系統(tǒng)的高效通信。一旦系統(tǒng)啟動(dòng)主程序,單片機(jī)便持續(xù)讀取DS1302芯片中的時(shí)間數(shù)據(jù),并據(jù)此動(dòng)態(tài)更新顯示界面。這一過程涉及對(duì)DS1302芯片各個(gè)寄存器的精確讀取,從中獲取年、月、日、時(shí)、分、秒等詳細(xì)時(shí)間信息,進(jìn)而構(gòu)建出準(zhǔn)確且直觀的時(shí)間顯示功能,為應(yīng)用提供可靠的時(shí)間基準(zhǔn)。功能實(shí)現(xiàn):在程序設(shè)計(jì)中,實(shí)現(xiàn)對(duì)DS1302實(shí)時(shí)時(shí)鐘芯片的數(shù)據(jù)讀取,以便清晰地在OLED顯示屏上呈現(xiàn)信息。具體操作包括在屏幕的第一行展示完整的日期信息(年份-月份-日期-星期),在第三行則顯示精確的時(shí)間(小時(shí):分鐘:秒)。系統(tǒng)還具備一種交互模式,可通過設(shè)定參數(shù)(setn)來激活或關(guān)閉顯示屏上的閃爍顯示功能,從而提供更為靈活的操作體驗(yàn)。實(shí)現(xiàn)方式:(1)使用DS1302_DateRead()讀取時(shí)間數(shù)據(jù),將時(shí)間數(shù)據(jù)分解為各個(gè)數(shù)字位(如小時(shí)十位、小時(shí)個(gè)位等)(2)使用OLED_ShowChar()逐個(gè)顯示數(shù)字字符,通過setn參數(shù)控制不同位置的閃爍效果(反色顯示)讀取流程圖如下圖4-5所示:圖4-5時(shí)鐘模塊程序流程圖4.6報(bào)警模塊程序設(shè)計(jì)針對(duì)即將進(jìn)站的火車,已建立一套安全預(yù)警系統(tǒng),該系統(tǒng)主要依賴于報(bào)警模塊以確保人員的安全防范。此報(bào)警模塊由聲光組件構(gòu)成,集成蜂鳴器與LED燈,其功能實(shí)現(xiàn)基于電平控制原理。當(dāng)系統(tǒng)檢測(cè)到低電平信號(hào)時(shí),蜂鳴器啟動(dòng)警報(bào)功能,單片機(jī)輸出低電平指令,觸發(fā)相應(yīng)LED燈亮起,以此形成視覺與聽覺雙重警示,確保乘客及時(shí)察覺并采取必要措施。報(bào)警程序流程圖如下圖4-6所示:圖4-6報(bào)警模塊程序流程圖4.7本章小結(jié)此章節(jié)專述系統(tǒng)級(jí)軟件架構(gòu)與設(shè)計(jì),核心在于詳細(xì)編撰地體計(jì)價(jià)系統(tǒng)中的硬件接口驅(qū)動(dòng)模塊。借助于流程圖的輔助,清晰地勾勒出軟件執(zhí)行邏輯的全貌。其中,本設(shè)計(jì)著重構(gòu)建了幾大關(guān)鍵子程序:OLED顯示子程序負(fù)責(zé)界面信息的呈現(xiàn);數(shù)據(jù)處理子程序則承擔(dān)著復(fù)雜數(shù)據(jù)的運(yùn)算與解析任務(wù);超聲波測(cè)距子程序用于實(shí)現(xiàn)精確的距離測(cè)量功能;而時(shí)鐘子程序則確保系統(tǒng)時(shí)間的準(zhǔn)確同步。通過流程圖的直觀展示,能夠有效地梳理并優(yōu)化程序的整體運(yùn)行邏輯,確保各組件間的協(xié)同高效。系統(tǒng)執(zhí)行模塊初始化過程,旨在全面驗(yàn)證并確保每一組件均處于高效運(yùn)行及準(zhǔn)備狀態(tài)。隨后,系統(tǒng)將對(duì)傳感器收集的數(shù)據(jù)進(jìn)行解析與評(píng)估,以確定這些數(shù)據(jù)是否超出了預(yù)先設(shè)定的界限。若數(shù)據(jù)未超出規(guī)定范圍,則僅通過顯示模塊呈現(xiàn)當(dāng)前的時(shí)間、距離、輪班人員信息以及狀態(tài)的安全評(píng)估;反之,一旦檢測(cè)到數(shù)據(jù)越界,系統(tǒng)將立即激活報(bào)警機(jī)制,通過蜂鳴器與LED燈發(fā)出警示信號(hào)。5基于單片機(jī)的鐵道口無人值守監(jiān)測(cè)系統(tǒng)測(cè)試與評(píng)估5.1實(shí)物焊接流程在無人值守監(jiān)測(cè)系統(tǒng)的構(gòu)成焊接前,對(duì)于電子元器件的檢測(cè)是必不可少的一環(huán),也是確保系統(tǒng)可靠性的前提。在這一過程中,主要是通過檢測(cè)預(yù)先發(fā)現(xiàn)不良元件,避免在投入使用過程中因自身元件的問題導(dǎo)致系統(tǒng)出現(xiàn)異常,影響到整個(gè)系統(tǒng)的可靠性、穩(wěn)定性。本次設(shè)計(jì)采用的檢測(cè)設(shè)備主要是電壓表,通過測(cè)量各個(gè)電子元器件的電壓或電流數(shù)據(jù),再與標(biāo)準(zhǔn)數(shù)據(jù)進(jìn)行對(duì)比,判斷電子元器件是否良好。如測(cè)量電阻、電容的器件,通過測(cè)量?jī)啥穗妷航祷虺浞烹婋娏?,判斷其是否出現(xiàn)短路、斷路或參數(shù)變化等。對(duì)主控芯片這樣的元器件,一般的電壓表則無法檢測(cè),則需要借助實(shí)驗(yàn)室設(shè)備,用集成電路測(cè)試器等儀器進(jìn)行全面檢測(cè),確保其邏輯功能、引腳電氣特性是否符合設(shè)計(jì)要求。在檢測(cè)過程中,如果發(fā)現(xiàn)不良的元件,必須嚴(yán)格遵循具體要求,對(duì)出現(xiàn)問題的元件進(jìn)行更換,換來的元件必須是一種完好的產(chǎn)品,做好記錄,將產(chǎn)品進(jìn)行分類;接下來就是對(duì)新的元件進(jìn)行再次功能檢測(cè),只有確定新的元件沒有問題后,才能進(jìn)行真正的焊接。通過以上步驟,才能保證元件質(zhì)量,并對(duì)系統(tǒng)的穩(wěn)定性負(fù)責(zé)。在實(shí)際焊接過程中,最關(guān)鍵的是要把握好系統(tǒng)單片機(jī)的極性及其他器件的方向性問題。單片機(jī)在系統(tǒng)控制過程中起著至關(guān)重要的作用,而根據(jù)單片機(jī)相關(guān)的數(shù)據(jù)手冊(cè),在引腳的排列順序上有著嚴(yán)格的規(guī)定,一旦接反,輕則程序無法使用,重則會(huì)燒壞芯片。因此在實(shí)際的單片機(jī)焊接前,必須先核對(duì)數(shù)據(jù)手冊(cè),看清楚引腳,確保把正負(fù)極引腳排順。此外,對(duì)于其他器件而言,比如二極管、電解電容等,必須按照產(chǎn)品標(biāo)識(shí)及產(chǎn)品規(guī)格進(jìn)行安裝,避免由于方向問題導(dǎo)致的電路錯(cuò)誤。焊接完成后一定要對(duì)整個(gè)系統(tǒng)進(jìn)行細(xì)致認(rèn)真的檢查。主要檢查虛焊和短路,虛焊會(huì)使得元器件和電路板子之間的電的聯(lián)系不穩(wěn)定,使得系統(tǒng)時(shí)斷時(shí)續(xù),而短路則可能引發(fā)電流過大燒壞元器件乃至引燃整個(gè)電路。檢查時(shí)可以通過放大鏡或顯微鏡下觀察焊點(diǎn),其外觀應(yīng)飽滿平滑,無毛刺,無虛焊;用萬用表檢查各個(gè)主要電路節(jié)點(diǎn)是否短路。只有當(dāng)整個(gè)系統(tǒng)沒有虛焊,短路等故障時(shí),才可以將程序燒入單片機(jī)對(duì)其進(jìn)行系統(tǒng)實(shí)驗(yàn)。在焊接時(shí),還要注意以下幾個(gè)問題:(1)焊接前應(yīng)先對(duì)元器件做好型號(hào)齊全性、功能驗(yàn)證工作。元素型號(hào)、參數(shù)與設(shè)計(jì)是否一致,用簡(jiǎn)單的電路測(cè)試或功能驗(yàn)證儀器,檢查元件安裝前功能是否正常,可避免安裝時(shí)因型號(hào)、功能不符而造成不必要的拆卸、更換等流程,節(jié)約不必要的時(shí)間成本與經(jīng)濟(jì)成本。(2)在執(zhí)行PCB板上焊盤的焊接操作時(shí),精確調(diào)控焊接時(shí)間和溫度至關(guān)重要;焊接溫度應(yīng)維持在適宜范圍,避免過高,同時(shí),焊接時(shí)間亦需嚴(yán)格控制,以防過長(zhǎng)導(dǎo)致不必要的熱損傷。鑒于不同元件及焊錫的熔點(diǎn)特性,選取恰當(dāng)?shù)碾娎予F溫度與焊接持續(xù)時(shí)間至關(guān)重要,此乃確保焊接工藝質(zhì)量與可靠性之關(guān)鍵所在。電烙鐵的操作溫度應(yīng)維持在300℃至350℃的范圍內(nèi),并確保每次焊接過程不超過3秒的時(shí)間長(zhǎng)度。在執(zhí)行焊接操作過程中,確保密切關(guān)注焊錫的熔化過程及其隨后的流動(dòng)特性至關(guān)重要。在確保焊點(diǎn)質(zhì)量達(dá)標(biāo)的同時(shí),必須采取有效措施避免印刷電路板上的焊盤因過熱而發(fā)生燒損現(xiàn)象。(3)根據(jù)構(gòu)件體積大小先后順序進(jìn)行焊接。為了優(yōu)化焊接順序,提高焊接效率,一般先焊接電阻、電容、二極管等體積小重量輕的器件,這些器件在焊接時(shí),不易受到其他器件的影響和干擾,然后再焊接其他大的器件如集成電路、插座等,這樣能避免因先焊接大器件,而使小器件焊接空間不足,同時(shí)小器件也便于在焊接過程中進(jìn)行電路板操作和移動(dòng)固定。(4)根據(jù)不同的元件引腳大小和形狀控制好焊錫的施用量,確保有一個(gè)良好的焊點(diǎn)。焊錫過少會(huì)造成焊點(diǎn)不夠牢固,出現(xiàn)虛焊等問題;而焊錫過多會(huì)導(dǎo)致焊點(diǎn)較大,形狀丑陋,并有可能造成短路。因此,在焊接時(shí)應(yīng)注意根據(jù)元件引腳的不同大小和形狀控制好焊錫的施用量,保證焊點(diǎn)既具有良好的美觀效果,又確保彼此之間具有良好的電連接。焊點(diǎn)通常為圓錐狀,頂部略尖,使其與元件引腳和焊盤緊密接觸。圖5-1系統(tǒng)焊接圖5.2具體功能測(cè)試首先進(jìn)行實(shí)物原理圖的連接,包括是電源模塊、單片機(jī)模塊、復(fù)位電路模塊、晶振電路模塊、下載模塊、獨(dú)立按鍵模塊、顯示模塊、超聲波模塊、聲音檢測(cè)模塊、指示燈模塊、蜂鳴器報(bào)警等模塊組成。其中,單片機(jī)采用了STM32芯片;顯示屏采用OLED,圖5-2為總體實(shí)物圖。圖5-2鐵道口無人值守監(jiān)測(cè)系統(tǒng)上電圖最終完成各模塊的硬件連接,上電后系統(tǒng)進(jìn)入實(shí)時(shí)監(jiān)測(cè)狀態(tài)。各個(gè)傳感器共同工作,精確測(cè)量鐵道口相關(guān)參數(shù):DS1302實(shí)時(shí)時(shí)鐘模塊可提供高精度時(shí)間獲取系統(tǒng)當(dāng)前時(shí)刻的大多數(shù)精確時(shí)間參數(shù)HC-SR04超聲波模塊可實(shí)時(shí)測(cè)量火車距離,通過超聲波發(fā)射和接收模塊來獲取當(dāng)前火車距離值班人員則通過設(shè)定的值班人員編號(hào)進(jìn)行人員、火車到路口的距離、值班人員信息在系統(tǒng)中顯示,實(shí)現(xiàn)人員信息的記錄和顯示(0-張三,1-李四,2-王五,等)實(shí)物測(cè)試圖如圖34所示,聲音模塊作為聽覺器官,實(shí)時(shí)檢測(cè)火車運(yùn)行產(chǎn)生的聲音信號(hào),并判斷安全狀態(tài)通過以上參數(shù),運(yùn)用STM32單片機(jī)進(jìn)行處理顯示,最后將時(shí)間值,距離值,值班人員信息和安全狀態(tài)等信息,在OLED顯示屏幕上實(shí)時(shí)顯示。實(shí)物測(cè)試圖如圖5-3所示。圖5-3功能測(cè)試圖系統(tǒng)提供便捷的人機(jī)交互功能,用戶可通過獨(dú)立按鍵模塊進(jìn)行安全距離設(shè)置。例如,本次將安全距離設(shè)定為97厘米,該參數(shù)可根據(jù)實(shí)際需求靈活調(diào)整。在模擬測(cè)試中,當(dāng)超聲波模塊檢測(cè)到距離為41.1厘米時(shí),由于該數(shù)值小于設(shè)定的安全距離97厘米,系統(tǒng)立即啟動(dòng)聲光報(bào)警機(jī)制——蜂鳴器發(fā)出尖銳的警報(bào)聲,紅色指示燈持續(xù)閃爍,同時(shí)控制同行閘門狀態(tài)從“打開”切換為“關(guān)閉”,有效阻止無關(guān)人員和車輛進(jìn)入危險(xiǎn)區(qū)域,為火車通行提供安全保障。如圖5-4所示。圖5-4通信模塊功能測(cè)試圖為了實(shí)現(xiàn)遠(yuǎn)程監(jiān)控與管理,系統(tǒng)安裝了ESP8266無線通信模組,通過wifi網(wǎng)絡(luò)將系統(tǒng)所有的監(jiān)測(cè)數(shù)據(jù)發(fā)送至手機(jī)端。用戶安裝相關(guān)配套應(yīng)用軟件,即可隨時(shí)隨地查看鐵道口事故發(fā)生現(xiàn)狀、同行閘門狀況、值班人員信息等數(shù)據(jù)。此外,手機(jī)端同樣具備遠(yuǎn)程控制功能,管理人員根據(jù)具體情況,通過手機(jī)端下發(fā)指令,對(duì)系統(tǒng)進(jìn)行參數(shù)設(shè)置、設(shè)備狀態(tài)調(diào)控等,實(shí)現(xiàn)鐵道口監(jiān)測(cè)系統(tǒng)的智能化、遠(yuǎn)程化管理,顯著提高了鐵路道口安全管控效率,提升現(xiàn)場(chǎng)鐵路道口應(yīng)急處置效率。對(duì)此進(jìn)行了實(shí)物測(cè)試,實(shí)物測(cè)試如圖5-5所示。圖5-5緊急報(bào)警功能測(cè)試緊急報(bào)警是在特殊狀態(tài)下啟用,當(dāng)屏幕事故狀態(tài)顯示為“故障”狀態(tài),說明出現(xiàn)緊急狀況,蜂鳴器開始報(bào)警,此時(shí)為危險(xiǎn)狀態(tài)。待一段時(shí)間后,若要取消報(bào)警狀態(tài),需手動(dòng)通過屏幕端點(diǎn)擊“結(jié)束報(bào)警”即可。點(diǎn)擊后,屏幕恢復(fù)正常狀態(tài)。如圖5-5所示。表5-1鐵道口無人值守監(jiān)測(cè)系統(tǒng)功能測(cè)試表測(cè)試項(xiàng)目測(cè)試條件實(shí)際結(jié)果超聲波測(cè)距功能安全閾值設(shè)為97cm,輸入不同距離41.1cm時(shí)報(bào)警觸發(fā),顯示準(zhǔn)確聲光報(bào)警功能距離<安全閾值且檢測(cè)到火車聲音報(bào)警及時(shí),欄桿動(dòng)作遠(yuǎn)程通信功能通過ESP8266發(fā)送數(shù)據(jù)至手機(jī)端數(shù)據(jù)顯示完整,指令響應(yīng)正常時(shí)間顯示功能系統(tǒng)運(yùn)行中讀取DS1302時(shí)鐘數(shù)據(jù)時(shí)間更新連續(xù),格式準(zhǔn)確值班人員信息顯示通過按鍵切換值班人員編號(hào)(0-2)信息切換流暢,顯示無誤安全狀態(tài)顯示根據(jù)距離與閾值判斷安全狀態(tài)狀態(tài)切換及時(shí),標(biāo)識(shí)清晰緊急報(bào)警功能手動(dòng)觸發(fā)緊急報(bào)警報(bào)警觸發(fā)后手動(dòng)解除,功能正常表5-1超聲波測(cè)距精度測(cè)試表(單位:cm)實(shí)際距離測(cè)量距離誤差范圍是否合格50.049.8±0.5cm是100.099.5±0.5cm是200.0199.3±1.0cm是400.0398.7±1.5cm是在設(shè)計(jì)調(diào)試的過程序主要遇見如下幾點(diǎn)問題:(1)程序燒錄后屏幕上無法顯示出數(shù)據(jù),通過軟件的測(cè)試和硬件的檢測(cè),最終確定由于設(shè)計(jì)焊接的電位器出現(xiàn)短路現(xiàn)象,導(dǎo)致屏幕分壓出現(xiàn)問題,所以沒法進(jìn)行顯示。(2)系統(tǒng)顯示后,屏幕數(shù)據(jù)出現(xiàn)卡頓現(xiàn)象,經(jīng)過測(cè)試,由于超聲波模塊的數(shù)據(jù)管腳接反了,系統(tǒng)沒法進(jìn)入中斷,程序進(jìn)入了死循環(huán),所以數(shù)據(jù)沒變化。(3)時(shí)鐘模塊沒法按照要求顯示出具體的年月日時(shí)間等,顯示出來后,時(shí)間沒法正常的跳轉(zhuǎn),經(jīng)過檢查,集成模塊自身有問題,換模塊之后,可以按照要求進(jìn)行顯示。5.3本章小結(jié)為了完成本次畢設(shè)的實(shí)物,使系統(tǒng)更加穩(wěn)定,本次設(shè)計(jì)采用PCB進(jìn)行焊接,省去不必要的麻煩,避免因?yàn)殡娐范搪罚瑪嗦范a(chǎn)生的設(shè)計(jì)不穩(wěn)定,功能不穩(wěn)定的想象。本次實(shí)物匹配的元器件都采用直插型,方便焊接,在焊接之前,了解單片機(jī),按鍵蜂鳴器,電阻,電容的基本特性,正負(fù)值,芯片方向等,然后在進(jìn)行實(shí)物的焊接,將芯片,元器件都焊接穩(wěn)定,排布整齊。本章主要對(duì)系統(tǒng)進(jìn)行實(shí)物的搭建,調(diào)試。經(jīng)過對(duì)各個(gè)模塊的驗(yàn)證,各個(gè)模塊完全按照設(shè)計(jì)功能要求進(jìn)行,屏幕,按鍵,超聲波模塊,聲音檢測(cè)模塊,時(shí)鐘模塊可以穩(wěn)定的運(yùn)行。6結(jié)論6.1設(shè)計(jì)總結(jié)本設(shè)計(jì)將實(shí)現(xiàn)基于單片機(jī)的鐵道口無人值守監(jiān)測(cè)系統(tǒng)的硬件設(shè)計(jì)、軟件程序、測(cè)試結(jié)果。最后對(duì)系統(tǒng)進(jìn)行性能分析、總結(jié),以便系統(tǒng)可以改進(jìn)。本設(shè)計(jì)能夠完成前文所要求的設(shè)計(jì)內(nèi)容,能夠?qū)﹁F道口進(jìn)行監(jiān)測(cè),通過wifi無線通信模塊發(fā)送數(shù)據(jù)給控制系統(tǒng),從而控制閘口的關(guān)閉與打開。系統(tǒng)具有以下特點(diǎn):(1)硬件設(shè)計(jì)合理、功能齊全,包括監(jiān)測(cè)模塊、WiFi無線連接模塊、繼電器模塊、單片機(jī)處理器等。監(jiān)測(cè)模塊包括超聲波傳感器(火車到鐵路口的距離監(jiān)測(cè))、聲音檢測(cè)傳感器(火車運(yùn)行聲音檢測(cè)等)等,實(shí)現(xiàn)對(duì)鐵道口狀態(tài)的采集;繼電器模塊作為強(qiáng)電和弱電的連接橋梁,通過電磁感應(yīng)實(shí)現(xiàn)外部大功率設(shè)備欄桿機(jī)的安全控制;單片機(jī)處理器采用的是STM32F103C8T6單片機(jī),滿足高性能處理能力和豐富的外設(shè),協(xié)調(diào)實(shí)現(xiàn)模塊的有序工作。(2)系統(tǒng)的軟件設(shè)計(jì)通過編程實(shí)現(xiàn)采集火車到達(dá)鐵路口的距離,判斷火車是否進(jìn)站,檢測(cè)具體的聲音,當(dāng)兩者條件同時(shí)滿足時(shí),將觸發(fā)聲光報(bào)警模塊,同時(shí)設(shè)計(jì)的人機(jī)交互顯示屏,還可以顯示具體的時(shí)間信息,具體信息,報(bào)警信息等。(3)統(tǒng)具有較好的控功能。對(duì)火車運(yùn)行至鐵路口的距離進(jìn)行實(shí)時(shí)跟蹤檢測(cè),當(dāng)接近或小于安全距離時(shí),進(jìn)行提示告警。除了對(duì)行人、車輛進(jìn)行聲光報(bào)警外,還可以根據(jù)程序,結(jié)合鐵路信號(hào)系統(tǒng)等對(duì)火車運(yùn)行狀況進(jìn)行干預(yù),如發(fā)送信號(hào)讓火車緊急剎車等,確保鐵路口的安全。(4)操作上簡(jiǎn)單便利。系統(tǒng)的操控非常簡(jiǎn)單,用戶只需要采用手動(dòng)開啟系統(tǒng)的電源,就能夠?qū)崿F(xiàn)對(duì)鐵道口的監(jiān)控目的,基于單片機(jī)控制系統(tǒng),無需系統(tǒng)操作培訓(xùn)和操作流程,能夠?qū)﹁F道口進(jìn)行實(shí)時(shí)監(jiān)測(cè)和控制,因此,使用非常簡(jiǎn)便。6.2應(yīng)用前景于單片機(jī)控制的鐵道口無人值守監(jiān)測(cè)系統(tǒng)在功能上基本可以實(shí)現(xiàn),但由于本人精力與水平的限制,還存在一些不足之處以及改進(jìn)的方面。主要表現(xiàn)在以下幾個(gè)方面:(1)可考慮將鐵道口無人值守監(jiān)測(cè)系統(tǒng)與鐵路的信號(hào)系統(tǒng)、列車運(yùn)行控制系統(tǒng)等信息系統(tǒng)進(jìn)行有效結(jié)合,共享信息、相互配合,如監(jiān)測(cè)系統(tǒng)發(fā)現(xiàn)鐵道口有異常情況可以及時(shí)向列車運(yùn)行控制系統(tǒng)發(fā)送信號(hào),控制列車減速或者停車,防止事故的發(fā)生。(2)可以增設(shè)語音提示與交互功能,增加語音提示功能,向行人及車輛駕駛員提供清晰的語音提示信息,便于提高警示效果;支持語音交互功能,方便用戶通過語音命令來查詢信息或執(zhí)行操作。(3)考慮增設(shè)智能照明和引導(dǎo)功能??稍阼F道口設(shè)置智能照明系統(tǒng),能夠按照環(huán)境光線和接近列車亮度自動(dòng)調(diào)節(jié)亮度,增加夜間或黑暗環(huán)境下的可見度。同時(shí)可設(shè)置引導(dǎo)燈光或標(biāo)志,引導(dǎo)行人通過路口,引導(dǎo)車輛駛?cè)?。通過本次畢業(yè)設(shè)計(jì)學(xué)習(xí),我受益匪淺,學(xué)到了很多的知識(shí),并應(yīng)用在實(shí)際操作中,提高了自身的知識(shí)水平。了解了一臺(tái)單片機(jī)控制系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)過程以及如何在理論上將其應(yīng)用于實(shí)際項(xiàng)目中,了解了如何選擇單片機(jī)型號(hào)、如何設(shè)計(jì)電路、如何編寫程序?qū)崿F(xiàn)系統(tǒng)功能,不僅鍛煉了自身的電子設(shè)計(jì)和嵌入式系統(tǒng)設(shè)計(jì)的能力,也提高了自身實(shí)踐解決實(shí)際問題的能力。參考文獻(xiàn)郭東福.單片機(jī)+Cat.1在無人值守洗車系統(tǒng)中的應(yīng)用[J].現(xiàn)代工業(yè)經(jīng)濟(jì)和信息化,2023,13(08):169-172.鄭劍波,朱鴻博,陳煜,等.無人值守變電站設(shè)備電源遠(yuǎn)控管理裝置的設(shè)計(jì)與實(shí)現(xiàn)[J].山東電力技術(shù),2022,49(09):14-21+60.梁永文,陳曉濤.移動(dòng)式無人值守核酸采集站設(shè)計(jì)研究[J].蘭州石化職業(yè)技術(shù)學(xué)院學(xué)報(bào),2022,22(03):24-28.張錫恒.無人值守天然氣站遠(yuǎn)程監(jiān)控的實(shí)現(xiàn)[J].自動(dòng)化應(yīng)用,2021,(08):28-31.DOI:10.19769/j.zdhy.2021.08.009.龍飛虎,董振鵬,甘子?xùn)|,等.地下商城停車場(chǎng)無人值守智能機(jī)器人測(cè)控系統(tǒng)研究[J].中國(guó)設(shè)備工程,2021,(15):32-33.孫琦,傅軍.基于北斗的無人值守氣象站設(shè)計(jì)[J].物聯(lián)網(wǎng)技術(shù),2021,11(05):99-103.DOI:10.16667/j.issn.2095-1302.2021.05.029.郭志,張瑩,林松,等.基于單片機(jī)的無人值守變電站防漏水告警系統(tǒng)[J].山東電力技術(shù),2019,46(11):51-55.何英昊,鄭鵬輝,李廣,等.十字路口智能導(dǎo)流控制系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2022,12(11):60-63.韓旭東,韓樂樂,林邦演,等.基于STM32的智能交通燈系統(tǒng)設(shè)計(jì)[J].時(shí)代汽車,2022,(16):112-114.鄒智恒,鐘靚,劉含超,等.基于單片機(jī)的十字路口交通燈控制系統(tǒng)設(shè)計(jì)[J].機(jī)械研究與應(yīng)用,2019,32(05):157-159.李珊珊,繩鵬,裴麗紅,等.基于視頻的路口擁堵信息監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].儀表技術(shù),2018,(10):15-18.ZhangB,LiY,ZhuH,etal.StudyonthedesignofunattendedSCRSfull-conditionadaptivebypassflowsystems[J].NuclearEngineeringandDesign,2025,432113768-113768:12-8.SeviM,Ayd?n?.EnhancedrailwaymonitoringandsegmentationusingDNetandmathematicalmethods[J].Signal,ImageandVideoProcessing,2024,19(1):106-106.YükselK,KinetD,MoeyaertV,etal.Railwaymonitoringsystemusingopticalfibergratingaccelerometers[J].SmartMaterialsandStructures,2018,27(10):25-30.張穎,曹海燕,宋文斌,等.集成電路技術(shù)基礎(chǔ)[M].化學(xué)工業(yè)出版社:202406.197.周長(zhǎng)鎖.51單片機(jī)編程[M].化學(xué)工業(yè)出版社:202302.279.HeY.DesignandImplementationofIntelligentWaterHeaterBasedonSTC89C52[J].JournalofPhysics:ConferenceSeries,2024,2731(1):16-3.王陳宸.基于STM32的配電網(wǎng)遠(yuǎn)動(dòng)終端(RTU)的設(shè)計(jì)[D].武漢:長(zhǎng)江大學(xué),2018.韓靜.基于物聯(lián)網(wǎng)的農(nóng)機(jī)恒溫恒濕環(huán)境監(jiān)測(cè)與控制系統(tǒng)設(shè)計(jì)與應(yīng)用[J].南方農(nóng)機(jī),2024,55(19):69-72.蔡佳樹,陳平平.一種基于OneNET云平臺(tái)的消防安全監(jiān)測(cè)系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2025,15(03):14-17.DOI:10.16667/j.issn.2095-1302.2025.03.004.TangL,WangY,FangT.Hardwarecircuitdesignofintelligentfastchargercontrolsystem[J].JournalofPhysics:ConferenceSeries,2024,2810(1):012027-012027.QianXR,CuiM,LuJ,etal.SubstituentpositioneffectsonbluelightemissionoforganophosphoniumorganiccompoundsforpotentialOLEDapplications[J].InorganicChemistryCommunications,2025,178(P1):114526-114526.馬慧文.基于FPGA的OLED顯示屏控制電路設(shè)計(jì)[D].北京:北京交通大學(xué),2024.DOI:10.26944/ki.gbfju.2024.000478.李強(qiáng).信息交互化人防警報(bào)終端控制器的研制[D].哈爾濱:哈爾濱理工大學(xué),2008.張培志,羅敏,仇芝.電氣控制與可編程序控制器[M].化學(xué)工業(yè)出版社:202311.338.夏洪永,伍波.電氣安全技術(shù)[M].化學(xué)工業(yè)出版社:202308.256.董健平.多參數(shù)能耗采集監(jiān)測(cè)系統(tǒng)的研究與設(shè)計(jì)[D].吉林:吉林建筑大學(xué),2024.DOI:10.27714/ki.gjljs.2024.000092.吳建平.傳感器原理及應(yīng)用[M].機(jī)械工業(yè)出版社:202206.719.肖洋.基于物聯(lián)網(wǎng)化工實(shí)驗(yàn)室的設(shè)備制造與安全監(jiān)控系統(tǒng)設(shè)計(jì)[D].浙江:浙江科技大學(xué),2024.DOI:10.27840/ki.gzjkj.2024.000514.QiaoJ.ResearchonMotionModelingandControlofTrackingCarBasedonNeuralNetwork[C]//EliwiseAcademy.Proceedingsofthe2ndInternationalConferenceonComputingandDataScience(CONF-CDS2021).ResearchInstituteofMicro,NanoScienceandTechnologyShanghaiJiaoTongUniversity;,2021:297-301.DOI:10.26914/kihy.2021.075074.附錄#include"stm32f10x.h"#include"OLED_I2C.h"#include"ds1302.h"http://#include"ds18b20.h"#include"usart1.h"#include"led.h"#include"delay.h"http://#include"max30102_read.h"#include"myiic.h"#include"key.h"#include"iic.h"#include"stdio.h"#include"string.h"http://#include"adxl345.h"#include"HC_SR04.h"#include"esp8266.h"#include"timer.h"#include"stmflash.h"#include<stdio.h>#include<stdlib.h>#include<string.h>#include"stdbool.h"#defineFLASH_SAVE_ADDR((u32)0x0800F000) //設(shè)置FLASH保存地址(必須為偶數(shù))#defineSTM32_RX1_BUFUsart1RecBuf#defineSTM32_Rx1CounterRxCounter#defineSTM32_RX1BUFF_SIZEUSART1_RXBUFF_SIZEu16DistanceMax=100;floatDistance=0.0;u8NameNum=0; //值班人員編號(hào):0-張三,1-李四,2-王五voidDisplayInit(void){ unsignedchari; for(i=0;i<2;i++)OLED_ShowCN(i*16,4,i+12,0);//測(cè)試顯示中文:距離 OLED_ShowChar(32,4,':',2,0); for(i=0;i<4;i++)OLED_ShowCN(i*16,6,i+20,0);//測(cè)試顯示中文:值班人員 OLED_ShowChar(64,6,':',2,0);}voidDisplayTime(void)//顯示時(shí)間函數(shù){ unsignedchari=0,x=0; u16nian_temp; if(setn==0)DS1302_DateRead(&SysDate);//讀時(shí)間 nian_temp=2000+SysDate.year; if((nian_temp%400==0)||((nian_temp%100!=0)&&(nian_temp%4==0)))//判斷是否為閏年 p_r=1; else p_r=0; if(setn<8) { OLED_ShowChar((x++)*8,0,'2',2,setn+1-1); OLED_ShowChar((x++)*8,0,'0',2,setn+1-1); OLED_ShowChar((x++)*8,0,SysDate.year/10+'0',2,setn+1-1); OLED_ShowChar((x++)*8,0,SysDate.year%10+'0',2,setn+1-1); OLED_ShowChar((x++)*8,0,'-',2,0); OLED_ShowChar((x++)*8,0,SysDate.mon/10+'0',2,setn+1-2); OLED_ShowChar((x++)*8,0,SysDate.mon%10+'0',2,setn+1-2); OLED_ShowChar((x++)*8,0,'-',2,0); OLED_ShowChar((x++)*8,0,SysDate.day/10+'0',2,setn+1-3); OLED_ShowChar((x++)*8,0,SysDate.day%10+'0',2,setn+1-3); OLED_ShowCN(i*16+88,0,0,setn+1-4);//測(cè)試顯示中文:周 switch(SysDate.week){case1: OLED_ShowCN(i*16+104,0,1,setn+1-4);//測(cè)試顯示中文:一break;case2: OLED_ShowCN(i*16+104,0,2,setn+1-4);//測(cè)試顯示中文:二break;case3: OLED_ShowCN(i*16+104,0,3,setn+1-4);//測(cè)試顯示中文:三break;case4: OLED_ShowCN(i*16+104,0,4,setn+1-4);//測(cè)試顯示中文:四break;case5: OLED_ShowCN(i*16+104,0,i+5,setn+1-4);//測(cè)試顯示中文:五break;case6: OLED_ShowCN(i*16+104,0,6,setn+1-4);//測(cè)試顯示中文:六break;case7: OLED_ShowCN(i*16+104,0,7,setn+1-4);//測(cè)試顯示中文:日break;}x=0; OLED_ShowChar((x++)*8,2,SysDate.hour/10+'0',2,setn+1-5); OLED_ShowChar((x++)*8,2,SysDate.hour%10+'0',2,setn+1-5); OLED_ShowChar((x++)*8,2,':',2,0); OLED_ShowChar((x++)*8,2,SysDate.min/10+'0',2,setn+1-6); OLED_ShowChar((x++)*8,2,SysDate.min%10+'0',2,setn+1-6); OLED_ShowChar((x++)*8,2,':',2,0); OLED_ShowChar((x++)*8,2,SysDate.sec/10+'0',2,setn+1-7); OLED_ShowChar((x++)*8,2,SysDate.sec%10+'0',2,setn+1-7); }}voidDisplaySetValue(void)//顯示設(shè)置值{ if(setn==8) { sprintf(display,"%d",DistanceMax); OLED_ShowStr(54,4,(unsignedchar*)display,2);//顯示報(bào)警值 }}voidGetOperatorName(void){ unsignedchari; switch(NameNum) { case0:for(i=0;i<2;i++)OLED_ShowCN(i*16+74,6,i+24,0);//測(cè)試顯示中文:張三 break; case1:for(i=0;i<2;i++)OLED_ShowCN(i*16+74,6,i+26,0);//測(cè)試顯示中文:張三 break; case2:for(i=0;i<2;i++)OLED_ShowCN(i*16+74,6,i+28,0);//測(cè)試顯示中文:張三 break; case3:for(i=0;i<2;i++)OLED_ShowCN(i*16+74,6,i+30,0);//測(cè)試顯示中文:張三 break; case4:for(i=0;i<2;i++)OLED_ShowCN(i*16+74,6,i+32,0);//測(cè)試顯示中文:張三 break; default:break; }}voidKeySettings(void)//按鍵設(shè)置函數(shù){ NameNum++; }else{ NameNum=0; } } if(setn==1)//設(shè)置年 { SysDate.year++; if(SysDate.year==100)SysDate.year=0; DS1302_DateSet(&SysDate);//設(shè)置時(shí)間 } if(setn==2)//設(shè)置月 { SysDate.mon++; if(SysDate.mon==13)SysDate.mon=1; if((SysDate.mon==4)||(SysDate.mon==6)||(SysDate.mon==9)||(SysDate.mon==11)) { if(SysDate.day>30)SysDate.day=1; } else { if(SysDate.mon==2) { if(p_r==1) { if(SysDate.day>29) SysDate.day=1; } else { if(SysDate.day>28) SysDate.day=1; } } } DS1302_DateSet(&SysDate);//設(shè)置時(shí)間 } if(setn==3)//設(shè)置日 { SysDate.day++; if((SysDate.mon==1)||(SysDate.mon==3)||(SysDate.mon==5)||(SysDate.mon==7)||(SysDate.mon==8)||(SysDate.mon==10)||(SysDate.mon==12))//大月 { if(SysDate.day==32)//最大31天 SysDate.day=1;//從1開始 } else { if(SysDate.mon==2)//二月份 { if(p_r==1)//閏年 { if(SysDate.day==30)//最大29天 SysDate.day=1; } else { if(SysDate.day==29)//最大28天 SysDate.day=1; } } else { if(SysDate.day==31)//最大30天 SysDate.day=1; } } DS1302_DateSet(&SysDate);//設(shè)置時(shí)間 } if(setn==4)//設(shè)置星期 { SysDate.week++; if(SysDate.week==8)SysDate.week=1; DS1302_DateSet(&SysDate);//設(shè)置時(shí)間 } if(setn==5)//設(shè)置時(shí) { SysDate.hour++; if(SysDate.hour==24)SysDate.hour=0; DS1302_DateSet(&SysDate);//設(shè)置時(shí)間 } if(setn==6)//設(shè)置分 { SysDate.min++; if(SysDate.min==60)SysDate.min=0; DS1302_DateSet(&SysDate);//設(shè)置時(shí)間 } if(setn==7)//設(shè)置秒 { SysDate.sec++; if(SysDate.sec==60)SysDate.sec=0; DS1302_DateSet(&SysDate);//設(shè)置時(shí)間 } if(setn==8)DistanceMax++; DisplaySetValue(); } if(keynum==3)//減 { if(setn==0) { OLED_CLS(); for(i=0;i<2;i++)OLED_ShowCN(i*16+48,2,i+16,0);//測(cè)試顯示中文:警報(bào)危險(xiǎn) for(i=0;i<2;i++)OLED_ShowCN(i*16+48,4,i+14,0);//測(cè)試顯示中文:警報(bào)危險(xiǎn) safeFlag=1; BEEP=1; } if(setn==1)//設(shè)置年 { if(SysDate.year==0)SysDate.year=100; SysDate.year--; DS1302_DateSet(&SysDate); } if(setn==2)//設(shè)置月 { if(SysDate.mon==1)SysDate.mon=13; SysDate.mon--; if((SysDate.mon==4)||(SysDate.mon==6)||(SysDate.mon==9)||(SysDate.mon==11)) { if(SysDate.day>30) SysDate.day=1; } else { if(SysDate.mon==2) { if(p_r==1) { if(SysDate.day>29) SysDate.day=1; } else { if(SysDate.day>28) SysDate.day=1; } } } DS1302_DateSet(&SysDate); } if(setn==3)//設(shè)置日 { SysDate.day--; if((SysDate.mon==1)||(SysDate.mon==3)||(SysDate.mon==5)||(SysDate.mon==7)||(SysDate.mon==8)||(SysDate.mon==10)||(SysDate.mon==12)) { if(SysDate.day==0) SysDate.day=31; } else { if(SysDate.mon==2) { if(p_r==1) { if(SysDate.day==0) SysDate.day=29; } else { if(SysDate.day==0) SysDate.day=28; } } else { if(SysDate.day==0) SysDate.day=30; } } DS1302_DateSet(&SysDate); } if(setn==4)//設(shè)置星期 { if(SysDate.week==1)SysDate.week=8; SysDate.week--; DS1302_DateSet(&SysDate); } if(setn==5)//設(shè)置時(shí) { if(SysDate.hour==0)SysDate.hour=24; SysDate.hour--; DS1302_DateSet(&SysDate); } if(setn==6)//設(shè)置分 { if(SysDate.min==0)SysDate.min=60; SysDate.min--; DS1302_DateSet(&SysDate); } if(setn==7)//設(shè)置秒 { if(SysDate.sec==0)SysDate.sec=60; SysDate.sec--; DS1302_DateSet(&SysDate); } if(setn==8)DistanceMax--; DisplaySetValue(); }}voidGetDistance(void){ unsignedchari; /******************************************************************************** ***Get_SR04_Distance()返回單程聲波傳輸時(shí)間us,轉(zhuǎn)換為秒=時(shí)間*10^(-6);331m/s等于331000mm/s, ***最終換算為Distance=Get_SR04_Distance()*10^(-6)*331000=(Get_SR04_Distance()*331)*1.0/1000; ***********************************************************************************/ Distance=(Get_SR04_Distance()*331)*1.0/10000;//單位cm if(Distance>=450)Distance=450; sprintf(display,"%5.1fcm",Distance); OLED_ShowStr(42,4,(unsignedchar*)display,2);//顯示距離值 if(VOICE==0&&Distance<DistanceMax) //有聲音且小于安全距離禁止 { BEEP=1; RELAY=0; LED=0; gateFlag=0; //門的狀態(tài)-關(guān) for(i=0;i<2;i++)OLED_ShowCN(i*16+88,2,i+18,0);//測(cè)試顯示中文:禁止 }else{ BEEP=0; RELAY=1; LED=1; gateFlag=1; //門的狀態(tài)-開 for(i=0;i<2;i++)OLED_ShowCN(i*16+88,2,i+10,0);//測(cè)試顯示中文:安全 }}voidUsartSendReceiveData(void)//串口發(fā)送接收數(shù)據(jù){ char*str1=0,i; unsignedchar*dataPtr=NULL;charSEND_BUF[100]; intsetValue=0; charsetvalue[3]={0}; dataPtr=ESP8266_GetIPD(0);//接收數(shù)據(jù) if(dataPtr!=NULL) { BEEP=1; DelayMs(50); BEEP=0; if(strstr((char*)dataPtr,"NameNum:")!=NULL) { str1=strstr((char*)dataPtr,"NameNum:"); while(*str1!=':')//判斷是不是0到9有效數(shù)字 { str1=str1+1; DelayMs(10); } str1=str1+1; i=0; while(*str1>='0'&&*str1<='9')//判斷是不是0到9有效數(shù)字 { setvalue[i]=*str1; i++;str1++; if(*str1=='\r')break;//換行符,直接退出while循環(huán) DelayMs(10); } setvalue[i]='\0';//加上結(jié)尾符 setValue=atoi(setvalue); if(setValue>=0&&setValue<=99) { NameNum =setValue; } } } if(dataPtr!=NULL) { BEEP=1; DelayMs(50); BEEP=0; if(strstr((char*)dataPtr,"safeFlag:")!=NULL)//接收到設(shè)置血氧下限的指令 { str1=strstr((char*)dataPtr,"s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 隔墻施工方案范本(3篇)
- 通渭秧歌活動(dòng)方案策劃(3篇)
- 揭陽(yáng)燈飾施工方案(3篇)
- ??趪鷫κ┕し桨?3篇)
- 施工方案如何考慮(3篇)
- 排水施工方案撰寫(3篇)
- 物業(yè)管理費(fèi)用收支管理手冊(cè)(標(biāo)準(zhǔn)版)
- 熱力施工安全培訓(xùn)課件
- 2025年中職藥物分析技術(shù)(藥物檢測(cè)實(shí)操)試題及答案
- 2025年中職(烹飪工藝與營(yíng)養(yǎng))西式烹調(diào)工藝測(cè)試卷及答案
- 室內(nèi)裝修冬季施工供暖措施方案
- 人工智能在射頻電路中的應(yīng)用-洞察及研究
- 2024年《廣西壯族自治區(qū)建筑裝飾裝修工程消耗量定額》(上冊(cè))
- DBJT15-101-2022 建筑結(jié)構(gòu)荷載規(guī)范
- 2025年部編版新教材語文七年級(jí)上冊(cè)期末復(fù)習(xí)計(jì)劃
- 礦產(chǎn)企業(yè)管理辦法
- 2025秋季學(xué)期國(guó)開電大專本科《經(jīng)濟(jì)法學(xué)》期末紙質(zhì)考試名詞解釋題庫(kù)珍藏版
- 建筑設(shè)計(jì)防火規(guī)范-實(shí)施指南
- 2025國(guó)開《中國(guó)古代文學(xué)(下)》形考任務(wù)1234答案
- 租地合同協(xié)議書合同
- 《肺炎的CT表現(xiàn)》課件
評(píng)論
0/150
提交評(píng)論