AGC设计报告.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AGC设计报告

自动增益控制(AGC)设计 摘要和关键词设计任务与要求 1.1设计任务设计一个AGC电路,。1.2技术指标设计指标以及给定条件为: 输入信号: ViP=100mV~1V; 输出信号:VOP=1V~3V;? ViP=100mV和1V时放大器的频率响应曲线数据) 测试增益控制特性曲线C和Au关系曲线) 系统硬件设计.1系统的总体设计.2单元电路的设计 信号经缓冲器后进入增益放大器AD603,放大后进入峰值测量部分,得出的峰值采样后送入单片机,再由DAC输出给AD603控制放大倍数,实现自动增益控制。 具体原理如下: 当输入电压 0时,D1导通,D2截止,此时A1构成电压跟随器,此电压通过Rf1和R2加到A2的反相端;所以A2的输出电压为: 当输入电压0时,D1截止,D2导通,此时A1为同相放大器,有: 而A2的输出电压为: 综上,电路输出为: 经过精密整流电路后,通过电压跟随器检测峰值。 2.3系统分析与计算 电压控制增益的原理 AD603的基本增益可以用下式算出: Gain (dB) = 40 VG + 10 其中,VG是差分输入电压,单位是V,Gain是AD603的基本增益,单位是dB。 从此式可以看出,以dB作单位的对数增益和电压之间是线性的关系。由此可以得出,只要单片机进行简单的线性计算就可以控制对数增益,增益步进可以很准确的实现.电原理图附录。 系统软件设计 .1程序总体流程图 3.程序清单#include stdint.h #include msp430.h #include user.h #include math.h unsigned int index; float mid,vol,vout=1.75; float results[]; void ADC12_Init() { P6SEL |= BIT7; //P6SEL |= BIT6; /* ADC12CTL0 = ADC12ON+ADC12SHT0_2+ADC12SREF_0; ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2; ADC12IE=BIT7; ADC12CTL0 |= ADC12ENC;*/ ADC12CTL0 = ADC12SHT0_2 + ADC12ON; ADC12CTL2=ADC12RES_2; ADC12MCTL7 = ADC12INCH_7+ADC12EOS; ADC12CTL1 = ADC12SHP+ADC12CSTARTADD_7; ADC12IE = BIT7; ADC12CTL0 |= ADC12ENC; P6SEL |= BIT7; } void paixu(float *a) { int i,j,t; for(j=0;j9;j++) for(i=0;i9-j;i++) if (a[i]a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } void Vol() { ADC12CTL0 |= ADC12SC; __delay_cycles(100000); index=0; while(index=8) { results[index]=ADC12MEM7; index++; } paixu(results); mid=(results[4]+results[5]+results[6])/3; vol=(mid*3.61)/4096; } void main(void) { // Stop WDT WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 SetVCore(3); Board_init(); SFRIFG1 = 0; DAC_Init(); DAC_OUT(7, 2.0); DAC_OUT(6, 1.75); __delay_cycles(100000); ADC12_Init(); while(1) { ADC12CTL0 |= ADC12SC; __delay_cycles(10000); index=0; while(index=8) { results[index]=ADC12MEM7; index++;

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档