

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)論文(設(shè)計(jì))</b></p><p> 題 目 太陽能充電控制器設(shè)計(jì) </p><p> 2015 年 5 月 8 日</p><p><b> 摘 要</b></p><p> 太陽能光伏發(fā)電現(xiàn)已成為新能源和可再生能源
2、的重要組成部分,也被認(rèn)為是當(dāng)前世界最有發(fā)展前景的新能源技術(shù)。目前太陽能光伏發(fā)電裝置已廣泛應(yīng)用于通訊,交通,電力等各個(gè)方面,其核心部分就是充電控制器。</p><p> 在總體方案的指導(dǎo)下,本設(shè)計(jì)使用低功耗、高性能,超強(qiáng)抗干擾的STC89C52單片機(jī)作為核心器件對(duì)整個(gè)電路進(jìn)行控制。系統(tǒng)硬件電路由太陽能電池充放電電路,電壓采集和顯示電路,單片機(jī)控制電路和RS232串口通信電路組成,主要實(shí)現(xiàn)對(duì)蓄電池電壓的采集和顯示。
3、軟件部分依據(jù)PWM(Pulse Width Modulation)脈寬調(diào)制控制策略,編制程序使單片機(jī)輸出PWM控制信號(hào),通過控制光電耦合器通斷進(jìn)而控制MOSFET管開啟和關(guān)閉,達(dá)到控制蓄電池充放電的目的,同時(shí)按照功能要求實(shí)現(xiàn)了對(duì)蓄電池過充、過放保護(hù)和短路保護(hù)。實(shí)驗(yàn)表明,該控制器性能優(yōu)良,可靠性高,可以時(shí)刻監(jiān)視太陽能電池板和蓄電池狀態(tài),實(shí)現(xiàn)控制蓄電池最優(yōu)充放電,達(dá)到延長(zhǎng)蓄電池的使用壽命。</p><p><b
4、> 關(guān)鍵詞:</b></p><p> 充電控制器 太陽能光伏發(fā)電 PWM脈寬調(diào)制</p><p><b> Abstract</b></p><p> Solar photovoltaic power generation has become an important part of new energy a
5、nd renewable energy, it is considered the current world's most promising new energy technologies. At present solar photovoltaic device has been widely used in communications, transport, electricity and other aspects,
6、 the core part is the charge controller. </p><p> Under the guidance of the overall program, the design uses low-power, high performance, super anti-jamming STC89C52 microcontroller as a core device to cont
7、rol the entire circuit. Hardware circuit consists of a solar battery charging and discharging circuit, voltage acquisition and display circuit, the MCU control circuit and RS232 serial communication circuit, the main ach
8、ievement of the acquisition and display battery voltage. Software is based in part on PWM (Pulse Width Modulation) pultion c</p><p> Keywords: charge controller, solar photovoltaic, PWM pulse width modulati
9、on</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractI</p><p><b> 目 錄- 1 -</b></p><p> 1 緒論- 1 -</p>
10、;<p> 1.1 課題研究背景和意義- 1 -</p><p> 1.2 太陽能充放電控制器現(xiàn)狀- 2 -</p><p> 1.3 設(shè)計(jì)主要任務(wù)- 3 -</p><p> 2 太陽能充電控制器的總體設(shè)計(jì)方案- 4 -</p><p> 2.1 太陽能路燈系統(tǒng)基本結(jié)構(gòu)- 4 -</p>&l
11、t;p> 2.2 充電控制器的控制策略- 7 -</p><p> 2.3 STC89C52的簡(jiǎn)介- 8 -</p><p> 2.4 ADC0804的簡(jiǎn)介- 10 -</p><p> 2.5 MAX232芯片簡(jiǎn)介- 11 -</p><p> 2.6 1602液晶顯示介紹- 13 -</p>&l
12、t;p> 3 太陽能充電控制器的電路設(shè)計(jì)- 14 -</p><p> 3.1控制器的整體設(shè)計(jì)方案- 15 -</p><p> 3.2 擴(kuò)展電路- 16 -</p><p> 3.3 充放電電路- 17 -</p><p> 3.4光耦驅(qū)動(dòng)電路- 18 -</p><p> 3.5 A/
13、D轉(zhuǎn)換電路- 19 -</p><p> 3.5.1 ADC0804構(gòu)成的典型A/D轉(zhuǎn)換電路- 20 -</p><p> 3.6 LCD顯示電路- 20 -</p><p> 3.7 E2PROM數(shù)據(jù)存儲(chǔ)電路- 21 -</p><p> 3.8 串口通信電路- 22 -</p><p> 4
14、 總結(jié)與展望- 25 -</p><p> 致 謝- 27 -</p><p> 參考文獻(xiàn)- 28 -</p><p> 附錄Ⅰ 源程序- 29 -</p><p> 附錄Ⅱ 硬件電路圖- 38 -</p><p><b> 1 緒論</b></p><p&
15、gt; 1.1 課題研究背景和意義</p><p> 隨著經(jīng)濟(jì)的發(fā)展,能源問題日益凸顯。伴隨著國(guó)際石油價(jià)格不斷上漲,常規(guī)能源已經(jīng)不能滿足世界經(jīng)濟(jì)快速增長(zhǎng)的需要,解決能源問題,是每個(gè)國(guó)家都必須面臨的問題。煤和石油的大量使用已經(jīng)開始造成全球變暖,即“溫室效應(yīng)",人類的生活將會(huì)由此受到很大的威脅。這些難題迫使政府和社會(huì)在發(fā)展常規(guī)能源的同時(shí)必須加大對(duì)新能源的開發(fā)和利用。</p><p&g
16、t; 新能源包括水能、風(fēng)能、太陽能等。雖然風(fēng)能或水能等更加便宜,但,架設(shè)成本較高。而太陽能則不同。所以綜合考慮,太陽能無疑是符合我國(guó)可持續(xù)發(fā)展戰(zhàn)略的理想綠色能源,全球能源專家也認(rèn)為,太陽能將成為21世紀(jì)最重要也最有前景的能源之一。而且太陽輻射能與煤炭、石油等常規(guī)能源相比較,更有如下的優(yōu)點(diǎn):</p><p> ?。?)普遍性。太陽能隨處可見,取則可用。</p><p> ?。?)無害性。沒
17、有任何有害排放,沒有噪聲,清潔干凈。</p><p> ?。?)持續(xù)性。 太陽存在,就會(huì)有太陽能。</p><p> (4)巨大性。太陽輻射能總量是地球消耗的各種能量和的幾萬倍。</p><p> 我國(guó)有著豐富的太陽能資源。年日照時(shí)數(shù)在2200小時(shí)以上的地區(qū)約占國(guó)土面積的2/3以上。西藏、新疆、青海、內(nèi)蒙古等省的年日照時(shí)間長(zhǎng),這些地區(qū)面積寬廣、人口密集低,在一些
18、偏僻的地區(qū)傳統(tǒng)的供電設(shè)施建設(shè)成本高,電能的供需矛盾顯得十分突出,因此當(dāng)?shù)卣浞掷锰柲馨l(fā)電解決無電地區(qū)的用電具有重大的戰(zhàn)略意義。為了更高效的利用太陽能,白天可將太陽能轉(zhuǎn)化為電能,利用蓄電池將電能儲(chǔ)存起來,需要用電時(shí)即可由蓄電池供電。</p><p> 總體看來我國(guó)太陽能資源比較豐富,因此充分利用豐富的太陽能資源,采用太陽能光伏發(fā)電技術(shù),可以節(jié)約能源,發(fā)展經(jīng)濟(jì),提高人民生活水平。</p><
19、;p> 1.2 太陽能充放電控制器現(xiàn)狀</p><p> ?。?)太陽能光伏發(fā)電現(xiàn)狀</p><p> 太陽能作為新能源有著巨大的優(yōu)勢(shì),各國(guó)都十分重視太陽能發(fā)電技術(shù),且應(yīng)用十分廣泛。由于一般太陽能極板輸出電壓不穩(wěn)定,不能直接將太陽能極板應(yīng)用于負(fù)載,就需要電能儲(chǔ)存莊子,如鉛酸蓄電池。則必須使用充放電保護(hù),才能延長(zhǎng)蓄電池使用壽命,提高效率,因此需要充電控制器來控制工作過程。</
20、p><p> (2)充電控制器的作用及現(xiàn)狀</p><p> 太陽能充電控制器具備充電控制、過充保護(hù)、過放保護(hù)、防反接保護(hù)及短路保護(hù)等一系列功能,解決了這一難題,這樣控制器在這個(gè)過程中起著樞紐作用,它控制太陽能極板對(duì)蓄電池的充電,加快蓄電池的充電速度,延長(zhǎng)蓄電池的使用壽命。同時(shí)太陽能充放電控制器還控制蓄電池對(duì)負(fù)載的供電,保護(hù)蓄電池和負(fù)載電路,避免蓄電池發(fā)生過放現(xiàn)象,由此可見,控制器具有舉足
21、輕重的作用。</p><p> 目前市場(chǎng)控制器的問題是對(duì)蓄電池的保護(hù)不夠充分,不合適的充放電方式容易導(dǎo)致蓄電池的損壞,使蓄電池的使用壽命降低。另一方面,當(dāng)蓄電池給負(fù)載供電時(shí),由于控制器不能時(shí)刻檢測(cè)蓄電池的電壓,這樣很容易發(fā)生蓄電池的過放電,將會(huì)導(dǎo)致蓄電池的深度放電,嚴(yán)重影響其壽命。</p><p> 所以,如何改善太陽充控制器的充放電方式,開發(fā)性能優(yōu)良的充放電控制器,提高其在實(shí)際應(yīng)用中
22、的效率,成為了一個(gè)重要的研究方面。</p><p> 2 太陽能充電控制器的總體設(shè)計(jì)方案</p><p> 本章是運(yùn)用應(yīng)用實(shí)例,進(jìn)行綜合分析,明確控制器的作用,確定整體方案,本設(shè)計(jì)已太陽能光伏發(fā)電路燈系統(tǒng)為例,并對(duì)各個(gè)部分做詳細(xì)說明。</p><p> 2.1 太陽能路燈系統(tǒng)基本結(jié)構(gòu)</p><p> 本系統(tǒng)主要針對(duì)直流照明路燈進(jìn)行系
23、統(tǒng)設(shè)計(jì),所以構(gòu)成太陽能路燈系統(tǒng)主要有四大部分組成,即太陽能極板、蓄電池、充電控制器、照明電路。</p><p> 圖 2.1 太陽能路燈系統(tǒng)基本結(jié)構(gòu)</p><p> 由圖可知,太陽能極板陣列將太陽能轉(zhuǎn)換為電能并將電能存儲(chǔ)到蓄電池中,蓄電池再將存儲(chǔ)的電能輸出給照明電路供電,完成能量的傳遞。系統(tǒng)各個(gè)部分的控制功能全由充電控制器來完成。</p><p><b&
24、gt; (1)太陽能電池板</b></p><p> 如圖2.2所示,太陽能電池板是利用半導(dǎo)體光伏效應(yīng)制成的,能夠直接將太陽輻射轉(zhuǎn)換成電能的器件。具有很強(qiáng)的光伏效應(yīng)半導(dǎo)體材料,當(dāng)吸收一定能量的光子后其內(nèi)部導(dǎo)電的載流子電子和空穴分布和濃度發(fā)生變化。光照在半導(dǎo)體P/N結(jié)上,就會(huì)在其兩端產(chǎn)生光生電壓,接通外部電路,有電流流過電路,產(chǎn)生輸出功率。在這個(gè)過程中,光電池本身不發(fā)生任何化學(xué)反應(yīng),也沒有轉(zhuǎn)動(dòng)磨損,
25、因此使用太陽能電池的過程中沒有噪聲,沒有環(huán)境污染,這是其他方式發(fā)電不能比擬的。</p><p><b> ?。?)蓄電池</b></p><p> 這里首先介紹蓄電池工作原理。</p><p> 太陽能充電控制器最主要的功能是控制太陽能極板對(duì)蓄電池的充電,蓄電池的性能和充放電的方式有很大的關(guān)系,所以在設(shè)計(jì)控制器之前需要分析蓄電池的原理、充放
26、電過程。</p><p> 圖2.2 太陽能電池產(chǎn)生光伏效應(yīng)</p><p> 一般鉛酸蓄電池是由正極板、負(fù)極板、隔板、電池槽、電解液和接線端子等部分組成,極板主要有鉛制成,電解液是硫酸溶液。依據(jù)化學(xué)基礎(chǔ)理論:鉛酸蓄電池釋放化學(xué)能的過程(放電過程)是負(fù)極進(jìn)行氧化,正極進(jìn)行還原的過程;電池補(bǔ)充化學(xué)能的過程(充電過程)是負(fù)極進(jìn)行還原,正極進(jìn)行氧化的過程。分析可知,蓄電池的充電過程和放電過
27、程是可逆的。實(shí)際上,蓄電池最重要的指標(biāo)就是電解液中硫酸根的濃度,因此可以用電池中硫酸溶液的密度(比重)來衡量電池充放電的程度。工作原理搞懂了之后,接著看蓄電池在整個(gè)系統(tǒng)中的作用。</p><p> 在獨(dú)立的太陽能光伏發(fā)電系統(tǒng)中,蓄電池是整個(gè)系統(tǒng)的重要組成部分,是對(duì)整個(gè)系統(tǒng)性能可靠性影響比較大的部分。在光伏發(fā)電系統(tǒng)中,蓄電池的主要作用有:儲(chǔ)存能量、對(duì)太陽能極板的工作電壓的進(jìn)行鉗位、給負(fù)載提供啟動(dòng)電流等。蓄電池的存
28、在,可以解決太陽能產(chǎn)生電能和負(fù)載用電時(shí)間不一致不同步的問題,太陽能極板和負(fù)載兩者之間電壓不匹配的問題等。</p><p><b> ?。?)充電控制器</b></p><p> 由于太陽能極板輸出電壓不穩(wěn)定,不能直接應(yīng)用于負(fù)載,則要將電能后存儲(chǔ)蓄電池中,而控制器至關(guān)重要,其性能的好壞會(huì)影響應(yīng)用的使用效果。為了延長(zhǎng)蓄電池的使用壽命,控制器必須限制太陽能對(duì)它的充放電條件
29、,防止蓄電池過充電及深度充電??刂破鬟€負(fù)責(zé)蓄電池是否對(duì)負(fù)載供電,蓄電池的電壓在正常范圍內(nèi)時(shí),控制開關(guān)接通,蓄電池給負(fù)載供電;當(dāng)電池的電壓不足時(shí),控制開關(guān)截止,停止對(duì)負(fù)載的供電,</p><p> 2.2 充電控制器的控制策略</p><p> 光伏發(fā)電系統(tǒng)性能和推廣的主要限制是蓄電池的壽命短。分析可知,影響鉛酸蓄電池壽命的因素有:、過放控制點(diǎn)的設(shè)置、充電電壓的設(shè)置、運(yùn)行溫度環(huán)境等。&l
30、t;/p><p> ?。?)改進(jìn)的充放電方式</p><p> 由于市場(chǎng)上一般充電方式對(duì)于蓄電池的保護(hù)不夠充分,易導(dǎo)致蓄電池的損壞,分析相關(guān)因素,本論文提出了脈寬調(diào)制充電方法。 PWM (Pulse Width Modulation)是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測(cè)量、通信到功率控制與變換的許多領(lǐng)域中,應(yīng)用此技術(shù)之后能夠提高蓄電池充電接受率。&
31、lt;/p><p> 圖2.2 輸出電壓波形</p><p> 針對(duì)目前市場(chǎng)上的太陽能充電控制器當(dāng)蓄電池給負(fù)載供電時(shí),沒有時(shí)刻檢測(cè)蓄電池的電壓,很容易導(dǎo)致蓄電池的深度放電這個(gè)問題,本論文提出時(shí)刻在線檢測(cè)蓄電池電壓來避免蓄電池發(fā)生過放現(xiàn)象,保護(hù)蓄電池,提高其使用壽命。</p><p> 2.3 STC89C52的簡(jiǎn)介</p><p> ST
32、C89C52是一種功耗低,性能好的CMOS 8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。采用STC公司存儲(chǔ)器技術(shù),非易失性高密度高加密性,兼容工業(yè)80C51產(chǎn)品指令和引腳。使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。</p><p> STC89C52常見的是PDIP封裝,是一個(gè)有40個(gè)引腳的芯片,按其功能類別將它們分為三類:</p><p> (1
33、)電源和時(shí)鐘引腳。如VCC、GND、XTAL1、XTAL2。</p><p> ?。?)編程控制引腳。RST、、ALE/、/VPP。</p><p> (3)I/O口引腳。如P0、P1、P2、P3。</p><p> 這里僅詳細(xì)介紹編程引腳:</p><p> ?。?)RST:復(fù)位輸入。晶振工作時(shí),RST引腳持續(xù)2個(gè)機(jī)器周期高電平將使單片
34、機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。</p><p> ?。?)ALE/:地址鎖存控制信號(hào)(ALE)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳()也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的振蕩頻率輸出脈沖,可作為外部定時(shí)器或時(shí)鐘使用
35、。</p><p> :外部程序存儲(chǔ)器選通信號(hào)()是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)STC89C52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將不被。</p><p> (4)/VPP:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。也接收12伏Vpp電壓。<
36、;/p><p> 2.4 ADC0804的簡(jiǎn)介</p><p> AD轉(zhuǎn)換就是模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)。轉(zhuǎn)換速度和轉(zhuǎn)換精度是AD轉(zhuǎn)換器最主要的技術(shù)參數(shù),由于逐次比較型兼有并行A/D轉(zhuǎn)換器轉(zhuǎn)換速度高和雙積分型轉(zhuǎn)換精度高的優(yōu)點(diǎn)。</p><p> ADC0804 為一只具有20引腳并行8位CMOS工藝逐次比較型的集成A/D 轉(zhuǎn)換器, 引腳圖如下 </p>
37、<p> 2.5 MAX232芯片簡(jiǎn)介</p><p> MAX232芯片是專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。其主要特點(diǎn):</p><p> (1)符合所有的RS-232C技術(shù)標(biāo)準(zhǔn) </p><p> ?。?)只需要單一 +5V電源供電 </p><p> ?。?)片載電荷泵具有升
38、壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V- </p><p> (4)功耗低,典型供電電流5mA </p><p> (5)內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器 </p><p> ?。?)內(nèi)部集成兩個(gè)RS-232C接收器 </p><p> ?。?)高集成度,片外最低只需4個(gè)電容即可工作。</p><
39、p> 為更好地設(shè)計(jì)串口通信電路,我們來認(rèn)識(shí)MAX232各個(gè)引腳功能。</p><p> 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。</p><p> 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成數(shù)據(jù)通道。 </p><p> 2.6
40、 1602液晶顯示介紹</p><p> 在使用1602之前,要對(duì)其進(jìn)行一定的了解。從芯片手冊(cè)中,可以得到1602液晶的主要技術(shù)資料,如表1所示,通過此表我們可以知道1602工作電壓和顯示容量,可以驗(yàn)證設(shè)計(jì)選擇的是否合適。</p><p> 表1 1602液晶的主要技術(shù)資料</p><p> 表2 1602液晶的引腳介紹</p><p
41、> 3 太陽能充電控制器的電路設(shè)計(jì)</p><p> 以整體方案為指導(dǎo),以工程設(shè)計(jì)的思路,運(yùn)用模塊化的設(shè)計(jì)方法去進(jìn)行控制器的設(shè)計(jì)。</p><p> 硬件電路主要由:?jiǎn)纹瑱C(jī)最小系統(tǒng)、充放電電路、光耦驅(qū)動(dòng)電路、A/D轉(zhuǎn)換電路、LCD顯示電路、串口通信電路等部分組成。</p><p><b> 3.1系統(tǒng)控制框圖</b></p&
42、gt;<p> 分析應(yīng)用實(shí)例,依照太陽能控制器的功能要求,改進(jìn)控制策略,確定了體設(shè)計(jì)方案。</p><p> 使用主控芯片為單片機(jī)STC89C52型,利用分壓電路對(duì)蓄電池的電壓、進(jìn)行采樣,然后經(jīng)過A/D轉(zhuǎn)換將檢測(cè)電壓數(shù)據(jù)輸入到單片機(jī)中進(jìn)行處理,用液晶芯片顯示電壓值方便調(diào)整。單片機(jī)在軟件程序的控制下輸出PWM控制信號(hào),經(jīng)光耦驅(qū)動(dòng)MOSFET管開啟與關(guān)閉來控制充放電電路。該系統(tǒng)可延長(zhǎng)蓄電池使用壽命,
43、對(duì)其充放電實(shí)現(xiàn)最優(yōu)化控制。</p><p> 圖3.1系統(tǒng)整體結(jié)構(gòu)框</p><p> 以上通過對(duì)控制器、被控對(duì)象蓄電池的分析,結(jié)合硬件資源和軟件控制策略,進(jìn)行了硬件電路設(shè)計(jì)和軟件編程設(shè)計(jì),最終確定整體設(shè)計(jì)方案。整體方案設(shè)計(jì),講述了光伏發(fā)電技術(shù)中最重要部分控制器和蓄電池的作用,控制器主要負(fù)責(zé)控制太陽能極板對(duì)蓄電池的充電以及控制蓄電池對(duì)負(fù)載的供電。由于不合適的充放電方式會(huì)導(dǎo)致蓄電池的損壞
44、,縮短蓄電池的使用壽命,本論文提出了PWM脈寬調(diào)制充電方法,這種充電方法能夠使蓄電池有較充分的反應(yīng)時(shí)間,與以前的充電方式相比,提高了蓄電池的充電效率。同時(shí)提出了時(shí)刻在線監(jiān)測(cè)蓄電池電壓的放電控制方法,避免蓄電池發(fā)生過放現(xiàn)象,保護(hù)蓄電池。</p><p><b> 系統(tǒng)總電路見附錄三</b></p><p><b> 3.2 擴(kuò)展電路</b>&l
45、t;/p><p> 單片機(jī)是系統(tǒng)的主控芯片,要控制好整個(gè)電路,首先必須構(gòu)建最小系統(tǒng)是單片機(jī)可以工作起來。本設(shè)計(jì)單片機(jī)擴(kuò)展電路包括上電復(fù)位電路,時(shí)鐘電路,工作指示燈和蜂鳴器報(bào)警電路等。 </p><p> ?。?)工作狀態(tài)指示燈電路</p><p> 想要時(shí)刻檢測(cè)蓄電池電壓,就要對(duì)整個(gè)電路的工作狀態(tài)進(jìn)行指示。其中LED1為正常充電指示燈
46、,LED2為過壓指示燈,LED3為欠壓指示燈。防止通過太大電流將發(fā)光二極管燒毀,則要串聯(lián)電阻。</p><p> ?。?)蜂鳴器報(bào)警電路</p><p> 要加強(qiáng)STC89C52輸出引腳的驅(qū)動(dòng)能力,蜂鳴器需加三極管進(jìn)行驅(qū)動(dòng)。</p><p> 監(jiān)測(cè)蓄電池實(shí)時(shí)電壓,一旦檢測(cè)電壓值超出閾值范圍,報(bào)警電路啟動(dòng),即當(dāng)電壓超過程序設(shè)定值時(shí),單片機(jī)的P2.6引腳(beep端
47、)輸出低電平,三極管導(dǎo)通,驅(qū)動(dòng)蜂鳴器發(fā)出報(bào)警信號(hào)。</p><p><b> 3.3 充放電電路</b></p><p> 電路由防反充二極管D1、濾波電容C4和C5、穩(wěn)壓管D2、續(xù)流二極管D3、MOSFET管Q1和Q2等構(gòu)成。二極管D1可以防止蓄電池電流流向太陽能電池板。分析可知,通過控制MOSFET管閉合和斷開的時(shí)間(即PWM—脈沖寬度調(diào)制),就可以控制輸出電
48、壓。所使用的MOSFET是電壓控制單極性金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管,所需驅(qū)動(dòng)功率較小。而且MOSFET只有多數(shù)載流子參與導(dǎo)電,不存在少數(shù)載流子的復(fù)合時(shí)間,因而開關(guān)頻率可以很高,非常適合作控制充放電開關(guān)。設(shè)計(jì)中采用IRL2703- N溝道MOSFET管,N溝道MOSFET的導(dǎo)通電壓Vth>0。當(dāng)G極電壓達(dá)到一定值時(shí),Q1導(dǎo)通。電容C4是太陽能電池板輸出電壓濾波,使得更穩(wěn)定地給蓄電池充電。電容C5是對(duì)蓄電池輸出電壓進(jìn)行濾波,以保證負(fù)
49、載供電電路的穩(wěn)定性。圖中穩(wěn)壓管D2用來對(duì)蓄電池進(jìn)行穩(wěn)壓作用。當(dāng)用戶將蓄電池反接至控制器時(shí),續(xù)流二極管D3可以進(jìn)行續(xù)流,從而保護(hù)控制器不被毀壞。</p><p> 按程序設(shè)計(jì)當(dāng)檢測(cè)到蓄電池的電壓低于12V,充電模式為均充,Q1為完全導(dǎo)通狀態(tài),也就是導(dǎo)通的脈沖占空比最大;當(dāng)檢測(cè)到蓄電池的電壓在12V-14.5V,充電模式為浮充,Q1導(dǎo)通與不導(dǎo)通的占空比例變小,;當(dāng)檢測(cè)到蓄電池的電壓等于15V左右,Q1截止使充電停止
50、,同時(shí)Q2也關(guān)閉來關(guān)斷負(fù)載。當(dāng)檢測(cè)到蓄電池的電壓低于10.8V,Q2關(guān)閉停止放電,關(guān)斷負(fù)載來實(shí)現(xiàn)欠壓關(guān)斷。</p><p><b> 3.4光耦驅(qū)動(dòng)電路</b></p><p> 為了增加系統(tǒng)的可靠性,本設(shè)計(jì)用光電耦合器實(shí)現(xiàn)單片機(jī)控制電路和充放電電路的隔離。光耦驅(qū)動(dòng)電路如圖3.8所示。M0S管Q1控制著充電電路,當(dāng)充電控制信號(hào)PWM為低電平時(shí),開關(guān)“斷開”,輸出端
51、K1被抬高,電阻R9右側(cè)被穩(wěn)壓管D2穩(wěn)壓到12V左右,MOSEFT的Vgs>0,MOS管Q1開啟,太陽能極板開始對(duì)蓄電池充電;當(dāng)充電控制器信號(hào)為高電平時(shí),開關(guān)“接通”,U2電壓接地。K1電壓接近為零,MOSEFT的Vgs<0,Q1截止,充電電路關(guān)斷。這就是充電電路原理。M0S管Q2控制著放電電路,其原理與Q1相似。</p><p> 3.5 A/D轉(zhuǎn)換電路</p><p>
52、 本系統(tǒng)設(shè)計(jì)的STC89C52單片機(jī)沒有內(nèi)置的A/D轉(zhuǎn)換模塊,因此需要先采集蓄電池的電壓,然后經(jīng)A/D轉(zhuǎn)換才可接入單片機(jī)。蓄電池電壓的采集轉(zhuǎn)換在系統(tǒng)中極為重要,本設(shè)計(jì)采用8位并行A/D轉(zhuǎn)換器芯片ADC0804。</p><p> 3.5.1 ADC0804構(gòu)成的典型A/D轉(zhuǎn)換電路</p><p> 單片機(jī)的P2.7引腳,用來實(shí)現(xiàn)片選;、分別接單片機(jī)的P3.6和P3.7引腳,進(jìn)行讀寫
53、控制;CLK、CLKR、GND之間用電阻和電容構(gòu)成RC振蕩電路,用來給ADC0804提供工作所需的脈沖。</p><p> 蓄電池的電壓采集信號(hào)ADIN從6腳引入,在內(nèi)部采集轉(zhuǎn)換后,從數(shù)字輸出端輸出到單片機(jī)的P1口,通過讀P1口數(shù)據(jù),便可以得到蓄電池的電壓,實(shí)現(xiàn)實(shí)時(shí)在線檢測(cè)。</p><p> 3.6 LCD顯示電路</p><p> 液晶具有體積小、功耗低,
54、顯示清晰的優(yōu)點(diǎn)。本設(shè)計(jì)用液晶1602來顯示蓄電池的電壓值。</p><p> EN使能端接單片機(jī)的P2.2引腳,用來實(shí)現(xiàn)片選;RS接單片機(jī)P2.0引腳,進(jìn)行數(shù)據(jù)和命令選擇;R/W接單片機(jī)P2.1引腳,進(jìn)行讀寫控制; 為防止直接加5V電壓燒壞背光燈,在15腳串接一個(gè)10 的電阻用于限流。液晶3端通過接一個(gè)10K 電位器接地來調(diào)節(jié)顯示對(duì)比度。數(shù)據(jù)輸入端D0-D7接單片機(jī)的P0口用于電壓數(shù)據(jù)的傳送。</p>
55、;<p> 3.7 E2PROM數(shù)據(jù)存儲(chǔ)電路</p><p> 為了把電路發(fā)生異常時(shí)的蓄電池電壓記錄下來,需要用存儲(chǔ)芯片進(jìn)行數(shù)據(jù)保存。若采用普通存儲(chǔ)器,在掉電時(shí)需要備用電池供電,并需要在硬件上增加掉電檢測(cè)電路,但存在電池不可靠及擴(kuò)展芯片占用單片機(jī)過多口線的缺點(diǎn)。為了解決這一難題,本設(shè)計(jì)采用具有I2C總線接口的串行E2PROM器件,這里選擇AT24C02芯片。AT24C02可有效解決掉電數(shù)據(jù)保存
56、問題,可對(duì)所存在數(shù)據(jù)保存100年,并可多次擦寫,擦寫次數(shù)可達(dá)10萬次以上。</p><p> I2C串行總線一般有兩根信號(hào)線,一根是雙向的數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。所有接到I2C總線設(shè)備上的串行數(shù)據(jù)SDA都接到總線的SDA上,各設(shè)備的時(shí)鐘線SCL接到總線的SCL上。根據(jù)各引腳的功能,依據(jù)總線系統(tǒng)的典型硬件連接圖。</p><p> 3.8 串口通信電路</p>
57、<p> 本設(shè)計(jì)中加入串行通信電路的目的主要有三個(gè):一是給單片機(jī)下載程序;二是讓控制器能夠遠(yuǎn)程通信或遠(yuǎn)程監(jiān)控;三是數(shù)據(jù)采集后的整理,方便用戶查看。由于單片機(jī)的電平和計(jì)算機(jī)電平不兼容,設(shè)計(jì)中采用MAX232芯片進(jìn)行TTL電平和RS-232電平之間的轉(zhuǎn)換。而且系統(tǒng)采用易于實(shí)現(xiàn)的異步串行通信方式,用最簡(jiǎn)單也最實(shí)用的奇偶校驗(yàn)作為串行通信錯(cuò)誤校驗(yàn)方式。</p><p> 其中13腳(R1IN)、12腳(R1O
58、UT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。 8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。</p><p> TTL/CMOS電平從T1IN、T2IN輸入轉(zhuǎn)換成RS-232電平從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 </p&
59、gt;<p> 第三部分是供電。15腳GND、16腳VCC(+5v)</p><p> 按照串行通信原理,根據(jù)RS-232串口協(xié)議和MAX 232芯片的引腳功能,結(jié)合STC89C52單片機(jī)串行中斷方式,本設(shè)計(jì)采用串口方式1(10位數(shù)據(jù)的異步通信)來構(gòu)建串口通信電路。</p><p> 設(shè)計(jì)中T1IN連接CMOS電平的單片機(jī)的串行發(fā)送端;T1OUT連接電腦的RS-232C
60、串口的接收端PCRXD;同理,R1IN連接電腦的RS-232C串口的發(fā)送端PCTXD;R1OUT連接CMOS電平的單片機(jī)的串行接收端。當(dāng)然單片機(jī)和DB9要共地,這是實(shí)現(xiàn)串行通信的前提條件。</p><p> 本章對(duì)充放電控制器的原理以及具體的硬件實(shí)現(xiàn)電路進(jìn)行了詳細(xì)的介紹,并對(duì)電路中使用到的芯片也予以描述,通過閱讀可以清晰的明白控制器的設(shè)計(jì)思路和實(shí)現(xiàn)過程。</p><p><b>
61、; 4 總結(jié)與展望</b></p><p> 通過復(fù)習(xí)以前學(xué)過的專業(yè)知識(shí),同時(shí)對(duì)相關(guān)的資料和論文進(jìn)行解讀與綜合分析、研究加上參與課題的實(shí)踐,在導(dǎo)師的指導(dǎo)和同學(xué)的幫助下,最后基本完成了設(shè)計(jì)任務(wù)。</p><p> 在光伏發(fā)電系統(tǒng)中,太陽能充電控制器起著樞紐作用,其性能優(yōu)劣直接影響實(shí)際應(yīng)用的效率。為了克服市場(chǎng)上常見充電控制器存在的對(duì)蓄電池保護(hù)不夠充分的缺點(diǎn),本設(shè)計(jì)基于太陽能充
62、電控制器要實(shí)現(xiàn)的具體功能,加上實(shí)際工業(yè)應(yīng)用嚴(yán)格要求,從模塊化的思想出發(fā)具體開展各方面的設(shè)計(jì)工作,把硬件電路和軟件編程有效結(jié)合在一起來完成設(shè)計(jì)任務(wù)。具體來講,論文主要做了下面一些工作:</p><p> ?。?)對(duì)鉛酸蓄電池的充放電原理、影響蓄電池使用壽命的各種因素作了一定的分析,提出了改進(jìn)的充、放電方式,確定了太陽能充電控制器的總體設(shè)計(jì)方案。</p><p> (2)論述了基于單片機(jī)的太
63、陽能充放電控制系統(tǒng)的硬件電路組成及其工作原理,并詳細(xì)分析了各組成單元電路的性能及其工作原理,完成了充電控制器的硬件電路設(shè)計(jì)??刂破饕許TC89C52單片機(jī)為主控芯片,在軟件程序控制下輸出PWM控制信號(hào),控制開關(guān)MOS管的通斷,實(shí)現(xiàn)太陽能極板對(duì)蓄電池的充電控制等。</p><p> 整個(gè)系統(tǒng)的硬件設(shè)計(jì)采用了模塊化設(shè)計(jì)結(jié)構(gòu),可以根據(jù)實(shí)際需要靈活配置,從而有利于實(shí)際應(yīng)用的推廣。所涉及的相關(guān)模塊的電路設(shè)計(jì),有的采用的是
64、常見的經(jīng)典電路的結(jié)構(gòu),有些是在原有結(jié)構(gòu)的基礎(chǔ)上,采用了集成度更高的現(xiàn)代芯片,從而使電路變得更加簡(jiǎn)單、可靠。不論怎樣說,硬件電路設(shè)計(jì),其實(shí)是一個(gè)對(duì)自己所學(xué)的專業(yè)知識(shí)吸收、分析、理解、掌握同時(shí)再創(chuàng)新的過程,能夠靈活使用,遇到新問題能夠解決目的也就達(dá)到了 </p><p> 由于實(shí)踐經(jīng)驗(yàn)缺乏,以及技術(shù)水平和實(shí)驗(yàn)條件的限制,本系統(tǒng)部分功能尚未完成,需要進(jìn)一步完善,主要表現(xiàn)在以下幾個(gè)方面:</p><
65、p> ?。?)對(duì)系統(tǒng)中的單片機(jī)控制功能需要進(jìn)一步研究,以便找到功能更加強(qiáng)大的主控芯片去代替,從而更好更快的實(shí)現(xiàn)設(shè)計(jì)要求。</p><p> ?。?)對(duì)蓄電池電壓的采集方式過于簡(jiǎn)單,精度較低,需要探索采集精度更加精準(zhǔn)的經(jīng)典電路,使得對(duì)蓄電池的充電控制更加準(zhǔn)確。 </p><p> (3) 系統(tǒng)軟件設(shè)計(jì)可增加串行中斷控制方式,從而方便用上位機(jī)(如微機(jī))通過串行通信進(jìn)行有效的監(jiān)控,增強(qiáng)對(duì)
66、系統(tǒng)的在線檢測(cè)和控制功能。</p><p><b> 致 謝</b></p><p> 寒來暑往,白駒過隙。隨著論文的完成,四年的大學(xué)生涯就要結(jié)束了?;厥姿哪辏局赡蹎渭兊奈乙呀?jīng)蛻變的成熟穩(wěn)重,將要步入社會(huì),面對(duì)復(fù)雜的挑戰(zhàn)。</p><p> 在這里,我要感謝母校,讓我結(jié)識(shí)了許多良師益友,他們幫助我,鼓勵(lì)我,陪伴我,讓我成長(zhǎng)強(qiáng)大。更要感
67、謝我的論文指導(dǎo)老師—**教授,她對(duì)我進(jìn)行了無私的指導(dǎo)和幫助,不厭其煩的進(jìn)行論文的修改和改進(jìn)。感謝我的同學(xué)和室友,在論文的撰寫和排版過程中提供幫助。 由于學(xué)術(shù)水平、經(jīng)驗(yàn)有限,論文難免有不足之處,懇請(qǐng)各位老師批評(píng)指正。并對(duì)各位老師提出的寶貴意見表示衷心的感謝!</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 余發(fā)山,王福忠.單片機(jī)原理及應(yīng)
68、用技術(shù).徐州:中國(guó)礦業(yè)大學(xué)出版社,2008.6</p><p> [2] 何立民, 單片機(jī)高級(jí)教程.北京:航空航天大學(xué)出版社,2001</p><p> [3] 艾永樂,付子義.模擬電子技術(shù)基礎(chǔ).北京:中國(guó)電力出版社,2008.11</p><p> [4] 郭天祥.新概念51單片機(jī)C語言教程—入門、提高、開發(fā)、拓展全攻略.北京:電子工業(yè)出版社,2009.1&
69、lt;/p><p> [5] 談世哲, Protel DXP 2004 電路設(shè)計(jì)基礎(chǔ)與典型范例.北京:電子工業(yè)出版社,2007.9</p><p> [6]馬忠梅,張凱等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)(第四版).北京:北京航空航天大學(xué)出版社,2007.1</p><p> [7] 侯玉寶, 陳忠平, 李成群等編著.基于Proteus的51系列單片機(jī)設(shè)計(jì)與仿真.北京
70、:電子工業(yè)出版社 ,2008.9</p><p> [8] 楊金煥. 太陽能光伏發(fā)電應(yīng)用技術(shù).北京:電子工業(yè)出版社, 2009.1</p><p> [9] 周志敏,紀(jì)愛華.太陽能光伏發(fā)電系統(tǒng)設(shè)計(jì)與應(yīng)用實(shí)例.北京:電子工業(yè)出版社,2010.7</p><p> [10] 魏學(xué)業(yè)等.太陽能充電控制器研究.新能源,2009. </p><p&g
71、t; [11]何朝陽,戴君,吳立琴.基于STCl2C54lOAD的太陽能路燈控制器設(shè)計(jì).電子設(shè)計(jì)工程報(bào),2007:27—30.</p><p> [12] 馮垛生, 太陽能發(fā)電原理與應(yīng)用[M].人民郵電出版社,2007</p><p> [13] 鐘勇等.風(fēng)光互補(bǔ)發(fā)電系統(tǒng)中蓄電池充放電控制器的研究.合肥:合肥工業(yè)大學(xué),2006.11</p><p> [14
72、] 張艷紅等.一種新型光伏發(fā)電充放電控制器.可再生能源,2006.5</p><p> [15] 劉文剛等.基于單片機(jī)的新型太陽能控制器研究.廣州:華南理工大學(xué)2008.11</p><p><b> 附錄Ⅰ 源程序</b></p><p> 系統(tǒng)主程序代碼controller.c:</p><p> #incl
73、ude <reg52.h></p><p> #include <intrins.h> //庫(kù)函數(shù)頭文件,代碼中引用了_nop_()函數(shù)</p><p> #include "define.h"//變量定義和函數(shù)的聲明</p><p> #include "init.h"//初始化
74、模塊</p><p> #include "AD.h"//AD轉(zhuǎn)換模塊</p><p> #include "yj1602.h"//液晶1602顯示模塊</p><p> #include "AT24C02.h" //數(shù)據(jù)存儲(chǔ)模塊</p><p><b&g
75、t; /*主函數(shù)*/</b></p><p> void main()</p><p><b> {</b></p><p><b> init();</b></p><p> init1602();</p><p> init24c02();<
76、/p><p> battery_v=get_ad();</p><p><b> yj1602();</b></p><p> if(battery_v<108) PWM=0; //首次要直接充電</p><p> else PWM=1;</p><p><b> whi
77、le(1)</b></p><p><b> {</b></p><p> delay(5000);</p><p> battery_v=get_ad();</p><p><b> yj1602();</b></p><p> if(battery
78、_v<0)//蓄電池反接,立刻關(guān)閉充放電電路,蜂鳴器報(bào)警</p><p><b> {</b></p><p> PWM=1;FuZai=1;buzzer();</p><p><b> }</b></p><p> if(battery_v>=108)//蓄電池電壓大于10.8
79、V</p><p><b> {</b></p><p> if(145<=battery_v)</p><p><b> {</b></p><p> LED1=0; //開啟過電壓指示燈</p><p><b> LED=1;</b>
80、</p><p><b> LED2=1;</b></p><p> PWM=1;//停止充電</p><p> buzzer();//蜂鳴器報(bào)警</p><p><b> write=1;</b></p><p> AT24c02(); </p>
81、<p><b> }</b></p><p> else if(120<=battery_v<145)//蓄電池電壓大于12v而且小于13.5v</p><p><b> {</b></p><p><b> LED=0;</b></p><p
82、> LED1=1;LED2=1;</p><p> TR0=1; //開啟固定PWM充電</p><p> if(count==4)</p><p><b> {</b></p><p><b> PWM=0;</b></p><p><b>
83、}</b></p><p> if(count==12)</p><p><b> {</b></p><p><b> count=0;</b></p><p><b> PWM=1;</b></p><p><b>
84、}</b></p><p><b> }</b></p><p> else if(battery_v<120)</p><p><b> {</b></p><p> LED=0;LED1=1;LED2=1;</p><p><b>
85、; TR0=0;</b></p><p><b> PWM=0;</b></p><p><b> } </b></p><p><b> }</b></p><p><b> else</b></p><p>
86、;<b> {</b></p><p> LED=1;//開啟欠壓指示燈</p><p><b> LED1=1;</b></p><p><b> LED2=0;</b></p><p> FuZai=1;//關(guān)閉負(fù)載</p><p><
87、;b> PWM=0;</b></p><p><b> buzzer();</b></p><p><b> write=1;</b></p><p> AT24c02();</p><p><b> }</b></p><p&
88、gt;<b> }</b></p><p><b> }</b></p><p> /*****定時(shí)中斷函數(shù)*****/</p><p> void timer0() interrupt 1 </p><p><b> {</b></p><p&g
89、t; TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;//定時(shí)時(shí)間為50ms,每50ms中斷一次</p><p><b> count++;</b></p><p><b> }</b></p><p> 以下代碼為defin
90、e.h //變量定義和函數(shù)的聲明</p><p> #define uchar unsigned char </p><p> #define uint unsigned int</p><p> // 定義控制信號(hào)端口</p><p><b> //充放電控制端口</b></p><
91、p> sbit PWM= P3^2;//蓄電池開關(guān)</p><p> sbit FuZai=P3^3;//負(fù)載開關(guān)</p><p> sbit LED=P2^3;//充電指示燈 </p><p> sbit LED1=P2^4;//充電指示燈</p><p> sbit LED2=P2^5;//欠壓指示燈&
92、lt;/p><p> sbit beep=P2^6;//蜂鳴器控制位</p><p> uchar count,battery_v;</p><p><b> //AD轉(zhuǎn)換</b></p><p> sbit csad=P2^7;//定義AD的片選位</p><p> sbit adwr
93、=P3^6;//定義AD的WR端口</p><p> sbit adrd=P3^7;//定義AD的RD端口</p><p> unsigned char V1,V2,V3,adval,ad_vo;</p><p> //1602液晶顯示</p><p> sbit RS=P2^0; //P2.0</p>
94、<p> sbit RW=P2^1; //P2.1</p><p> sbit EN=P2^2; //P2.2</p><p> unsigned char code table1[]=" TYNCFDKZQXTSJ";</p><p> unsigned char code table2[]=" D:12.
95、0 N:";</p><p> unsigned char code lcdd[]="0123456789";</p><p> uchar xs_vo,num;</p><p> //AT24c02保存數(shù)據(jù)</p><p> bit write=0; //寫24C02的標(biāo)志;</p&g
96、t;<p> sbit scl=P2^4;</p><p> sbit sda=P2^5;</p><p> uchar p=2,a1;</p><p><b> RS232串口通信</b></p><p> sbit RXD=P3^0;</p><p> sbit TX
97、D=P3^1;</p><p> /*聲明調(diào)用函數(shù)*/</p><p> void init();//初始化主函數(shù)</p><p> void delay(unsigned int t); //可控延時(shí)函數(shù)</p><p> void delay1(); //軟件實(shí)現(xiàn)延時(shí)函數(shù),5個(gè)機(jī)器周期</p><p
98、> void buzzer();</p><p> uchar get_ad();//AD程序</p><p> //1602液晶顯示部分</p><p> void write_com(uchar com);</p><p> void write_data(uchar date);</p><p&
99、gt; void init1602();</p><p> void yj1602();</p><p> //AT24c02保存數(shù)據(jù)</p><p> void init24c02();</p><p> void start(); //啟動(dòng)</p><p> void stop(); //停止&l
100、t;/p><p> void respons(); //應(yīng)答</p><p> void write_byte(uchar date);</p><p> //uchar read_byte();</p><p> void write_add(uchar address,uchar date);</p><p>
101、; //uchar read_add(uchar address);</p><p> void AT24c02();</p><p> 以下代碼為init.h//初始化模塊</p><p> void init()//初始化主函數(shù)</p><p><b> {</b></p><p&
102、gt; TMOD=0x01;</p><p> TH0=(65536-50)/256;</p><p> TL0=(65536-50)%256;//定時(shí)時(shí)間為50ms,每50ms中斷一次</p><p><b> EA=1;</b></p><p><b> ET0=1;</b></
103、p><p> PWM=1;//初始化時(shí)先關(guān)閉充電</p><p> LED=0;//開啟正常工作指示燈</p><p> LED1=1;//關(guān)閉異常指示燈</p><p><b> LED2=1;</b></p><p><b> beep=1;</b></p&g
104、t;<p><b> write=0;</b></p><p><b> }</b></p><p><b> /*延時(shí)函數(shù)*/</b></p><p> void delay(unsigned int t) </p><p><b>
105、 {</b></p><p> unsigned int j,i;</p><p> for(i=0;i<t;i++)</p><p> for(j=0;j<110;j++); </p><p><b> }</b></p><p><b> /*延時(shí)
106、函數(shù)1*/</b></p><p> void delay1() </p><p><b> { </b></p><p> _nop_(); _nop_();</p><p> _nop_(); _nop_();</p><p><b> _n
107、op_();</b></p><p><b> }</b></p><p><b> //蜂鳴器報(bào)警函數(shù)</b></p><p> void buzzer()</p><p><b> {</b></p><p> beep=0;
108、delay(10);</p><p><b> beep=1;</b></p><p><b> }</b></p><p> 以下代碼為AD.h//AD轉(zhuǎn)換模塊</p><p><b> //ad轉(zhuǎn)換程序</b></p><p>
109、uchar get_ad()//AD程序</p><p><b> {</b></p><p> csad=0; //置CSAD為0,</p><p><b> adwr=1;</b></p><p><b> _nop_();</b><
110、/p><p> adwr=0;//啟動(dòng)AD轉(zhuǎn)換</p><p><b> _nop_();</b></p><p><b> adwr=1;</b></p><p> delay(2); //AD轉(zhuǎn)換時(shí)間</p><p> P1=0xff;
111、 //讀取P1口之前先給其寫全1 </p><p> adrd=1; //選通ADCS</p><p><b> _nop_();</b></p><p> adrd=0; //AD讀使能</p><p><b> _nop_();</
112、b></p><p> adval=P1;//AD數(shù)據(jù)讀取賦給P1口,得到ad轉(zhuǎn)換的結(jié)果</p><p><b> adrd=1;</b></p><p> ad_vo=(float)adval*150.0/256.0;//得到蓄電池的電壓</p><p> return(ad_vo);</
113、p><p><b> }</b></p><p> 以下代碼為yj1602.h//液晶1602顯示模塊</p><p> /*LCD1602顯示部分子函數(shù)*/</p><p> void init1602() //LCD初始化函數(shù)</p><p><b> {</b&
114、gt;</p><p><b> EN=0;</b></p><p> write_com(0x38);//設(shè)置16X2顯示,5X7點(diǎn)陣,8位數(shù)據(jù)接口</p><p> write_com(0x0c);//設(shè)置開顯示,不顯示光標(biāo)</p><p> write_com(0x06);//寫一個(gè)字符后地址指針加1<
115、;/p><p> write_com(0x01);//顯示清零,數(shù)據(jù)指針清零</p><p><b> }</b></p><p> void write_com(uchar com)//1602寫命令函數(shù)</p><p><b> {</b></p><p> RW=
116、0;delay1();</p><p> RS=0; // RW=0,RS=0,寫LCD命令字</p><p><b> delay1();</b></p><p> EN=1; //E端時(shí)序</p><p><b> delay1();</b></p><
117、p> P0=com; //將com中的命令字寫入LCD數(shù)據(jù)口</p><p><b> delay1();</b></p><p> EN=0;delay1();</p><p> delay(5);</p><p><b> }</b></p><p&g
118、t; void write_data(uchar date)//1602寫數(shù)據(jù)函數(shù)</p><p><b> delay(5);</b></p><p> write_data('.');</p><p> for(num=0;num<16;num++)//移屏顯示</p><p><
119、b> {</b></p><p> write_com(0x1c);</p><p> delay(1000);</p><p><b> }</b></p><p><b> }</b></p><p> 以下代碼為AT24C02.h /
120、/數(shù)據(jù)存儲(chǔ)模塊</p><p> //at24c02部分子函數(shù)</p><p> void init24c02()//24c02初始化函數(shù)</p><p><b> {</b></p><p> sda=1;delay1();</p><p> scl=1;delay1();<
121、/p><p><b> }</b></p><p> void start() //開始信號(hào)</p><p><b> {</b></p><p> sda=1;delay1();</p><p> scl=1;delay1();</p><
122、p> sda=0;delay1();</p><p><b> }</b></p><p> void stop() //停止</p><p><b> {</b></p><p> sda=0;delay1();</p><p> scl=1;d
123、elay1();</p><p> sda=1;delay1();</p><p><b> }</b></p><p> void respons() //應(yīng)答</p><p><b> {</b></p><p><b> uchar i;<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 太陽能充電控制器設(shè)計(jì) 畢業(yè)設(shè)計(jì)
- 太陽能充電控制器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 太陽能充電控制器
- 太陽能充電控制器研究.pdf
- 基于單片機(jī)的太陽能充電控制器設(shè)計(jì)
- 太陽能充、放電控制器設(shè)計(jì)
- 光伏太陽能充電控制器的研究.pdf
- 太陽能充放電控制器的設(shè)計(jì)
- 太陽能路燈控制器2014年畢業(yè)設(shè)計(jì)
- 智能太陽能路燈控制器畢業(yè)設(shè)計(jì)論文
- 智能太陽能路燈控制器畢業(yè)設(shè)計(jì)論文
- 太陽能熱水器控制器畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)報(bào)告太陽能路燈控制器設(shè)計(jì)
- 太陽能熱水器智能控制器-畢業(yè)設(shè)計(jì)
- 太陽能智能控制器的軟件設(shè)計(jì)-畢業(yè)設(shè)計(jì)
- 太陽能熱水器的智能控制器-畢業(yè)設(shè)計(jì)
- 智能太陽能電動(dòng)自行車充電控制器的研究.pdf
- 太陽能充電器畢業(yè)設(shè)計(jì)論文
- MPPT太陽能控制器設(shè)計(jì).pdf
- 畢業(yè)設(shè)計(jì)--太陽能熱水器中央控制器的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論