鉛酸蓄電池智能充電器_第1頁
鉛酸蓄電池智能充電器_第2頁
鉛酸蓄電池智能充電器_第3頁
鉛酸蓄電池智能充電器_第4頁
鉛酸蓄電池智能充電器_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2010屆本科畢業(yè)論文(設(shè) 計)論文(設(shè)計)題目 鉛酸蓄電池智能充電器學(xué)生姓名: 所在系別:_新 科 學(xué) 院 所學(xué)專業(yè):_電子信息工程 導(dǎo)師姓名:_ 完成時間: 2010年05月25日 鉛酸蓄電池智能充電器摘 要:本系統(tǒng)以AT8952單片機(jī)為核心,使用大功率開關(guān)電源,利用脈寬調(diào)制產(chǎn)生可用軟件控制的充電電源,以適應(yīng)不同階段的充電電流的要求。溫度傳感器對電池溫度進(jìn)行監(jiān)測,并通過/轉(zhuǎn)換和實(shí)時采集電池的電壓、電流,對充電過程進(jìn)行智能控制,以判斷電池到達(dá)哪個階段,同時在適當(dāng)時候?qū)﹄姵剡M(jìn)行放電,并不斷對電池的內(nèi)阻進(jìn)行實(shí)時監(jiān)測,最后達(dá)到使用充電時間最短,對電池修復(fù)效果最好的目的。本設(shè)計還具有液晶顯示充電狀態(tài)

2、功能,還可以通過串口和上位機(jī)實(shí)現(xiàn)單片機(jī)與電腦通信,從而利用上位機(jī)對充電電流、電池電壓、放電電流、以及充放電相關(guān)曲線等進(jìn)行顯示。關(guān)鍵字:開關(guān)電源,鉛酸蓄電池,智能充電器Abstract: This system AT8952 microcontroller core, using high-power switching power supply, use of available software generated PWM pulse width modulation control of the charging power supply to meet the different sta

3、ges of charging current requirements. Temperature sensor to monitor the battery temperature, and through A / D conversion and real-time acquisition battery voltage, current, intelligent control of the charging process, to determine at what stage the battery to reach, while at the appropriate time to

4、 discharge the battery and keep the battery real-time monitoring of internal resistance, and finally reached the shortest charge time, battery repair best purpose.The design also features a liquid crystal display charge status can also be achieved through the serial port and PC microcomputer and com

5、puter communications, which use PC on the charge current, battery voltage, discharge current, and the related charge and discharge curves to display.Keywords: switching power supply, lead-acid batteries, smart charger目錄目錄4引言51. 方案論證與比較51.1 電源模塊51.2 充電方法53、工作原理62.1 電源電路72.2 延時與報警電路92.3 充、放電與維護(hù)電路102.4

6、 數(shù)據(jù)采樣與轉(zhuǎn)換電路102.5 溫度傳感電路122.6 顯示電路122.7 上位機(jī)通信模塊123、單片機(jī)軟件設(shè)計133.1軟件功能133.2流程圖144、安裝與調(diào)試145、結(jié)論14參考文獻(xiàn)16附錄1 電路原理總圖17附錄2(程序清單):18附錄3(元器件清單):27引言鉛酸蓄電池是目前世界上廣泛使用的一種化學(xué)電源,該產(chǎn)品具有良好的可逆性,電壓特性平穩(wěn),使用壽命長,適用范圍廣,原材料豐富(且可再生使用)及造價低廉等優(yōu)點(diǎn)而得到了廣泛的使用。是社會生產(chǎn)經(jīng)營活動中不可缺少的產(chǎn)品。但是,若使用不當(dāng),其壽命將大大縮短。影響鉛酸蓄電池壽命的因素很多,而采用正確的充電方式,能有效延長蓄電池的使用壽命。研究發(fā)現(xiàn)

7、:電池充電過程對電池壽命影響最大,放電過程的影響較少。也就是說,絕大多數(shù)的蓄電池不是用壞的,而是“充壞”的。由此可見,一個好的充電器對蓄電池的使用壽命具有舉足輕重的作用。而且,傳統(tǒng)充電器的充電策略比較單一,只能進(jìn)行簡單的恒壓或者恒流充電,以致充電時間很長,充電效率降低。另外,充電即將結(jié)束時,電池發(fā)熱量很大,從而造成電池極化,影響電池壽命。針對上述問題,設(shè)計了一種智能充電器,盡量延長鉛酸蓄電池的使用壽命。1. 方案論證與比較1.1 電源模塊1.1.1方案一 普通電源:市電經(jīng)過電源變壓器將高壓交流電轉(zhuǎn)化成低壓交流電,再通過整流濾波,將交流電轉(zhuǎn)化為直流電,濾除整流輸出的剩余交流成分,最后輸出穩(wěn)定的直

8、流電壓。它具有輸出電壓穩(wěn)定、波紋小等優(yōu)點(diǎn),但是電壓范圍小,效率低。1.1.1方案二 開關(guān)電源:市電進(jìn)入電源,首先要經(jīng)過扼流圈和電容,濾除高頻雜波和同相干擾信號。然后再經(jīng)過電感線圈和電容,進(jìn)一步濾除高頻雜波。接下來再經(jīng)過由4個二極管組成的全橋電路整流(也有半橋等其他電路),和大容量的濾波電容濾波后,電流才由高壓交流電轉(zhuǎn)換為高壓直流電。經(jīng)過了交直轉(zhuǎn)換后,電流就進(jìn)入了整個電源最核心的部分:開關(guān)電路。開關(guān)電路主要由兩個開關(guān)管組成,通過它們的輪流導(dǎo)通和截止,便將直流電轉(zhuǎn)換為高頻率的脈動直流電。接下來,再送到高頻開關(guān)變壓器上進(jìn)行降壓。經(jīng)過高頻開關(guān)變壓器降壓后的脈動電壓,同樣要使用二極管和濾波電容進(jìn)行整流和

9、濾波,此外還會有1、2個電感線圈與濾波電容一起濾除高頻交流成分。最后成為設(shè)備所需要的較為純凈的低壓直流電。它是近代普遍推廣的穩(wěn)壓電源,具有效率高、電壓范圍寬,輸出電壓相對穩(wěn)定等特點(diǎn)。所以,本設(shè)計選取方案二。1.2 充電方法1.2.1方案一 恒流充電法:電流維持在恒定值的充電。是一種廣泛采用的充電方法。此法的優(yōu)點(diǎn)是可以根據(jù)蓄電池的容量確定充電電流值,直接計算充電量并確定充電完成的時間。恒流充電法是用調(diào)整充電裝置輸出電壓或改變與蓄電池串聯(lián)電阻的方法,保持充電電流強(qiáng)度不變的充電方法,如圖1所示??刂品椒ê唵?,但由于電池的可接受電流能力是隨著充電過程的進(jìn)行而逐漸下降的,到充電后期,充電電流多用于電解水

10、,產(chǎn)生氣體,使出氣過甚。圖(1)恒流充電法曲線圖(2)恒壓充電法曲線1.2.2方案二 恒壓充電法:充電電源的電壓在全部充電時間里保持恒定的數(shù)值,隨著蓄電池端電壓的逐漸升高,電流逐漸減少。與恒流充電法相比,其充電過程更接近于最佳充電曲線。用恒定電壓快速充電,如圖2所示。由于充電初期蓄電池電動勢較低,充電電流很大,隨著充電的進(jìn)行,電流將逐漸減少,因此,只需簡易控制系統(tǒng)。這種充電方法電解水很少,避免了蓄電池過充。但在充電初期電流過大,對蓄電池壽命造成很大影響,且容易使蓄電池極板彎曲,造成電池報廢。鑒于這種缺點(diǎn),恒壓充電很少使用,只有在充電電源電壓低而電流大時采用。1.2.3方案三 變電壓變電流波浪式

11、間歇正負(fù)零脈沖快速充電法:脈沖充電法充電電路的控制一般有兩種:1)脈沖電流的幅值可變,而PWM(驅(qū)動充放電開關(guān)管)信號的頻率是固定的;2)脈沖電流幅值固定不變,PWM信號的頻率可調(diào)。變電壓變電流波浪式正負(fù)零脈沖間歇快速充電法如圖(3)所示采用了一種脈沖電流幅值和PWM信號的頻率均固定,PWM占空比可調(diào),在此基礎(chǔ)上加入間歇停充階段,能夠在較短的時間內(nèi)充進(jìn)更多的電量,提高蓄電池的充電接受能力。所以選擇方案三。圖(3)波浪式間歇正負(fù)零脈沖快速充電3、工作原理智能充電器系統(tǒng)工作原理如下所示。主要包括電源變換電路、PWM控制器、電容電感儲能電路、充電電路、電池組、放電電路、采樣電路、上位機(jī)等,形成了一個

12、閉環(huán)系統(tǒng)。采樣電路電源變換電路PWM控制器電流電感儲能電路單片機(jī)控制核心LCD顯示充電電路放電電路上位機(jī)電池組總體流程圖2.1 電源電路本設(shè)計中脈寬調(diào)制器(PWM)UC3842是開關(guān)電源的核心。它能產(chǎn)生頻率固定而占空比可調(diào)的控制電壓,通過改變開關(guān)功率管的通斷狀態(tài),來調(diào)節(jié)輸出電壓的高低,實(shí)現(xiàn)穩(wěn)壓目的。例如由于某種原因V0升高時,就改變控制電壓占空比,使斬波后的電壓平均值下降,導(dǎo)致V0下降,使V0趨于穩(wěn)定,反之亦然。UC3842的工作溫度是0+70,最高輸人電壓為30V,最大輸出電流為1A,能驅(qū)動雙極型功率管或VMOS管。(1)UC3842的結(jié)構(gòu)、功能及工作原理UC3842采用DIP8封裝,管腳排

13、列如圖(4)所示。第腳1是補(bǔ)償腳。外接阻容元件以補(bǔ)償誤差放大器的頻率特性。第2腳是反饋端,將取樣電壓加至誤差放大器的反相輸入端,再與同相輸入端的基準(zhǔn)電壓進(jìn)行比較,產(chǎn)生誤差電壓。第3腳接過流檢測電阻,構(gòu)成過流保護(hù)電路。第4腳RT/CT為鋸齒波振蕩器外部定時電阻與定時電容公共端。引腳8為內(nèi)部基準(zhǔn)電壓VRET=5.0V。引腳7為輸入電壓。引腳6為輸出電壓v0則取決于高頻變壓器的變壓比。引腳5為接地端。Uc3842(2)主要參數(shù)的確定由UC3842構(gòu)成的開關(guān)電源屬于單端反激變換器式。其工作頻率盡管可達(dá)500KHZ,但受制作工藝、開關(guān)功率管頻率特性等因素的限制,通常將f0設(shè)計在幾十千赫以下。使VMOS管

14、時,f0約等于40KHZ,用雙極型開關(guān)功率管時,f0約等于20KHZ為宜,當(dāng)電路起振后,用示波器從UC3842的第4腳可觀察到幅度約為1.5V,周期為25us的鋸齒波。下圖所示電路既是開關(guān)電源的整體電路圖圖(5)開關(guān)電源由上面的公式可以計算出N1為55匝,采用單股0.5mm高強(qiáng)度漆包線;N2為7匝,采用單股0.5mm高強(qiáng)度漆包線;N3為8匝,采用雙股0.5mm高強(qiáng)度漆包線并聯(lián)后繞制而成,其輸出電壓為22V。N4為6匝,采用五股0.5mm高強(qiáng)度漆包線并聯(lián)后繞制而成,其輸出電壓為16V。N5為4匝,采用單股0.5mm高強(qiáng)度漆包線,其輸出電壓為9V,經(jīng)7805穩(wěn)壓后輸出5V電壓。由UC3842構(gòu)成的

15、開關(guān)電源電路如圖(5)所示。其基本工作原理是:交流輸人電壓經(jīng)過整流濾波電路變成直流電壓V1,再被開關(guān)功率管斬波和高頻變壓器降壓,得到高頻矩形波電壓最后經(jīng)過整流、濾波獲得所需要的直流輸出電壓。圖中C1和L1為電源噪聲濾波器,T為高頻變壓器,開關(guān)功率管選用IRFPG50型VMOS管。剛開機(jī)時,220V交流電壓首先經(jīng)過C1和L1濾掉射頻干擾,再經(jīng)過橋式整流和濾波,產(chǎn)生約+300V的直流電壓,然后經(jīng)R1降壓后向UC3842提供16V的啟動電壓。C2是濾波電容。進(jìn)人正常狀態(tài)后,自饋線圈N2上的高頻電壓經(jīng)過D2、C4整流濾波,就作為UC3842的正常工作電壓。R14是斜坡補(bǔ)償電阻。取R15=10u、C15

16、=4700PF時,開關(guān)頻率501.8/R15C1550KHZ、C14是消噪電容,R18為過流檢測電阻。R16是VMOS管的柵極限流電阻。由D3、C5、R2構(gòu)成吸收回路,用以吸收尖峰電壓。D2,D3選用快恢復(fù)二極管。D4,D5,D8為輸出級的整流管,采用肖特基二極管,以滿足高頻、大電流整流之需要。2.2 延時與報警電路當(dāng)單片機(jī)開始工作的一瞬間,各端口均輸出高電平,此時充放電路中的場效應(yīng)管Q2和Q4同時導(dǎo)通,此電路的電流將瞬間很大,容易使電路中的器件損壞,故添加如圖(6)所示的延時電路,PWIN1由單片機(jī)的P1.5端口控制,當(dāng)其輸出為高電平時,Q9導(dǎo)通。PWIN2由單片機(jī)的P1.6端口控制,當(dāng)其輸

17、出為高電平時,Q10導(dǎo)通。PWIN3由單片機(jī)的P1.7端口控制,當(dāng)其輸出為高電平時,Q12導(dǎo)通圖(6)延時與報警電路輸出電鈴信號2.3 充、放電與維護(hù)電路接TL431的1腳圖(7)充放電維護(hù)電路如圖(7)所示,單片機(jī)AT89S52的P1.5,P1.6,P1.7口經(jīng)過延時電路后控制充電電池的3個階段。電路上電后,由軟件控制檢測電池內(nèi)阻,并判斷其在電池的哪個階段。確定后,例如在維護(hù)階段,通過控制P3_4,來調(diào)節(jié)R26的變化,來調(diào)節(jié)TL431電流的變化。通過光藕合器來反饋到芯片UC3842,如圖(5)所示。調(diào)節(jié)后,來控制輸出的變化,由電壓器來調(diào)節(jié)輸出電壓的變化,以此來調(diào)節(jié)電壓的變化。從而達(dá)到三個階段

18、的轉(zhuǎn)換。2.4 數(shù)據(jù)采樣與轉(zhuǎn)換電路ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖(8)所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型D/A轉(zhuǎn)換器、逐次逼近。ADC0809芯片有28條引腳,采用雙列直插式封裝。IN0IN7:8路模擬量輸入端。2-12-8:8位數(shù)字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路ALE:地址鎖存允許信號,輸入,高電平有效。START:AD轉(zhuǎn)換啟動信號,輸入,高電平有效。EOC:AD轉(zhuǎn)換結(jié)束信號,輸出,當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。OE:數(shù)據(jù)輸出允許信號,輸入,

19、高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。REF(+)、REF(-):基準(zhǔn)電壓。Vcc:電源,單一5V。GND:地。圖(8)數(shù)據(jù)采樣與轉(zhuǎn)換電路數(shù)據(jù)采樣與轉(zhuǎn)換電路的工作過程如圖(8)所示:由于ADC0809的時鐘頻率不高于640KHZ,單片機(jī)的時鐘頻率為22.118MHZ,所以將單片機(jī)的時鐘頻率經(jīng)74LS293八分頻后再提供給ADC0809使用,由74LS293的8腳輸出至ADC0809的10腳CLOCK。數(shù)據(jù)采樣是利用AD0809模數(shù)轉(zhuǎn)換芯片,對所需的四個點(diǎn)IN_0、IN_1、IN_2、IN_3的

20、電壓值采樣,對采樣值分別經(jīng)過26、27、28和1端口輸入ADC0809進(jìn)行AD轉(zhuǎn)換。由于AD0809采樣值不能超過5V,所以經(jīng)過了電阻分壓。首先由單片機(jī)P2.6和P2.7輸入2位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通4路模擬輸入IN-0、IN-1、IN-2和IN-3之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動AD轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到AD轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示AD轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。當(dāng)EOC變?yōu)楦唠娖綍r,這時

21、給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就由D0D7輸出給單片機(jī)了。2.5 溫度傳感電路蓄電池的容量與溫度成正相關(guān)的方向,溫度每上升1度,容量就上升原來的0.8%.鉛酸蓄電池在大于40度,再升高10度,電池的壽命就降低一倍.壽命中止的主要原因:電解質(zhì)干涸,熱失控,和內(nèi)部短路等等。因此在為電池充電時要注意冬夏的溫度差異,按環(huán)境溫度調(diào)節(jié)充電的充電電壓,使蓄電池不被損壞,并且能充滿電。所以,我們專門設(shè)計了一個數(shù)字溫度傳感電路,如圖(9)所示。DS18B20的溫度檢測與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個芯片之上,抗干擾力更強(qiáng)。其一個工作周期可分為兩個部分,即溫度檢測和數(shù)據(jù)處理,檢測溫度范圍為55°C+125

22、6;C(67°F+257°F)。它可以將感應(yīng)到的溫度數(shù)值直接傳遞給單片機(jī),單片機(jī)接到信息后通過內(nèi)部程序選擇充電參數(shù)值。圖(9)溫度傳感電路2.6 顯示電路顯示電路比較簡單,用單片機(jī)編程控制LCD1602的顯示,使LCD1602按照我們的需要顯示,編寫程序時需要嚴(yán)格按照其工作時序編寫。其外圍電路電路連接如圖(10)所示。D0D7端口接單片機(jī)P0口,由于P0端口已用于控制AD0809,為了解決端口沖突,加入74HC573鎖存器。另外的讀寫控制、使能端及數(shù)據(jù)、命令選擇端也要單獨(dú)分配單片機(jī)I/O端口控制。圖(10)顯示電路2.7 上位機(jī)通信模塊該電路主要用于單片機(jī)與外部通信,輸出電

23、池的充電及放電參數(shù),與外部電路通訊,在屏幕上顯示出電池的充電與放電過程曲線。這一過程主要由上位機(jī)程序控制,MAX232的連接電路如圖(11)所示。人可以直接發(fā)出操控命令的計算機(jī),一般是PC,屏幕上顯示各種信號變化(液壓,水位,溫度等)。,發(fā)出的命令首先給上位機(jī),上位機(jī)再根據(jù)此命令解釋成相應(yīng)時序信號直接控制相應(yīng)設(shè)備。上位機(jī)不時讀取設(shè)備狀態(tài)數(shù)據(jù)(一般模擬量),轉(zhuǎn)化成數(shù)字信號反饋給。簡言之如此,真實(shí)情況千差萬別不離其宗。上位機(jī)需要編程,都有專門的開發(fā)系統(tǒng)圖(11)上位機(jī)通信電路3、單片機(jī)軟件設(shè)計3.1軟件功能該軟件的目的是控制電池充電及維護(hù)終點(diǎn)及狀態(tài)顯示。當(dāng)電池放入該智能充電器時,我們可以人為選擇充

24、電狀態(tài)與維護(hù)狀態(tài),然后讀入溫度傳感器環(huán)境溫度,決定電池充電或維護(hù)狀態(tài)的最終電壓。再由程序控制充電及維護(hù)I/O口電平的高低,選擇是對電池充電還是維護(hù)。在由ADC0809采樣的電壓判斷電池維護(hù)或充電的終止時刻,并由內(nèi)部程序計算出電池充電電流、充電電壓、電池內(nèi)阻等參數(shù)輸出給LCD1602,由其顯示電池狀態(tài)。3.2流程圖4、安裝與調(diào)試將PCB布置好后,我們就可以將其打出來制作印制電路板了。由于印制板是我們自己制作所以對孔十分重要,要是歪了,板子就要重新弄。印制板做好后就可以把對應(yīng)元件安裝上去了,但是對于單片機(jī)由于我們要調(diào)試程序所以不能直接焊接,要安裝一個插座。C語言源程序用KEICL51編譯成目標(biāo)文件

25、即HEX文件,再用下載器將HEX文件寫入AT89S52芯片。5、結(jié)論我們這次設(shè)計程序比較有難度,要完成設(shè)計要求要求要考慮的東西很多,同時我們還完成了一些發(fā)揮部分的設(shè)計,該智能充電器可以與電腦連接,顯示輸出充電、放電過程曲線。但是在設(shè)計時由于考慮不夠全面,使用鎖存器74HC573不當(dāng),導(dǎo)致LCD1602的數(shù)據(jù)不能回送而不能使用。在調(diào)試電路板時,硬件布局也出現(xiàn)一些問題。參考文獻(xiàn)1康華光等,電子技術(shù)基礎(chǔ)模擬部分,北京:高等教育出版社,1999,第四版,106-111。2康華光等,電子技術(shù)基礎(chǔ)數(shù)字部分,北京:高等教育出版社,2000,第四版,40-573李全利,單片機(jī)原理及接口技術(shù),北京:高等教育出版

26、社,2004.1。4張毅剛等,單片機(jī)原理及應(yīng)用,北京:高等教育出版社,2004。6全國大學(xué)生電子設(shè)計競賽組委會,全國大學(xué)生電子設(shè)計競賽獲獎作品匯編(第一屆第五屆),北京:北京理工大學(xué)出版社,2004,12-50。7龔運(yùn)新,單片機(jī)C語言開發(fā)技術(shù)北京:清華大學(xué)出版社2206.10。8唐穎,單片機(jī)原理與應(yīng)用及C51程序設(shè)計,北京大學(xué)出版社,2008第一版。9王水平等,單片機(jī)開關(guān)電源集成電路應(yīng)用設(shè)計實(shí)例,人民郵電出版社,2008第一版。10網(wǎng)絡(luò)資料。附錄1 電路原理總圖附錄2(程序清單):#include <reg52.h> #include <intrins.h>#defin

27、e uint unsigned int#define uchar unsigned char#define Nop() _nop_()sbit lcd_rs_port = P21; /*定義LCD控制端口*/sbit lcd_rw_port = P22; /*定義LCD控制端口*/sbit lcd_en_port = P23; /*定義LCD控制端口*/#define lcd_data_port P0 /*定義LCD控制端口*/sbit DQ =P13; /定義DS18B20通信端口sbit a=P25;sbit b=P26;sbit ALE=P27;sbit EOC=P32;sbit ST=

28、P20;sbit OE=P36;uint info;uchar da="000a000b000c000d000"/*1MS為單位的延時程序*/void init() /* 串口定時器外部中斷初始化 */ /TMOD = 0x21; /TH1 = 0xfd; /TL1 = 0xfd; /* 9600 */TR1 = 1; /SCON = 0x50; /* 工作在方式1*/P0=0x00;P1=0x00;P2=0x00;P3=0x00;EOC=1;ALE=0;ST=0;OE=0;void delay_1ms(uchar x) uchar j; while(x-) for(j=0

29、;j<125;j+); void lcd_delay(uchar ms) /*LCD1602 延時*/ uchar j; while(ms-) for(j=0;j<250;j+) ; void lcd_busy_wait() /*LCD1602 忙等待*/ lcd_rs_port = 0; lcd_rw_port = 1; lcd_en_port = 1; lcd_data_port = 0xff; while (lcd_data_port&0x80); lcd_en_port = 0; void lcd_command_write(uchar command) /*LCD

30、1602 命令字寫入*/ lcd_busy_wait(); lcd_rs_port = 0; lcd_rw_port = 0; lcd_en_port = 0; lcd_data_port = command; lcd_en_port = 1; lcd_en_port = 0; void lcd_system_reset() /*LCD1602 初始化*/ lcd_delay(20); lcd_command_write(0x38); lcd_delay(100); lcd_command_write(0x38); lcd_delay(50); lcd_command_write(0x38);

31、 lcd_delay(10); lcd_command_write(0x08); lcd_command_write(0x01); lcd_command_write(0x06); lcd_command_write(0x0c); lcd_data_port = 0xff; /*釋放數(shù)據(jù)端口*/void lcd_char_write(uchar x_pos,y_pos,lcd_dat) /*LCD1602 字符寫入*/ x_pos &= 0x0f; /* X位置范圍 015 */ y_pos &= 0x01; /* Y位置范圍 0 1 */ if(y_pos=1) x_pos

32、+= 0x40; x_pos += 0x80; lcd_command_write(x_pos); lcd_busy_wait(); lcd_rs_port = 1; lcd_rw_port = 0; lcd_en_port = 0; lcd_data_port = lcd_dat; lcd_en_port = 1; lcd_en_port = 0; lcd_data_port = 0xff; /*釋放數(shù)據(jù)端口*/void lcd_bad_check() /*LCD1602 壞點(diǎn)檢查*/ char i,j; for(i=0;i<2;i+) for(j=0;j<16;j+) lcd_

33、char_write(j,i,0xff); lcd_delay(200); lcd_delay(200);lcd_delay(200);lcd_delay(100);lcd_delay(200); lcd_command_write(0x01); /* clear lcd disp */void ADread() a=0;b=0;ALE=1;ST=1;Nop();ALE=0;ST=0; P0=0xff;while(EOC=1); OE=1; info=P0; OE=0;info=(info*40)/51; da0=info/100+0x30; da1=info%100/10+0x30; da2

34、=info%10+0x30; a=1;b=0;ALE=1;ST=1;Nop();ALE=0;ST=0; P0=0xff;while(EOC=1); OE=1; info=P0; OE=0;info=(info*40)/51; da4=info/100+0x30; da5=info%100/10+0x30; da6=info%10+0x30; a=0;b=1;ALE=1;ST=1;Nop();ALE=0;ST=0; P0=0xff;while(EOC=1); OE=1; info=P0; OE=0;info=(info*40)/51; da8=info/100+0x30; da9=info%10

35、0/10+0x30; da10=info%10+0x30; a=1; b=1; ALE=1;ST=1;Nop();ALE=0;ST=0; P0=0xff;while(EOC=1); OE=1; info=P0; OE=0;info=(info*40)/51; da12=info/100+0x30; da13=info%100/10+0x30; da14=info%10+0x30;/以下是DS18B20驅(qū)動程序/延時函數(shù)void delay(unsigned int i)while(i-);/初始化函數(shù)Init_DS18B20(void)uchar x=0;DQ = 1; delay(8); D

36、Q = 0;delay(80); DQ = 1; delay(14);x=DQ; delay(20);/讀一個字節(jié)ReadOneChar(void)uchar i=0;uchar dat = 0;for (i=8;i>0;i-)DQ = 0; dat>>=1;DQ = 1; if(DQ) dat|=0x80;delay(4);return(dat);/寫一個字節(jié)WriteOneChar(unsigned char dat)uchar i=0;for (i=8; i>0; i-)DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>

37、;>=1;/讀取溫度ReadTemperature(void)uchar a=0;uchar b=0;uint t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0x44); Init_DS18B20();WriteOneChar(0xCC); WriteOneChar(0xBE); a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*0.0625; t= tt*10+0.5; da16=t/100+0x30;da17=t%100/10+0x30;d

38、a18=t%10+0x30;/以上是DS18B20驅(qū)動程序/void main()uchar i;init();lcd_system_reset();lcd_bad_check();while(1)delay_1ms(1000);delay_1ms(1000);delay_1ms(1000);delay_1ms(1000);delay_1ms(1000);delay_1ms(1000);delay_1ms(1000);delay_1ms(1000);delay_1ms(1000); ADread(); delay_1ms(1000); ReadTemperature(); lcd_char_w

39、rite(0,1,da12); lcd_char_write(1,1,da13); lcd_char_write(2,1,da14); for(i=0;i<16;i+) lcd_char_write(i,0,dai); 附錄3(元器件清單):Part TypeDesignatorFootprintDescription0.1uC24RAD0.1Capacitor0.1uC26RAD0.1Capacitor0.1uC3RAD0.1Capacitor0.1uC27RAD0.1Capacitor0.1uC25RAD0.1Capacitor0.1uC28RAD0.1Capacitor0.2/2W

40、R20AXIAL0.40.2/2WR7AXIAL0.40.22u/280VC1Capacitor1KR22AXIAL0.41N4007D2DIODE-0.7Diode1N5408D7DO-27Diode1N5408D8DO-27Diode1kR35AXIAL0.41kR48AXIAL0.41kR32AXIAL0.41kR28AXIAL0.41kR34AXIAL0.41kR59AXIAL0.41kR61AXIAL0.41kR39AXIAL0.41kR29AXIAL0.41kR44AXIAL0.41kR5AXIAL0.41kR9AXIAL0.41kR46AXIAL0.41kR4AXIAL0.41k

41、R31AXIAL0.43.3uHL33.3uHL44.7kR19AXIAL0.45.1kR60AXIAL0.45.1kR8AXIAL0.45/10WR27AXIAL0.45A/250VF1Fuse5kR55SIP3Potentiometer5kR54SIP3Potentiometer5kR53SIP3Potentiometer5kR52SIP3Potentiometer7.5kR49AXIAL0.47.5kR36AXIAL0.47.5kR50AXIAL0.47.5kR51AXIAL0.48*10kJ3SIP9Connector10kR14AXIAL0.410kR6AXIAL0.410kR11A

42、XIAL0.410kR3AXIAL0.410kR17AXIAL0.410kR42AXIAL0.410kR15AXIAL0.410kR40AXIAL0.410kR21AXIAL0.410kR33AXIAL0.410kR30AXIAL0.410kR37AXIAL0.410kR10AXIAL0.410kR12SIP3Potentiometer10kR47SIP3Potentiometer10kR45SIP3Potentiometer10kR43SIP3Potentiometer10uC17RB.2/.4Electrolytic Capacitor10uC31RB.2/.4Electrolytic C

43、apacitor10uC29RB.2/.4Electrolytic Capacitor10uC35RB.2/.4Electrolytic Capacitor10uC38RB.2/.4Electrolytic Capacitor10uC33RB.2/.4Electrolytic Capacitor10uC12RB.2/.4Electrolytic Capacitor10uC39RB.2/.4Electrolytic Capacitor22R16AXIAL0.422.1184MY1RAD0.3Crystal22k/1wR2AXIAL0.430pC22RAD0.1Capacitor30pC23RAD

44、0.1Capacitor32kR57AXIAL0.432kR58AXIAL0.432kR56AXIAL0.432kR38AXIAL0.447R13AXIAL0.447kR41AXIAL0.450kR26SIP3Potentiometer74HC573U4DIP2074LS293U5DIP144-Bit Binary Counter102C36RAD0.1Capacitor102C13RAD0.1Capacitor102C16RAD0.1Capacitor103C14RAD0.1Capacitor104C21RAD0.1Capacitor104C41RAD0.1Capacitor104C19RAD0.1Capacitor104C30RAD0.1Capacito

溫馨提示

  • 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

提交評論