【正文】
PROM保存用戶設(shè)置,數(shù)據(jù)掉電不丟失,避免用戶反復(fù)設(shè)置,為了提高系統(tǒng)實時性,鍵盤設(shè)定是采用中斷處理方式,不占用系統(tǒng)掃描時間。數(shù)據(jù)采集模塊分兩部分:蒸發(fā)器溫度采集模塊和車內(nèi)溫濕度采集模塊。本課題采用的是集成溫度傳感器DS18B20實現(xiàn)對蒸發(fā)器溫度的采集工作,它采用一線制接口(1Wire總線),與單片機互聯(lián)非常簡單,蒸發(fā)器溫度采集模塊如圖42。圖43 車內(nèi)溫濕度采集模塊本課題采用LCM1602作為顯示器,控制芯片為HD44780,LCM1602自帶常用的西文字母字庫,這些西文字母與標(biāo)準(zhǔn)ASICII相同,使用非常方便。圖44 顯示模塊鍵盤采用獨立鍵盤,并設(shè)置了“SET”,“+”,“-”,“RET”鍵,鍵盤采用中斷處理方式,提高了系統(tǒng)的實時性,鍵盤處理模塊如圖45(其中S1為“SET”鍵,S2為“+”鍵,S3為“-”鍵,S4為“RET”鍵)。 圖46 蒸發(fā)器控制模塊 圖47 壓縮機控制模塊其它模塊主要有數(shù)據(jù)存儲模塊和電源模塊。圖48 數(shù)據(jù)存儲模塊由于系統(tǒng)采用+5V電源,需要采用電源轉(zhuǎn)換模塊將汽車+12/+24V電源轉(zhuǎn)換成+5V電源,本系統(tǒng)采用了集成穩(wěn)壓芯片LM7805對電壓進行轉(zhuǎn)換,并通過濾波網(wǎng)絡(luò),保證輸出電壓的穩(wěn)定,電源模塊如圖49。單片機AT89S52主要性能參數(shù) AT89S52引腳(PDIP40)如圖410。SHT10是瑞士盛世瑞恩公司生產(chǎn)的一塊集成數(shù)字溫濕度傳感器,它應(yīng)用專利的工業(yè)CMOS過程微加工技術(shù)(CMOSens),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。該產(chǎn)品具有品質(zhì)卓越、超快相應(yīng)、抗干擾能力強、性價比極高等優(yōu)點。校驗系數(shù)都以程序的形式存儲在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。圖411 SHT10內(nèi)部方框圖SHT10測濕精度達(dá)177?!?,滿足課題要求。由于SHT10的這些優(yōu)點,使它廣泛應(yīng)用于暖通空調(diào),汽車,氣象站,自動控制等領(lǐng)域。SHT10的時序主要有“啟動傳輸”時序(如圖412),數(shù)據(jù)傳輸時序(如圖413),通信復(fù)位時序(如圖414),應(yīng)答時序等時序構(gòu)成。圖415 測量時序概覽本系統(tǒng)采用DS18B20作為蒸發(fā)器溫度采集端,DS18B20是Dallas半導(dǎo)體公司(現(xiàn)被Maxim公司收購)生產(chǎn)的“一線總線”接口的溫度傳感器,DS18B20測量溫度范圍為-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為177。適合惡劣的現(xiàn)場溫度測量,如環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。計數(shù)器被預(yù)置到對應(yīng)-55℃的一個值。同時,計數(shù)器被復(fù)位到一個值,這個值由斜坡式累加器電路確定,斜坡式累加器電路用來補償感溫振蕩器的拋物線特性。DS18B20內(nèi)部方框圖如圖416。圖417 初始化時序圖418 DS18B20寫時序圖419 DS18B20讀時序5 系統(tǒng)軟件設(shè)計本系統(tǒng)的程序設(shè)計采用的是高級語言C語言,之所以采用C語言,是因為C語言有如下優(yōu)勢:,使用靈活方便??梢詫⒁环N單片機上編寫的程序,不做修改或作少量修改就可以移植到另一款單片機上。C語言具有豐富的數(shù)據(jù)結(jié)構(gòu),可以實現(xiàn)多種運算,另外,C語言書寫格式自由,編寫程序有較大的靈活性。C語言以函數(shù)作為程序設(shè)計基本單位,有利于程序的模塊化。C語言可以進行位操作,可以直接對單片機硬件進行控制。用C語言編寫的程序生成的代碼效率僅比匯編語言編寫的程序低1020%。目前,針對51單片機的編譯器有很多種,Keil C51是其中比較優(yōu)秀的一種,由它生成的程序代碼具有形式簡潔,效率極高的優(yōu)點,本系統(tǒng)的軟件設(shè)計都是基于Keil C51編譯器的。系統(tǒng)軟件設(shè)計流程圖如附圖。系統(tǒng)模塊主要分為DHT90測溫測濕模塊,DS18B20測溫模塊,鍵盤處理模塊,LCM1602顯示模塊,數(shù)據(jù)存儲模塊,數(shù)字濾波模塊構(gòu)成,下面分別對它們作介紹。寫一個字節(jié)函數(shù):char s_write_byte(unsigned char value) //寫一個字節(jié)函數(shù){ unsigned char i,error=0。i0。 value) DATA=1。 //產(chǎn)生下降沿 _nop_()。_nop_()。 } DATA=1。 // error=DATA。 return error。 DATA=1。i0。 //SCK為“1”,DATA為穩(wěn)定的數(shù)據(jù) if (DATA) val=(val | i)。 } DATA=!ack。 //下降沿 _nop_()。_nop_()。 DATA=1。 //返回讀取數(shù)據(jù)}DS18B20測溫模塊主要編寫了讀寫DS18B20程序。for(j=0。j++){DQ=1。while(i) //延時9us{。i=1。}DQ=1。elsedat=datamp。i=6。}dat=dat1。}return dat。for(j=0。j++){DQ=1。while(i) //延時9us {。i=1。}if(datamp。else DQ=0。while(i) //延時54us{。 //右移一位 DQ=1。據(jù)地址寫字符函數(shù)void write_char(uchar x,uchar y,uchar dat) //根據(jù)地址寫一個字符 { position(x,y)。 }顯示自建字符函數(shù)void write_CGRAM(uchar *p) //寫自建字符函數(shù){uchar i。 //可根據(jù)實際情況修改for(i=0。i++){write_data(*p)。}}void int0 interrupt 0 using 1{int temp。delay(10)。 //value為全局變量}if(subb==0){temp=add。if(add==temp)value。float lvbo(uchar n){int i;float sum,aver。in。 //數(shù)組a[N]設(shè)置為全局變量}aver=sum/n。}6 系統(tǒng)調(diào)試系統(tǒng)完成設(shè)計后,并不是立即可以正常工作的,通常要經(jīng)過反復(fù)幾次的調(diào)試才能達(dá)到預(yù)期效果,系統(tǒng)軟硬件調(diào)試的目的是通過控制程序和硬件電路的配合工作,進行一些操作,以驗證系統(tǒng)的軟、硬件能否完成設(shè)計的功能。本設(shè)計的調(diào)試方式采用逐級,分模塊的調(diào)試方法,即將各個軟件功能模塊設(shè)計后,結(jié)合單片機開發(fā)板對每個功能子模塊進行調(diào)試,仿真,直到能達(dá)到控制要求,然后再對各個模塊進行整合,銜接,最后對整個系統(tǒng)進行綜合調(diào)試仿真,直至滿足系統(tǒng)設(shè)計要求。附圖 系統(tǒng)調(diào)試方式結(jié)構(gòu)圖本系統(tǒng)的硬件調(diào)試首先是保證系統(tǒng)各個元件及各個模塊之間的連接正確并且接觸良好,這是硬件電路系統(tǒng)能夠正常工作的前提,接著分別測試各個硬件模塊的性能。本系統(tǒng)主要是涉及電源電路,單片機最小系統(tǒng),壓縮機控制電路和冷凝器控制電路的調(diào)試。通過測試接入+12V(對地電壓)電源后集成穩(wěn)壓芯片LM7805工作正常,電壓穩(wěn)定在+5V左右,負(fù)載接通后電壓稍有波動,但波動不大,基本對電路無影響;單片機供電電壓為+5V,顯示器電源電壓也穩(wěn)定在+5V,電源電路的測試都在正常范圍之內(nèi)。單片機引腳ALE輸出脈沖電壓,證明單片機正常工作,對單片機進行復(fù)位,單片機第9引腳輸出為高電平,復(fù)位電路正常。對壓縮機和冷凝器控制電路測試做了相關(guān)測試,將兩電路的晶體管基極接地后,壓縮機和冷凝器的繼電器都產(chǎn)生了動作,說明壓縮機和冷凝器控制電路工作正常。系統(tǒng)的軟件調(diào)試主要借助單片機開發(fā)板和MON51仿真芯片,調(diào)試首先驗證各個功能子模塊和程序流程的正確,進而對整個程序進行系統(tǒng)級調(diào)試,找出其中的缺陷,并及時更正,系統(tǒng)軟件調(diào)試主要分以下步驟:將各個功能子模塊程序分別下載到MON51仿真芯片內(nèi)部,通過Keil uVision 3中的調(diào)試環(huán)境察看各個I/O口的狀態(tài)和時序,判斷功能子程序是否正常工作,時序是否符合要求,最后將硬件連入單片機開發(fā)板,通過LCM1602顯示運行效果,這一方式對測試DHT90和AT24C04子程序很奏效。通過對整個程序的通調(diào)可以判斷整個程序模塊能否按照程序流程正常的運行,并對軟件存在的問題進行修補,改進,這個過程是軟件調(diào)試的最后階段,也是關(guān)鍵階段,程序中存在的問題都是在這個階段出現(xiàn)的。通過硬件和軟件調(diào)試,系統(tǒng)基本實現(xiàn)了控制要求,軟件和硬件工作正??煽浚到y(tǒng)在測試條件下穩(wěn)定運行,整個系統(tǒng)的測試和調(diào)試階段還是很成功的。根據(jù)系統(tǒng)功能要求和性能指標(biāo)完成了系統(tǒng)電路圖的繪制,并對電路的可行性作了嚴(yán)密的論證。在完成系統(tǒng)硬件電路的設(shè)計基礎(chǔ)上,分析了軟件實現(xiàn)的功能,并完成了軟件各個功能模塊的設(shè)計,最終完成了系統(tǒng)軟件的設(shè)計。結(jié)合相應(yīng)的軟硬件開發(fā)平臺,對系統(tǒng)的軟件和硬件分別作了調(diào)試,后期對系統(tǒng)軟硬件和軟件做了相應(yīng)的優(yōu)化,保證系統(tǒng)的正常,可靠運行。參考文獻[1] 、原理與維修[M].北京:北京大學(xué)出版社,2005.[2] [M].西安:西安交通大學(xué)出版社,2001.[3] [M].北京:中國建筑工業(yè)出版社,2006.[4] 郭麗紅,[J].長春理工大學(xué)學(xué)報(自然科學(xué)版),2007(3).[5] 郭麗紅,芮雄麗,[J].南京工程學(xué)院學(xué)報(自然科學(xué)版),2007(3).[6] 扈宏毅,[J].計算機應(yīng)用,2002(4).[7] 王克才,[J].汽車應(yīng)用,1995(1).[8] 張鑫. 單片機原理及應(yīng)用[M]. 北京:電子工業(yè)出版社,2005. [9] 譚浩強. C程序設(shè)計[M]. 北京:清華大學(xué)出版社,2005.[10] 周興華. 手把手教你學(xué)單片機C程序設(shè)計[M]. 北京:北京航空航天大學(xué),2007.[11] AT89S52 Datasheet,ATMEL公司,2008.[12] SHT1X(SHT10,SHT11,SHT15)Datasheet,盛世瑞恩公司,2009.附錄1附錄2英文原文:THE NECKLACE —Guy de MaupassantMathilde Loisel was one of those poor girls, pretty,charming and romantic,who,in spite of their romantic dreams,are married to a mediocrity.Her husband was a clerk in the Ministry of Education.One evening her husband came home with an air of triumph.“I have something nice for you,”he said,giving her a large envelope.She tore open the envelope,which contained the following printed card:“The Minister of Education and Madame Georges Ramponneau have the honour to request the pany of Monsieur and Madame Loisel at the office of the Ministry on Monday evening,January 18th.”She did not seem delighted.On the contrary,she flung the invitation card on the table,and said spitefully:“What39。d be pleased.You like a dance,don39。s the matter?”he asked anxiously.“Nothing,”she answered with an effort.“It39。t a suitable dress,and so I can39。m not sure, but I think I could manage with four hundred francs.”The husband turned a little pale.She had named the exact sum he had saved to buy a gun to enjoy shooting on the plain of Nanterre next summer with a few friends.But he replied: “All right.You shall have four hundred francs.Mind you get a really nice dress.”The day of the ball drew near.Although Madame Loisel had got her coveted dress, she seemed far from pleased.“What is the matter?”her husband