柴油發(fā)電機(jī)測試系統(tǒng)的研究與實(shí)現(xiàn)_第1頁
柴油發(fā)電機(jī)測試系統(tǒng)的研究與實(shí)現(xiàn)_第2頁
柴油發(fā)電機(jī)測試系統(tǒng)的研究與實(shí)現(xiàn)_第3頁
柴油發(fā)電機(jī)測試系統(tǒng)的研究與實(shí)現(xiàn)_第4頁
柴油發(fā)電機(jī)測試系統(tǒng)的研究與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第一章 緒論1.1 課題研究的背景意義柴油發(fā)電機(jī)廣泛應(yīng)用于野外作業(yè)、抗洪救災(zāi)及軍事等領(lǐng)域,它是一種小型發(fā)電設(shè)備,系指以柴油等為燃料,以柴油機(jī)帶動發(fā)電機(jī)的轉(zhuǎn)子做切割磁力線運(yùn)動而產(chǎn)生發(fā)電。整套機(jī)組一般由柴油機(jī)、發(fā)電機(jī)、控制箱、燃油箱、起動和控制用蓄電瓶、保護(hù)裝置、應(yīng)急柜等部件組成。整體可以固定在基礎(chǔ)上,定位使用,亦可裝在拖車上,供移動使用。 盡管柴油發(fā)電機(jī)組的功率較低,但由于其體積小、靈活、輕便、配套齊全,便于操作和維護(hù),所以廣泛應(yīng)用于礦山、鐵路、野外工地、道路交通維護(hù)、以及工廠、企業(yè)、醫(yī)院等部門,作為備用電源或臨時(shí)電源。柴油機(jī)的轉(zhuǎn)速由油控系統(tǒng)控制,當(dāng)油控系統(tǒng)增加噴油量時(shí),柴油機(jī)轉(zhuǎn)速變快;反之,當(dāng)

2、油控系統(tǒng)減少噴油量時(shí),柴油機(jī)轉(zhuǎn)速變慢,進(jìn)而決定了輸出電壓的高低。為了使柴油機(jī)輸出的電壓穩(wěn)定,就要給發(fā)電機(jī)組配置一套測控系統(tǒng)。該測控系統(tǒng)的功能就包括檢測柴油機(jī)的輸出電壓,通過一定的算法處理得到噴油控制量,并把噴油控制量傳送到油控系統(tǒng)以控制柴油機(jī)的轉(zhuǎn)速,進(jìn)而控制輸出電壓。用發(fā)電機(jī)測試系統(tǒng)進(jìn)行測試,是一種全面的性能試驗(yàn)、能夠較確切地得到被測電機(jī)的有關(guān)性能參數(shù)的試驗(yàn)。其目的是為了確定發(fā)電機(jī)的輸出性能是否能全面達(dá)到技術(shù)要求,各種型式的發(fā)電機(jī)均需要通過測試、試驗(yàn)后才能投產(chǎn)或繼續(xù)生產(chǎn)。國際標(biāo)準(zhǔn)和英、蘇、德等國家都把型式試驗(yàn)當(dāng)作一種性能試驗(yàn),用來檢查發(fā)電機(jī)的特性和參數(shù)。這種試驗(yàn)一般只對各種型式電機(jī)中的第一臺或

3、首批的幾臺樣機(jī)進(jìn)行,所以稱為型式試驗(yàn)。根據(jù)需要,試驗(yàn)可包括標(biāo)準(zhǔn)中規(guī)定的所有項(xiàng)目,也可以是其中的一部分項(xiàng)目。以前的電機(jī)型式試驗(yàn)系統(tǒng)主要由模擬設(shè)備和機(jī)械式測量儀表構(gòu)成,試驗(yàn)人員工作繁重,數(shù)據(jù)統(tǒng)計(jì)工作復(fù)雜,且由于人為因素,數(shù)據(jù)測量不準(zhǔn)確?;谏鲜鲈?,在中國市場上目前對具有自主知識產(chǎn)權(quán)的柴油發(fā)電機(jī)智能檢測系統(tǒng)的需求十分迫切,該設(shè)備對于實(shí)時(shí)檢測柴油發(fā)電機(jī)的輸出參數(shù),提高產(chǎn)品競爭力,提高市場消費(fèi)需求具有巨大的實(shí)際作用和意義。本課題的研究對提高柴油發(fā)電機(jī)測試系統(tǒng)生產(chǎn)品質(zhì)、效率具有極高的實(shí)用價(jià)值。另一方面,隨著計(jì)算機(jī)技術(shù)和嵌入式技術(shù)發(fā)展,出現(xiàn)了計(jì)算機(jī)檢測技術(shù)在現(xiàn)代工業(yè)制造業(yè)對機(jī)電輸出參數(shù)測量的高精度、高效率

4、要求的驅(qū)動下,自動測試系統(tǒng)以經(jīng)濟(jì)實(shí)效、快速、非接觸、精確以及自動化程度高等特點(diǎn)贏得了廣泛的關(guān)注,本課題利用單片技術(shù)對柴油發(fā)電機(jī)測試系統(tǒng)進(jìn)行了深入地探討與研究具有重大意義,同時(shí)可以推廣到其它相關(guān)領(lǐng)域。1.2國內(nèi)外發(fā)展概況及發(fā)展趨勢回顧國內(nèi)柴油發(fā)電機(jī)測控系統(tǒng)的發(fā)展,大概可以劃分為四個(gè)階段:1、以時(shí)間繼電器和中間繼電器為主構(gòu)成的自動化控制系統(tǒng),這種模式當(dāng)時(shí)在同行業(yè)中非常普遍,而且也以相當(dāng)?shù)呐客断蚴袌?,突出的弱點(diǎn)是功能簡單、結(jié)構(gòu)復(fù)雜、維護(hù)調(diào)試?yán)щy、可靠性差,最終沒有得到用戶的認(rèn)可。2、用分離電子元器件組成延時(shí)電路和邏輯判斷電路來實(shí)現(xiàn)的自動化系統(tǒng),這種模式相對于第一種模式,有了很大的進(jìn)步,如果精心設(shè)計(jì)

5、,提高工藝水平,應(yīng)該能取得很好的效果。但是,在那個(gè)企業(yè)大而全的年代,每個(gè)企業(yè)各自為戰(zhàn),造成批量小、工藝落后、質(zhì)量無法保證,所以這個(gè)階段延續(xù)時(shí)間也較短。3、隨著改革開放,國外各種新鮮器件紛紛出現(xiàn)在國人面前,PLC(可編程序控制器)以性能穩(wěn)定、方便靈活的優(yōu)勢迅速成為機(jī)組自動化控制領(lǐng)域的主力,時(shí)至今日仍有企業(yè)在應(yīng)用。這種模式的優(yōu)點(diǎn)相對于前兩種較為明顯,但也逐步顯露出一些缺陷,如:外圍電路復(fù)雜,需配置轉(zhuǎn)速、電壓等判斷電路及供電電源、端口擴(kuò)展繼電器等器件;造價(jià)相對較高(帶AD轉(zhuǎn)換的PLC動輒上萬元)。PLC是很可靠的,但它畢竟不是專門為我們這個(gè)行業(yè)而設(shè)計(jì)的,所以以PLC為核心構(gòu)成的柴油發(fā)電機(jī)組自動化控制

6、系統(tǒng)注定是一個(gè)匆匆的過客,隨著技術(shù)的飛速發(fā)展很快失去了優(yōu)勢。4、控制系統(tǒng)功能模塊化思路的出現(xiàn),徹底解決了困擾發(fā)電機(jī)組控制領(lǐng)域的難題,這即是以專用控制器為核心構(gòu)成的自動化系統(tǒng),這些專用控制器為發(fā)電機(jī)組量身打造,集多種功能于一身,甩掉了復(fù)雜的外圍電路,使自動化控制系統(tǒng)一下子變得簡單了。這些專用控制器大多采用了先進(jìn)的微處理器及控制技術(shù),可靠性和環(huán)境適應(yīng)能力較PLC大大提高,同時(shí),很多參數(shù)可以根據(jù)實(shí)際情況而設(shè)定,使用起來非常靈活。目前,我們已經(jīng)處在第四個(gè)階段十余年了,這種模式的生命力,隨著技術(shù)的發(fā)展顯示了越來越強(qiáng)大的生命力,可以說這種控制系統(tǒng)功能模塊化就是柴油發(fā)電機(jī)組自動化測控的現(xiàn)狀。1.3本課題的研

7、究意義目前,隨著我國工業(yè)的高速發(fā)展,大量的發(fā)電機(jī)在冶金、能源、化工、制造業(yè)、交通等行業(yè)得到了極為廣泛的應(yīng)用。但相應(yīng)地發(fā)電機(jī)測試的工作量也不斷增加,尤其對于一些80年代建設(shè)的大型國有企業(yè),隨著設(shè)備的才華,各類型的發(fā)電機(jī)的檢修測試需要更是與日俱增。結(jié)合國家十五計(jì)劃中提出其的“以信息化帶動工業(yè)化”的戰(zhàn)略決策,開發(fā)一種采用先進(jìn)的信息技術(shù)的發(fā)電機(jī)自動測試系統(tǒng)勢在必行,設(shè)計(jì)可靠,安全,便捷柴油發(fā)電機(jī)測試系統(tǒng)具有極大地現(xiàn)實(shí)必要性。為此,本論文進(jìn)行了柴油發(fā)電機(jī)測試系統(tǒng)的研究與實(shí)現(xiàn)。本論文的柴油發(fā)電機(jī)測試系統(tǒng)有很多現(xiàn)實(shí)意義:1、 系統(tǒng)硬件組成靈活方便,易于功能擴(kuò)展;2、 實(shí)現(xiàn)程序控制,監(jiān)視測試過程;3、 自動存

8、儲、整理并分析測試結(jié)果,即將測得的數(shù)據(jù)進(jìn)行分析處理,最后以數(shù)字顯示;4、 有一定的經(jīng)濟(jì)效益。1.4 論文結(jié)構(gòu) 論文主要包括以下七個(gè)部分:第一章,概括講述了柴油發(fā)電機(jī)測試系統(tǒng)研究的背景意義,發(fā)展?fàn)顩r,課題研究的目的、意義及背景;第二章,介紹了柴油發(fā)電機(jī)的硬件設(shè)計(jì)、詳細(xì)的說明了柴油發(fā)電機(jī)測試系統(tǒng)的系統(tǒng)組成結(jié)構(gòu)及分析;第三章,;第四章,敘述了本系統(tǒng)軟件整體結(jié)構(gòu)的設(shè)計(jì),詳細(xì)說明了各功能模塊的設(shè)計(jì);第五章,進(jìn)行個(gè)人總結(jié)。第二章 系統(tǒng)組成結(jié)構(gòu)與分析2.1 系統(tǒng)組成框圖本系統(tǒng)采用STC12C54系列單片機(jī)為主的微控制處理器作為柴油發(fā)電機(jī)測試系統(tǒng)的控制核模塊,能夠?qū)敵鲭妷海娏黝l率進(jìn)行測量;能通過3位LED

9、交替顯示測量的電壓、電流、頻率,且能通過鍵盤鎖定以上3個(gè)被測量單獨(dú)顯示;具有報(bào)警功能,通過不同標(biāo)識顯示報(bào)警內(nèi)容;能通過鍵盤設(shè)置各種參數(shù),包括門限電壓、電流、頻率、功率。在保證測試系統(tǒng)可靠運(yùn)行的前提下,電路的設(shè)計(jì)盡可能的簡潔緊湊,減輕系統(tǒng)負(fù)載,同時(shí)堅(jiān)持充分發(fā)揮創(chuàng)新原則,以簡潔但功能完美為出發(fā)點(diǎn),并以穩(wěn)定性為首要前提,實(shí)現(xiàn)測試的快速運(yùn)行。系統(tǒng)總設(shè)計(jì)方案如圖所示:單片機(jī)報(bào)警模塊鍵盤模塊信號處理模塊驅(qū)動、顯示模塊頻率測量模塊信號采樣模塊圖2-1 系統(tǒng)框圖2.2 微處理器的選擇根據(jù)技術(shù)指標(biāo)要求,系統(tǒng)采用內(nèi)帶A/D,D/A接口的STC12C5410AD單片機(jī)作為主控CPU。和傳統(tǒng)的8051單片機(jī)相比,ST

10、C12C5410AD具有如下優(yōu)點(diǎn):(1)內(nèi)帶一個(gè)12位的A/D轉(zhuǎn)換器,且可以通過內(nèi)部模擬開頭外接8個(gè)A/D轉(zhuǎn)換輸入端。(2)指令完全兼容傳統(tǒng)8051,但速度快10-12倍,針對電機(jī)控制,強(qiáng)干擾場合。(3)內(nèi)部集成專用復(fù)位電路,4路PWM,有6個(gè)16位的計(jì)數(shù)器。2.2 輸入模擬信號處理本系統(tǒng)要求采樣并計(jì)算發(fā)電機(jī)組輸出電壓、電流的大小。根據(jù)指標(biāo)要求,擬選用的傳感器分別為精度為0。1%的電壓互感器、精度為0。1%的電流互感器,采用CPU內(nèi)部的12位A/D作為模數(shù)轉(zhuǎn)換器。根據(jù)輸入信號的特點(diǎn),系統(tǒng)采用交流采樣的方式測量電壓、電流值。交流采樣的原理是三個(gè)周期內(nèi)對輸入信號進(jìn)行等間隔的N個(gè)點(diǎn)采樣,并同這些采樣

11、值計(jì)算信號的有效值。設(shè)這N個(gè)點(diǎn)的采樣值分別是X1,X2,Xi,,Xn,則該周期信號的有效值Y為:為測量信號的周期,系統(tǒng)需提供一個(gè)測頻電路,把周期性的交流信號轉(zhuǎn)變?yōu)榉讲ㄐ盘枴?.3 人機(jī)接口設(shè)計(jì)系統(tǒng)的鍵盤與顯示面板如圖2-2所示。圖中LED1LED3代表電壓、電流、頻率顯示標(biāo)識。當(dāng)LED1亮?xí)r,數(shù)碼管顯示測量的電壓值;當(dāng)LED2亮?xí)r,數(shù)碼管顯示測量的電流值;當(dāng)LED3亮?xí)r,數(shù)碼管顯示測量的頻率值。一般情況下,電壓、電流、頻率交替顯示。當(dāng)需要單獨(dú)顯示某一測量值時(shí),可通過按鍵功能進(jìn)行切換,同時(shí)LED1對應(yīng)電壓獨(dú)立顯示,LED2對應(yīng)電流獨(dú)立顯示,LED3對應(yīng)頻率獨(dú)立顯示。 圖2-2 人機(jī)接口面板2.4

12、 硬件系統(tǒng)的結(jié)構(gòu)綜上所述,基于單片機(jī)的測控系統(tǒng)的系統(tǒng)結(jié)構(gòu)如圖2.3所示:單片機(jī)測頻電路X3 LED電壓互感器74LS164驅(qū)動3連體數(shù)碼管理體制光電耦合電路調(diào)理電路電流互感器I/V變換X3 按鍵關(guān)油機(jī)電路圖2-3 硬件系統(tǒng)結(jié)構(gòu)圖2.5 數(shù)據(jù)和狀態(tài)顯示根據(jù)指標(biāo)要求,系統(tǒng)要求除了顯示電壓、電流、頻率測量值外,還要顯示各種報(bào)警值信息。表21是各種報(bào)警信息顯示內(nèi)容。表2-1 報(bào)警信息顯示碼含義顯示信息 含義顯示信息含義UH輸出電壓過高IH輸出電流過高UL輸出電壓過低FE頻率超限PH輸出功率過高2.6 鍵盤功能劃分本系統(tǒng)鍵盤要實(shí)現(xiàn)的功能有報(bào)警門限值設(shè)置。系統(tǒng)鍵盤個(gè)數(shù)共有KEY1、KEY2、KEY3共3個(gè)

13、,每個(gè)鍵盤都具有多種功能。圖2-4按“倒數(shù)”結(jié)構(gòu)羅列了系統(tǒng)鍵盤功能。由于鍵盤個(gè)數(shù)較少,因此采用二級下拉式菜單方式編寫鍵盤程序。系統(tǒng)按功能不同把鍵盤劃7頁(Page0Page6)。每頁允許按鍵個(gè)數(shù)和各鍵功能各不相同。如第1頁可按2個(gè)鍵,而第1頁可按3個(gè)鍵。第0頁為第1級,其它為第2級。第2級的第1頁利用4個(gè)按鍵完成過壓門限值的設(shè)置。KEY1的功能是在設(shè)置數(shù)值時(shí),實(shí)現(xiàn)數(shù)字按09順序徨切換;KEY2的功能是實(shí)現(xiàn)設(shè)置數(shù)值位數(shù)循環(huán)向前移動; KEY3的功能是設(shè)置確認(rèn),并使菜單回到第1級(Page=0)。表2-2列出了各頁功能。圖2-4 系統(tǒng)鍵盤結(jié)構(gòu)圖表2-2 各頁及按鍵功能頁號功能說明頁號功能說明0主界

14、面KEY1頁號加1;KEY3頁號確認(rèn)按下該鍵進(jìn)入相應(yīng)頁面菜單4超頻門限值設(shè)置KEY1KEY3功能同上1過壓門限值設(shè)置KEY1數(shù)字加1;KEY2數(shù)字位前移;KEY3按下后保存過壓門限值并返回初始頁面5功率超限值設(shè)置KEY1KEY3功能同上2欠壓門限值設(shè)置KEY1KEY3功能同上6主顯示頁面KEY1按下只顯示電壓、再按下只顯示電流、再按只顯示頻率,以此循環(huán);KEY3返回初始界面3過流門限值設(shè)置KEY1KEY3功能同上2.7 軟件功能劃分 系統(tǒng)軟件主要功能有鍵盤處理、數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)或狀態(tài)顯示等。根據(jù)模塊化編程思想,軟件系統(tǒng)可以分為系統(tǒng)初始化模塊、鍵盤處理模塊、顯示處理模塊、數(shù)據(jù)采集模塊、數(shù)

15、據(jù)處理模塊、檢測報(bào)警模塊。系統(tǒng)初始化模塊主要完成顯示緩沖、串行行接口、特殊功能寄存器、數(shù)據(jù)緩沖區(qū)及變量的初始化、使系統(tǒng)復(fù)位后進(jìn)入安全、確定的狀態(tài)。鍵盤處理模塊主要完成鍵盤掃描、各按鍵功能的處理等功能。顯示處理模塊主要完成顯示器硬件驅(qū)動、按鍵顯示、報(bào)警顯示和采樣電壓、電流、頻率的顯示等功能。數(shù)據(jù)采集模塊主要完成電壓、電流采樣和頻率的測量等功能。數(shù)據(jù)處理模塊主要是實(shí)現(xiàn)電壓、電流有效值的計(jì)算,通過PID控制算法計(jì)算出控制量并通過D/A輸出,實(shí)現(xiàn)輸出電壓的穩(wěn)定。檢測報(bào)警模塊主要是檢測輸出電壓、電流、頻率等是否超限,當(dāng)出現(xiàn)超限時(shí),通過數(shù)碼管顯示報(bào)警信息,同時(shí)關(guān)閉油機(jī)。第三章 系統(tǒng)的硬件設(shè)計(jì)硬件是整個(gè)系統(tǒng)

16、正常工作的基礎(chǔ)。通過上文的介紹,由系統(tǒng)的組成框圖可知,本系統(tǒng)硬件電路主要由單片機(jī)最小系統(tǒng)、人機(jī)接口電路、電源電路、模擬輸入模塊電路組成以及關(guān)油門電路,其各部分詳細(xì)設(shè)計(jì)如下。3.1 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng),或者稱為最小應(yīng)用系統(tǒng),是指用最少的元件組成的單片機(jī)可以工作的系統(tǒng).對STC12系列單片機(jī)來說,最小系統(tǒng)一般應(yīng)該包括:單片機(jī)、晶振電路、復(fù)位電路、程序下載電路.STC12C5410AD是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡單可靠。用STC12C5410AD單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些

17、小型的控制單元。其應(yīng)用特點(diǎn):(1) 有可供用戶使用的大量I/O口線。(2) 內(nèi)部存儲器容量有限。(3) 應(yīng)用系統(tǒng)開發(fā)具有特殊性。單片機(jī)最小系統(tǒng)的結(jié)構(gòu):單片機(jī)要正常運(yùn)行,必須具備一定的硬件條件,其中最主要的就是三個(gè)基本條件:電源正常;時(shí)鐘正常;復(fù)位正常。具體的最小系統(tǒng)原理圖如圖3-1所示。圖3-1 單片機(jī)最小系統(tǒng)3.2 人機(jī)接口電路鍵盤和顯示接口是測試系統(tǒng)中的重要組成部分,一方面通過鍵盤輸入?yún)?shù)值,而顯示器則可以監(jiān)視參數(shù)輸入狀態(tài),另一方面,通過顯示器顯示測量結(jié)果和運(yùn)行的狀態(tài)。本次設(shè)計(jì)的顯示器采用3連體的共陰數(shù)碼管,數(shù)碼管采用串轉(zhuǎn)并芯片74LS164進(jìn)行驅(qū)動。人機(jī)接口電路如圖3-2所示,CPU和端

18、口信號連接如表3-1所示。關(guān)于數(shù)碼管的選擇問題: 1、如果數(shù)碼管采用靜態(tài)顯示方式,若選用3個(gè)獨(dú)立的數(shù)碼管,則勢必需要用到3個(gè)74LS164芯片進(jìn)行驅(qū)動,如此一來,增加硬件電路空間和產(chǎn)品成本。2、若數(shù)碼管采用動態(tài)顯示方式,則需選用一個(gè)3連體數(shù)碼管,而它只需一片74LS164芯片驅(qū)動,不僅節(jié)約芯片,硬件電路還更簡單,占用空間縮小,而軟件編程也不會很復(fù)雜。 因此,綜合以上兩種考慮,選擇方案2更好。表31 CPU和端口信號連接端口功能端口功能P3.0輸出:74LS164的數(shù)據(jù)輸入端P 2.1P2.3輸出:3連體數(shù)碼管位選端P3.1輸出:74LS164的數(shù)據(jù)輸入端P1.6P2.0輸出:電壓、電流、頻率指

19、示燈P2.4輸出:關(guān)油機(jī)控制端P1.3P1.5輸入:鍵盤圖3-2人機(jī)接口電路關(guān)于鍵盤的抖動問題:本次鍵盤采用機(jī)械式鍵盤,由于機(jī)械開關(guān)的撞擊作用,開關(guān)在閉合或斷開時(shí)開關(guān)會產(chǎn)生抖動,抖動時(shí)間約5ms10ms。抖動波形如圖3-3所示,為了保證系統(tǒng)對按鍵做出可靠的響應(yīng),應(yīng)消除抖動的圖3-3 按鍵抖動信號影響,消除抖動影響的方法主要有硬件消抖法和軟件消抖法。由于硬件消抖法每一個(gè)按鍵都需要相應(yīng)的消抖電路來支持,如RC濾波器或雙穩(wěn)消抖電路等。在按鍵較多時(shí),將使整個(gè)電路復(fù)雜、龐大。因此在帶微處理器的系統(tǒng)中很少采用,而主要采用軟件消抖法。本次設(shè)計(jì)中使用的是1X3矩陣式機(jī)械鍵盤,它們都是直接接到單片機(jī)的P1口,通

20、過編寫判斷鍵盤按下、軟件消抖以及執(zhí)行鍵盤散轉(zhuǎn)程序來執(zhí)行相應(yīng)操作,將在章節(jié)做詳細(xì)介紹。3.3 電源電路3.3.1 穩(wěn)壓電路原理圖穩(wěn)壓電路在實(shí)際應(yīng)用電路中應(yīng)用非常廣泛。如我們平常常用的78或79系列三端穩(wěn)壓器也是屬于它的一種。整流濾波后的電壓是不穩(wěn)定的電壓,在電網(wǎng)電壓或負(fù)載變化時(shí),該電壓都會產(chǎn)生變化,而且紋波電壓又大。所以,整流濾波后,還須經(jīng)過穩(wěn)壓電路,才能使輸出電壓在一定的范圍內(nèi)穩(wěn)定不變。本次設(shè)計(jì)直接在輸入端加入電壓,再對其進(jìn)行穩(wěn)壓。電源電路為總個(gè)系統(tǒng)提供5V的工作電壓,電源電路的穩(wěn)定性直接影響到總個(gè)系統(tǒng)的穩(wěn)定性, 5V電源電路如圖3.13所示。直流穩(wěn)壓電源的輸出電壓是由220V交流電轉(zhuǎn)換而來,

21、其輸出電壓會因電網(wǎng)電壓的變化有所波動,為了得到穩(wěn)定的5V直流電源,可將直流電源輸出的12V進(jìn)行整流,將整流后的電壓輸出到三端穩(wěn)壓器LM7805輸出5V直流電,外加一些濾波電容后輸出的5V直流電趨于穩(wěn)定,雜波較小,通過接口輸出到測量控制電路中,為單片機(jī)系統(tǒng)、顯示和諧振電路等供電。圖3-4 穩(wěn)壓電路3.3.2 +2.5V直流穩(wěn)壓電源將整流后的5V電壓通過芯片TL431,使輸出端輸出為3.3V,為電壓、電流調(diào)理電路提供2.5V電源。2.5V直流電路如圖3-5所示。圖3-5 2.5V直流穩(wěn)壓電源電路圖3.4 模擬輸入模塊電路單片機(jī)用與檢測系統(tǒng)時(shí),總要有與被測對象相聯(lián)系的前向通道。而這個(gè)所謂的前向通道在

22、本設(shè)計(jì)中可稱為模擬輸入信號的處理電路。前向通道與被測對象的狀態(tài)、特征、所處環(huán)境密切相關(guān)。在前向通道設(shè)計(jì)時(shí)要考慮到傳感器或敏感元件選擇、通道結(jié)構(gòu)、信號調(diào)節(jié)、電源配置、抗干擾設(shè)計(jì)等。在通道電路設(shè)計(jì)中還涉及到模擬電路諸多問題。當(dāng)將單片機(jī)用作檢測系統(tǒng)時(shí),系統(tǒng)中總要有被測信號輸入通道,有計(jì)算機(jī)拾取必要的輸入信息。作為檢測系統(tǒng),對被測對象拾取必要的原始參量信號是系統(tǒng)的核心任務(wù),對控制系統(tǒng)來說,對被控對象狀態(tài)的測試以及對控制條件的監(jiān)測也是不可缺少的環(huán)節(jié)。對被測對象的信號的拾取其主要任務(wù)就是最忠實(shí)地反映被測對象的真實(shí)狀態(tài),它包括實(shí)時(shí)性與測量精度。同時(shí)使這些測量信號能滿足計(jì)算機(jī)輸入接口的電平要求。3.4.1 電

23、壓、電流輸入信號處理電路電壓、電流輸入信號處理電路如圖3-1所示。圖中,輸入電壓先由電流型電壓互感器把電壓信號轉(zhuǎn)變?yōu)殡娏餍盘枺儆筛呔入娮枞樱央娏餍盘栟D(zhuǎn)變?yōu)殡妷盒盘朧in.。圖3-6 電壓、電流輸入信號處理電路STC12C5410AD的基準(zhǔn)為5V,設(shè)計(jì)時(shí)取抬升電壓為2.5V,則可保證輸出電壓的值大于0V。電流處理電路和電壓處理電路類似。處理后的電流信號AD_I和電流信號AD_U接入STC12C5410AD的兩個(gè)模擬輸入端,供CPU采樣。3.4.2 頻率測量電路頻率測量電路主要功能是把交流電壓信號整形變?yōu)榉讲ㄐ盘枺▓D3-2)。整形后的方波信號接入CPU的INT0,供測頻用。圖3-7 交流信

24、號轉(zhuǎn)變?yōu)榉讲?.5關(guān)油門電路采樣電壓、電流經(jīng)過數(shù)據(jù)分析處理后的值可能會超過系統(tǒng)所設(shè)門限值,這時(shí)CPU需向外界發(fā)送報(bào)警信息,而光顯示報(bào)報(bào)警信息是不安全的,因?yàn)榇藭r(shí)的柴油發(fā)電機(jī)仍在運(yùn)轉(zhuǎn),如果不采取相應(yīng)措施,發(fā)電機(jī)可能會造成無法修復(fù)的故障。因此必須采取應(yīng)急措施,即關(guān)閉油門。而這個(gè)關(guān)油門的信號是經(jīng)CPU分析后,由P2.4口發(fā)出的,當(dāng)P2.4口發(fā)送一個(gè)低電平時(shí),圖中繼電器斷開,后續(xù)電路也即開路了,達(dá)到關(guān)油門的功能。圖3-8 關(guān)油門電路第四章 系統(tǒng)的軟件設(shè)計(jì)系統(tǒng)軟件采用C語言,在Windows XP環(huán)境下采用KeiluVision2進(jìn)行編寫,對STC12X5410AD單片機(jī)進(jìn)行編程以實(shí)現(xiàn)各項(xiàng)功能。C 語言

25、是模塊化的高級語言,它的程序可讀性和可移植性都強(qiáng)于匯編語言,充分利用原來積累的編程知識和一些典型子程序,并采用模塊化、結(jié)構(gòu)化的設(shè)計(jì)思想,具有易讀性,易于移植,功能模塊可以很容易的擴(kuò)展;用C語言編寫的硬件控制程序?qū)崟r(shí)性好,編譯效率也高,適用于編寫柴油發(fā)電機(jī)測試系統(tǒng)這樣軟硬結(jié)合的系統(tǒng)。在本次設(shè)計(jì)中,系統(tǒng)通過C語言編寫程序,來實(shí)現(xiàn)系統(tǒng)軟件的功能。系統(tǒng)軟件開發(fā)工具使用單片機(jī)專用Keil uVision2,程序燒寫使用STC_ISP_V479。Keil uVision2支持C51編程,是一款良好的軟件開發(fā)環(huán)境。4.1 系統(tǒng)軟件總體結(jié)構(gòu)及整體設(shè)計(jì)思路根據(jù)本次設(shè)計(jì)的硬件電路和要求達(dá)到的功能,系統(tǒng)軟件結(jié)構(gòu)如下

26、:柴油發(fā)電機(jī)測試系統(tǒng)人機(jī)接口模塊AD采樣模塊數(shù)據(jù)處理模塊數(shù)碼管顯示模塊鍵盤處理模塊頻率測量模塊電壓電流采樣模塊數(shù)據(jù)有效值計(jì)算報(bào)警信息設(shè)置模塊圖4-1柴油發(fā)電機(jī)測試系統(tǒng)軟件結(jié)構(gòu)圖為了使軟件設(shè)計(jì)條理清楚,方便調(diào)試和使用,采用依照系統(tǒng)功能模塊規(guī)劃及分析中所劃分的功能模塊進(jìn)行相應(yīng)的設(shè)計(jì)。而同時(shí)在各個(gè)模塊中可以按照它所要實(shí)現(xiàn)的功能將一個(gè)模塊劃分為幾個(gè)模塊進(jìn)行設(shè)計(jì)。本次軟件系統(tǒng)設(shè)計(jì)主要分為三個(gè)部分:人機(jī)接口部分、AD采樣、數(shù)據(jù)處理部分,本設(shè)計(jì)采用的總體思路如下:通過單片機(jī)的定時(shí)器0和計(jì)數(shù)器1對外部產(chǎn)生的頻率信號進(jìn)行定時(shí)計(jì)數(shù),得出外部信號的頻率,進(jìn)而單片機(jī)根據(jù)相關(guān)的計(jì)算公式處理計(jì)算出相應(yīng)的頻率,在在得到信號

27、的頻率后,算出其周期,再用周期除以32,將這個(gè)時(shí)間作為PCA模塊0的定時(shí)值,對外部信號進(jìn)行每個(gè)周期的32點(diǎn)采樣,通過相應(yīng)的算法將信號的電壓、電流值算出,送數(shù)碼管顯示,鍵盤的功能主要是實(shí)現(xiàn)報(bào)警門限值的設(shè)定。4.2 主程序設(shè)計(jì)主程序是整個(gè)系統(tǒng)軟件的運(yùn)行主體,各個(gè)子系統(tǒng)軟件都必須經(jīng)過它的調(diào)度,才能運(yùn)行得當(dāng)。根據(jù)設(shè)計(jì)項(xiàng)目的功能要求,主程序?qū)ο到y(tǒng)主要進(jìn)行了一下工作:一、系統(tǒng)初始化,相關(guān)模塊的初始化工作;二、進(jìn)入主程序循環(huán),主程序循環(huán)就是監(jiān)控子程序,管理子程序,實(shí)現(xiàn)系統(tǒng)功能。 系統(tǒng)初始化系統(tǒng)初始化主要完成顯示模式的初始化、鍵盤頁面初始化、STC12C5410AD的PCA定時(shí)模塊初始化、定時(shí)器0外部中斷0的

28、初始化、AD采樣模塊初始化。(1)、顯示模式初始化:系統(tǒng)的顯示模式共有3種,一是電流、電壓、頻率的循環(huán)顯示或單獨(dú)顯示,二是鍵盤設(shè)定值的顯示,三是報(bào)警信息的顯示。由全局變量DispMode的值控制系統(tǒng)顯示模式,系統(tǒng)上電后的初始顯示模式為電壓、電流、頻率循環(huán)交替顯示,因此DispMode=0; (2)、鍵盤頁面初始化:鍵盤頁面值由值由全局變量Page決定,系統(tǒng)上電后的初始鍵盤頁面Page為0。(3)、PCA模塊的初始化:主要是對其工作模式寄存器、控制寄存器、捕獲寄存器、中斷允許寄存器進(jìn)行初始化。(4)、定時(shí)器0、1,外部中斷0的初始化:T0做定時(shí)器,T1做計(jì)數(shù)器,二者都工作在16位的計(jì)數(shù)方式;外部

29、中斷0的觸發(fā)方式是下降沿觸發(fā),允許定時(shí)器0和外部中斷0的中斷請求。(5)、AD采樣模塊初始化:主要是將單片機(jī)P1口采樣通道的輸入方式配置寄存器、控制寄存器,數(shù)據(jù)結(jié)果寄存器、相應(yīng)的中斷允許位初始化。 主程序流程圖主程序的設(shè)計(jì)思路為:上電后,先調(diào)用初始化,接著調(diào)用AD采樣模塊程序?qū)?jīng)過調(diào)理后的電壓、電流進(jìn)行采樣,將采樣值經(jīng)過處理后調(diào)顯示子程序送數(shù)碼管顯示,同時(shí)把采樣值與限定值進(jìn)行比較,進(jìn)行判斷,當(dāng)采樣值超過限定值時(shí),則會出現(xiàn)顯示器報(bào)警信息,同時(shí)CPU發(fā)出關(guān)油門信號等一些操作;當(dāng)沒超過時(shí),顯示器正常顯示測得的電壓、電流、頻率值。當(dāng)有鍵盤按下時(shí),先讀取它的鍵值,找到它是哪個(gè)頁面的鍵值,再去處理這個(gè)頁面

30、的鍵值對應(yīng)的函數(shù)操作。鍵盤掃描是每隔10ms掃描一次,數(shù)碼管是每隔0.5S顯示一次。開始初始化A/D采樣調(diào)顯示子程序調(diào)數(shù)據(jù)處理子程序調(diào)鍵盤處理子程序圖4-2 主程序流程圖4.3 顯示模塊模塊設(shè)計(jì)顯示模塊是人機(jī)接口模塊中的一部分。顯示模塊的軟件設(shè)計(jì)的主要內(nèi)容是將采樣值信息、報(bào)警信息送數(shù)碼管顯示,同時(shí)相應(yīng)的LED燈會點(diǎn)亮。其流程圖如圖4-3所示,顯示模塊包括數(shù)據(jù)拆分,74LS164串轉(zhuǎn)并、送顯、循環(huán)顯示與單獨(dú)顯示、設(shè)定值顯示等函數(shù)。 數(shù)據(jù)拆分要把一個(gè)整型數(shù)據(jù)送三位數(shù)碼管顯示,首先這個(gè)數(shù)不能大于999,否則就把它為是999;其次,這個(gè)整形據(jù)在計(jì)算機(jī)中是以二進(jìn)制的形式存儲的,必然要用三個(gè)存儲單元來存儲

31、它拆成三位后的值,在本次設(shè)計(jì)中,用一個(gè)全局變量的數(shù)組DispBuf3來存儲一個(gè)整形數(shù)據(jù)拆分成十進(jìn)后的百、十、個(gè)位,將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的拆分函數(shù)為void DataSeparate (uint InData, uchar * OutData)。圖4-3 顯示模塊流程圖4.3.2 74LS164串轉(zhuǎn)并 74LS164是一個(gè)串轉(zhuǎn)并的并的芯片,數(shù)據(jù)串行輸入,8位并行輸出,這不僅為數(shù)碼管提供8bit數(shù)據(jù),同時(shí)也是作為一個(gè)數(shù)碼管驅(qū)動芯片工作著。本設(shè)計(jì)中,可有兩種方法編寫該轉(zhuǎn)串并函數(shù)void Shift164( uchar In)。(1)、利用串口方式編寫該函數(shù),設(shè)已經(jīng)設(shè)置好了串行工作于方式0(SCO

32、N=0)。本軟件設(shè)計(jì)的數(shù)據(jù)輸出采用串行輸出的方式,用單片機(jī)的RXD作為數(shù)據(jù)線,TXD作為時(shí)鐘信號線,分別接到74LS164的數(shù)據(jù)端和時(shí)鐘端。(2)、用模擬74LS164時(shí)序來編寫該函數(shù)。其中要數(shù)據(jù)位循環(huán)移入74LS164的寄存器。4.3.3查找字形碼程序要使數(shù)碼管能正確顯示所需的數(shù)字或字母,需要給每個(gè)要顯示的字符找到其相應(yīng)的字型碼。全局變量ShapeBuf為存放DispBuf對應(yīng)的字型碼數(shù)組。函數(shù)void FindShape(uchar * disp_buf, uchar * shape_buf, uchar dot_pos)主要負(fù)責(zé)把DispBuf數(shù)組中的3位數(shù)找到其字型碼。其中disp_b

33、uf,要顯示的3個(gè)數(shù)字的存放位置;shape_buf,對應(yīng)數(shù)字字形碼存放位置; dot_pos,要顯示小數(shù)點(diǎn)的位置。小數(shù)點(diǎn)位置從左到右依次為0,1,2,最后一位不顯示小數(shù)點(diǎn),當(dāng)Dot的值大于等于2時(shí),不顯示小數(shù)4.3.4 送顯子程序 要顯示的字符找到字型碼之后,就可以通過74LS164把數(shù)據(jù)送數(shù)碼管顯示了。因此該函數(shù)包括74LS164的串轉(zhuǎn)并函數(shù)。由于3連體數(shù)碼管工作在動態(tài)顯示方式,因此每個(gè)數(shù)碼管點(diǎn)亮一段時(shí)間后要有一小段短暫的延時(shí),由于人眼的視覺延緩的作用,看起來三個(gè)數(shù)碼管像是同時(shí)亮著,因此該函數(shù)也應(yīng)包括延時(shí)程序。該函數(shù)的函數(shù)名為:void SendDisp(uchar * shape_buf

34、)。 電壓、電流、頻率顯示子程序數(shù)碼管可以單獨(dú)顯示電壓、電流、頻率中的某一個(gè)參數(shù),也可以循環(huán)顯示三個(gè)參數(shù),這是可以依用戶的需要而通過鍵盤功能進(jìn)行設(shè)定的。而決定這三個(gè)參數(shù)是循環(huán)顯示、還是只單獨(dú)顯示某個(gè)參數(shù),是由全局變量Hold及WhoHold決定的。Hold=0 時(shí),WhoHold失去作用,此時(shí)三個(gè)參數(shù)循環(huán)顯示。Hold=1、WhoHold=0時(shí),單獨(dú)顯示電壓;Hold=1、WhoHold=10時(shí),單獨(dú)顯示電流;Hold=1、WhoHold=20時(shí),單獨(dú)顯示頻率。4.3.6 按鍵時(shí)設(shè)定值的顯示子程序系統(tǒng)初始化后,默認(rèn)的鍵盤頁面為0頁面,電壓、電流、頻率在交替顯示。當(dāng)有KEY1和KEY3按下時(shí),顯

35、示器首先顯示“d-0”字樣,這幾個(gè)字符是放在全局變量SetBuf數(shù)組中的。當(dāng)再次按下KEY3(即Enter鍵)后,數(shù)碼管顯示過壓門限值,這是軟件程序里設(shè)定的初始值,可以通過鍵盤進(jìn)行改變,而這個(gè)子程序正是顯示正在改變的門限設(shè)定值。當(dāng)進(jìn)入門限值的設(shè)定的顯示時(shí),處于設(shè)定位的數(shù)碼管會閃爍。4.3.7 PCA模塊0作為定時(shí)器 STC12C5410AD系列單片機(jī)集成了4路可編程計(jì)數(shù)器陣列(PCA)模塊,可用于軟件定時(shí)器、外部脈沖的捕捉、高速輸出以及脈寬調(diào)制(PWM)輸出,本設(shè)計(jì)的PCA模塊用于定時(shí)。與PCA有關(guān)的特殊功能寄存器如下:666666本系統(tǒng)PCA模塊初始化程序如下:sfrCH=0XF9;sfrC

36、L=0XE9;sfrCCON=0XD8;sfrCMOD=0XD9;sfrCCAP0H=0XFA;sfrCCAP0L=0XEA;sfrCCAPM0=0XDA;sbit EPCA_LVD=IE6;sbit EADC_SPI=IE5;sbit CR=CCON6;/sbit CF=CCON7;sbit CCF0=CCON0;void PCA_Initiate()CMOD=0X80;CCON=0x00;CL=0;/PCA計(jì)數(shù)值初始化CH=0;CCAP0L=C_1MSCount%256;/1ms的定時(shí)值,CCAP0H=C_1MSCount/256;CCAPM0=0X49; /PCA模塊1工作于16位計(jì)數(shù)器

37、EPCA_LVD=1;/允許PCA模塊中斷EA=1;CR=1;/定時(shí)器開始運(yùn)行以下為PCA模塊0的中斷服務(wù)程序:void PCA_Interrupt(void) interrupt 6CL=0;CH=0;/計(jì)數(shù)值清0Ticks+;/時(shí)間滴答加1CCF0=0;/清中斷標(biāo)志CCAPM0=0x49;/PCA模塊0工作于16位計(jì)數(shù)器全局變量Ticks記錄時(shí)間中斷次數(shù)(以后稱為時(shí)間滴答),記錄的最大個(gè)數(shù)為65535個(gè),也即65535ms一個(gè)循環(huán)。bit TimeOut(uint * OldTicks, uint TimeMs)unsigned int diff;diff= Ticks - *OldTic

38、ks;if(!TimeMs | diff >= TimeMs)* OldTicks = Ticks;return 1;return 0;在這個(gè)函數(shù)中,首先時(shí)間滴答Ticks在中斷的作用下,會不間斷地向前計(jì)數(shù)。假設(shè)X時(shí)刻diff>=TimeMs,此時(shí),X時(shí)刻的時(shí)間滴答Ticks送到*OldTicks保存(通過指針變量*OldTicks保存)。過了一段時(shí)間(設(shè)Y時(shí)刻),再調(diào)用該函數(shù),則函數(shù)計(jì)算X到Y(jié)時(shí)刻經(jīng)歷的時(shí)間diff= Ticks - *OldTicks;如果經(jīng)歷的時(shí)間diff大于設(shè)定時(shí)間TimeMs,則返回1,同時(shí)又開始新的計(jì)時(shí),保存Y時(shí)刻的時(shí)間滴答* OldTicks = Ti

39、cks;因此,該函數(shù)完成了連續(xù)判斷是否超時(shí)的功能,即從某時(shí)刻開始計(jì)時(shí),一段時(shí)間后,如果經(jīng)歷的時(shí)間大于設(shè)定的時(shí)間TimeMs,則返回1,并進(jìn)入下一輪判斷。如果沒有超時(shí),返回0。函數(shù)也提供了立即記錄當(dāng)前的時(shí)間滴答的功能。只要在調(diào)用該函數(shù)時(shí),把TimeMs對應(yīng)的實(shí)參設(shè)置為0即可。4.3.8系統(tǒng)顯示函數(shù)系統(tǒng)顯示是根據(jù)顯示模式實(shí)現(xiàn)主界面顯示(顯示電壓、電流、頻率),設(shè)定狀態(tài)顯示,報(bào)警顯示。該函數(shù)由全局變量DispMode決定:DispMode=0,主界面顯示;DispMode=1,設(shè)定值顯示;DispMode=2,報(bào)警界面顯示。該函數(shù)每隔0.5S 顯示一次。程序如下:void SysDisp()if(D

40、ispMode= 0)/顯示模式為0UIFCycleDisp(Hold,WhoHold);/顯示測量值else if(DispMode= 1)/顯示模式為1DispSetData(SetPos,Dot,DotPos);/顯示設(shè)定值else if(DispMode=2)/顯示模式為2SendDisp(ShapeBuf);/顯示報(bào)警值 系統(tǒng)顯示任務(wù)該函數(shù)每隔0.5S進(jìn)行一次系統(tǒng)顯示。void SysDispTask(void) if(TimeOut(&DispTime,500)/0.5S顯示一次SysDisp();4.4 鍵盤處理模塊按照從最底層到頂層的順序,鍵盤處理模塊設(shè)計(jì)總體框圖如圖4

41、-4所赤。鍵盤處理模塊的設(shè)計(jì)又可以分為幾個(gè)子程序,包括鍵盤掃描程序,讀鍵值子程序,鍵盤處理程序。圖4-4 鍵盤處理模塊總體框圖 讀鍵值子程序一般來說,每個(gè)鍵盤都會有一個(gè)鍵值,單片機(jī)測得鍵值后,就可以知道是哪個(gè)鍵盤按下了,進(jìn)而處理相關(guān)程序。本文中共3個(gè)鍵盤,即有3個(gè)鍵值,KEY1鍵值是0x80,KEY2是0x81,KEY3是0x82。程序首先定義一個(gè)位結(jié)構(gòu)體類型Key_GPIO,用來保存3個(gè)按鍵值。typedef struct uchar Key1:1;uchar Key2:1;uchar Key3:1;uchar Reserve:5; Key_GPIO;同時(shí)也定義了一個(gè)聯(lián)合體類型,在該類型中字

42、符成員InKey和KeyGPIO共用一個(gè)存儲單元,因此通過判斷InKey是否為0就可以知道有無鍵按下。typedef union uchar InKey;Key_GPIO KeyGPIO; Mix_In_Key;程序中,如果某鍵按下但尚未處理,則鍵值的最高位置1,鍵盤功能處理完后,其最高位清0。 鍵盤掃描程序鍵盤掃描程序可包含下列步驟:首先判斷有無鍵按下,如果有鍵按下,進(jìn)行去抖處理。方法是10ms后再讀鍵值看是否變化,如無變化說明不是抖動。然后分析鍵盤是否釋放,如果釋放了則進(jìn)行相應(yīng)的鍵盤處理。鍵盤處理子程序該函數(shù)主要完成按鍵處理功能。為了實(shí)現(xiàn)這個(gè)函數(shù),定義了一個(gè)結(jié)構(gòu)體Page_KeyFun,這

43、個(gè)結(jié)構(gòu)體中成員KeyNo表示哪個(gè)鍵按下了,成員(*Fun)()是指針函數(shù),它指向按下該鍵所要執(zhí)行的函數(shù)。從前面的介紹可知,本系統(tǒng)鍵盤分為7頁,每頁可按的鍵也不一樣。例如第0頁可按Key1和Key3鍵。設(shè)按Key1后執(zhí)行的函數(shù)為Page0Key1Fun(),按Key3后執(zhí)行的函數(shù)為Page0Key3Fun(),則可用一個(gè)Page_KeyFun結(jié)構(gòu)體數(shù)組表示它們:這樣鍵盤處理函數(shù)可按下列方法執(zhí)行:(1) 找到某一頁對應(yīng)的結(jié)構(gòu)體數(shù)組。(2) 查找這一頁哪個(gè)鍵按下。(3) 由結(jié)構(gòu)體數(shù)組,找出執(zhí)行按下該鍵對應(yīng)的函數(shù)入口地址(函數(shù)名),執(zhí)行相應(yīng)程序。函數(shù)原型如下: 鍵盤任務(wù)子程序本系統(tǒng)每隔10ms進(jìn)行1次

44、鍵盤掃描,即每隔10ms調(diào)用一次鍵盤處理子程序。4.5 AD采樣模塊AD采樣模塊包括頻率測量模塊和電壓、電流采樣模塊。 頻率測量模塊電壓、電流的正弦波信號經(jīng)過波形變換后成為一個(gè)50Hz的方波信號。將該信號與單片機(jī)外部中斷0引腳相連,當(dāng)CPU檢測到外部中斷0引腳上出現(xiàn)下隆沿時(shí)執(zhí)行外部中斷0的中斷服務(wù)程序。在該程序中,通過定時(shí)器T1的計(jì)數(shù)值可換算出電壓、電流的頻率,如果硬件電路誤差不大的話,這個(gè)頻率值就是50Hz。 電壓、電流采樣模塊 測到信號的頻率后,就可以啟動定時(shí)器0進(jìn)行電壓、電流的循環(huán)采樣了。在外部中斷0中斷服務(wù)程序中啟動定時(shí)器T1進(jìn)行計(jì)數(shù)時(shí)的同時(shí),以T(信號周期)/32的定時(shí)時(shí)間隔啟動T0

45、中斷;在外部中斷0關(guān)閉定時(shí)器T1的同時(shí),才關(guān)閉定時(shí)器T0,這樣,在一個(gè)信號周期內(nèi),就會出現(xiàn)32次定時(shí)器T0中斷。另外,在對電壓、電流進(jìn)行采樣前,還要分析前面采樣的數(shù)據(jù)是否處理完了。只有前面采樣的數(shù)據(jù)處理完了,才允許當(dāng)前的采樣;否則關(guān)定時(shí)器T0,取消該次采樣。4.5 數(shù)據(jù)處理模塊得到了采樣值,接下來就是數(shù)據(jù)處理了。數(shù)據(jù)處理模塊主要是實(shí)現(xiàn)對采樣電壓、電流有效值的計(jì)算以及設(shè)置報(bào)警信息。在計(jì)算電壓、電流有效值時(shí),需要注意的是:要先判斷采樣數(shù)據(jù)是否已計(jì)算過,如果已計(jì)算過就沒必要再計(jì)算。計(jì)算完有效值后,要置計(jì)算完標(biāo)識,以使采樣程序知道可以采樣新的數(shù)據(jù)。程序給每個(gè)參數(shù)都設(shè)置報(bào)警標(biāo)識,當(dāng)32個(gè)采樣值中有好幾個(gè)

46、都超過門限值,說明柴油機(jī)輸出不正常,則置報(bào)警標(biāo)識為1。當(dāng)程序檢查到某個(gè)參數(shù)的報(bào)警信息為1時(shí),顯示模式立即變?yōu)?,即此時(shí)顯示模式為報(bào)警信息顯示模式,同時(shí),CPU發(fā)出關(guān)油門信號,關(guān)閉油門。第五章 系統(tǒng)調(diào)試5.1 系統(tǒng)顯示子程序的調(diào)試在Proteus 仿真軟件中,系統(tǒng)顯示完全正常,但是放到硬件上數(shù)碼管卻完全顯示亂碼,不過LED指示標(biāo)志燈卻是正常亮與滅,既然程序在硬件上能運(yùn)行,說明硬件電路沒什么問題,有可能是字形碼的設(shè)置問題,或數(shù)據(jù)的傳送是否顛倒。最后鎖定為數(shù)據(jù)位權(quán)高低有問題。按照我們的習(xí)慣,我們認(rèn)為數(shù)碼管的A,B,C,D,E,F(xiàn),G,Dp等段的位權(quán)是從低到高的,而通過實(shí)驗(yàn)現(xiàn)象的觀察分析發(fā)現(xiàn),這些位權(quán)

47、其實(shí)是從低到高,即A段是最高位,因此,修改相應(yīng)字形碼后顯示正常了。在用Proteus進(jìn)行仿真時(shí)還碰到一個(gè)問題,那就是3連體數(shù)碼管雖然能同時(shí)亮,但還是能發(fā)現(xiàn)各個(gè)數(shù)碼管之間的點(diǎn)亮有短暫的先后視覺效應(yīng),而且亮的時(shí)間都非常短,感覺像是一閃而過。然后就猜想有這個(gè)先后視覺效應(yīng)是正常的,畢竟動態(tài)顯示的數(shù)碼點(diǎn)亮都需要延時(shí),而這個(gè)一閃而過的現(xiàn)象是否可以改變,讓它亮的時(shí)間持久一些,于是,在送顯子程序中加了一個(gè)別for循環(huán),用于多次點(diǎn)亮數(shù)碼管,使它亮的時(shí)間長了一些,而之后的先后視覺效應(yīng)也就消除了,看起來三個(gè)數(shù)碼管是一起點(diǎn)亮的,達(dá)到預(yù)期效果。5.2鍵盤處理調(diào)試在硬件電路板還沒有制出來之前,一直是使用Proteus仿真

48、軟件對系統(tǒng)軟件進(jìn)行調(diào)試,由于仿真軟件的仿真是在理想的環(huán)境下運(yùn)行的,沒有外界的干擾,也沒有所謂的鍵盤抖動。因此程序中鍵盤處理這一模塊中的每10ms調(diào)用一次鍵盤任務(wù)在仿真軟件上行不通,因?yàn)樵赑roteus中,鍵盤一按下,沒有所謂抖動,這個(gè)時(shí)刻應(yīng)立即讀取它的值,否則不可能讀到鍵盤值。然而在實(shí)際的硬件電路板上,程序運(yùn)行時(shí),則必須是10ms調(diào)用一次鍵盤任務(wù)子程序。5.3 頻率測量的調(diào)試在用Proteus進(jìn)行仿真時(shí),一直測不到信號的頻率,它總顯示為0,經(jīng)過反復(fù)的思考后仍然發(fā)現(xiàn)不了程序中有任何錯誤之處,最后,經(jīng)同學(xué)幫忙,發(fā)現(xiàn)可能是數(shù)據(jù)溢出的問題,因?yàn)橐粋€(gè)整型數(shù)據(jù)的最大值是65535,而那個(gè)子程序里面的一個(gè)整

49、型數(shù)據(jù)j的值為1000000,數(shù)值溢出了,因此才使得后續(xù)產(chǎn)生錯誤的結(jié)果,然后把它修改為long型數(shù)據(jù)后,就能沒到頻率值50Hz了。而這里,其實(shí)只是一個(gè)純粹的C語言問題,就看自己考慮是否周全。參考文獻(xiàn)1. 張友德,等.單片微型機(jī)原理、應(yīng)用與實(shí)踐.上海:復(fù)旦大學(xué)出版社,20032. 蔡美琴,等.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用2版.北京:高等教育出版社,20043. 蘇家健,等.單片機(jī)原理及應(yīng)用技術(shù).北京:高等教育出版社,2004 4. 王質(zhì)樸,等.MCS-51單片機(jī)原理接口及應(yīng)用.北京:北京理工大學(xué)出版社,2009 5. 何宏,等.單片機(jī)廚師民接口技術(shù).北京:國防工業(yè)出版社,20066.張道德

50、,等.單片機(jī)接口技術(shù)(C51)版)北京:中國水利水電出版社,20077.李全利,等.單片機(jī)原理及應(yīng)用技術(shù)北京:高等教育出版社,20018.李群芳,黃建.單片微型計(jì)算機(jī)與接口技術(shù).北京:電子工業(yè)出版社,20019張毅剛,等.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003 10.張先庭,向瑛等. 單片機(jī)原理、接口與C51應(yīng)用程序設(shè)計(jì)多點(diǎn)溫度測試系統(tǒng).北京:國防工業(yè)出版社,2011附錄A 硬件系統(tǒng)原理圖附錄B 硬件電路板實(shí)物圖附錄C 程序代碼“Time0.h”文件#include <reg51.h>#include<math.h>/文件包含#inclu

51、de "Page.h"/文件包含#include <intrins.h>/文件包含#define C_SampleFreq 32/宏定義uchar AcUSampleValue32;/全局變量uchar AcISampleValue32;uchar DispBuf3;uchar ShapeBuf3;uchar bCalUFin;uint FValue;uint UValue;uint SampTimeH;uint SampTimeL; uint x,y;uint DispTime;uchar ch=0;uchar C_ACVRef=0;uchar C_ACIRe

52、f=0;#define ADC_Power_On_Channal00xe0;/P1.0為A/D輸入#define ADC_Power_On_Channal10xe1;/P1.1為A/D輸入sfr AUXR=0x8e;sfr ADC_CONTR=0xC5;sfr ADC_DATA=0xC6;sfr ADC_LOW2=0xBE;sfr P1M0=0x91;sfr P1M1=0x92;#define ADC_POWER 0x80/宏定義#define ADC_FLAG 0x10#define ADC_START 0x08#define ADC_SPEEDLL 0x00#define ADC_SPEE

53、DL 0x20#define ADC_SPEEDH 0x40#define ADC_SPEEDHH 0x60sfrCH=0XF9;/寄存器定義sfrCL=0XE9;sfrCCON=0XD8;sfrCMOD=0XD9;sfrCCAP0H=0XFA;sfrCCAP0L=0XEA;sfrCCAPM0=0XDA;sbit EPCA_LVD=IE6;/PCA模塊中斷允許位定義sbit EADC_SPI=IE5;/AD采樣模塊中斷允許位定義sbit CR=CCON6;/sbit CF=CCON7;sbit CCF0=CCON0;void AdDelay(uint n)uint x;while(n-)x=5000;while(x-);void InitADC()/ADC采樣初始化P1=P1M0=P1M1=0xff;/P1口全部設(shè)置為開漏模式ADC_DATA=0;/轉(zhuǎn)換結(jié)果寄存器清0ADC_CONTR=ADC_POWER|ADC_SPEEDLL;/開ADC工作電源,540個(gè)時(shí)鐘周

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論