




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)及模數(shù)綜合系統(tǒng)設(shè)計(jì)課題名稱:基于STC12系列單片機(jī)的串聯(lián)型開關(guān)電源設(shè)計(jì)與實(shí)現(xiàn)-單片機(jī)控制部分一、實(shí)驗(yàn)?zāi)康?本模擬電路課程設(shè)計(jì)要求制作開關(guān)電源的模擬電路部分,在掌握原理的基礎(chǔ)上將其與單片機(jī)相結(jié)合,完成開關(guān)電源的設(shè)計(jì)。本報(bào)告旨在詳述開關(guān)電源的原理分析、計(jì)算、仿真波形、相關(guān)控制方法以及程序展示。二、總體設(shè)計(jì)思路 本設(shè)計(jì)由開關(guān)電源的主電路和控制電路兩部分組成,主電路主要處理電能,控制電路主要處理電信號(hào),采用負(fù)反饋構(gòu)成一個(gè)自動(dòng)控制系統(tǒng)。開關(guān)電源采用PWM控制方式,通過給定量與反饋量的比較得到偏差,通過調(diào)節(jié)器控制PWM輸出,從而控制開關(guān)電源的輸出。當(dāng)鍵盤輸入預(yù)置電壓后,單片機(jī)通過PWM輸出一個(gè)固定
2、頻率的脈沖信號(hào),作用于串聯(lián)開關(guān)電源的二極管和三極管,使三極管以一定的頻率導(dǎo)通與斷開,然后輸出進(jìn)行AD轉(zhuǎn)化,轉(zhuǎn)化后的結(jié)果再給單片機(jī)進(jìn)行輸出,進(jìn)行數(shù)碼管顯示.系統(tǒng)的基本框圖及控制部分如下:控制過程原理分析:單片機(jī)所采用的芯片為STC12C5A60S2,該芯片在擁有8051內(nèi)核的基礎(chǔ)上加入了10為AD和PWM發(fā)生器.通過程序,即可控制單片機(jī)產(chǎn)生一定占空比的PWM脈沖,將此脈沖輸入到模擬電路部分,在模擬電路的輸出端即可產(chǎn)生一定的輸出電壓,可比較容易的通過程序來實(shí)現(xiàn)對(duì)輸出電壓的控制。但上述的開環(huán)控制是無法達(dá)到精確的調(diào)節(jié)電壓,因此需要采用閉環(huán)控制來精確調(diào)制。即,對(duì)輸出電壓進(jìn)行AD采樣,將其輸入回單片機(jī)中進(jìn)
3、行數(shù)據(jù)處理。單片機(jī)根據(jù)處理的結(jié)果來對(duì)輸出電壓做出修正,經(jīng)過這樣的逐步調(diào)節(jié)即可達(dá)到閉環(huán)的精密輸出。由此原理,可以將整個(gè)過程分成一下模塊:PWM波形輸出模塊,模擬電路模塊,AD轉(zhuǎn)換模塊,數(shù)碼管顯示模塊,鍵盤輸入模塊??刂七^程基本思路為:首先從鍵盤輸入一個(gè)電壓值,并把該電壓值在數(shù)碼管上面顯示出來,再由A/D轉(zhuǎn)換模塊對(duì)串聯(lián)開關(guān)電源電路的輸出端進(jìn)行電壓采集,將采集到的電壓值與鍵盤輸入的電壓值進(jìn)行比較,通過閉環(huán)算法,控制PWM的脈寬輸出,由此控制串聯(lián)開關(guān)電壓電源電路,改變輸出的電壓值,使得輸出值與設(shè)定的電壓值相等.3、 系統(tǒng)各單元模塊電路設(shè)計(jì)1、 鍵盤輸入數(shù)據(jù)部分分別接到單片機(jī)的P2.4,P2。5,P2。
4、6,P2。7.每路通過電阻進(jìn)行上拉,可以編程實(shí)現(xiàn)控制單片機(jī)運(yùn)行不同程序.為了判斷鍵盤上面的按鍵是否有按下的,可以事先對(duì)P2。4,P2。5,P2。6,P2。7端口賦值,便可以知道具體是哪個(gè)按鍵被按下了。例如:P2。4=0,便可知道P2。4對(duì)應(yīng)的按鍵已經(jīng)按下了.鍵盤輸入模塊程序如下: void key( ) /鍵盤掃描函數(shù) if(P2_6= 0) delay(10);/延時(shí)去抖動(dòng) if(P2_6= 0) while(P2_6= 0) if(a<9)a+; else a=0; if(P2_5 = 0) delay(10);/延時(shí)去抖動(dòng) if(P2_5 = 0) while(P2_5= 0);
5、if(b9) b+; else(b=0); if(P2_4 = 0) delay(10);/延時(shí)去抖動(dòng) if(P2_4 = 0) while(P2_4= 0); if(c<5) c+; else c=0; if(P2_7=0) delay(10); if(P2_7=0) while(P2_7=0); P1_5=!P1_5; 2、數(shù)碼管數(shù)據(jù)顯示部分知道了上面在鍵盤輸入的數(shù)值后,便要在數(shù)碼管上面顯示出來。該實(shí)驗(yàn)板的8位數(shù)碼管是共陰極的數(shù)碼管,使用端口為P0和P2.0P2。4口,且為動(dòng)態(tài)數(shù)碼管,因此在同一時(shí)間,只有一個(gè)數(shù)碼管是亮著,但由于人眼的視覺殘留,使得看上去是全部一起亮著的.8位分別有段
6、選和位選,段選就是要一個(gè)數(shù)碼管顯示的字型,而位選則是由低電平選中所要那一個(gè)數(shù)碼管,該數(shù)碼管才能亮。因此要使得數(shù)碼管亮并顯示數(shù)字,則必須在位選時(shí)該數(shù)碼管的位選管腳出于低電平,然后再通過段選顯示字型。如下圖所示的數(shù)碼管:數(shù)碼管顯示模塊程序?yàn)椋簐oid display(float x) uint M,N,I; I=100x/100; N=(100x100I)/10; M=100x100I10N; P2_0=0; P0=table0; delay(10); P2_0=1; P2_1=0; P0=gao_tableI; delay(10); P2_1 =1; P2_2=0; P0=tableN; del
7、ay(10); P2_2= 1; P2_3=0; P0=tableM; delay(10); P2_3=1;3、控制PWM輸出部分STC12C5A60S2系列單片機(jī)集成了兩路可編程計(jì)數(shù)器陣列(PCA)模塊,可用于軟件定時(shí)器,外部脈沖的捕捉,高速輸出以及脈寬調(diào)制(PWM)輸出。在該實(shí)驗(yàn)中主要用到PWM脈寬調(diào)制輸出,通過對(duì)特殊功能寄存器初始化,就可以在P1.3(選擇模式0時(shí)) 或P1.4(選擇模式1時(shí))端口輸出可調(diào)占空比的高速脈沖。PWM模塊程序如下: void PWM_Drv_Init(void)CCON = 0;/初始化PCA控制寄存器CL = 0;/初始化PCA計(jì)數(shù)器CH = 0;CMOD
8、= 0x08;CR = 1; void PWM0_Drv_SetDuty(unsigned char DutyValue)CCAP0H = CCAP0L = DutyValue;/設(shè)置看空比CCAPM0 = 0x42;CR = 1; PWM 仿真圖為:4、AD轉(zhuǎn)換模塊(完成萬用表功能,即測量開關(guān)電源輸出電壓)STC12C5A60S2系列單片機(jī)自帶有8路10位高速A/D轉(zhuǎn)換器,在本實(shí)驗(yàn)中只用到其中的一路,故可以通過軟件設(shè)計(jì)選擇其中的一路用來測量電壓。在不需作為A/D轉(zhuǎn)換的端口可以繼續(xù)作為I/O口使用.AD轉(zhuǎn)換對(duì)特殊功能寄存器的初始化主要有ADC_CONTR和A/D轉(zhuǎn)換結(jié)果寄存器ADC_RES(用
9、來存放高八位) ADC_RESL(用來存放低兩位);在ADC_CONTR中包含有ADC電源控制位ADC_POWER,模數(shù)轉(zhuǎn)換器轉(zhuǎn)換速度控制位SPEED1 SPEED0,模數(shù)轉(zhuǎn)換器轉(zhuǎn)換結(jié)束標(biāo)志位ADC_FLAG,模數(shù)轉(zhuǎn)換器(ADC)轉(zhuǎn)換啟動(dòng)控制位ADC_START,模擬輸入通道選擇CHS1/CHS2/CHS3。由于是2套時(shí)鐘,在設(shè)置ADC_CONTR控制寄存器的語句執(zhí)行之后,要經(jīng)過4個(gè)CPU時(shí)鐘的延時(shí),其值才能夠保證被這只進(jìn)ADC_CONTR控制寄存器,所以設(shè)置ADC_CONTR控制寄存器后,要加4個(gè)空操作延時(shí)才能正確讀到ADC_CONTR寄存器的值。ADC的結(jié)構(gòu)如下圖所示:AD轉(zhuǎn)化模塊的程序?yàn)?/p>
10、:void ADC_Drv_Demo(void)if(ADC_Finish_Flag = TRUE)ADC_Finish_Flag = FALSE;ADC_Drv_StartCh(ADC_channel);m=ADC_ResultADC_channel*5。0/1024;5、閉環(huán)控制算法這部分是整個(gè)實(shí)驗(yàn)中最重要的部分,該部分主要是通過A/D采集數(shù)據(jù)控制PWM輸出,PWM控制開關(guān)電源輸出,以達(dá)到穩(wěn)定,即讓開關(guān)電源輸出電壓穩(wěn)定在鍵盤輸入的電壓值.針對(duì)前面的要求,則需要用單片機(jī)來完成所有的控制與計(jì)算。在該實(shí)驗(yàn)中,作為AD采集的端口為P1。7,PWM輸出端口為P1.3,在采集完電壓數(shù)據(jù)的時(shí)候把數(shù)據(jù)存放
11、在ADC之中,而從鍵盤輸入數(shù)值時(shí),鍵盤上顯示的是一個(gè)小數(shù),但在單片機(jī)中存在中間變量temp的是一個(gè)整數(shù),為小數(shù)的1000倍,因此在引用數(shù)碼管顯示的數(shù)值時(shí)要將temp除以1000才能得到實(shí)際的設(shè)置電壓數(shù)值Vs;另一方面,采集回來的電壓ADC要轉(zhuǎn)換成實(shí)際的電壓數(shù)值,則由下面的算法得出:真實(shí)值 Vr = ADV5。0/1024。0 在得到這兩個(gè)數(shù)值之后對(duì)他們進(jìn)行比較,要是Vr<Vs,說明采集回來的電壓偏低,此時(shí)則要降低PWM輸出脈沖的占空比;同理,當(dāng)Vr>Vs時(shí),則要增大PWM輸出脈沖的占空比,由此而使得串聯(lián)開關(guān)電路的輸出電壓與事先所設(shè)置的電壓值相同。實(shí)際測得的電壓與設(shè)置的電壓對(duì)比表格如
12、下:Vs0。80。80.91。01。11.21.31。41。51。61。7Vr0.790。890.981.081。181。281。391.491。591。71.81。92。02.12.22。32。42。52。62。72。82。91。781。882。022。082。172.282.382.512。582.682。782.913.03。13。23。33。43。53.63。73。83。94。0>4。02.983。123。193。283。393。483.593.683。793。963。98通過上面的表格可以看出來,雖然實(shí)際測出來的電壓Vr和設(shè)置的電壓Vs有一定的誤差,但是總體還是在設(shè)置的電壓附近
13、波動(dòng),所能輸出地電壓范圍為0。8v4.0v。誤差原因分析:(1)單片機(jī)電源不夠穩(wěn)定,在接入電腦后給單片機(jī)提供的電壓小于5V(2)提供給AD轉(zhuǎn)換的參考電壓不夠精確,使轉(zhuǎn)化存在誤差。4、 心得體會(huì)通過這次實(shí)驗(yàn)讓我知道理論需要聯(lián)合實(shí)際,只有將自己所掌握的知識(shí)真正應(yīng)用于實(shí)際才算真正的掌握了知識(shí)。在剛開始做的時(shí)候我對(duì)于單片機(jī)的知識(shí)理論只是有一些模糊的印象,不能真正掌握單片機(jī)的知識(shí),比如用AD采樣需要用單片機(jī)的哪些管腳,還有數(shù)碼管需要用哪些管腳控制,并且哪些管腳控制段選,哪些控制位選.這些我都不太清楚,但通過請(qǐng)教才會(huì)用程序?qū)懗鰜?。雖然這次實(shí)驗(yàn)做出來了,但是我還是有些知識(shí)無法真正掌握,比如定時(shí)器中斷或定時(shí),
14、所以這次實(shí)驗(yàn)我只能用delay延時(shí)來寫.通過這次實(shí)驗(yàn)我還注意到細(xì)節(jié)決定一個(gè)程序是否能成功運(yùn)行,比如我在寫程序是應(yīng)用了ifelse格式,可是因?yàn)樵趯懙倪^程中括號(hào)沒對(duì)齊,使程序沒能成功運(yùn)行,經(jīng)過同學(xué)幫忙才成功運(yùn)行。還有的細(xì)節(jié)就是關(guān)于鍵盤的防抖動(dòng)問題。總體來說,我通過這次課程設(shè)計(jì)不單單學(xué)到了很多單片機(jī)和C51編程的的知識(shí),更多的是學(xué)會(huì)了學(xué)習(xí)的方法,能夠?qū)⑺鶎W(xué)到的知識(shí)用到實(shí)驗(yàn)上面,可以把知識(shí)記得更清楚。這還更多地提高了在遇到實(shí)際問題時(shí)該怎樣解決實(shí)際問題的能力。更深入地學(xué)習(xí)C語言,又可以更多地提高自己的邏輯,思考能力,使思維結(jié)構(gòu)更嚴(yán)謹(jǐn).希望在以后的學(xué)習(xí)之中可以更多地接觸到這樣的實(shí)驗(yàn),那樣就可以更好地提高
15、自己的動(dòng)手能力與對(duì)所學(xué)知識(shí)的運(yùn)用能力本實(shí)驗(yàn)C程序源代碼:/*/*文件名:開關(guān)穩(wěn)壓電源.c*/*功能:設(shè)定電壓初始值,使得輸出電壓值與數(shù)碼管顯示值相同*/單片機(jī)型號(hào):STC12C5A60S2(帶AD轉(zhuǎn)換與PWM脈寬調(diào)制輸出功能)*/*/*/ include ”stc12c5a60s2。h” include <intrins.h> define uint unsigned int define uchar unsigned char #define TRUE 1 #define FALSE 0 void delay( uint z);/延時(shí)函數(shù)聲明 void display(float
16、 m ); /顯示函數(shù)聲明 void key( );/鍵盤掃描函數(shù) void ADC_Drv_InitCh(unsigned char ChNo); void ADC_Drv_StartCh(unsigned char ChNo); void ADC_Drv_Service(void); void ADC_Drv_Demo(void); void PWM_Drv_Init(void); void PWM0_Drv_SetDuty(unsigned char DutyValue); uchar ADC_channel =7;/選中哪一個(gè)通道的變量(范圍 0 7) uint ADC_Result8
17、=0; /保存ADC轉(zhuǎn)換結(jié)果 float m,n; uchar D; uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; uchar code gao_table=0x40,0x79,0x24,0x30,0x19,0x12; sbit P2_0=P20; sbit P2_1=P21; sbit P2_2=P22; sbit P2_3=P23; sbit P2_4=P24; sbit P2_5=P25; sbit P2_6=P26; sbit P2_7=P27; sbit PWM0=P13;/定義PWM0的輸出端
18、 sbit P1_5=P15; bit ADC_Finish_Flag=FALSE;/ADC完成標(biāo)志 uint a,b,c;void main( ) a=0,b=0,c=0,D=100; P1_5=0; ADC_Drv_InitCh(7); ADC_Drv_StartCh(7); PWM_Drv_Init( );while(1) key( ); n=c+0。1*b+0.01*a; ADC_Drv_Service(); ADC_Drv_Demo();PWM0_Drv_SetDuty(D); if(mn) if((m+0.05)>n); else if(D<=0) D=0; else
19、D; if(m>n) if((m0。05)n); else if(D=255) D=255; else D+; if(P1_5) display(m);else display(n); void delay(uint z) /延時(shí)函數(shù)uint x,y; for(x=z;x0;x-)for(y=110;y>0;y); void key( ) /鍵盤掃描函數(shù) if(P2_6= 0) delay(10);/延時(shí)去抖動(dòng) if(P2_6= 0) while(P2_6= 0); if(a9)a+; else a=0; if(P2_5 = 0) delay(10);/延時(shí)去抖動(dòng) if(P2_5
20、= 0) while(P2_5= 0); if(b9) b+; else(b=0); if(P2_4 = 0) delay(10);/延時(shí)去抖動(dòng) if(P2_4 = 0) while(P2_4= 0); if(c5) c+; else c=0; if(P2_7=0) delay(10); if(P2_7=0) while(P2_7=0); P1_5=!P1_5; void display(float x) uint M,N,I; I=100x/100; N=(100x100I)/10; M=100x100I10*N; P2_0=0; P0=table0; delay(10); P2_0=1; P2_1=0; P0=gao_tableI; delay(10); P2_1 =1; P2_2=0; P0=tableN; delay(10); P2_2= 1; P2_3=0; P0=tableM; delay(10); P2_3=1; void ADC_Drv_InitCh(unsigned char ChNo)P1ASF = P1ASF (0x01 << ChNo);/初始化相應(yīng)通道工作在AD模式下void ADC_Drv_StartCh(uchar ChNo) /轉(zhuǎn)換啟動(dòng)uint Delay = 0x00;P1ASF = P1AS
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國燃?xì)獍踩y行業(yè)市場調(diào)研及未來發(fā)展趨勢預(yù)測報(bào)告
- 【高二化學(xué)芳香烴知識(shí)點(diǎn)】高二化學(xué)知識(shí)點(diǎn)總結(jié)
- 婚禮策劃行業(yè)市場全景評(píng)估及投資前景展望報(bào)告
- 【英語】數(shù)詞知識(shí)點(diǎn)總結(jié)經(jīng)典
- 村文化中心新建項(xiàng)目可行性研究報(bào)告-商業(yè)計(jì)劃書
- 【5A文】番茄粉生產(chǎn)項(xiàng)目可行性研究報(bào)告
- 進(jìn)口食品項(xiàng)目風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2025年石英玻璃纖維布項(xiàng)目發(fā)展計(jì)劃
- 飯?zhí)醚b修合同范本
- 2019-2025年中國股權(quán)式酒店行業(yè)未來發(fā)展趨勢分析及投資規(guī)劃建議研究報(bào)告
- 2025年臨床醫(yī)師定期考核必考復(fù)習(xí)題庫及答案(1060題)
- 市場消防安全課件
- 名師工作室建設(shè)課件
- 2025-2025學(xué)年度人教版小學(xué)五年級(jí)美術(shù)下冊(cè)教學(xué)計(jì)劃
- 《電力建設(shè)工程施工安全管理導(dǎo)則》(NB∕T 10096-2018)
- 2024-2025學(xué)年廣東省部分學(xué)校高一(上)第一次聯(lián)合考試物理試卷(含答案)
- 《黃色新聞的泛濫》課件
- 2024年山東省公務(wù)員考試《行測》真題及答案解析
- 化工原理Ⅱ?qū)W習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024-2025學(xué)年初中體育與健康九年級(jí)全一冊(cè)人教版(2024)教學(xué)設(shè)計(jì)合集
- 環(huán)保產(chǎn)業(yè)政策及市場發(fā)展趨勢分析研究
評(píng)論
0/150
提交評(píng)論