




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、直流數(shù)控電壓源設(shè)計(jì)本小組成員:劉兵丹,劉朋,劉伶,電子信息工程0904班系統(tǒng)框架本數(shù)控直流穩(wěn)壓電源的設(shè)計(jì)以一穩(wěn)壓電源為基礎(chǔ),以高性能單片機(jī)系統(tǒng)為控制核心,以穩(wěn)壓驅(qū)動放大電路、短路保護(hù)電路為外圍的硬件系統(tǒng),在檢測與控制軟件的支持下實(shí)現(xiàn)對電壓輸出的數(shù)字控制,通過對穩(wěn)壓電源輸出的電壓進(jìn)行數(shù)據(jù)采樣與給定數(shù)據(jù)比較,從而調(diào)整輸入電壓。本數(shù)控直流穩(wěn)壓電源實(shí)現(xiàn)以下功能:鍵盤可以直接設(shè)定輸出電壓值;可步進(jìn)調(diào)整電壓;LCD顯示電壓值。硬件接口及主要特性:ADC0804接口振蕩頻率為fCLK1/1.1RC。其典型應(yīng)用參數(shù)為:R=10K,C=150PF,fCLK640KHZ,轉(zhuǎn)換速度為100。若采用外部時(shí)鐘,則外部f
2、CLK 可從CLKI 端送入,此時(shí)不接R、C。允許的時(shí)鐘頻率范圍為100KHZ1460KHZ。INTR (引腳5): INTR 是轉(zhuǎn)換結(jié)束信號輸出端,輸出跳轉(zhuǎn)為低電平表示本次轉(zhuǎn)換已經(jīng)完成,可作為微處理器的中斷或查詢信號。如果將CS 和WR 端與INTR 端相連,則ADC0804 就處于自動循環(huán)轉(zhuǎn)換狀態(tài). CS 0 時(shí),允許進(jìn)行A/D 轉(zhuǎn)換。WR 由低跳高時(shí)A/D 轉(zhuǎn)換開始,8 位逐次比較需8×8=64 個時(shí)鐘周期,再加上控制邏輯操作,一次轉(zhuǎn)換需要6673 個時(shí)鐘周期。在典型應(yīng)用fCLK640KHZ 時(shí),轉(zhuǎn)換時(shí)間約為103114。當(dāng)fCLK 超過640KHZ,轉(zhuǎn)換精度下降,超過極限值1
3、460KHZ 時(shí)便不能正常工作。 V2(引腳9):參考電壓V/2 可以由外部電路供給,從“V/2”端直接送入,V/2 端電壓值應(yīng)是輸入電壓范圍的二分之一。DAC0832接口 8位D/A轉(zhuǎn)換,其轉(zhuǎn)換時(shí)間為1us,工作電壓為+5V+15V,基準(zhǔn)電壓為10V+10V芯片數(shù)據(jù)輸入可采用雙緩沖,單緩沖和直通三種方式。本次采用直通方式。LCD1602接口和ADC0804分時(shí)復(fù)用P0進(jìn)行數(shù)據(jù)傳輸鍵盤接口 單獨(dú)用P1口對4*4鍵盤進(jìn)行掃描識別程序設(shè)計(jì)程序設(shè)計(jì)思想提煉如下圖所示:精簡協(xié)作式不可剝奪嵌入式操作系統(tǒng),得力與田sir的Easy51RTOS操作系統(tǒng),這個系統(tǒng)運(yùn)用。協(xié)作式不可剝奪意思是說一個任務(wù)得到了 C
4、PU 時(shí)間,除非它自己放棄使用 CPU ,否則將完全霸占 CPU ,所以任務(wù)之間需要協(xié)作使用一段時(shí)間的 CPU ,放棄使用,其它的任務(wù)也如此,才能保證系統(tǒng)的正常運(yùn)行。把一些例行的及需要定時(shí)執(zhí)行的程序放在時(shí)鐘中斷中,還可以利用時(shí)鐘中斷協(xié)助主程序完成定時(shí)、延時(shí)等操作。注意:應(yīng)盡量縮短中斷處理程序的執(zhí)行時(shí)間,更不要長于20mS。全局變量部分代碼如下:ADC0804測得的數(shù)字量adc_value;DAC0832輸入的數(shù)字量dac_value;程序?qū)懞煤?,編譯成功,但1602顯示的數(shù)據(jù)與預(yù)期不符。于是分塊檢查,發(fā)現(xiàn)DA,1602,AD均是正確的。后來參考別人的程序,發(fā)現(xiàn)單片機(jī)在讀取AD的數(shù)據(jù)時(shí),沒有先對
5、相應(yīng)的端口寫1.任務(wù)零ADC0804測數(shù)控電源的輸出電壓(量程限制取其一半進(jìn)行測量),得到數(shù)字量adc_value,與DAC0832的輸入dac_value進(jìn)行比較,進(jìn)行反饋(其實(shí)我們在把電路做出來,進(jìn)行測試時(shí)發(fā)現(xiàn)實(shí)際輸出和我們通過按鍵設(shè)定的值誤差很小,反而ADC0804由于精度不高,測出來的電壓值誤差較大,最后我們舍去了反饋)來調(diào)整0832的dac_value。#ifndef _adc0804_H_#define _adc0804_H_ /接口定義sbit AD_CS=P34;sbit AD_RD=P37;sbit AD_WR=P36; /讀ADDR中的數(shù)據(jù) int get_data() i
6、nt date; AD_CS=0;AD_RD=1;AD_WR=1; /ad開始轉(zhuǎn)換 AD_WR=0; P0=0xff; AD_RD=1;AD_RD=0; date=P0;AD_WR=1; /ad停止轉(zhuǎn)換AD_RD=1;return date;#endif程序?qū)懞煤?,編譯成功,但1602顯示的數(shù)據(jù)與預(yù)期不符。于是分塊檢查,發(fā)現(xiàn)DA,1602,AD均是正確的。后來參考別人的程序,發(fā)現(xiàn)單片機(jī)在讀取AD的數(shù)據(jù)時(shí),沒有先對相應(yīng)的端口寫1.任務(wù)一通過按鍵設(shè)定電壓,識別到dac_value使DAC0832輸出我們需要的電壓。void task1(void) float adc_value1; float d
7、ac_value1; int dac_value2; adc_value1=adc_value; dac_value1=dac_value; if(adc_value1*10/255-dac_value1/1000>=0.04) dac_value1=dac_value1-1; if(dac_value1/1000-adc_value1*10/255>=0.04) dac_value1=dac_value1+1; dac_value1=dac_value1*255/10000; dac_value2=dac_value1; if(key_input_display=0)/當(dāng)確認(rèn)鍵按
8、下時(shí)。 dac0832(dac_value2); task_delay1 = TASK_DELAY1;涂暗的那段代碼是為了用0804的測量值來反饋0832已得到我實(shí)際設(shè)定的電壓值;涂紅的那段代碼:8位精準(zhǔn)度,10V對應(yīng)255,但是按鍵掃描得到的電壓值是放大了一千倍的。見后面任務(wù)三任務(wù)二通過1602來顯示setting:設(shè)定的電壓值 measure:測得的電壓值void task2_init(void) lcd1602_init();print_string("setting:",0x80);print_string("measure:",0x80+0x4
9、0);/任務(wù)2void task2() task2_init(); if(key_input_display=0)/當(dāng)確認(rèn)鍵按下時(shí). adc0=adc_value/1000+'0' adc1='.' adc2=adc_value%1000/100+'0' adc3=adc_value%100/10+'0' adc4=adc_value%10+'0' adc5=0; switch(press_time) case 0: key_value_dac0=dac_value/1000+'0' key_val
10、ue_dac1='.' key_value_dac2=dac_value%1000/100+'0' key_value_dac3=dac_value%1000%100/10+'0' key_value_dac4=dac_value%1000%100%10+'0' break;dac_value是一個四位的整數(shù) case 1: key_value_dac0='_' key_value_dac1='.' key_value_dac2='_' key_value_dac3='_
11、39; key_value_dac4='_' break; case 2: key_value_dac0=dac_value/1000+'0' break; case 3: key_value_dac2=dac_value%1000/100+'0' break; case 4: key_value_dac3=dac_value%1000%100/10+'0' break; case 5: key_value_dac4=dac_value%1000%100%10+'0' break; default: break;
12、print_string(adc,0xc8); print_string(key_value_dac,0x88);顯示設(shè)定的電壓值,和測得的電壓值 task_delay2 = TASK_DELAY2;1602在顯示數(shù)據(jù)時(shí)會在數(shù)據(jù)最后亂碼,后經(jīng)在尾數(shù)寫'/0',顯示正確。任務(wù)三通過對鍵盤進(jìn)行掃描,將設(shè)定的電壓值,轉(zhuǎn)換為數(shù)字量dac_value,同時(shí)還有步進(jìn)加減和確定,清零的識別。void input_dac_value(num)uchar temp=0;static uchar flag=0;temp = num;if(temp=0xff) flag=1;if(temp != 0
13、xff) && (flag=1) flag=0; key = temp;fmq=0; if(key<10 && (key_input_display=1) press_time+; switch(press_time) case 2: dac_value=key*1000; break;case 3: dac_value=dac_value+key*100 ; break; case 4: dac_value=dac_value+key*10; break; case 5: dac_value=dac_value+key; break; default:
14、break; 注:將設(shè)定的電壓轉(zhuǎn)化為整數(shù),放大一千倍switch(key) case 14: key_input_display=1; press_time+; key=0; fmq=0; break;/設(shè)置 case 13: key_input_display=0; press_time=0; fmq=0; break;/確認(rèn) case 15: dac_value=0;fmq=0; break;/清零 case 10:dac_value+=40;fmq=0; break;/遞加 case 11: dac_value-=40;fmq=0; break;/遞減 default: break; 主
15、要程序見附件(略)模擬部分電路仿真圖電路說明圖作品參數(shù)測試 設(shè)定值A(chǔ)D測量值萬用表測量值列1AD測量得誤差列2萬用表測得誤差1.0000.9410.9405.900%6.000%2.0001.9601.9602.000%2.000%2.9102.9012.9000.309%0.344%3.0002.9802.9800.667%0.667%3.7903.7603.7700.792%0.528%4.0004.0004.0000.000%0.000%5.0004.9414.9401.180%1.200%5.5505.5005.5000.901%0.901%6.0005.9415.9400.983%1.000%7.0006.9806.9900.286%0.143%8.0008.0008.0100.000%-0.125%8.9998.9418.9500.645%0.545%9.9999.9609.9800.390%0.190%紋波峰峰值10mV紋波頻率50KHZ內(nèi)阻2.2歐姆最大電流0.88A最大功率11.4W總結(jié):這個作品的單片機(jī)部分的仿真和電路的焊接是在兩天內(nèi)完工的,模擬部分開始焊好了,測試時(shí)燒過,后來又從焊了一次。當(dāng)時(shí)正是要要校級比賽的作品,我們的器件過來好久
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年阿里5次面試碰壁100天深造-Jetpack架構(gòu)組件從入門到精通險(xiǎn)獲騰訊年薪45w+offer
- 2024-2025學(xué)年下學(xué)期高一生物人教版期末必刷常考題之人類遺傳病
- 建筑施工特種作業(yè)-建筑起重機(jī)械安裝拆卸工(物料提升機(jī))真題庫-4
- 國家開放大學(xué)電大《資源與運(yùn)營管理》機(jī)考終結(jié)性2套真題題庫及答案9
- 色彩與心理題目及答案
- 軟考信管題目及答案
- 11 1 用樣本估計(jì)總體-2026版53高考數(shù)學(xué)總復(fù)習(xí)A版精煉
- 5 2 平面向量的數(shù)量積及其應(yīng)用-高考數(shù)學(xué)真題分類 十年高考
- 2023-2024學(xué)年河南省許昌市高二下學(xué)期7月期末教學(xué)質(zhì)量檢測數(shù)學(xué)試題(解析版)
- 2024-2025學(xué)年陜西省西安市部分學(xué)校聯(lián)考高一上學(xué)期期末考試語文試題(解析版)
- 物理中考二輪復(fù)習(xí)教案 1作圖專題3(電學(xué)電磁學(xué))
- 石膏廠安全管理制度 最終
- 2025年河北省中考麒麟卷生物(二)
- 結(jié)構(gòu)動力學(xué)完整版本
- 2025年八年級數(shù)學(xué)下學(xué)期期末總復(fù)習(xí)八年級數(shù)學(xué)下學(xué)期期末測試卷(2)(學(xué)生版+解析)
- 四級閱讀測試題及答案
- 農(nóng)村供水水質(zhì)管理制度
- 建筑工地應(yīng)急預(yù)案方案
- T/CIE 208-2024兒童機(jī)器人教育評價(jià)指南
- 2025年高考英語課后續(xù)寫高頻考點(diǎn)話題分類第07講 讀后續(xù)寫之成長類主題(講義)
評論
0/150
提交評論