汽車噴油嘴清洗機(jī)的智能化設(shè)計(jì)_第1頁(yè)
汽車噴油嘴清洗機(jī)的智能化設(shè)計(jì)_第2頁(yè)
汽車噴油嘴清洗機(jī)的智能化設(shè)計(jì)_第3頁(yè)
汽車噴油嘴清洗機(jī)的智能化設(shè)計(jì)_第4頁(yè)
汽車噴油嘴清洗機(jī)的智能化設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上汽車噴油嘴清洗機(jī)的智能化設(shè)計(jì)摘要 本文介紹的汽車噴油嘴清洗機(jī)主要由單片機(jī)AT89S52芯片來(lái)控制.該產(chǎn)品的設(shè)計(jì)可以大大減小噴油嘴清洗機(jī)的體積,還有洗完鳴警設(shè)定,意外報(bào)警等功能,這一切都可以實(shí)現(xiàn)噴油嘴清洗機(jī)的智能化,同時(shí)大大減少機(jī)器成本。本產(chǎn)品通過(guò)程序設(shè)定,以軟件代替硬件。可以通過(guò)油面,油溫傳感器等實(shí)現(xiàn)溫度,油量的測(cè)量與控制;還可以通過(guò)對(duì)清洗時(shí)間,清洗壓力的程序設(shè)定,使該噴油嘴清洗機(jī)能適用于任何汽車車型。第一章 引  言 4第二章 汽車噴油嘴清洗機(jī)的工作原理與技術(shù)要求 42.1 “電噴汽車噴油嘴清洗機(jī)”的工作原理 42.2 “電噴汽車噴油嘴清洗機(jī)”的工作過(guò)程及

2、技術(shù)要求: 5第三章 系統(tǒng)方案及電路設(shè)計(jì) 53.1 系統(tǒng)方案 53.2  PWM波調(diào)速原理 63.3 調(diào)寬脈沖輸出子程序模塊 7第四章 主要器件介紹 84.1  AT89S51單片機(jī)的功能點(diǎn) 84.2 光電耦合器 9第五章 硬件設(shè)計(jì) 9第六章 程序設(shè)計(jì) 106.1   主程序設(shè)計(jì) 106.2   變量定義及初始化模塊 116.3 完整代碼 12第七章  調(diào)試應(yīng)用 127.1  安全注意事項(xiàng) 127.2  功能調(diào)試 13謝辭 13參考文獻(xiàn) 14附頁(yè) 15第一章 引&#

3、160; 言改革開放以來(lái),隨著中國(guó)經(jīng)濟(jì)實(shí)力的增強(qiáng)及百姓收入的增多,小汽車越來(lái)越多地進(jìn)入了家庭,隨之而來(lái)的是維修保養(yǎng)問(wèn)題。 噴油嘴是電噴發(fā)動(dòng)機(jī)關(guān)鍵部件之一,它工作狀況的好壞將直接影響發(fā)動(dòng)機(jī)的性能。然而不少車主根本不重視發(fā)動(dòng)機(jī)噴油嘴的清洗,或者認(rèn)為發(fā)動(dòng)機(jī)噴油嘴要隔很長(zhǎng)時(shí)間才需進(jìn)行清洗,殊不知噴油嘴堵塞會(huì)嚴(yán)重影響汽車性能! 噴油嘴堵塞的原因是發(fā)動(dòng)機(jī)內(nèi)積碳沉積在噴油嘴上或者燃油中的雜質(zhì)等堵住了噴油嘴通路。汽車行駛一段時(shí)間后,燃油系統(tǒng)就會(huì)形成一定的沉積物。燃油系統(tǒng)沉積物有很大危害,如沉積物會(huì)堵塞噴油嘴的針閥、閥孔,影響電子噴射系統(tǒng)精密部件的工作性能, 導(dǎo)致動(dòng)力性能下降;沉積物會(huì)在進(jìn)氣閥形成積碳,致使其關(guān)

4、閉不嚴(yán),導(dǎo)致發(fā)動(dòng)機(jī)怠速不穩(wěn)、油耗增大并伴隨尾氣排放惡化;沉積物會(huì)在活塞頂和氣缸蓋等部位形成堅(jiān)硬的積碳,由于積碳的熱容量高而導(dǎo)熱性差,容易引起發(fā)動(dòng)機(jī)爆震等故障,此外還會(huì)縮短三元催化器的壽命。因此噴油嘴工作的好壞,對(duì)每臺(tái)發(fā)動(dòng)機(jī)的功率發(fā)揮起著根本性作用。過(guò)去這類保養(yǎng)通常要交汽修廠進(jìn)行,費(fèi)用昂貴?,F(xiàn)市場(chǎng)上出現(xiàn)的已經(jīng)出現(xiàn)“電噴汽車噴油嘴清洗機(jī)” ,但這些電噴汽車噴油嘴清洗機(jī)都有如下缺陷:a.該機(jī)型大都是體積過(guò)大,運(yùn)輸,使用等都不方便,從而加大成本。b.機(jī)子開關(guān)機(jī)不能實(shí)現(xiàn)自動(dòng)化,清洗時(shí)間,清洗溫度也只能人工模糊控制,易使清洗機(jī)與電動(dòng)機(jī)受損,且不易適合流水線工作。c .并不具有如油面,油溫過(guò)高過(guò)低等的報(bào)警警

5、示功能。d.一種電噴汽車噴油嘴清洗機(jī)只能適用一種機(jī)型e.現(xiàn)機(jī)型造價(jià)過(guò)高,不易進(jìn)行家用推廣。本文介紹的汽車噴油嘴清洗機(jī)主要由單片機(jī)AT89S51芯片來(lái)控制,從而實(shí)現(xiàn)其智能化.該產(chǎn)品的設(shè)計(jì)可以大大減小噴油嘴清洗機(jī)的體積,以軟件代替硬件;可以通過(guò)油面,油溫傳感器等實(shí)現(xiàn)溫度,油量的測(cè)量與控制;還可以設(shè)定清洗時(shí)間,洗完鳴警設(shè)定等等。這一切都可以實(shí)現(xiàn)噴油嘴清洗機(jī)的智能化,同時(shí)大大減少機(jī)器成本。本產(chǎn)品也可通過(guò)程序設(shè)定,使該噴油嘴清洗機(jī)能適用于任何汽車車型。第二章 汽車噴油嘴清洗機(jī)的工作原理與技術(shù)要求2.1“電噴汽車噴油嘴清洗機(jī)”的工作原理:結(jié)合專用的燃油系統(tǒng)清洗劑,不需拆裝發(fā)動(dòng)機(jī),只需用接頭與發(fā)動(dòng)機(jī)供油管及

6、回油管連接,在發(fā)動(dòng)機(jī)正常運(yùn)轉(zhuǎn)狀況下,讓清洗混合液進(jìn)入燃油供給系統(tǒng),在30 分鐘內(nèi)即可溶解發(fā)動(dòng)機(jī)供油管、噴油嘴針閥和燃燒室各組件的積碳、油泥、膠質(zhì)及漆類污染物,經(jīng)由循環(huán)燃燒分解過(guò)程,從汽車排放系統(tǒng)排出,恢復(fù)該車的性能,使其啟動(dòng)順暢,怠速平穩(wěn),加油輕快,增加動(dòng)力,達(dá)到省油及降低空氣污染的效果。 2.2“電噴汽車噴油嘴清洗機(jī)”的工作過(guò)程及技術(shù)要求:a. 按啟動(dòng)/停止鍵,兩位數(shù)碼管顯示器顯示“00”。b. 按時(shí)間+、時(shí)間-鍵選擇工作時(shí)間,每次累加(減)1分鐘,時(shí)間的選擇范圍為0060分鐘。c. 選好時(shí)間,延時(shí)5秒后繼電器吸合工作,汽油泵運(yùn)行在額定電壓12V狀態(tài),數(shù)碼管同時(shí)顯示剩余的工作時(shí)間。汽油泵的額

7、定功率為70W,額定電壓為12V。d. 按壓力+、壓力-鍵通過(guò)改變直流電機(jī)上的電壓(即改變汽油泵轉(zhuǎn)速)調(diào)整清洗壓力,電壓調(diào)整范圍為712V。e. 當(dāng)剩余工作時(shí)間小于4分鐘時(shí),蜂鳴器開始鳴叫。直到定時(shí)結(jié)束,繼電器釋放,汽油泵停止工作,蜂鳴器停止鳴叫,數(shù)碼管顯示“00”。f. 5分鐘內(nèi)無(wú)任何操作則自動(dòng)斷電,數(shù)碼管無(wú)顯示。g.保護(hù)措施:油面過(guò)低保護(hù): 為防止無(wú)油損壞汽油泵,油面過(guò)低時(shí),傳感器開關(guān)閉合,汽油泵自動(dòng)斷電,數(shù)碼管g段顯示“-” 并閃爍。油溫過(guò)高保護(hù): 為防止油溫過(guò)高起火,溫度過(guò)高時(shí),溫度繼電器開關(guān)閉合,汽油泵自動(dòng)斷電,數(shù)碼管g段顯示“-”但不閃爍。第三章 系統(tǒng)方案及電路設(shè)計(jì)3.1系統(tǒng)方案圖

8、3-1為“電噴汽車噴油嘴清洗機(jī)”的系統(tǒng)構(gòu)成方框圖,由單片機(jī)控制器、按鍵輸入、數(shù)碼管顯示、電機(jī)PWM驅(qū)動(dòng)電路、輸出控制等電路組成。圖3-1系統(tǒng)構(gòu)成方框圖單片機(jī)AT89S51是整個(gè)系統(tǒng)的核心,負(fù)責(zé)控制檢測(cè)輸入,輸出顯示,電機(jī)調(diào)速。這里使用了Atmel公司新型的AT89S51單片機(jī)。按鍵輸入電路負(fù)責(zé)對(duì)清洗過(guò)程一系列工作參數(shù)進(jìn)行設(shè)定輸入。數(shù)碼管顯示器在工作過(guò)程中顯示剩余的工作時(shí)間。電機(jī)調(diào)速利用了單片機(jī)內(nèi)部的定時(shí)器,配合軟件產(chǎn)生出脈寬調(diào)制波(PWM),再通過(guò)功率場(chǎng)效應(yīng)管去驅(qū)動(dòng)低壓直流電機(jī),具有效率高、能耗低、轉(zhuǎn)速連續(xù)可調(diào)等特點(diǎn)。 輸出控制電路在油溫過(guò)高或油面過(guò)低的情況下,切斷高壓汽油泵電機(jī)的供電,防止發(fā)

9、生事故。 “電噴汽車噴油嘴清洗機(jī)” 的工作電源取自汽車上的12V蓄電池,經(jīng)降壓穩(wěn)壓后得到5V的穩(wěn)定工作電壓。3.2  PWM波調(diào)速原理 大家可能做過(guò)這樣的小實(shí)驗(yàn),一臺(tái)額定電壓為12V的直流小電機(jī),使用一臺(tái)可調(diào)穩(wěn)壓電源供電。當(dāng)電壓為12V時(shí),電機(jī)轉(zhuǎn)得很快;降低到9V時(shí)轉(zhuǎn)速慢了很多;當(dāng)降到6V時(shí)轉(zhuǎn)速更慢了。因?yàn)殡妷航档秃?,電機(jī)獲得的輸入功率小了,當(dāng)然轉(zhuǎn)速就慢了。但單片機(jī)輸出的是數(shù)字脈沖信號(hào),如何控制電機(jī)調(diào)速?這里,我們就設(shè)法控制單片機(jī)輸出脈沖的寬度(即控制脈沖的占空比),使電機(jī)得到的平均輸入功率發(fā)生變化,就能控制電機(jī)調(diào)速了。圖3-2中,輸出的為50%的脈沖波,其電壓平均值(如圖

10、中虛線所示為6V,這樣電機(jī)的速度就降低了。而圖3-3中,輸出的為接近100%的脈沖波,其電壓平均值約為12V,這時(shí)電機(jī)的轉(zhuǎn)速就接近額定轉(zhuǎn)速。圖3-2  輸出的為50%的脈沖波圖3-3  輸出的為100%的脈沖波3.3 PWM脈沖驅(qū)動(dòng)電機(jī)的實(shí)現(xiàn)過(guò)程 圖3-4為PWM脈沖驅(qū)動(dòng)電機(jī)的實(shí)現(xiàn)電路。AT89S51單片機(jī)的P3.6腳輸出占空比為60100%的調(diào)寬脈沖,經(jīng)光電隔離后驅(qū)動(dòng)功率場(chǎng)效應(yīng)管,這樣,電機(jī)上獲得的調(diào)寬脈沖波的占空比也為60100%,幅度接近12V。由于電機(jī)具有機(jī)械慣性的特點(diǎn),因此運(yùn)行時(shí)不會(huì)產(chǎn)生抖動(dòng)。圖3-5為輸出60%脈沖時(shí)電機(jī)得到的直流電壓平均值。

11、圖3-6為輸出100%脈沖時(shí)電機(jī)得到的直流電壓平均值。圖3-5輸出60%脈沖時(shí)電機(jī)得到的直流電壓平均值圖3-4為PWM脈沖驅(qū)動(dòng)電機(jī)的實(shí)現(xiàn)電路圖3-6輸出100%脈沖時(shí)電機(jī)得到的直流電壓平均值3.4 調(diào)寬脈沖輸出子程序模塊 為控制大批量生產(chǎn)的成本,使用了低價(jià)位的AT89S51單片機(jī),但AT89S51內(nèi)部沒(méi)有集成PWM部件。這里我們利用了內(nèi)部定時(shí)器,與軟件配合產(chǎn)生出調(diào)寬脈沖波。void pwm_out(void)if(out_flag) /如果輸出標(biāo)志有效if(pwm_val<=(push_val+30) out=ON;/ 輸出有效else out=OFF; /輸出關(guān)閉if(pwm_val&

12、gt;=50) pwm_val=0;else out=OFF;第四章 主要器件介紹4.1 AT89S51單片機(jī)的功能特點(diǎn)是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。    A

13、T89S51具有如下特點(diǎn):40個(gè)引腳,4k Bytes Flash片內(nèi)程序存儲(chǔ)器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的

14、需求。  主要功能特性: · 兼容MCS-51指令系統(tǒng)· 32個(gè)雙向I/O口· 2個(gè)16位可編程定時(shí)/計(jì)數(shù)器· 全雙工UART串行中斷口線· 2個(gè)外部中斷源· 中斷喚醒省電模式· 看門狗(WDT)電路· 靈活的ISP字節(jié)和分頁(yè)編程· 4k可反復(fù)擦寫(>1000次)ISP Flash ROM· 4.5-5.5V工作電壓· 時(shí)鐘頻率0-33MHz· 雙數(shù)據(jù)寄存器指針· 低功耗空閑和省電模式· 3級(jí)加密位· 軟件設(shè)置空閑和省電

15、功能· 128x8bit內(nèi)部RAM2.  AT89S51引腳外形圖4-1AT89S51引腳排列4.2 光電耦合器構(gòu)造及其工作原理光電耦合器是把發(fā)光器件與光敏接收器件集成在一起(或用一根光導(dǎo)纖維把兩部分連接起來(lái))以實(shí)現(xiàn)信號(hào)傳輸作用的器件.通常發(fā)光器件采用發(fā)光管(LED),光敏接收器件則采用光敏管等.當(dāng)信號(hào)加在光電耦合器的輸入端時(shí),發(fā)光管發(fā)光,光敏管受光線照射而導(dǎo)通,輸出相應(yīng)的信號(hào),實(shí)現(xiàn)了光電的傳輸和轉(zhuǎn)換.其主要特點(diǎn)是以光為媒介實(shí)現(xiàn)信號(hào)的傳輸,使輸入與輸出間在電氣上完全隔離.如圖4-2所示。 如圖4-2光電耦合器第五章 硬件電路設(shè)計(jì) “電噴汽車噴油嘴清洗機(jī)”電路原理見

16、圖5-1。共設(shè)有5個(gè)輸入按鍵、一個(gè)油面?zhèn)鞲衅骱鸵粋€(gè)油溫傳感器。兩位數(shù)碼管顯示器用于顯示輸入時(shí)間、指示剩余工作時(shí)間及報(bào)警狀態(tài)顯示。蜂鳴器作報(bào)警提醒, 繼電器用于控制汽油泵電機(jī)的通斷。圖5-1  電噴汽車噴油嘴清洗機(jī)電路圖 按啟動(dòng)/停止鍵,兩位數(shù)碼管顯示器顯示“00” ,“電噴汽車噴油嘴清洗機(jī)”處于待機(jī)狀態(tài)。此時(shí)按時(shí)間+、時(shí)間-鍵就能選擇工作時(shí)間,時(shí)間的選擇范圍為0060分鐘。選好時(shí)間,再延時(shí)5秒P3.6輸出低電平,繼電器吸合工作,汽油泵運(yùn)行在額定電壓12V狀態(tài),數(shù)碼管同時(shí)顯示剩余的工作時(shí)間。按壓力+、壓力-鍵即使P3.6輸出的脈沖占空比發(fā)生變化,即改變汽油泵轉(zhuǎn)速來(lái)調(diào)整清洗壓力

17、。當(dāng)剩余工作時(shí)間小于4分鐘時(shí),蜂鳴器開始鳴叫。定時(shí)結(jié)束時(shí),繼電器釋放,汽油泵停止工作,蜂鳴器停止鳴叫,數(shù)碼管顯示“00”。若5分鐘內(nèi)無(wú)任何操作則數(shù)碼管熄滅,自動(dòng)關(guān)機(jī)。在作業(yè)過(guò)程中,若油面過(guò)低時(shí),油面?zhèn)鞲衅鏖_關(guān)(Soil)閉合(實(shí)驗(yàn)時(shí)由開關(guān)代替),此信號(hào)經(jīng)P1.5送入CPU,經(jīng)運(yùn)算處理,P3.7輸出高電平,汽油泵自動(dòng)斷電,數(shù)碼管g段顯示“-” 并閃爍;若油溫過(guò)高時(shí),溫度繼電器開關(guān)(Stem)閉合(實(shí)驗(yàn)時(shí)由開關(guān)代替),經(jīng)P1.6送入CPU,P3.7輸出高電平,汽油泵也自動(dòng)斷電,數(shù)碼管g段顯示“-”但不閃爍。PCB板如5-2所示 圖5-2  電噴汽車噴油嘴清洗機(jī)PCB板圖第六章

18、程序設(shè)計(jì)6.1 主程序設(shè)計(jì) 主程序的工作過(guò)程為:先進(jìn)行初始化工作,然后判斷是否啟動(dòng)?若啟動(dòng)則讀取鍵值信號(hào)或傳感器輸入信號(hào),進(jìn)行對(duì)應(yīng)處理。否則進(jìn)入工作狀態(tài)。流程圖如6-1初始化啟動(dòng)否有按鍵輸入否根據(jù)鍵值散轉(zhuǎn)油溫高時(shí)間+時(shí)間-壓力+壓力-油面低處理關(guān)機(jī)處理正常工作延時(shí)5S已延時(shí)5S否圖6-1 主程序狀態(tài)流程6.2  變量定義及初始化模塊程序設(shè)計(jì)時(shí)需設(shè)立一系列的變量、標(biāo)志,具體如下:uint deda;    /1ms計(jì)時(shí)單元uchar sec; /計(jì)時(shí)秒char set_min;/設(shè)定分uchar min_5m;/5分鐘計(jì)數(shù)器uchar val;/

19、中間變量uchar pwm_val; /調(diào)寬脈沖變量值char push_val;/壓力變化值sfr WDT=0xa6;/定義看門狗定時(shí)器sbit pushdec_key=P14; /壓力-鍵sbit pushinc_key=P13; /壓力+鍵sbit timedec_key=P12; /時(shí)間-鍵sbit timeinc_key=P11; /時(shí)間+鍵sbit buzz=P35; /驅(qū)動(dòng)蜂鳴器端sbit out=P36;/調(diào)寬脈沖輸出端sbit relay=P37; /驅(qū)動(dòng)繼電器端uchar dis_sel;/顯示內(nèi)容散轉(zhuǎn)標(biāo)志bit over_5m;/5分鐘溢出標(biāo)志bit flag_5m;/5

20、分鐘標(biāo)志bit flag_5s;/5秒鐘標(biāo)志bit start;/啟動(dòng)標(biāo)志bit dis_flag; /顯示標(biāo)志bit key_flag;/按下鍵標(biāo)志bit buzz_sound;/蜂鳴器聲響標(biāo)志bit y;/中間變量bit out_flag;/pwm輸出標(biāo)志/*初始化*/void init()/push_val=20;IT0=1;IE=0x8b;/set_min=0;buzz=OFF;/relay=OFF;key_flag=0;/out=OFF;out_flag=0;reset() /*定時(shí)器T0初始化*/void init_timer0()TMOD=0x11;TH0=-(1150/256)

21、; /1ms初值TL0=-(1150%256);TR0=0;ET0=1;EA=1;/*定時(shí)器T1初始化*/*定時(shí)器T1初始化*/void init_timer1()TH1=-(5000/256); /5ms初值TL1=-(5000%256);TR1=1;ET1=1;EA=1;6.3 完整代碼見附頁(yè)第七章  調(diào)試應(yīng)用7.1  安全注意事項(xiàng)7.11 實(shí)際應(yīng)用時(shí)安全注意事項(xiàng)   本試驗(yàn)是在試驗(yàn)室完成,暫時(shí)沒(méi)有應(yīng)用到實(shí)際.  7.12 實(shí)驗(yàn)室調(diào)試注意事項(xiàng)1.電源檢測(cè).12V電壓經(jīng)穩(wěn)壓變成5V,插芯片前必先檢測(cè)電源

22、.2.單片機(jī)先不接,先檢測(cè)光電耦合使用是否正常.3.單片機(jī),光電耦合等芯片不可接反,進(jìn)入整機(jī)調(diào)試.7.2  功能調(diào)試通電前應(yīng)檢查焊接質(zhì)量,確認(rèn)無(wú)短路、假焊等故障并將程序?qū)懭雴纹瑱C(jī)AT89S51中。 設(shè)備的功能統(tǒng)調(diào): a. 按啟動(dòng)/停止鍵,兩位數(shù)碼管顯示器顯示“00”。b. 按時(shí)間+、時(shí)間-鍵選擇工作時(shí)間,每次累加(減)1分鐘,時(shí)間的選擇范圍為0060分鐘。c. 選好時(shí)間,延時(shí)5秒后繼電器吸合工作,數(shù)碼管同時(shí)顯示剩余的工作時(shí)間。d. 按壓力+、壓力-鍵通過(guò)改變直流電機(jī)上的電壓(即改變汽油泵轉(zhuǎn)速)調(diào)整清洗壓力,數(shù)碼管有顯示.e. 當(dāng)剩余工作時(shí)間小于4分鐘時(shí),蜂鳴器開始鳴叫。直到

23、定時(shí)結(jié)束,繼電器釋放,蜂鳴器停止鳴叫,數(shù)碼管顯示“00”。f. 5分鐘內(nèi)無(wú)任何操作則自動(dòng)斷電,數(shù)碼管無(wú)顯示。g.保護(hù)措施:油面過(guò)低保護(hù): 為防止無(wú)油損壞汽油泵,油面過(guò)低時(shí),傳感器開關(guān)閉合,數(shù)碼管g段顯示“-” 并閃爍。油溫過(guò)高保護(hù): 為防止油溫過(guò)高起火,溫度過(guò)高時(shí),溫度繼電器開關(guān)閉合,數(shù)碼管g段顯示“-”但不閃爍。完整代碼#include <AT89X51.H>/11.0592MHz,看門狗工作#define uchar unsigned char#define uint unsigned int#define ON 0#define OFF 1;#define reset() W

24、DT=0x1e;WDT=0xe1;/看門狗復(fù)位宏定義uchar code DATA_7SEG10=0x3f,0x06,0x5b,0x4f,0x66,                    0x6d,0x7d,0x07,0x7f,0x6f;/*09的數(shù)碼管段碼*/uint deda;/=0;    /1ms計(jì)時(shí)單元uchar sec;/=0; /計(jì)時(shí)秒char set_

25、min;/=0; /設(shè)定分uchar min_5m;/=0; /5分鐘計(jì)數(shù)器uchar val;/=0; /中間變量uchar pwm_val; /調(diào)寬脈沖變量值char push_val;/=20; /壓力變化值sfr WDT=0xa6;/定義看門狗定時(shí)器sbit pushdec_key=P14; /壓力-鍵sbit pushinc_key=P13; /壓力+鍵sbit timedec_key=P12; /時(shí)間-鍵sbit timeinc_key=P11; /時(shí)間+鍵sbit buzz=P35; /驅(qū)動(dòng)蜂鳴器端sbit out=P36;/調(diào)寬脈沖輸出端sbit relay=P37; /驅(qū)動(dòng)繼

26、電器端uchar dis_sel;/=0; /顯示內(nèi)容散轉(zhuǎn)標(biāo)志bit over_5m;/=0; /5分鐘溢出標(biāo)志bit flag_5m;/=0; /5分鐘標(biāo)志bit flag_5s;/=0; /5秒鐘標(biāo)志bit start;/=0; /啟動(dòng)標(biāo)志bit dis_flag; /顯示標(biāo)志bit key_flag;/=0; /按下鍵標(biāo)志bit buzz_sound;/=1; /蜂鳴器聲響標(biāo)志bit y;/=0; /中間變量bit out_flag; /pwm輸出標(biāo)志/*函數(shù)聲明列表*/void time_conv(void);/ 時(shí)間計(jì)算子函數(shù)void pwm_out(void);/ 調(diào)寬脈沖輸出子函

27、數(shù)void push_dis(void); /顯示壓力子函數(shù)void oil_dis(void); /顯示缺油子函數(shù)void normal_dis(void) ;/顯示正常工作子函數(shù)void other_dis(void); /顯示(缺油、超溫)子函數(shù)void temp_dis(void); /顯示超溫子函數(shù)void oil_low(void); /缺油處理子函數(shù)void temp_over(void); /超溫處理子函數(shù)void other(void); /(缺油、超溫)處理子函數(shù)void buzz_control(void); /控制蜂鳴器子函數(shù)void delay(uint k); /延

28、時(shí)子函數(shù)void init(void); /初始化子函數(shù)void init_timer0(void);/定時(shí)器0初始化子函數(shù)void init_timer1(void);/定時(shí)器1初始化子函數(shù)void key(void) ; /按鍵/感應(yīng)開關(guān)處理子函數(shù)void close(void); /關(guān)機(jī)子函數(shù)void time_inc(void); /時(shí)間+子函數(shù)void time_dec(void); /時(shí)間-子函數(shù)void push_inc(void); /壓力+子函數(shù)void push_dec(void); /壓力-子函數(shù)void normal_work(void); /正常工作子函數(shù)/*/*初始

29、化*/void init()/push_val=20;IT0=1;IE=0x8b;reset() /*定時(shí)器T0初始化*/void init_timer0()TMOD=0x11;TH0=-(1150/256);TL0=-(1150%256);TR0=0;ET0=1;EA=1;/*定時(shí)器T1初始化*/*定時(shí)器T1初始化*/void init_timer1()TH1=-(5000/256);TL1=-(5000%256);TR1=1;ET1=1;EA=1;/*延時(shí)子函數(shù)*/void delay(uint k)uint i,j;for(i=0;i<k;i+)for(j=0;j<60;j+

30、) reset()/*外中斷0服務(wù)子函數(shù)*/void int0_serve(void) interrupt 0 using 1delay(20);if(P3_2=0)start=!start;while(P3_2=0)delay(20);if(P3_2=1)break;/*/*1mS定時(shí)中斷服務(wù)子函數(shù)*/void timer0(void) interrupt 1  using 2TH0=-(1150/256);TL0=-(1150%256);deda+;pwm_val+;pwm_out();time_conv();/*調(diào)寬脈沖輸出子函數(shù)*/void pwm_out(void

31、)if(out_flag)if(pwm_val<=(push_val+30) out=ON;else out=OFF;if(pwm_val>=50) pwm_val=0;else out=OFF;/*時(shí)間計(jì)算子函數(shù)*/void time_conv(void)if(deda>=1000)sec+;deda=0;if(deda=500)buzz_sound=!buzz_sound;if(sec>=60)set_min-;sec=0;if(flag_5m)min_5m+;if(min_5m>=5)over_5m=1;min_5m=0;if(set_min<=0)s

32、et_min=0;/*/* T1 5ms定時(shí)中斷服務(wù)子函數(shù)(顯示用)*/void timer1(void) interrupt 3  using 3TH1=-(5000/256);TL1=-(5000%256);if(start) switch (dis_sel)case 0:normal_dis();break;case 1:oil_dis();break; case 2:temp_dis();break; case 3:other_dis();break;case 4:push_dis();break; default:break;else P2=0x00;P3=0xf

33、f;reset()/*壓力調(diào)整顯示子函數(shù)*/void push_dis(void)if(dis_flag) P2=DATA_7SEG(push_val)/10;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;else P2=DATA_7SEG(push_val)%10;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;/*正常工作顯示子函數(shù)*/void normal_dis(void) if(dis_flag) P2=DATA_7SEGset_min/10;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;e

34、lse P2=DATA_7SEGset_min%10;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;/*缺油顯示子函數(shù)*/void oil_dis(void) if(buzz_sound) if(dis_flag)P2=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;else P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;else P3_0=1;P3_1=1;P3_3=1;P3_4=1;/*超溫顯示子函數(shù)*/void temp_dis(void) if(dis_flag)P2

35、=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;else P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;/*超溫、缺油同時(shí)發(fā)生顯示子函數(shù)*/void other_dis(void) if(deda<250)|(deda>500)&&(deda<750) if(dis_flag)P2=0x40;P3_0=0;P3_1=0;P3_3=1;P3_4=1;dis_flag=0;else P2=0x40;P3_0=1;P3_1=1;P3_3=0;P3_4=0;dis_flag=1;

36、else P3_0=1;P3_1=1;P3_3=1;P3_4=1;/*按鍵感應(yīng)開關(guān)處理子函數(shù)*/void key(void) delay(10);while(P1!=0xff)switch (P1)case 0xfd:time_inc(); break;case 0xfb:time_dec(); break;case 0xf7:push_inc(); break;case 0xef:push_dec(); break;case 0xdf:oil_low(); break;case 0xbf:temp_over(); break;case 0x9f:other(); break;default:

37、break;delay(500);if(set_min>=4)key_flag=1;TR0=1;/*主函數(shù)*/void main(void) init();init_timer0();      /定時(shí)器T0初始化init_timer1(); /定時(shí)器T1初始化while(1)             /無(wú)限循環(huán) /*-*/if(start)if(P1!=0xff)key();else normal_work();else close();  /*正常工作子函數(shù)*/void normal_work() dis_sel=0;if(key_flag)&&(!flag_5s)relay=OFF;buzz=OFF;delay(6000);flag_5s=1;if(flag_5s) y=0;buzz_control();dis_sel=0;if(set_min)out_flag=0;buzz=OFF;flag_5m=1;flag_5

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論