智能開關(guān)電源設(shè)計_第1頁
智能開關(guān)電源設(shè)計_第2頁
智能開關(guān)電源設(shè)計_第3頁
智能開關(guān)電源設(shè)計_第4頁
智能開關(guān)電源設(shè)計_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、成績等級本科畢業(yè)設(shè)計題 目 智能開關(guān)電源設(shè)計 學(xué) 院 工學(xué)院 專 業(yè) 自動化 班 級 自動化統(tǒng)本1101班 學(xué) 號 學(xué)生姓名 指導(dǎo)教師 完成日期 西安思源學(xué)院教務(wù)處制二一年五月中文摘要本畢業(yè)設(shè)計是由STC公司生產(chǎn)的一款低功耗、高性能的8位微控制器STC89C52單片機作為控制部分,采用 Buck串聯(lián)降壓電路, 運用PFM脈沖頻率信號控制2SA1085三極管開關(guān),ADC0804 A/D芯片,12864 LCD顯示器和鍵盤輸入,設(shè)計制作的一個輸出電壓為5V-24V可調(diào)的開關(guān)電源系統(tǒng)。單片機輸出的方波控制Buck電路,通過電壓回路的反饋控制,將輸出電壓穩(wěn)壓到所需要的電壓值。STC89C52單片機通過

2、ADC0804芯片對輸出電壓進行采樣,與設(shè)定值進行比較,將處理的信號傳輸給電源模塊,改變電源模塊的內(nèi)部輸出電壓值,從而實現(xiàn)本設(shè)計輸出穩(wěn)定可調(diào)的電壓。關(guān)鍵詞: STC89C52單片機 ADC0804 PFM脈沖頻率信號 Buck電路AbstractThe design microcontroller system by STC89C52, adopts the Buck series Buck circuit, A PFM pulse frequency signal is used to control two sa1085 triode switch, A/D chip ADC0804, 1

3、2864 LCD display and keyboard input, design and production of an output voltage of 5 v - 24 v adjustable switching power supply system. Microcontroller output of square wave to control the Buck circuit, through the voltage feedback control loop, the output voltage regulated to the required voltage v

4、alue. STC89C52 single-chip microcomputer by ADC0804 chip output voltage sampling, compared with the set value, will deal with the signal transmission to the power supply module, change the internal output voltage value of power supply module, so as to realize the design of adjustable output stable v

5、oltage.Keywords:STC89C52CM ADC0804 PFM signal Buck circuit目錄1、緒論11.1引言11.2開關(guān)電源簡介12、開關(guān)電源DC/DC電路設(shè)計思路32.1工作原理3脈沖頻率調(diào)制優(yōu)點32.2 開關(guān)電源常見的拓?fù)浣Y(jié)構(gòu)簡介3降壓斬波電路(Buck Chopper)3升壓斬波電路( Boost Chopper)4升降壓斬波電路(Boost-Buck Chopper)42.3 開關(guān)電源DC/DC設(shè)計思路42.3.1 DC/DC基本設(shè)計方案42.4 DC/DC電路實現(xiàn)52.5 系統(tǒng)供電部分設(shè)計62.5.1 整流濾波電路設(shè)計72.5.2 浪涌電流電壓抑制電路

6、設(shè)計73、控制系統(tǒng)的設(shè)計思路93.1 控制系統(tǒng)的基本設(shè)計方案93.2 單片機模塊的設(shè)計103.2.1 STC89C52性能簡介103.2.2 最小系統(tǒng)設(shè)計10時鐘電路設(shè)計113.3 A/D模塊設(shè)計11芯片介紹11芯片參數(shù)12各個引腳名稱及作用123.3.4 轉(zhuǎn)換原理133.4 接口電路的設(shè)計14按鍵接口電路設(shè)計143.4.2 顯示接口電路設(shè)計144、程序設(shè)計164.1 主程序流程圖的設(shè)計164.2 鍵盤掃描程序設(shè)計174.3 A/D程序設(shè)計185、仿真結(jié)果及分析195.1 Proteus仿真軟件195.2 設(shè)計仿真195.2.1 仿真實驗一195.2.2 仿真實驗二205.3仿真分析21參考文

7、獻(xiàn)22致 謝23附 錄23附錄一:系統(tǒng)整體原理圖24附錄二:系統(tǒng)仿真圖26附錄三:程序代碼27主程序:27鍵盤掃描子程序34LCD12864驅(qū)動程序35智能開關(guān)電源設(shè)計1、緒論1.1引言隨著電子技術(shù)迅速的發(fā)展,數(shù)字電路應(yīng)用領(lǐng)域逐步拓展,如今人們使用產(chǎn)品的數(shù)字化、智能化已成為人們追求的一種趨勢,設(shè)備的價格、性能、穩(wěn)定性等備受人們的關(guān)注,尤其是對電子設(shè)備的在使用過程中的穩(wěn)定度和精密度最為關(guān)心。想要得到性能良好的電子設(shè)備,肯定離不開穩(wěn)定且可靠的電源,想要得到壽命更長設(shè)備,就需要開關(guān)電源的穩(wěn)定性提高。基于此,高穩(wěn)定性、高精度的開關(guān)電源需求也越來越迫切。 眾所周知,生活中離不開電源,并且在實際應(yīng)用中對電

8、壓高低、通電時間、電流大小等有著不同的要求,如今大家生活中所使用的直流電源輸出的精度和穩(wěn)定性都不是很高;在輸出電壓的改變上,傳統(tǒng)的開關(guān)電源大多數(shù)都是采用指針式或者是數(shù)碼管來顯示電壓和電流,使用滑動電阻改變電阻值進而調(diào)整出所需要的電壓值及電流值。因滑動電阻的阻值特性為非線性,如想要得到理想的輸出值,在調(diào)節(jié)時需要花費一些時間,因此使用起來非常的不方便。所以,開關(guān)電源不只是需要具備較好的輸出質(zhì)量,而且還需要具有一定的智能化和多功能,給生活帶來不同程度的便捷與高效。1.2開關(guān)電源簡介開關(guān)電源是運用電力電子技術(shù),通過控制三極管的打開和關(guān)閉的時間比,達(dá)到穩(wěn)定輸出電壓的一種電源,本畢業(yè)設(shè)計的開關(guān)電源是運用脈

9、沖頻率調(diào)制PFM (Pulse frequency modulation)控制三極管的打開和關(guān)閉的構(gòu)成,就開關(guān)電源與線性電源相比而言,兩者的成本雖然都隨著輸出功率的逐步增加而增長,但是兩者成本的增長速率各不相同。線性電源成本在某輸出功率點上,反而高于開關(guān)電源,這點稱為成本反轉(zhuǎn)點,隨著電力電子技術(shù)的發(fā)展和創(chuàng)新,使得開關(guān)電源技術(shù)也在不斷地創(chuàng)新,這成本反轉(zhuǎn)點日益向低輸出電力端移動,這為開關(guān)電源提供了廣闊的發(fā)展空間1。2、開關(guān)電源DC/DC電路設(shè)計思路2.1工作原理 脈沖頻率調(diào)制的英文全稱為Pulse frequency modulation,縮寫為PFM,脈沖頻率調(diào)制是一種脈沖調(diào)制技術(shù),調(diào)制信號的頻

10、率隨著輸入信號幅值的變化而變化,但其占空比不變,由于調(diào)制信號通常為頻率變化的方波信號,因此,PFM也叫做方波FM2。脈沖頻率調(diào)制優(yōu)點脈沖頻率調(diào)制相比較脈沖寬度調(diào)制主要優(yōu)點在于效率:在脈沖頻率和脈沖寬度調(diào)制的外圍電路一樣的基礎(chǔ)上,脈沖頻率調(diào)制的峰值效率與脈沖寬度調(diào)制的峰值效率相當(dāng),但是在峰值效率以前,脈沖頻率調(diào)制的效率遠(yuǎn)遠(yuǎn)高于脈沖寬度調(diào)制的效率,這就是脈沖頻率調(diào)制的主要優(yōu)勢。由于脈沖寬度調(diào)制電路中有放大器的影響,所以回路增益及其響應(yīng)速度受到了限制,但脈沖頻率調(diào)制的電路中沒有放大器,所以它具有有較快的響應(yīng)速度。2.2 開關(guān)電源常見的拓?fù)浣Y(jié)構(gòu)簡介降壓斬波電路(Buck Chopper) 三極管V受到

11、PFM波的控制,處于導(dǎo)通和截止的兩個狀態(tài),再經(jīng)過電感和電容的濾波,在R負(fù)載上得到穩(wěn)定的直流輸出電壓。該電路屬于降壓型電路,所以能夠達(dá)到論文要求的輸出電壓5-24V。如圖2-1所示:圖2-1 降壓斬波電路升壓斬波電路( Boost Chopper)升壓斬波電路原理與降壓斬波電路原理相類似,但是這個電路是升壓型電路。在三極管導(dǎo)通時電感儲能,截止時電感能量輸出。只有在電感繞制合理時,才能達(dá)到論題要求的5-25V輸出電壓。如圖2-2所示:圖2-2 升降壓電路升降壓斬波電路(Boost-Buck Chopper)實際上此電路是在降壓斬波電路后接入了一個儲能電感,用電感的儲能來實現(xiàn)電能的輸出,但是此電路控

12、制復(fù)雜。如圖2-3所示:圖2-3 升降壓電路2.3 開關(guān)電源DC/DC設(shè)計思路 DC/DC基本設(shè)計方案本畢業(yè)設(shè)計由電源、STC89C52單片機控制等幾部分構(gòu)成,如硬件系統(tǒng)框圖2-4所示:輸入濾波DC/DC變換輸出濾波電阻控制IC控制脈沖電壓反饋二極管微機調(diào)節(jié)信號給定電壓采樣-圖2-4 硬件系統(tǒng)框圖2.4 DC/DC電路實現(xiàn) Q2與Q3組成無穩(wěn)態(tài)振蕩器(astable multivibrator)。Q2的導(dǎo)通時間由R7、R5和Q4的集電極電壓決定。Q4起放大作用,信號由Q4放大后控制Q2的導(dǎo)通時間。Q2導(dǎo)通Q3截止,Q2截止Q3導(dǎo)通。Q3截止時,Q1導(dǎo)通,通過Q3的截止時間控制Q1的導(dǎo)通時間。Q

13、1導(dǎo)通時間越長,輸出電壓越高。 Q1輸出的電壓經(jīng)L1和C1濾波變成穩(wěn)定的直流電源輸出。D3為增強二極管,防止L1在Q1截止時產(chǎn)生的高反壓擊穿Q1。D1為泄流二極管,防止L1產(chǎn)生的感應(yīng)電流損壞Q1。D2為振蕩器和放大取樣電路提供相對穩(wěn)定一點的工作電壓。R12與R13是Q4的基極偏置電路,R9與R10是輸出電源的取樣電路。如圖2-5 所示:圖2-5 DC-DC回路原理圖2.5 系統(tǒng)供電部分設(shè)計220V交流50HZ的市電經(jīng)變壓器降至18V交流電,經(jīng)過整流二極管整流和濾波作為DC-DC部分的輸入24V直流電,24V 直流電經(jīng)7805 降壓穩(wěn)壓,給STC89C52單片機等提供工作電源。如圖2-6所示:圖

14、2-6 工作電源 整流濾波電路設(shè)計本畢業(yè)設(shè)計采用四只整流二極管組成的整流電路將交流電轉(zhuǎn)化為直流電。運用電感器、電容器及共模濾波器對輸出的電壓進行進一步的處理。如圖2-7所示:圖2-7 橋式整理濾波電路 浪涌電流電壓抑制電路設(shè)計電路在遭雷擊和在接通、斷開電感負(fù)載或大型負(fù)載時常常會產(chǎn)生很高的操作過電壓,這種瞬時過電壓(或過電流)稱為浪涌電壓(或浪涌電流),是一種瞬變干擾,浪涌電壓大大地超過穩(wěn)態(tài)電源電壓,當(dāng)它襲擊到用電設(shè)備上時,往往造成誤操作和設(shè)備的損壞,可能使整個系統(tǒng)停頓、通信中止3。由上所述浪涌電流及電壓對開關(guān)電源及用電設(shè)備的破壞性,必須在開關(guān)電源的設(shè)計中考慮到浪涌電流及電壓對開關(guān)電源及用電設(shè)備

15、影響,從而增加有效的防護措施,設(shè)計出能夠?qū)擞侩娏骷半妷河行б种频碾娐罚瑢﹂_關(guān)電源本身及用電設(shè)備進行保護。本畢業(yè)設(shè)計中運用氧化鋅(ZnO)壓敏電阻器,該電阻在實際應(yīng)用中通常并聯(lián)在被保護設(shè)備的輸入端,抑制浪涌電壓。運用NTC熱敏電阻器,NTC熱敏電阻器在電路中通常串聯(lián)在被保護電器的輸入端,抑制浪涌電電流。如圖2-8所示:圖2-8 浪涌電流電壓抑制電路3、控制系統(tǒng)的設(shè)計思路3.1 控制系統(tǒng)的基本設(shè)計方案此設(shè)計用到STC89C52單片機,通過按鍵的鍵值來設(shè)定所需的電壓值,然后單片機進行處理,產(chǎn)生輸出所需相對電壓值的相對頻率的方波,使DC-DC部分輸出所需的電壓。ADC0804模數(shù)芯片對輸出電壓進行采

16、樣,然后反饋給單片機,進行電壓自動調(diào)節(jié)。如圖3-1系統(tǒng)整體框圖。反饋負(fù)載DC/DC微控制單元鍵盤輸入輸入顯示AD轉(zhuǎn)換PFM220V變壓器整流濾波系統(tǒng)供電圖3-1 系統(tǒng)整體框圖3.2 單片機模塊的設(shè)計 STC89C52性能簡介STC89C52是由STC公司制造生產(chǎn)的一款低電壓,高性能的8位單片機,片內(nèi)含有可反復(fù)擦寫的4KB只讀程序存儲器和128字節(jié)的隨機存儲器,2*4KB可編程閃速存儲器;壽命:10萬次寫/擦循環(huán);數(shù)據(jù)保留時間:10年;全靜態(tài)工作:0-24MHz;三級程序存儲器鎖定;2*128*8B內(nèi)部RAM;32個可編程I/O口線;3個16位定時/計數(shù)器;5個中斷源;可編程串行UART通道;片

17、內(nèi)震蕩器和掉電模式4。 最小系統(tǒng)設(shè)計單片機在啟動時,需要使單片機和與之相連接的其他部件全部保持在一個的初始狀態(tài),所以需要制造一個復(fù)位信號并從收到這個復(fù)位信號后進行工作。STC89C52自身帶有一個復(fù)位引腳RESET,采用施密特觸發(fā)輸入。當(dāng)晶振起振后,只需要復(fù)位腳上產(chǎn)生了2個機器周期以上的高電平,這樣就可以保證STC89C52的復(fù)位。復(fù)位完成后,如果RESET復(fù)位端仍然保持在高電平,STC89C52單片機就會一直處于復(fù)位進行的狀態(tài),只有在RESET復(fù)位端恢復(fù)低電平后,單片機才能進行后續(xù)程序處理。單片機的復(fù)位方式一般分為兩種,一種是自動復(fù)位,另一種是手動復(fù)位。圖3-2是STC89C52的復(fù)位電路,

18、采用的是自動復(fù)位和手動復(fù)位的組合電路形式。 圖3-2 復(fù)位電路時鐘電路設(shè)計CPU每執(zhí)行一條指令,都必須在一個同一時鐘脈沖控制下運行,時鐘脈沖是由單片機外圍設(shè)計的時序電路產(chǎn)生的。本畢業(yè)設(shè)計中時鐘系統(tǒng)采用內(nèi)部時鐘方式,利用STC89C52內(nèi)部集成的反相放大器,所需的外圍電路簡單,只需要一只晶振和 兩只電容即可,如圖3-3時鐘電路所示:圖3-3 時鐘電路3.3 A/D模塊設(shè)計芯片介紹ADC0804是 NS公司生產(chǎn)的一款8位、單通道、低價格A/D轉(zhuǎn)換器。主要特點是:模數(shù)轉(zhuǎn)換時間需約100us;方便的TTLS標(biāo)準(zhǔn)接口或CMOS標(biāo)準(zhǔn)接口,可以滿足差分電壓的輸入;內(nèi)含時鐘發(fā)生器;具有參考電壓輸入端;不需要調(diào)

19、零等等5。該芯片的引腳圖見圖3-4所示:圖3-4 ADC0804 引腳頂視圖芯片參數(shù)工作電壓:+5V,即VCC=+5V。模擬轉(zhuǎn)換電壓范圍:0+5V,即0Vin+5V。分辨率:8位。轉(zhuǎn)換時間:100us(fCK=640KHz時)。轉(zhuǎn)換誤差:±1LSB。參考電壓:2.5V,即Vref=2.5V。各個引腳名稱及作用Vin(+)、Vin(-):兩個模擬信號輸入端,可以接收單極性、雙極性和差模輸入信號。如圖3-5硬件連接圖:CLKIN:時鐘信號輸入端。CS:片選信號的輸入端,只有低電平有效。WR:寫信號輸入端,低電平啟動AD轉(zhuǎn)換。RD:讀取信號的輸入端,只有低電平時輸出有效。VREF/2:參考

20、電平輸入,決定量化單位。VCC:芯片電源5V輸入。AGND:模擬電源地線。DGND:數(shù)字電源地線。圖3-5 ADC0804硬件連接圖 轉(zhuǎn)換原理ADC0804是屬于逐次逼近式(Successive Approximation Method)A/D轉(zhuǎn)換器,這種類型的轉(zhuǎn)換器除了分辨率高轉(zhuǎn)換速度快以外,還有價格便宜的優(yōu)點。使用二分法的尋址方式,8位的轉(zhuǎn)換器需要8次的尋址,就能完成轉(zhuǎn)換的操作。操作時序圖及讀取數(shù)據(jù)時序圖如圖3-6所示:圖3-6 操作時序圖及讀取數(shù)據(jù)時序圖3.4 接口電路的設(shè)計3.4.1按鍵接口電路設(shè)計本畢業(yè)設(shè)計就采用矩陣鍵盤,作用是能夠減少按鍵與單片機連接時所占用的I/O線的數(shù)量,在按鍵

21、比較多的時候,采用這樣方法。   由于使用的按鍵是機械式的按鍵,每當(dāng)按鍵被按下時,按鍵會震動一段時間才會穩(wěn)定下來,為了避免STC89C52單片機誤判為多次輸入同一個按鍵,所以需要在程序中Delay一段時間,在鍵盤震動停止后,單片機再進行判讀按鍵按下的鍵值,這樣就可以實現(xiàn)鍵盤的穩(wěn)定輸入。如圖3-7所示:圖3-7 按鍵與單片機連接圖3.4.2 顯示接口電路設(shè)計 本畢業(yè)設(shè)計采用液晶顯示器,簡稱為LCD顯示器。 12864 LCD引腳說明如表3-1所示:表3-1 12864LCD引腳LCD與單片機接硬件連接如圖3-8所示:圖3-8 LCD與單片機連接圖4、程序設(shè)計4.1

22、主程序流程圖的設(shè)計系統(tǒng)初始化后,通過矩陣鍵盤鍵入電壓預(yù)設(shè)值,按確定鍵,系統(tǒng)輸出預(yù)設(shè)值。YY開始系統(tǒng)及個功能模塊初始化調(diào)用鍵盤掃描函數(shù)有鍵按下預(yù)置電壓值記錄行列號,延時10ms步進加一步進減一D/A數(shù)值+10超過預(yù)置改變當(dāng)前值顯示預(yù)置值A(chǔ)/D采樣計算電壓值顯示各參數(shù)返回NN圖4-1為系統(tǒng)主程序流程圖。圖4-1系統(tǒng)主程序流程圖4.2 鍵盤掃描程序設(shè)計本畢業(yè)設(shè)計為了避免STC89C52單片機誤判為多次輸入同一個按鍵,所以需要在程序中Delay一段時間,在鍵盤震動停止后,單片機再進行判讀按鍵按下的鍵值,這樣就可以實現(xiàn)鍵盤的穩(wěn)定輸入。如圖4-2鍵盤掃描程序流程圖。開始記錄行號,延時10mS記錄列號,獲得

23、按鍵位置完成一個數(shù)字輸入YN按鍵是否按下?按鍵是否按下?YN圖4-2 鍵盤掃描程序流程圖4.3 A/D程序設(shè)計A/D轉(zhuǎn)換子程序是對輸出模塊電壓進行轉(zhuǎn)換處理,并將相對應(yīng)的處理值傳輸?shù)綄?yīng)的內(nèi)存單元,然后傳輸給單片機,轉(zhuǎn)換流程圖如圖4-3所示:開始啟動A/D轉(zhuǎn)換(初始化)讀取模擬數(shù)據(jù)量A/D轉(zhuǎn)換發(fā)完數(shù)據(jù)?結(jié)束發(fā)送數(shù)據(jù)YN圖4-3 轉(zhuǎn)換流程圖5、仿真結(jié)果及分析5.1 Proteus仿真軟件 Proteus ISIS是英國Labcenter公司開發(fā)的實物仿真、電路分析的軟件。它在Windows的操作平臺上,可以完美的對各種集成電路和模擬器件進行仿真和分析,該程序軟件具有的以下特點: 實現(xiàn)了S

24、PICE電路和仿真單片機仿真相結(jié)合。具有數(shù)字電路仿真、模擬電路仿真、單片機及單片機的外部電路的組成系統(tǒng)的完美仿真、SPI調(diào)試器、鍵盤、LCD系統(tǒng)仿真、I2C調(diào)試器和RS232動態(tài)。 支持現(xiàn)在主流單片機系統(tǒng)的完美仿真。目前支持的單片機類型有:PIC16系列、8051系列、PIC12系列、68000系列、Z80系列、HC11系列、AVR系列、PIC18系列以及各種外圍芯片。 提供了軟件調(diào)試的功能。在硬件仿真的系統(tǒng)中具有全速、單步及設(shè)置斷點等調(diào)試的功能,同時還可以觀察各個寄存器、變量等的當(dāng)前運行狀態(tài)。 具有很強大的原理圖的繪制功能。總之,該軟件是一款集SPICE分析和單片機仿真于一身的軟件,功能極其

25、強大。5.2 設(shè)計仿真5.2.1 仿真實驗一 設(shè)定的輸出電壓為2V,仿真中顯示器和電壓表顯示電壓在1.99-2.00V之間波動,示波器檢測單片機輸出引腳顯示為方波,頻率f=350HZ。仿真圖如圖5-1所示:圖5-1 仿真實驗一5.2.2 仿真實驗二 設(shè)定的輸出電壓為4V,仿真中顯示器和電壓表顯示電壓在3.99-4.01V之間波動,示波器檢測單片機輸出引腳顯示為方波,頻率f=725HZ。仿真圖如圖5-2所示:圖5-2 仿真實驗二5.3仿真分析 輸出的電壓值隨單片機輸出的方波頻率升高而增大。本次設(shè)計的仿真系統(tǒng)可以實現(xiàn)設(shè)計要求,輸出的電壓的可調(diào)并且步進可控,輸出的電流電壓值和實際值保持一致,總的說已

26、經(jīng)完成了這本畢業(yè)設(shè)計的要求。參考文獻(xiàn)1 賴文武,諸小天,李臨東等. 電磁干擾防護與電磁兼容技術(shù)M. 北京:北京原子能出版社, 2009。2 張紅纓,李華, 高小祥等. 采用雙環(huán)控制的多電平D類功率放大器J. 電工技術(shù)學(xué)報. 2010。3 Jiang X, Akyildiz L F. A novel distributed dynamic location management scheme for minimizing signaling costs in mobile IPJ. IEEE Trans. on Mobile Computing, 2002.4 Khan A, Qadeer M,

27、 Ansari J et al. Next Generation Wireless NetworkA. In:Interna- tional Conference on Future Computer and CommunicationC, Berlin: Springer-Verlag, 2009.5 普利斯曼,比得斯,莫瑞.開關(guān)電源設(shè)計(第三版)M.北京:電子工業(yè)出版社,2009。6/rfc/rfc4861.txt, 2007.7 郭軍華. 電磁干擾防護與電磁兼容技術(shù)研究D. 上海: 華東師范大學(xué)物理系, 2007,15-20。8 張建生等.電源技術(shù)教程M.北京:電子工業(yè)出版

28、社,2007。9 沈錦飛.電源變換應(yīng)用技術(shù)M.北京:機械工業(yè)出版社,2007。10 林立等.單片機原理及應(yīng)用基于Proteus和Keil CM.北京:電子工業(yè)出版社,2009。11 胡乾斌,李光斌,李玲等. 單片微型計算機原理與應(yīng)用M. 武漢:華中科技大學(xué)出版社,2005。致 謝在本論文的寫作過程中,我的導(dǎo)師老師耗費了大量的精力,從選題到開題,到一遍遍地指出稿中的每一個問題,嚴(yán)格把關(guān),在此我表示由衷感謝。同時感謝在我大學(xué)學(xué)習(xí)期間給我極大關(guān)心和支持的各位老師以及同學(xué)們。經(jīng)過十二周的查找參考資料和復(fù)習(xí)以前的課本知識,對本次畢業(yè)設(shè)計有了很多的體會和收獲。 大學(xué)生活即將結(jié)束,內(nèi)心是感慨頗多, 即將離開

29、生活所依四年的母校和諄諄教導(dǎo)我的親愛的老師和互相幫助的同學(xué)們,有些不舍。可是我同時也知道這是必須經(jīng)歷的一個過程, 在學(xué)校的這幾年里我學(xué)習(xí)了本專業(yè)基本課程和與老師同學(xué)之間相處方面的知識,這些并些都是我受用終生。 感謝各位專家的批評指導(dǎo) 附 錄附錄一:系統(tǒng)整體原理圖DC/DC電路原理圖控制系統(tǒng)原理圖附錄二:系統(tǒng)仿真圖附錄三:程序代碼主程序:#include<reg52.h>#include"includes.h"#define uchar unsigned char #define uint unsigned int#define SCANPORT P2#defin

30、e TIME1H 80#define TIME1L 80 sbit wr=P31;sbit rd=P30;sbit P27=P27;unsigned long int shuchu=100; /默認(rèn)的開機電壓/uint zhuhuandata;unsigned long int ch=0;uchar i=0; /按鍵標(biāo)記/uchar uca_LineScan3=0xEF,0xDF,0xBF;void chuli(); /函數(shù)定義/uchar getkey(); /函數(shù)定義/void qiuhe(uchar t) if(i=1) ch=t; vShowOneChar(6,89,ucat); if

31、(i=2) ch=ch*10+t; vShowOneChar(6,103,ucat); if(i=3) ch=ch*10+t; vShowOneChar(6,111,ucat); void key_chuli(uchar x) uchar t; switch(x)case 42: t=0; i+; qiuhe(t); if(i=3) vShowOneChin(2,49,uca_que); vShowOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'0'case 31: t=1; i+; qiuhe(t

32、); if(i=3) vShowOneChin(2,49,uca_que); vShowOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'1'case 32: t=2; i+; qiuhe(t); if(i=3) vShowOneChin(2,49,uca_que); vShowOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'2'case 33: t=3; i+; qiuhe(t); if(i=3) vSh

33、owOneChin(2,49,uca_que); vShowOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'3'case 21: t=4; i+; qiuhe(t); if(i=3) vShowOneChin(2,49,uca_que); vShowOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'4'case 22: t=5; i+; qiuhe(t); if(i=3) vShowOneChin(2,49

34、,uca_que); vShowOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'5'case 23: t=6; i+; qiuhe(t); if(i=3) vShowOneChin(2,49,uca_que); vShowOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'6'case 11: t=7; i+; qiuhe(t); if(i=3) vShowOneChin(2,49,uca_que); vSh

35、owOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'7'case 12: t=8; i+; qiuhe(t); if(i=3) vShowOneChin(2,49,uca_que); vShowOneChin(2,64,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'8'case 13: t=9; i+; qiuhe(t); if(i=3) vShowOneChin(2,49,uca_que); vShowOneChin(2,64

36、,uca_ding); vShowOneChin(4,59,uca_wenhao); break; /'9'case 41: if(i=3) /'ok' ch=ch*256/512; shuchu=ch; ch=0; TH0=65200; TL0=65200; vShowOneChin(2,49,uca_0); vShowOneChin(2,64,uca_0); vShowOneChin(4,48,uca_SHU); vShowOneChin(4,64,uca_CHU); vShowOneChar(6,88,uca_HEN); vShowOneChar(6,10

37、4,uca_HEN); vShowOneChar(6,112,uca_HEN); i=0; break; void vTimer0(void) interrupt 1 using 2 uchar a,d;unsigned long int c=0;uchar data tab3;a=(zhuhuandata&0xf0)>>4)*100/16); d=(zhuhuandata&0x0f)*100/256); c=(a+d)*5.12; tab0=c%10; tab1=c/10%10; tab2=c/100%10;vShowOneChar(2,89,ucatab2);v

38、ShowOneChar(2,103,ucatab1);vShowOneChar(2,111,ucatab0); TH0=TIME1H;TL0=TIME1L;void main(void) SCANPORT=0x8F;ClearLCD(0x00);vShowOneChar(2,89,uca5);vShowOneChar(2,96,uca_XIAOSHU);vShowOneChar(2,103,uca0);vShowOneChar(2,111,uca0);vShowOneChar(2,120,uca_V); vShowOneChin(0,0,uca_DANG);vShowOneChin(0,16,

39、uca_QIAN);vShowOneChin(0,32,uca_GONG);vShowOneChin(0,48,uca_ZUO);vShowOneChin(0,64,uca_DIAN);vShowOneChin(0,80,uca_YA);vShowOneChin(0,96,uca_MAOHAO);vShowOneChin(4,0,uca_QING);vShowOneChin(4,16,uca_SHE);vShowOneChin(4,32,uca_ZHI);vShowOneChin(4,48,uca_SHU);vShowOneChin(4,64,uca_CHU);vShowOneChin(4,8

40、0,uca_DIAN);vShowOneChin(4,96,uca_YA);vShowOneChin(4,112,uca_MAOHAO);vShowOneChar(6,96,uca_XIAOSHU);vShowOneChar(6,88,uca_HEN);vShowOneChar(6,104,uca_HEN);vShowOneChar(6,113,uca_HEN);vShowOneChar(6,119,uca_V);TMOD=0X01; TH0=TIME1H;TL0=TIME1L;ET0=1;/T/C0開中斷TR0=1; /開定時器0中斷IT0=1;/外中斷方式:下降沿。EX0=1;/開啟外部中

41、斷。 EA=1; while(1) wr=0; wr=1; chuli(); if(zhuhuandata<=shuchu)P27=0;if(zhuhuandata>shuchu)P27=1; if(zhuhuandata<=shuchu)P27=0; void chuli() rd=0; zhuhuandata=P0;unsigned char getkey() uchar ucTemp=0; /掃描狀態(tài)暫存。uchar ucRow=0,ucLine=0; /行號,列號。 for(ucLine=0;ucLine<3;ucLine+)/列掃描 SCANPORT=uca_

42、LineScanucLine; ucTemp=SCANPORT&0x8F; if(ucTemp!=0x8F) switch(ucTemp)case 0x8E: ucRow=10;break; case 0x8D: ucRow=20;break;case 0x8B: ucRow=30;break;case 0x87: ucRow=40;break;default: P2=P2; break; break; SCANPORT=0x8F; /恢復(fù)P2口 return (ucRow+ucLine+1);/ void vINT0(void) interrupt 0 EX0=0; key_chul

43、i(getkey(); while(SCANPORT&0x8F)!=0x8f) /等待按鍵松開/ ; EX0=1; 鍵盤掃描子程序#include <at89x51.h>#define SCANPORT P1 unsigned char uca_LineScan4=0xEF,0xDF,0xBF,0x7F;/列線掃描電壓unsigned char ucKeyScan()unsigned char ucTemp=0; /掃描狀態(tài)暫存。unsigned char ucRow=0,ucLine=0; /行號,列號。EX0=0; for(ucLine=0;ucLine<4;uc

44、Line+)/列掃描SCANPORT=uca_LineScanucLine; /輸出掃描電位。ucTemp=SCANPORT&0x0F; /輸入掃描電位 if(ucTemp!=0x0F) switch(ucTemp)case 0x0E: ucRow=10;break; /如果有,則判斷行號。case 0x0D: ucRow=20;break;case 0x0B: ucRow=30;break;case 0x07: ucRow=40;break;default: ucRow=50;break;break;SCANPORT=0x0F; /恢復(fù)P2口EX0=1;/恢復(fù)按鍵中斷。return

45、ucRow+ucLine+1; /返回按鍵編碼。LCD12864驅(qū)動程序#include <reg52.h>#defineLCDPORT P1sbitE= P37;sbitRW= P36;sbitDI= P35;sbitCS1= P33;sbitCS2= P34;sbit BUSYSTATUS= P17;/#define DISONSTATUS P0_5 /#define RSTSTATUS P0_4 /復(fù)位狀態(tài)位。#define LCDSTARTROW 0xC0 /設(shè)置起始行指令。#define LCDPAGE 0xB8 /設(shè)置頁指令。#define LCDLINE 0x40 /

46、設(shè)置列指令。bit bCheckBusy()LCDPORT=0x00;RW=1;DI=0;E=1;E=0;return BUSYSTATUS; void vWriteData(unsigned char ucData)while(bCheckBusy();LCDPORT=0x00;RW=0;DI=1;LCDPORT=ucData;E=1;E=0;void vWriteCMD(unsigned char ucCMD)while(bCheckBusy();LCDPORT=0x00; RW=0;DI=0;LCDPORT=ucCMD;E=1;E=0;/*void vLCDInitialize()CS1=1;CS2=1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論