該設(shè)計(jì)是電子設(shè)計(jì)大賽的題目—自動(dòng)增益控制放大器
里面有單片機(jī)源碼,電路原理圖,資料分析和proteus與Multisim仿真 大賽報(bào)告(論文)等資料
0.png (62.53 KB, 下載次數(shù): 80)
下載附件
2018-4-18 17:22 上傳
0.jpg (15.72 KB, 下載次數(shù): 68)
下載附件
2018-4-18 17:23 上傳
本次設(shè)計(jì)的自動(dòng)增益控制放大器由DAC內(nèi)部的電阻網(wǎng)絡(luò)來實(shí)現(xiàn)自動(dòng)增益,只要改變DAC內(nèi)部的電阻網(wǎng)絡(luò)結(jié)構(gòu),再通過電阻網(wǎng)絡(luò)與輸入輸出的電壓關(guān)系即可實(shí)現(xiàn)自動(dòng)增益。由于DAC輸出的是電流,我們?cè)偻ㄟ^一個(gè)流壓轉(zhuǎn)換器把電流轉(zhuǎn)化為電壓,然后通過一個(gè)反相比例電路來輸出電壓。因?yàn)檩斎隓AC內(nèi)部的是數(shù)字量,我們先通過一個(gè)ADC來實(shí)現(xiàn)模數(shù)轉(zhuǎn)換。輸出的電壓接到ADC輸出口,把模擬量轉(zhuǎn)化為數(shù)字量后,我們可以通過液晶顯示屏來實(shí)現(xiàn)輸入輸出的電壓以及增益。對(duì)于發(fā)揮部分2,由于輸入的是交流信號(hào),為了方便編程,我們先把交流信號(hào)變?yōu)橹绷餍盘?hào),從而在本質(zhì)上與發(fā)揮1一致以達(dá)到效果。這就是基本的設(shè)計(jì)思路。 目錄 一.系統(tǒng)方案論證: 二.系統(tǒng)總體框圖: 三.理論分析與計(jì)算: 四.電路與程序設(shè)計(jì): 五.測(cè)試方案與測(cè)試結(jié)果:
一.系統(tǒng)方案論證: 下面分別就此系統(tǒng)的各個(gè)部分分別進(jìn)行論證: 方案一:數(shù)碼管顯示器應(yīng)用比較靈活,原理簡(jiǎn)單,但是用它來顯示系統(tǒng)比較復(fù)雜的電路困難,只能顯示數(shù)字內(nèi)容,速度慢,易受干擾。 方案二:液晶顯示器可顯示的內(nèi)容豐富,不局限于數(shù)字,屏幕調(diào)節(jié)方便,低耗能,散熱小,但價(jià)格較高 綜合兩個(gè)方案,選擇方案二。 方案一:ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。轉(zhuǎn)換時(shí)間為100μs(時(shí)鐘為640KHz時(shí)),130μs(時(shí)鐘為500KHz時(shí))。可以和單片機(jī)直接接口,但成本較高。 方案二:ADC0832是8引腳雙列直插式封裝芯片 雙通道A/D轉(zhuǎn)換,5V電源供電時(shí)輸入電壓在0~5V之間,工作頻率為250KHZ,轉(zhuǎn)換時(shí)間為32μS, 一般功耗僅為15mW,成本較低。 綜合兩個(gè)方案,選擇方案二。 方案一:用繼電器構(gòu)成電阻網(wǎng)絡(luò),由單片機(jī)控制以改變信號(hào)增益手動(dòng)調(diào)節(jié)增益,可實(shí)現(xiàn)增益控制,但硬件規(guī)模較大,控制繁瑣且人機(jī)界面欠佳,另外,利用電阻網(wǎng)絡(luò)實(shí)現(xiàn)增益調(diào)節(jié)需使用不同阻值的高精度電阻,這種電阻價(jià)格昂貴且不易購(gòu)買。 方案二:使用模擬開關(guān)CD4052,它是一個(gè)雙路四選一模擬開關(guān),開關(guān)的工作狀態(tài)由控制信號(hào)A、B來決定。當(dāng)BA=00時(shí),X0導(dǎo)通;當(dāng)BA=01時(shí),X1導(dǎo)通;當(dāng)BA=10時(shí),X2導(dǎo)通電壓放,當(dāng)BA=11時(shí),X3導(dǎo)通電壓放。這樣,通過改變模擬開關(guān)的導(dǎo)通通道就可以改變反饋電阻,電壓增益也隨之改變。但其導(dǎo)通電阻較大,而且各通道信號(hào)會(huì)互相干擾,容易影響系統(tǒng)性能。另外,編程較困難,且實(shí)現(xiàn)的增益不是特別準(zhǔn)確。 方案三:借用DAC內(nèi)部的電阻網(wǎng)絡(luò);單片機(jī)通過控制DAC內(nèi)部的電阻網(wǎng)絡(luò)結(jié)構(gòu)來控制其電阻值,從而實(shí)現(xiàn)輸入電壓,輸出電壓和DAC內(nèi)部電阻網(wǎng)絡(luò)結(jié)構(gòu)關(guān)系。我們選用DAC0832,它由倒T型R-2R電阻網(wǎng)絡(luò)、模擬開關(guān)、運(yùn)算放大器和參考電壓VREF四大部分組成。硬件電路如下圖所示。 利用虛短、虛斷的知識(shí)可推導(dǎo)出可控增益的計(jì)算公式: ,code是單片機(jī)傳給DAC的碼,此處100k是加在Rfb之后的反饋電阻,滿足輸入阻抗不小于100K的要求。通過改變code碼,即可改變輸出與輸入之間的關(guān)系。但此方案的缺點(diǎn)是輸出電壓是反相的,所以應(yīng)在此電路后面加一個(gè)反相比例放大電路。 二.系統(tǒng)總體框圖:三.理論分析與計(jì)算:(1)任務(wù)的實(shí)現(xiàn): 題目要求我們?cè)O(shè)計(jì)一個(gè)帶有自動(dòng)增益控制功能的放大器。輸入阻抗不小于100k。輸出阻抗不大于1k。 由于放大器的帶寬不小于100KHz。放大器的增益最大需要10倍。所以我們選擇運(yùn)放的增益帶寬積必須要大于1M。本次設(shè)計(jì)我們選的是OP37,其增益帶寬積為63M,輸出阻抗小于1k,已經(jīng)遠(yuǎn)遠(yuǎn)滿足要求。 在Rfb之后加100k的反饋電阻,滿足輸入阻抗不 小于100K的要求,因?yàn)镽fb=15k。 (2)基礎(chǔ)部分計(jì)算: ,因?yàn)镽fb=R=15k,所以此式可簡(jiǎn)化為: .下圖是基礎(chǔ)部分計(jì)算圖: 輸出電壓穩(wěn)定在1V±0.2V之間,我們讓Vout=1,Vin可由ADC0832轉(zhuǎn)化成數(shù)字量讀出,便可計(jì)算出code碼。對(duì)于發(fā)揮部分二,我們先把交流變?yōu)橹绷鳎浜蟮乃悸放c上述一樣。 四.電路與程序設(shè)計(jì):基礎(chǔ)要求部分: 發(fā)揮部分交流變直流: (2)程序設(shè)計(jì)思路: ①輸入信號(hào)到adc0832的CH0通道,送adc0832 19個(gè)脈沖信號(hào)來實(shí)現(xiàn)通道的選擇和信號(hào)的讀取。 ②對(duì)液晶屏進(jìn)行初始化、讀命令、讀數(shù)據(jù)操作。將adc0832接收的數(shù)字信號(hào)轉(zhuǎn)化為模擬量,aa=(aa*5000/255);用液晶屏顯示數(shù)值。 ③輸入信號(hào)經(jīng)輸入電阻100k歐姆到達(dá)dac0832的參考電壓端,利用虛短虛斷的知識(shí)得到公式,推算出增益所對(duì)應(yīng)的code碼,實(shí)現(xiàn)基礎(chǔ)部分。 ④令上述公式中輸出電壓為1v,根據(jù)輸入電壓的大小可以自動(dòng)改變?cè)鲆妫瑢?shí)現(xiàn)發(fā)揮部分。因dac0832內(nèi)部電阻有誤差,經(jīng)試驗(yàn)測(cè)得,最后推出理論算式:CODE=(uchar)(10.6*255*aa/73000;); ⑤輸出信號(hào)到adc0832的CH1通道,送adc0832 19個(gè)脈沖信號(hào)來實(shí)現(xiàn)通道的選擇和信號(hào)的讀取。 ⑥對(duì)液晶屏進(jìn)行初始化、讀命令、讀數(shù)據(jù)操作。將adc0832接收的數(shù)字信號(hào)轉(zhuǎn)化為模擬量,aa=(aa*5000/255);用液晶屏顯示數(shù)值。 五.測(cè)試方案與測(cè)試結(jié)果:(1)測(cè)試使用的儀器 直流穩(wěn)壓電源 數(shù)字萬用表 計(jì)算器 示波器 函數(shù)信號(hào)發(fā)生器 (2)測(cè)試方案: 用穩(wěn)壓電源提供5V,±12V電壓,然后用萬用表分別測(cè)量輸入與輸出端口看是否與顯示屏所顯示的一致,然后用計(jì)算器計(jì)算看看增益是否一致。對(duì)于發(fā)揮部分,用函數(shù)信號(hào)發(fā)生器作為信號(hào)源,用示波器檢測(cè)交流是否變?yōu)橹绷鳌?/font> (3)測(cè)試結(jié)果 (4)測(cè)試結(jié)果分析: 經(jīng)過一系列的調(diào)試,基礎(chǔ)要求部分的結(jié)果基本符合要求,實(shí)現(xiàn)了四個(gè)檔位之間的轉(zhuǎn)換,且輸出與輸入之間的比值與相對(duì)應(yīng)的增益相差結(jié)果接近為0;發(fā)揮部分(1)也實(shí)現(xiàn)了電壓穩(wěn)定在1v±0.2v之間。發(fā)揮部分(2)由交流信號(hào)變?yōu)橹绷鳎鋵?shí)現(xiàn)的結(jié)果也大體符合要求。
單片機(jī)源程序如下:
- #include<reg51.h>
- #include <intrins.h>
- //#define dates P0 //P0 LCD1602專用IO口
- #define uint unsigned int
- #define uchar unsigned char
- sbit lcdcos=P2^6;
- sbit lcdrw=P2^5;
- sbit lcden=P2^7;
- sbit adcs=P3^3; //芯片選通信號(hào),低有效
- sbit adclk=P3^2; //芯片時(shí)鐘信號(hào)
- sbit addo=P3^7; //通道0
- sbit addi=P3^6; //通道1
- sbit A=P3^4; //模擬通道選擇IO口AB
- sbit C=P3^5; //模擬通道選擇IO口AB
- sbit LNH=P3^1; //AB選擇使能口
- uchar date;
- int a,b,c;
- //uchar i,j,z,dat1,dat2; // dat1,dat2分別為adc轉(zhuǎn)化后的8位數(shù),即LCD先轉(zhuǎn)化后顯示的數(shù)
- void delay(uint z) //延時(shí)程序z ms
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void delay1() //延時(shí)兩個(gè)空指令
- {
- _nop_();
- _nop_();
- }
- void chosecom0(uint com) //讀數(shù)據(jù)操作
- {
- lcdcos=0;
- P0=com;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void choseshu1(uint shu) //讀數(shù)據(jù)操作
- {
- lcdcos=1;
- P0=shu;
- delay(5);
- lcden=1;
- delay(5);
- lcden=0;
- }
- void init() //初始化lcd,規(guī)定運(yùn)行方式,
- {
- lcden=0;
- chosecom0(0x38);
- chosecom0(0x0c);
- chosecom0(0x06);
- chosecom0(0x01);
-
- }
- void main()
- {
- init();
- chosecom0(0x80); //將要顯示的字符顯示在此地址處
- choseshu1('w');
- choseshu1('a');
- choseshu1('r');
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
全部資料51hei下載地址(單片機(jī)源碼+仿真+word格式的設(shè)計(jì)報(bào)告):
自動(dòng)增益控制放大器.rar
(19.29 MB, 下載次數(shù): 266)
2018-4-18 17:04 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|