freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

太陽能充電控制器及逆變器設(shè)計畢業(yè)論文-閱讀頁

2025-07-13 13:51本頁面
  

【正文】 測,做到對蓄電池狀態(tài)的實時監(jiān)控。通過仿真可以看出系統(tǒng)硬件設(shè)計的不合理部分,以方便改善使得系統(tǒng)更加合理;同時更重要的是驗證自己編寫的軟件程序是否已經(jīng)實現(xiàn)其功能,完成了相應(yīng)的設(shè)計要求和設(shè)計任務(wù)。當(dāng)然在編寫程序進(jìn)行軟件實現(xiàn)過程中,遇到的第一個問題就是:程序的調(diào)試。最終在顯示輸出信息窗口出現(xiàn)了一下信息:Build target 39。 //創(chuàng)建目標(biāo)39。piling ... //…linking... //鏈接…. Program Size: data= xdata=0 code=1572 //項目大小:存儲空間RAM和ROM的數(shù)據(jù)存儲量creating hex file from 充放電控制器... // 創(chuàng)建了十六進(jìn)制的目標(biāo)文件充放電控制器 0 Error(s), 0 Warning(s). //工程“充放電控制器”,編譯結(jié)果0個錯誤,0個警告。通過編寫和調(diào)試程序,深深的體會到了程序編寫的不易和艱辛,同時積累了很多的經(jīng)驗,收益匪淺。程序調(diào)試成功后,下一步就是軟件仿真,是檢驗程序運(yùn)行是否正確的關(guān)鍵所在,更是優(yōu)化系統(tǒng)所必須的。和自己當(dāng)初預(yù)料的一樣,在剛開始仿真時,遇到了許多的問題,如1602液晶不顯示,系統(tǒng)工作狀態(tài)指示燈指示狀態(tài)不正確等等,調(diào)試很久找不到關(guān)鍵所在。果然加上虛擬電壓表,通過監(jiān)測后發(fā)現(xiàn)蓄電池兩端電壓表的示數(shù)一直顯示為零,明白是AD轉(zhuǎn)換部分出現(xiàn)問題,然后通過修改AD轉(zhuǎn)換模塊的子程序,同時調(diào)整硬件引腳部分與軟件相一致,慢慢的調(diào)試,最終蓄電池兩端電壓表有了示數(shù),液晶1602也正確的顯示了。系統(tǒng)共三種狀態(tài):正常充電、過充、過放。正常工作時的狀態(tài):() 圖 正常工作狀態(tài)仿真其工作原理如下,單片機(jī)在軟件程序控制下,控制著各個部分硬件電路有序工作,把從模數(shù)轉(zhuǎn)換器得到的蓄電池的電壓值,用1602液晶去顯示,同時綠燈亮起表示系統(tǒng)正在充電。由于利用C語言開發(fā)單片機(jī)與匯編語言相比,具有易于操作、規(guī)范性好、適合模塊化處理且容易移植的優(yōu)點(diǎn),所以本設(shè)計采用C語言作為編程語言??偨Y(jié)與展望1 設(shè)計總結(jié)通過復(fù)習(xí)以前學(xué)過的專業(yè)知識,同時對相關(guān)的資料和論文進(jìn)行解讀與綜合分析、研究加上參與課題的實踐,在導(dǎo)師的指導(dǎo)和同學(xué)的幫助下,最后基本完成了開題報告中確定的設(shè)計任務(wù)。在光伏發(fā)電系統(tǒng)中,太陽能充電控制器起著樞紐作用,其性能優(yōu)劣直接影響實際應(yīng)用的效率。具體來講,論文主要做了下面一些工作:(1)對鉛酸蓄電池的充放電原理、影響蓄電池使用壽命的各種因素作了一定的分析,提出了改進(jìn)的充、放電方式,確定了太陽能充電控制器的總體設(shè)計方案。控制器以STC89C52單片機(jī)為主控芯片,在軟件程序控制下輸出PWM控制信號,控制開關(guān)MOS管的通斷,實現(xiàn)太陽能極板對蓄電池的充電控制等。 整個系統(tǒng)的硬件設(shè)計采用了模塊化設(shè)計結(jié)構(gòu),可以根據(jù)實際需要靈活配置,從而有利于實際應(yīng)用的推廣。不論怎樣說,硬件電路設(shè)計,其實是一個對自己所學(xué)的專業(yè)知識吸收、分析、理解、掌握同時再創(chuàng)新的過程,能夠靈活使用,遇到新問題能夠解決目的也就達(dá)到了 (3)在硬件設(shè)計的基礎(chǔ)上,對太陽能充放電控制器進(jìn)行了算法分析并編制了程序,軟件編程實現(xiàn)對蓄電池的過充、過放、反接等保護(hù)。設(shè)計要求是從實際應(yīng)用需求中抽取而來,由于實際需求往往很復(fù)雜,因而一定要把設(shè)計要求層次化,首先實現(xiàn)最低要求,解決根本問題,然后再去完善、提高,這就是總結(jié)出來的軟件開發(fā)思路。在設(shè)計和開發(fā)的過程中,緊密結(jié)合充電控制器的實際情況,綜合了目前一些先進(jìn)的充電控制策略。(2)對蓄電池電壓的采集方式過于簡單,精度較低,需要探索采集精度更加精準(zhǔn)的經(jīng)典電路,使得對蓄電池的充電控制更加準(zhǔn)確。致 謝參考文獻(xiàn)[1] 余發(fā)山,:中國礦業(yè)大學(xué)出版社,[2] 何立民, :航空航天大學(xué)出版社,2001[3] 艾永樂,:中國電力出版社,[4] —入門、提高、開發(fā)、:電子工業(yè)出版社,[5] 談世哲, Protel DXP 2004 :電子工業(yè)出版社,[6]馬忠梅,(第四版).北京:北京航空航天大學(xué)出版社,[7] 侯玉寶, 陳忠平, :電子工業(yè)出版社 ,[8] 楊金煥. :電子工業(yè)出版社, [9] 周志敏,:電子工業(yè)出版社,[10] ,2009. [11]何朝陽,戴君,2007:27—30.[12] 馮垛生, 太陽能發(fā)電原理與應(yīng)用[M].人民郵電出版社,2007[13] 鐘勇等.:合肥工業(yè)大學(xué),[14] 張艷紅等.,[15] :附錄Ⅰ 源程序:include include //庫函數(shù)頭文件,代碼中引用了_nop_()函數(shù)include //變量定義和函數(shù)的聲明include //初始化模塊include //AD轉(zhuǎn)換模塊include //液晶1602顯示模塊include //數(shù)據(jù)存儲模塊/*主函數(shù)*/void main(){ init()。 init24c02()。 yj1602()。 //首次要直接充電 else PWM=1。 battery_v=get_ad()。 if(battery_v0)//蓄電池反接,立刻關(guān)閉充放電電路,蜂鳴器報警 { PWM=1。buzzer()。 //開啟過電壓指示燈 LED=1。 PWM=1。 //蜂鳴器報警 write=1。 } else if(120=battery_v145)// { LED=0。LED2=1。 //開啟固定PWM充電 if(count==4) { PWM=0。 PWM=1。LED1=1。 TR0=0。 } } else { LED=1。 LED2=0。//關(guān)閉負(fù)載 PWM=0。 write=1。 } }}/*****定時中斷函數(shù)*****/void timer0() interrupt 1 { TH0=(6553650000)/256。//定時時間為50ms,每50ms中斷一次 count++。//蓄電池開關(guān)sbit FuZai=P3^3。//充電指示燈 sbit LED1=P2^4。//欠壓指示燈sbit beep=P2^6。//AD轉(zhuǎn)換sbit csad=P2^7。 //定義AD的WR端口sbit adrd=P3^7。 //1602液晶顯示sbit RS=P2^0。 //sbit EN=P2^2。unsigned char code table2[]= D: N:。uchar xs_vo,num。 //寫24C02的標(biāo)志;sbit scl=P2^4。uchar p=2,a1。sbit TXD=P3^1。//初始化主函數(shù)void delay(unsigned int t)。 //軟件實現(xiàn)延時函數(shù),5個機(jī)器周期void buzzer()。 // AD程序//1602液晶顯示部分void write_(uchar )。void init1602()。//AT24c02保存數(shù)據(jù)void init24c02()。 //啟動void stop()。 //應(yīng)答void write_byte(uchar date)。void write_add(uchar address,uchar date)。void AT24c02()。 TH0=(6553650)/256。//定時時間為50ms,每50ms中斷一次 EA=1。 PWM=1。//開啟正常工作指示燈 LED1=1。 beep=1。 }/*延時函數(shù)*/ void delay(unsigned int t) { unsigned int j,i。it。j110。 }/*延時函數(shù)1*/ void delay1() { _nop_()。 _nop_()。 _nop_()。 delay(10)。} //AD轉(zhuǎn)換模塊//ad轉(zhuǎn)換程序uchar get_ad() // AD程序{ csad=0。 _nop_()。 //啟動AD轉(zhuǎn)換 _nop_()。 delay(2)。 //讀取P1口之前先給其寫全1 adrd=1。 adrd=0。 adval=P1。 ad_vo=(float)adval*。 } //液晶1602顯示模塊/*LCD1602顯示部分子函數(shù)*/void init1602() //LCD初始化函數(shù){ EN=0。//設(shè)置16X2顯示,5X7點(diǎn)陣,8位數(shù)據(jù)接口 write_(0x0c)。//寫一個字符后地址指針加1 write_(0x01)。 delay1()。 // RW=0,RS=0,寫LCD命令字 delay1()。 //E端時序 delay1()。 //將中的命令字寫入LCD數(shù)據(jù)口 delay1()。 delay1()。 }void write_data(uchar date)//1602寫數(shù)據(jù)函數(shù){ RW=0。 RS=1。 EN=1。 P0=date。 EN=0。 delay(5)。 init1602()。 V1=xs_vo/100。 V3=xs_vo%10。 for(num=0。num++) { write_data(table1[num])。 } write_(0x80+0x50)。 39。 delay(5)。S39。 delay(5)。:39。 write_data(39。)。 write_data(lcdd[1])。 write_data(lcdd[2])。 write_data(39。)。 write_data(lcdd[0])。 write_data(39。)。 write_data(39。)。 write_data(39。)。 write_data(39。)。 write_data(lcdd[V1])。 write_data(lcdd[V2])。 write_data(39。)。 write_data(lcdd[V3])。 for(num=0。num++)//移屏顯示 { write_(0x1c)。 }} //數(shù)據(jù)存儲模塊//at24c02部分子函數(shù)void init24c02()//24c02初始化函數(shù){ sda=1。 scl=1。}void start() //開始信號{ sda=1。 scl=1。 sda=0。}void stop() //停止{ sda=0。 scl=1。 sda=1。}void respons() //應(yīng)答{ uchar i。 delay1()。amp。 scl=0。}void write_byte(uchar date)//串行發(fā)送字節(jié)函數(shù){ uchar i,temp。 for(i=0。i++) { temp=temp1。 delay1()。 delay1()。 delay1()。 delay1()。 delay1()。 scl=0。 sda=1。 for(i=0。i++) { scl=1。 k=(k1)|sda。 delay1()。}void write_add(uchar address,uchar date)//24c02字節(jié)寫入函數(shù){ start()。 respons()。 respons()。 respons()。}uchar read_add(uchar address)//24c02字節(jié)讀操作函數(shù){ uchar date。 write_byte(0xa0)。 write_byte(address)。 start()。 respons()。 stop()。}void AT24c02(){ init24c02()。 //保存蓄電池過電壓數(shù)據(jù) if(write==1) //判斷計時器是否計時一秒 { write=0。 //在24c02的地址p中寫入數(shù)據(jù)a1
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1