分享一個(gè)單片機(jī)數(shù)控直流電源課程設(shè)計(jì)
方案一:原理框圖如圖1所示,采用數(shù)字邏輯控制。通過“+”、“-”兩鍵操作,控制可逆計(jì)數(shù)器分別作加、減計(jì)數(shù),可逆計(jì)數(shù)器的二進(jìn)制數(shù)字輸出一路用于驅(qū)動(dòng)數(shù)顯電路,指示電源輸出電壓的大小值;另一路進(jìn)入D/A轉(zhuǎn)換電路,將數(shù)字量按比例轉(zhuǎn)換成模擬電壓,然后經(jīng)過射極跟隨器控制調(diào)整輸出級輸出所需的穩(wěn)定電壓。該方案能夠完成基本要求,發(fā)揮部分受到限制。
1.001.jpg (9.23 KB, 下載次數(shù): 129)
下載附件
2017-5-19 16:39 上傳
圖一 方案一示意圖 方案二:原理框圖如圖2所示,采用8051單片機(jī)產(chǎn)生波形,D/A轉(zhuǎn)換器將其轉(zhuǎn)化為模擬電壓,再經(jīng)過放大器放大。由單片機(jī)的軟件實(shí)現(xiàn)電壓的步進(jìn)增減、對鍵盤的自動(dòng)掃描等功能。該方案靈活性大,易于擴(kuò)展,需要專用的譯碼驅(qū)動(dòng)芯片。
1.002.jpg (13.81 KB, 下載次數(shù): 103)
下載附件
2017-5-19 16:39 上傳
圖二 方案二示意圖 方案三:數(shù)控部分同方案二,原理框圖如圖三。用74LS164作驅(qū)動(dòng)器,由單片機(jī)軟件控制數(shù)碼顯示,軟件還附有顯示器的自動(dòng)刷新及電路的過零保護(hù)等功能。該方案具有方案二的所有優(yōu)點(diǎn),而降低了對芯片的要求,提高了系統(tǒng)的可靠性。
1.003.jpg (12.01 KB, 下載次數(shù): 101)
下載附件
2017-5-19 16:39 上傳
圖三 方案三示意圖 綜上所述,選用方案三。 二.理論分析與參數(shù)計(jì)算 1. DAC0832簡介 DAC0832是一款采用CMOS工藝制成的單片電流輸出型8位數(shù) / 模轉(zhuǎn)換器,圖四是它的邏輯框圖和引腳排列。DAC0832有三種工作方式:不帶緩沖工作方式,單緩沖工作方式,雙緩沖工作方式。
1.004.jpg (31.43 KB, 下載次數(shù): 137)
下載附件
2017-5-19 16:39 上傳
圖四 DAC0832的邏輯框圖和引腳排列 2.步進(jìn)01.V的實(shí)現(xiàn) 因?yàn)檩敵鲭妷毫砍虨?0V,VREF基準(zhǔn)電壓范圍為-10V---+10V,基準(zhǔn)電壓可以為5.12V,這樣在DAC0832的8腳輸出電壓的分辨率為:
1.005.jpg (2.36 KB, 下載次數(shù): 121)
下載附件
2017-5-19 16:39 上傳
即D/A輸入數(shù)據(jù)端每增加1,電壓增加0.02V。D/A的電壓輸出端接放大器OP27 的輸入端,放大器的放大倍數(shù)為5 ,才能得到輸出電壓的電壓分辨率: 0.02V×5=0.1V 這樣當(dāng)調(diào)節(jié)電壓的時(shí)候,以每次0.1V的梯度增加或者降低電壓。 三.硬件電路圖 1.波形轉(zhuǎn)換與放大部分 選用51系列的單片機(jī)產(chǎn)生和控制波形。數(shù)模轉(zhuǎn)換器用的是DAC0832,本方案中DAC0832采用單緩沖模式。 電路如圖五所示,P0口和DAC0832的數(shù)據(jù)口直接相連,
1.006.jpg (1.12 KB, 下載次數(shù): 128)
下載附件
2017-5-19 16:39 上傳
和
1.007.jpg (1.3 KB, 下載次數(shù): 137)
下載附件
2017-5-19 16:39 上傳
接地,DAC數(shù)據(jù)寄存器處于直通狀態(tài),ILE=1,
1.008.jpg (1.09 KB, 下載次數(shù): 102)
下載附件
2017-5-19 16:39 上傳
和
1.009.jpg (1013 Bytes, 下載次數(shù): 132)
下載附件
2017-5-19 16:39 上傳
連接后接P2.0。在選中該片的地址(=0)時(shí),寫入數(shù)字量,該數(shù)字信號就立即傳送到DAC輸入寄存器,并直通至DAC數(shù)據(jù)寄存器,經(jīng)過短暫的建立時(shí)間,即可以獲得相應(yīng)的模擬電壓。 寫入操作結(jié)束, 和立即變?yōu)楦唠娖剑瑢懭氲臄?shù)據(jù)被輸入寄存器鎖存,直到再次寫入刷新。
1.010.jpg (28.56 KB, 下載次數(shù): 112)
下載附件
2017-5-19 16:39 上傳
圖五 波形產(chǎn)生與轉(zhuǎn)換電路
1.011.jpg (15.26 KB, 下載次數(shù): 128)
下載附件
2017-5-19 16:39 上傳
圖六 電流放大電路
2.鍵盤與數(shù)碼顯示部分電路如圖七
1.012.jpg (35.75 KB, 下載次數(shù): 107)
下載附件
2017-5-19 16:39 上傳
圖七 鍵盤與顯示電路
3.穩(wěn)壓電源部分 電源部分輸出+5V,+15V,-15V電壓供給系統(tǒng),另外還制作+5.12V直流穩(wěn)壓電源做DAC0832的VERF的基準(zhǔn)電壓。 四.軟件設(shè)計(jì)與流程圖 1.軟件介紹 軟件部分采用模塊化程序設(shè)計(jì)的方法編寫,系統(tǒng)軟件由主控制程序、數(shù)碼顯示子程序、鍵盤服務(wù)子程序組成。還添加了自動(dòng)掃描鍵盤、顯示器的自動(dòng)刷新、過零保護(hù)的功能。編程中C函數(shù)和匯編函數(shù)相互調(diào)用。
2.程序流程圖如圖九所示
1.013.jpg (35.68 KB, 下載次數(shù): 116)
下載附件
2017-5-19 16:39 上傳
圖九 軟件流程圖
五.程序如下
- #include
- #define uchar unsigned char
- sbit dp=P1^4;
- sbit sh=P1^5;
- void delay(unsigned int t);
- uchar Getkey(void);
- void Disp(uchar n);
- uchar Disptab[10]={0x11,0x7d,0x23,0x29,0x4d,0x89,0x81,0x3d,0x1,0x9};
- main()
- { uchar key;
- char Vol1=0x00,Vol2=0x00;
- Disp(Disptab[Vol2]);
- Disp(Disptab[Vol1]-1);
- P0=0x00;
- while(1)
- { key=Getkey();
- switch(key)
- { case 0x01:break;
- case 0x02:break;
- case 0x04:if(Vol1==0&&Vol2==0)break;
- Vol2--;
- if(Vol2<0)
- { Vol2=9;Vol1--; }
- Disp(Disptab[Vol2]);
- Disp(Disptab[Vol1]-1);
- P0=4.3*(Vol1*10+Vol2);
- break;
- case 0x08:if(Vol1==9&&Vol2==9)break;
- Vol2++;
- if(Vol2==10)
- { Vol2=0x00;Vol1++; }
- Disp(Disptab[Vol2]);
- Disp(Disptab[Vol1]-1);
- P0=4.3*(Vol1*10+Vol2);
- break;
- default:break; } } }
- uchar Getkey(void)
- {uchar key;
- P1|=0x0f;
- if(!(~(P1|0xf0))) return 0x00;
- delay(0x20);
- if(!(~(P1|0xf0))) return 0x00;
- key=~(P1|0xf0);
- while(~(P1|0xf0));
- return key; }
- void delay(unsigned int t)
- { while(--t); }
- void Disp(uchar n)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼 完整課程設(shè)計(jì)論文下載(word格式 可編輯):
數(shù)控直流電源.doc
(457 KB, 下載次數(shù): 38)
2017-5-19 12:43 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|