單片機自動增益放大器_第1頁
單片機自動增益放大器_第2頁
單片機自動增益放大器_第3頁
單片機自動增益放大器_第4頁
單片機自動增益放大器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、自動增益放大器摘 要:本系統(tǒng)有四個模塊組成:程控放大器,峰值檢測,液晶。程控放大器采用兩片AD603接連組成,放大電壓增益可達50dB,增益0.2v步進可調(diào),電壓增益誤差不大于5%。放大器輸出無明顯失真。峰值測量采用真有效值采樣芯片AD637先進行有效值采樣,然后通過PCF8951進行AD采樣,最后再轉(zhuǎn)換成峰值,液晶采用LCD1602,系統(tǒng)以stc89c51單片機為控制核心,經(jīng)測試驗證,系統(tǒng)運行穩(wěn)定,操作方便。關(guān)鍵詞: 程控放大器,峰值檢測,AD采樣,單片機。 Abstract:This system has three modules: SPC amplifiers, peak detect

2、ion, liquid crystal. By two AD603 program-controlled amplifier amplification voltage gain one, can gain 1db stepping 0.2v, adjustable, voltage gain error is not more than 5%. Amplifier output without obvious distortion. Measure true RMS peak by sampling AD637 chip on sampling, then PCF8951 through e

3、ffective sampling, finally to AD convert peak, LCD USES lcd1602 management system with stc8951 SCM as control core and tested, the system runs stably, convenient operation.Key: SPC amplifier Peak detection AD sampling chip SCM 1. 方案的論證與比較1.1 設(shè)計需求1.1.1 基本要求(1) 放大器可以從信號發(fā)生器或音樂播放器輸入音頻信號(50Hz10KHz),輸出可以帶

4、 200負載或驅(qū)動8喇叭(25W)。(20 分)(2) 當輸入信號幅度在 10mV5V 間變化時,放大器輸出默認值保持在 2V±0.2V(有效值)內(nèi),波動越小越好。(30 分)(3) 可以顯示輸入信號幅度和頻率。(10 分)(4) 能夠在1V3V 范圍內(nèi)步進式調(diào)節(jié)放大器輸出幅度,步距 0.2V。(15 分)(5) 能夠根據(jù)環(huán)境噪聲調(diào)整自動調(diào)節(jié)放大器輸出幅度。(15分)(6) 其它發(fā)揮設(shè)計。(10 分)(7) 設(shè)計報告。(20 分)1.1.2 發(fā)揮部分(1)輸出電壓步距可通過按鍵調(diào)整:0.2v、0.3v、0.4v;(3)顯示當前放大輸出。(4)其它。1.2 總體方案方案一:選用結(jié)電容小

5、,fT 高的晶體管,采用多種補償法,多級放大加深度負反饋,以及組合各種組態(tài)的放大電路形式,可以組成優(yōu)質(zhì)的寬帶放大器,而且成本較低。但若要全部采用晶體管實現(xiàn)題目要求,有一定困難,首先高頻晶體管配對困難,不易購買;其次,理論計算往往與實際電路有一定差距,工作點不容易調(diào)整;而且,晶體管參數(shù)易受環(huán)境影響,影響系統(tǒng)總體性能。另外,晶體管電路增益調(diào)節(jié)較為復(fù)雜,不易實現(xiàn)題目要求的增益可調(diào)。方案二:使用專用的集成寬帶放大器。如TITHS6022、NE592等集成電路。通過外接少數(shù)的元件就可以滿足本題目要求,甚至遠超過題目要求的帶寬和增益的指標,但這種放大器難以購買,價格較貴,靈活性不夠,不易滿足題目擴展功能要

6、求。方案三:市面上有多種型號、各具特色的寬頻帶集成運算放大器。這些集成運算放大器有的通頻帶寬,有足夠的增益,有的可以輸出較高電壓,使用方便,有的甚至可以實現(xiàn)增益可調(diào)及AGC的功能。總體上硬件的實現(xiàn)和調(diào)試較為簡單,所以,我們決定采用多個集成運放級連實現(xiàn)本題目1.3 增益控控制:方案一:利用電阻網(wǎng)絡(luò)和撥碼開關(guān),手動調(diào)節(jié)增益,可實現(xiàn)增益控制,但硬件規(guī)模較大,控制繁瑣且人機界面欠佳,另外,利用電阻網(wǎng)絡(luò)實現(xiàn)增益調(diào)節(jié)需使用不同阻值的高精度電阻,這種電阻價格昂貴且不易購買。方案二:可以用繼電器或模擬開關(guān)構(gòu)成電阻網(wǎng)絡(luò),由單片機控制以改變信號增益。這種方案同樣存在方案一電阻網(wǎng)絡(luò)的缺點,同時,如果使用模擬開關(guān),其

7、導(dǎo)通電阻較大,而且各通道信號會互相干擾,容易影響系統(tǒng)性能。方案三:由單片機、D/A轉(zhuǎn)換器和可編程增益放大器AD603構(gòu)成壓控放大器。單片機通過對控制D/A輸出直流電壓來控制AD603的內(nèi)部電阻衰減網(wǎng)絡(luò),實現(xiàn)增益調(diào)節(jié)。其外圍元件少,電路簡單,由于AD603帶寬最大能達到90MHz,增益范圍有40dB,增益精度在±0.5dB,可精確實現(xiàn)增益控制,可以實現(xiàn)題目發(fā)揮部分減小增益步進間隔的要求。所以本部分采用該方案。1.4 峰值檢測:方案一:采用分段逼近式有效值檢波電路。該方法示值雖然是被測電壓的有效值,但由于放大器動態(tài)范圍的限制,對于被測信號會產(chǎn)生一定的波形誤差,并且硬件電路搭接復(fù)雜,且穩(wěn)定

8、性能不好。 方案二:采用真有效值轉(zhuǎn)換芯片 AD637和高速A/D芯片PCF8951測量市電有效值。將從AD603輸出的信號通過AD637轉(zhuǎn)換成直流信號后接入PCF8951,利用單片機讀取數(shù)據(jù)后進行相應(yīng)的幅值變換得到峰值。利用集成電路芯片測量精度高,誤差小、穩(wěn)定性好,硬件電路實現(xiàn)簡單,可減小硬件體積,所以本部分采用該方案。1.5 處理器選擇:通過實驗測試我以前買的stc89c51可以滿足要求,為了節(jié)約成本就選擇它為微處理器2. 系統(tǒng)設(shè)計2.1 理論分析與計算 本系統(tǒng)以可變增益增益放大器AD603為核心,其它各單元電路都是根據(jù)AD603及題目要求設(shè)計。由于題目的發(fā)揮部分要求電壓的輸出范圍2V2.5

9、V,對于10mv的小信號,則至少要將信號放大200倍,而且輸入信號的頻率范圍為10Hz500KHz,故采用兩片AD603對信號進行放大,單片AD603增益公式為: DB = 40 * Vo+ Go;Vo為1、2腳之間的電壓,范圍為-500mv500mv,Go根據(jù)5、7腳的不同連接方式Go可取10dB,20dB,30dB。本系統(tǒng)將AD603的5腳和7腳相連,單級AD603增益調(diào)整范圍為,1030 dB,帶寬為90MHz,兩級AD603級聯(lián),使得增益可調(diào)范圍擴大到20 dB60 dB??蓾M足題目要求的電壓放大和頻率的要求,當AD603的增益為46dB的時候電壓可以放大200倍,當AD603的增益為

10、48dB的時候電壓可以放大250倍.所以只要正確的控制1、2腳之間的電壓就能實現(xiàn)電壓的不同放大倍數(shù),從而滿足題目要求。 2.2 總體設(shè)計 根據(jù)帶寬、電壓的放大倍數(shù),系統(tǒng)采用兩級AD603程控增益放大器,增益可達60dB,能過滿足題目的要求,而且AD603能夠滿足帶寬的要求,有效值測量可有多種實現(xiàn)方案,但選用測量有效值的專用芯片AD637,則電路簡潔方便,而且精度較高。由于系統(tǒng)模塊所用IO口過多,一般51單片機不能夠滿足需求,故采用功能較強的C8051f020單片機作為主控機器。通過鍵盤進行增益和檔位的調(diào)節(jié),而液晶顯示增益和峰值。系統(tǒng)的整體框圖如下:AD603小信號采集與放大AD637有效值檢測

11、PCF8951AD轉(zhuǎn)換 PCF8951DA轉(zhuǎn)換控制 STC89C51LCD1602液晶顯示屏2.3 單元電路電路模塊設(shè)計2.3.1 自動增益電路 本系統(tǒng)的自動增益控制功能,實際是由增益控制電路轉(zhuǎn)化而來。在輸出級加入檢波電路,檢出直流電壓送入A/D采樣,經(jīng)單片機計算后控制D/A輸出,此電壓加到AD603的增益控制端,從而控制AD603的增益達到使輸出電壓恒定的目的。AD603的簡化原理框圖如圖 2-3-1所示,它由無源輸入衰減器、增益控制界面和固定增益放大器三部分組成。圖中加在梯型網(wǎng)絡(luò)輸入端(VINP)的信號經(jīng)衰減后,由固定增益放大器輸出,衰減量是由加在增益控制接口的電壓決定。增益的調(diào)整與其自身

12、電壓值無關(guān),而僅與其差值VG有關(guān),由于控制電壓GPOS/GNEG端的輸入電阻高達50M,因而輸入電流很小,致使片內(nèi)控制電路對提供增益控制電壓的外電路影響減小。而且,如果AD603的增益用dB表示,則與控制電壓成線性關(guān)系,以上特點很適合構(gòu)成本題要求的放大器。圖2-1-1圖231 AD603原理框圖中的“滑動臂”從左到右是可以連接移動的。當VOUT和FDBK兩管腳的連接不同時,其放大器的增益范圍也不一樣,帶寬在9MHz 90MHz之間為加大中間級的放大倍數(shù)及增益調(diào)節(jié)范圍,我們使用兩片AD603級聯(lián)作為中間級放大(圖232)。如果將AD603的5腳和7腳相連,單級AD603增益調(diào)整范圍為,1030

13、dB,帶寬為90MHz,兩級AD603級聯(lián),使得增益可調(diào)范圍擴大到20 dB60 dB??蓾M足題目要求的電壓放大。圖232 級聯(lián)AD603電路圖兩級AD603采用5V,5V電源供電,兩級的控制端GNEG都接地,另一控制端GPOS接D/A輸出,從而精確地控制AD603的增益。AD603的增益與控制電壓成線性關(guān)系,其增益控制端輸入電壓范圍為500mv500mv,增益調(diào)節(jié)范圍為40dB,當步進1dB時,控制端電壓需增大VG25mv, 由于兩級AD603由同一電壓控制,所以,步進1dB的控制電壓變化幅度為25mv/2=12.5mv。由于AD603的控制電壓需要比較精確的電壓值。我們使用12位的C805

14、1F020的內(nèi)部DA,可滿足指標要求。另外,通過A/D采樣輸出信號,由單片機計算后,再去調(diào)整D/A輸出電壓,就可實現(xiàn)AGC功能,擴大通頻帶.具體電路如下:2.3.1 峰值檢測與DA/AD轉(zhuǎn)換 峰值檢測是利用真有效值芯片AD637先進行有效值采樣然后通過PCF8951進行AD采樣把有效值采樣回來給單片機,再通過單片機進行數(shù)值處理把有效值轉(zhuǎn)換成峰值并計算增益通過pcf8951DA輸出到AD603增益控制端,具體電路如下:2.3.2功率放大部分:考慮到成本與實際效果功放采用TAD2822來實現(xiàn),具體電路如下所示:2.3.3電源部分:本系統(tǒng)運放使用正負5V 電源給單片機系統(tǒng)工作,為了能給系統(tǒng)提供穩(wěn)定的

15、電源,對市電變壓后進行整流,濾波,穩(wěn)壓得到系統(tǒng)工作電源。電路如下: 此部分電路比較典型,采用通常使用的橋式全波整流,大電容濾波,集成三端固定穩(wěn)壓片穩(wěn)壓。2.3.3顯示部分本系統(tǒng)用LCD1602顯示,電路圖如下:3. 系統(tǒng)功能測試3.1 測試使用儀器 Agilent 33250A 函數(shù)信號發(fā)生器 Tektronix TDS 2012 數(shù)字示波器SS7200。3.2 測試結(jié)果完整性及結(jié)果分析基礎(chǔ)部分在以下輸入電壓(Vpp)和頻率下,手動調(diào)節(jié)輸出范圍在10mV-5mV10mV/100Hz0.1V/1kHz0.5V/10kHz0.7V/20kHz0.8V /30kHz1V /50kHz幅度(/

16、5;)2.112.021.962.021.972.05信號放大和控制部分在制作部分難易程度有很大的差別,所以我們采用分模塊制作方法,信號放大電路中涉及的是低頻小信號的處理,所以元件的選定和參數(shù)的確定有很大的難度,關(guān)鍵部分還在于電路元件的布局,如何抑制噪聲,防止自激是電路布局的難點,我們采用了單點接地的方法??刂撇糠蛛娐氛{(diào)試較為簡單。5 結(jié)束語本系統(tǒng)有stc8951單片機與AD603、AD637等模塊組成,基本實現(xiàn)了題目基本部分與發(fā)揮部分的要求。參考文獻1 單片機原理及應(yīng)用,陳為:中國石油出版社2 模擬電子技術(shù)基礎(chǔ),童詩白著,高等教育出版社3 自動增益放大器百度文庫6 附錄 6.1 附錄1 集成

17、芯片明細表1 液晶LCD16022. AD6033. PCF85914. AD6375. TDA28226. STC89516.2 附錄2 部分參考程序#include<reg52.h>#include<I2C.h>#include<math.h>#include<intrins.h>#include<1602.h>#define PCF8591 0x90 /PCF8591 地址unsigned char output=2;unsigned int AD,DA;void keyscan(void); void delay(int ms

18、);/*DAC 變換, 轉(zhuǎn)化函數(shù) */bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val) Start_I2c(); /啟動總線 SendByte(sla); /發(fā)送器件地址 if(ack=0)return(0); SendByte(c); /發(fā)送控制字節(jié) if(ack=0)return(0); SendByte(Val); /發(fā)送DAC的數(shù)值 if(ack=0)return(0); Stop_I2c(); /結(jié)束總線 return(1);/*ADC發(fā)送字節(jié)命令數(shù)據(jù)函數(shù) */bit ISendByte(u

19、nsigned char sla,unsigned char c) Start_I2c(); /啟動總線 SendByte(sla); /發(fā)送器件地址 if(ack=0)return(0); SendByte(c); /發(fā)送數(shù)據(jù) if(ack=0)return(0); Stop_I2c(); /結(jié)束總線 return(1);/*步進函數(shù)函數(shù) */ void keydown(void) P1=0xF0;if(P1!=0xF0) /判斷按鍵是否按下 如果按鈕按下 會拉低P1其中的一個端口 keyscan(); /*步距函數(shù) */void keyscan(void)P1=0xf0;delay(1);

20、switch(P1)case 0xf1:output=output+0.2;break;case 0xf2:output=output+0.3;break;case 0xf4:output=output+0.4;break;case 0xf8:output=output+0.5;break;if(output>3)output=1;/*AGC函數(shù) */unsigned int AGC(unsigned int ad)DA=(log(output/ad)-2)/4;return DA;/*ADC讀字節(jié)數(shù)據(jù)函數(shù) */unsigned char IRcvByte(unsigned char s

21、la) unsigned char c; Start_I2c(); /啟動總線 SendByte(sla+1); /發(fā)送器件地址 if(ack=0)return(0); c=RcvByte(); /讀取數(shù)據(jù)0 Ack_I2c(1); /發(fā)送非就答位 Stop_I2c(); /結(jié)束總線 return(c);void delay(int ms) /延時子程序int i;while(ms-) for(i = 0; i< 250; i+) _nop_(); /空執(zhí)行 _nop_(); _nop_(); _nop_(); main()unsigned char r;while(1)keydown(

22、);ISendByte(PCF8591,0x40);AD=IRcvByte(PCF8591); /ADC0 模數(shù)轉(zhuǎn)換1 AGC(AD);/增益計算DACconversion(PCF8591,0x40,DA);/dac 數(shù)模輸出r=output*1.414;agc1602(output,r);/1602顯示/*此部分為I2C總線的驅(qū)動程序*/#include<reg51.h>#include <intrins.h>#include <I2C.H>#define NOP() _nop_() /* 定義空指令 */#define _Nop() _nop_() /*

23、定義空指令*/ sbit SCL=P21; /I2C 時鐘 sbit SDA=P20; /I2C 數(shù)據(jù) bit ack; /*應(yīng)答標志位*/ /* 起動總線函數(shù) 函數(shù)原型: void Start_I2c(); 功能: 啟動I2C總線,即發(fā)送I2C起始條件. */void Start_I2c() SDA=1; /*發(fā)送起始條件的數(shù)據(jù)信號*/ _Nop(); SCL=1; _Nop(); /*起始條件建立時間大于4.7us,延時*/ _Nop(); _Nop(); _Nop(); _Nop(); SDA=0; /*發(fā)送起始信號*/ _Nop(); /* 起始條件鎖定時間大于4s*/ _Nop();

24、 _Nop(); _Nop(); _Nop(); SCL=0; /*鉗住I2C總線,準備發(fā)送或接收數(shù)據(jù) */ _Nop(); _Nop();/* 結(jié)束總線函數(shù) 函數(shù)原型: void Stop_I2c(); 功能: 結(jié)束I2C總線,即發(fā)送I2C結(jié)束條件. */void Stop_I2c() SDA=0; /*發(fā)送結(jié)束條件的數(shù)據(jù)信號*/ _Nop(); /*發(fā)送結(jié)束條件的時鐘信號*/ SCL=1; /*結(jié)束條件建立時間大于4s*/ _Nop(); _Nop(); _Nop(); _Nop(); _Nop(); SDA=1; /*發(fā)送I2C總線結(jié)束信號*/ _Nop(); _Nop(); _Nop(

25、); _Nop();/* 字節(jié)數(shù)據(jù)發(fā)送函數(shù) 函數(shù)原型: void SendByte(UCHAR c);功能: 將數(shù)據(jù)c發(fā)送出去,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待應(yīng)答,并對 此狀態(tài)位進行操作.(不應(yīng)答或非應(yīng)答都使ack=0) 發(fā)送數(shù)據(jù)正常,ack=1; ack=0表示被控器無應(yīng)答或損壞。*/void SendByte(unsigned char c) unsigned char BitCnt; for(BitCnt=0;BitCnt<8;BitCnt+) /*要傳送的數(shù)據(jù)長度為8位*/ if(c<<BitCnt)&0x80)SDA=1; /*判斷發(fā)送位*/ else SDA=0; _Nop(); SCL=1; /*置時鐘線為高,通知被控器開始接收數(shù)據(jù)位*/ _Nop(); _Nop(); /*保證時鐘高電平周期大于4s*/ _Nop(); _Nop(); _Nop(); SCL=0; _Nop(); _Nop(); SDA=1; /*8位發(fā)送完后釋放數(shù)據(jù)線,準備接收應(yīng)答位*/

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論