D程控滤波器设计_第1页
D程控滤波器设计_第2页
D程控滤波器设计_第3页
D程控滤波器设计_第4页
D程控滤波器设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、程控滤波器的设计(D题)摘 要:随着电子科学技术的迅速发展,滤波器系统也要求有新的设计思想和观点,使系统能在可行的条件下得以实现,而且其功能也达到更高的指标。本系统以51单片机为控制核心,由信号放大模块、有源滤波模块以及测试信号发生等四个模块组成。在前级放大器中采用NE5532放大芯片构成的两极放大电路;有源滤波采用模拟开关CD4051/CD4052选择匹配的电阻和电容网络;信号发生采用数字频率合成(DDS) AD9850芯片产生;单片机键盘显示处理模块除可以对AD9850进行实时控制外,还可以对模拟开关CD4051/CD4052的控制。 关键词:AD9850 AT89S52 CD4

2、051/CD4052 LCD 显示屏 直接数字频率合成(DDS)1总体设计方案1. 1系统总体设计思路根据题目的要求,我们认真取舍,充分利用了模拟和数字的优点,发挥其优势,采用单片机控制模拟开关的导通与否以实现电容及电阻参数的匹配,从而实现改变放大器增益的方法,并且以增益10dB步进可调,大大提高了系统的精度;放大器的输出电压要求无明显失真。本系统的总体框图如图1所示。图1 总体框图1. 2方案论证与比较(1)测量放大部分方案方案一:直接采用高精度OP放大器接成的悬置电桥差动放大器。如图2,此方案的特点是电路简单,实现起来对结构工艺的要求不高,但是其输入阻抗低、共模抑制比、失调电压和失调电流等

3、参数受到放大器本身性能限制不易进一步提高,且无法抑制放大器本身的温漂。 图2 悬置电桥差动放大器 图3 结型场效应管输入型测量放大电路方案二:在方案一的基础上,在输入级加设结型场效应管。如图3,该方案和方案一相比提高了输入阻抗和降低噪声,但存在的共模抑制比、失调电压和失调电流等参数受限的问题未能有效解决,且分立元件将导致调试工作复杂,可靠性下降。 方案三:选用高输入阻抗低噪声集成运放NE5534。如图4,选用NE5534,接成两极同相运算放大电路,可大大提高了差模输入阻抗和共模抑制比。NE5534加上的电压,放大倍数的计算公式为本设计选择方案三。图4 集成运放NE5534接成两极同相运算放大电

4、路(2)信号滤波方法方案一 数字滤波法。数字滤波是信号滤波所常的方法,将模拟信号转变为数字信号, 进行数字滤波后再恢复原信号。这种方法理论上可以设计任意的滤波特性,可达到很高的精度,但要涉及较高的技术水平,实现难度较大。方案二:采用单级模拟低通滤波。由运放、电阻、电容组成单级低通滤波器。此方法原理简单,有现成的公式可套,但单级滤波的截止频率较难控制,频率选择性差,滤波效果不好好差,输出波形有较大失真。方案三:采用多级巴特沃兹滤波器模拟低通滤波。巴特沃兹滤波器具有平坦的通带,把多个低通滤波器级联起来,滤波效果显著提高,输出波形失真小。因此选择方案三。(3)显示器的选择 方案一:采用8位段数码管,

5、将单片机得到的数据通过数码管显示出来。该方案简单易行,但所需的元件较多,且不容易进行操作,可读性差,一旦设定后,很难再加入其他的功能。方案二:采用液晶显示系统,将得到的数据通过液晶系统显示。该方案所需液晶器件可由厂家提供,并且可用软件进行调制,对后续的功能兼容性高,只需将软件作修改即可, 可操作性强,也易于读数。但成本相对一来说较高。方案三:将结果通串口接入电脑,在电脑中编制程序,通过软件将数据转化成图形数字界面。该方案在数据的处理上比方案二直观,可增加较多的扩展功能。但不便于携带,可移动性不如方案二。 综上所述,我们采用了第二个方案,即采用液晶显示系统。2 硬件电路设计2.1电源电路设计本方

6、案的直流稳压电源采用通常的桥式全波整流、单电容滤波、三端固定输出的集成稳压器件。输出电路由+15V稳压供给,从而大大提高了电压调整率和负载调整率等指标。所有的集成稳压器件根据功耗均安装有充分裕量的散热片。如图5所示。图 5 电源电路2.2单片机最小系统电路由MCS51系列的单片机和一些键盘及LCD显示构成了单片机最小系统,以完成单片机控制、显示和人机接口功能。如图6所示。图 6 单片机最小系统电路2.3巴特沃兹滤波电路用通过单片机控制模拟开关CD4051/4052的电阻匹配,设置滤波的截止频率,题目要求能够实现高通和低通的转换,即低通滤波器(高通滤波器)的-3dB截止频率在1kHz20kHz范

7、围内可调,调节的频率步进为1kHz,2处放大器与滤波器的总电压增益不大于30dB。低通滤波器的模块电路如图7所示,高通滤波器的模块电路如图8所示。图 7 低通滤波器 图8高通滤波器3.主要电路的参数计算3.1 程控放大部分本设计以NE5532为中心,对输入信号进行前端放大。当输入信号50mV,输出功率可以达到6W以上,带宽可以达到40KHz至几百KHz。电源部分为整个系统提供稳定的15V电压。整个设计简单,元器件均为市场上容易购的产品。放大倍数要求可调,第一级放大20倍,第二级放大100倍。(1) 低通滤波器参数的计算。参数如表1所示。表1 低通滤波器参数K1053.32.5108.337.1

8、46.25109R1(k)11.265.633.722.18511.269.388.047.0411.2610.13R2(k)22.5011.257.435.6322.5018.7416.0714.0622.520.25C1=0.01uFC2=0.002uFC3=1111pFK8.187.5109.288.678.12109.458.958.5R1(k)9.218.4511.2610.459.769.1411.2610.6410.089.57R2(k)17.4116.8822.520.8819.5118.2722.521.2620.1419.13C3=1111pFC4=769.2pFC5=58

9、8.2pF(2) 高通滤波器的参数计算。参数如表2所示。表2高通滤波器的参数K1053.32.5108.337.146.25109R1(k)18.219.116.014.5518.2115.1713.0011.3818.2116.39R2(k)13.916.9554.59033.4813.9111.599.938.6913.9112.52C1=0.01uFC2=0.002uFC3=1111pFK8.187.5109.288.678.12109.458.898.5R1(k)14.8913.6518.2116.9015.7914.7918.2117.2116.3015.48R2(k)11.3810

10、.4313.9112.9112.0611.2913.9113.412.4511.82C3=1111pFC4=769.2pFC5=588.2pF3.2电源参数的计算直流稳压电源,设计要求当单相220V交流供电时,交流电压变化范围为+10%-15%仍正常工作,计算滤波电容值时,应考虑整流二极管,LM317,LM337,7805,7905的最小压降。 (1)输出+15V、-15V时,输出电流至少达到500mA。 在0.01S内电压变化为: 其中,U=18.75V(变压器输出交流电压),0.7V为二极管的压降,为稳压集成器件的最小压降。设计取C=2200,足以满足要求。(2)输出+5V、-5V,设计输

11、出电流可达1A。同理可得:其中,=9.7V(变压器输出交流电压),1.4V为二极管压降。设计取=4400,实际所需要的电流为几百毫安,足以满足要求。(3)同理可证,在电源电压比正常值小15%或大10%时,电路仍满足三端稳压器的最小压降,也没有超出三端稳压器的耐压范围。4.软件程序部分4.1主程序流程图如图9所示图9主程序流程图4.2各个子程序流程图如图10所示 高通子流图 增益设置子流图 低通子流图 增益控制子流图5.系统测试5.1测试仪器表3序号仪器名称型号数量120MHz普通示波器DF43281台2低频信号发生器EE1641B1台3低频毫伏表DF22201台4四位半数字万用表UT70B1台

12、5直流稳压电源WYK-303B2台6单片机开发系统ME5001台5.2 测试结果及分析程控放大测试结果如表4表4输入输出0dB输出10dB输出20dB输出30dB输出40dB输出50dB输出60dB峰峰值10mV11.1mV32.8 mV102 .0mV324.5 mV1.08V3.21V10.86V峰峰值20mV22.5mV65.6 mV209.4 mV653.8 mV2.18 V6.50V22.32V有效值6mV7.2 mV18.4 mV61.3 mV184.6 mV604.2 mV1.85V6.12V有效值10mV10.9 mV32.0 mV99.5 mV314.3 mV995.8 mV

13、3.18V9.97V参考文献(1)MSC-51/96单片及原理及应用孙涵芳徐爱卿北京航天航空大学出版社(2)跟我学用单片机 肖洪兵 胡辉 郭速学 北京航天航空大学出版社(3)MCS-51系列单片机实用接口技术 李华 北京航天航空大学出版社(4)第五届全国大学生电子设计竞赛获奖作品选编.北京:北京理工大学出版社,2001附录1:整机原理图低通电路原理图:高通电路原理图:附录2:主要的原程序/*P1.0,P1.1,P1.2控制放大器部分的放大倍数。*/*P0口控制低通滤波器的增益调节*/*P2口控制高通滤波器的增益调节*/#include<reg52.h>#include<reg

14、52.h>#include<intrins.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned long int sbit k1 = P14; /低通档位控制按纽 sbit k2 = P15; /高通档位控制按钮 sbit k3 = P16; /高通、低通切换按钮 sbit k4 = P33; /放大倍数控制按钮 sbit timea = P30; /增益控制A口 sbit timeb = P31; /增益控制B口 sbit t

15、imec = P32; /增益控制C口 sbit HL_GO = P34; sbit LCD_RS = P35; / sbit LCD_RW = P36; sbit LCD_EN = P37;uchar flage=0,tong=0,sd_freq=0,sd_volt=0, low_pass=0,high_pass=0,receive, i, HL_ZH=0; uchar code table ="ZY: DB" ;uchar code table1="high: K"uchar code table2="low: K" /*延时m毫

16、秒子程序*/void delay(uint m) uchar i; while(m-) for(i=0;i<100;i+) _nop_(); _nop_(); /* 5us 延时子程序*/void delayNOP() _nop_(); _nop_(); _nop_(); _nop_(); _nop_();/* 检查LCD忙状态 * lcd_busy为1时,忙,等待。 * lcd-busy为0时,闲,可写指令与数据 */ bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result =

17、(bit)(P1&0x08); LCD_EN = 0; return(result); /* * 写指令或数据* start=0, 写入命令; start=1, 写入数据*/void lcd_write(bit start, uchar in_data) uchar Hdata,Ldata,funct;while(lcd_busy(); Hdata=(in_data&0xf0)>>4;/取高四位 Ldata=in_data&0x0f; /取低四位 if(start=0) LCD_RS = 0; /写入命令 else LCD_RS = 1; /写入数据LCD_

18、RW = 0; LCD_EN = 0;delayNOP();funct = P0;funct=funct&0xf0;P0 = Hdata|funct; /发送高四位 LCD_EN = 1; delayNOP(); LCD_EN = 0;delayNOP();funct = P0;funct=funct&0xf0;P0 = Ldata|funct; /发送低四位 LCD_EN = 1; delayNOP(); LCD_EN = 0;delayNOP();/* LCD初始化设定 */void lcd_init() delay(15); lcd_write(0,0x28); /16*

19、2显示,5*7点阵,4位数据 delay(5); lcd_write(0,0x28); delay(5); lcd_write(0,0x28); delay(5); lcd_write(0,0x0c); /显示开,关光标 delay(5); lcd_write(0,0x06); /移动光标 delay(5); lcd_write(0,0x01); /清除LCD的显示内容 delay(25); /延时/* 设定显示位置 */void lcd_pos(uchar pos) lcd_write(0,pos|0x80); /数据指针=80+地址变量 /*lcd显示子程序*/ void lcd_dis_

20、time(uchar timers) /放大倍数显示子程序 lcd_pos(0x04); /显示地址lcd_write(1,timers+0x30); /送显示的增益的高位lcd_write(1,0x30); /送显示增益的低位0 void lcd_dis_gt(uchar h_pass)/高通频率显示子程序 uchar hhpass,lhpass; lcd_pos(0x0d);/显示地址 hhpass=h_pass/10; /计算频率的十位 lhpass=h_pass%10; /计算频率的个位 lcd_write(1,hhpass+0x30); lcd_write(1,lhpass+0x30

21、);/显示频率值 void lcd_dis_dt(uchar l_pass)/低通频率显示子程序 uchar hlpass,llpass; lcd_pos(0x0d);/显示地址 hlpass=l_pass/10; /计算频率的十位 llpass=l_pass%10; /计算频率的个位 lcd_write(1,hlpass+0x30); lcd_write(1,llpass+0x30);/显示当前频率值void fangda()/控制放大倍数子程序 switch(tong) case 0:timea=0;timeb=0;timec=0;break; /放大倍数为1倍, 即增益为0 DBcase

22、 1:timea=1;timeb=0;timec=0;break; /放大倍数为3.16倍,即增益为10 DBcase 2:timea=0;timeb=1;timec=0;break; /放大倍数为10倍, 即增益为20 DBcase 3:timea=1;timeb=1;timec=0;break; /放大倍数为31.6倍,即增益为30 DBcase 4:timea=0;timeb=0;timec=1;break; /放大倍数为100倍, 即增益为40 DBcase 5:timea=1;timeb=0;timec=1;break; /放大倍数为316倍, 即增益为50 DBcase 6:tim

23、ea=0;timeb=1;timec=1;break; /放大倍数为1000倍,即增益为60 DBdefault:break;lcd_dis_time(tong);/调显示程序flage=0;/清增益设定标志位void funtion_high_pass()/高通频率设置子程序 switch(high_pass) case 0:P2=0x00;break;/设置频率为 1KHZ case 1:P2=0x40;break;/设置频率为 2KHZ case 2:P2=0x80;break;/设置频率为 3KHZ case 3:P2=0xc0;break;/设置频率为 4KHZ case 4:P2=

24、0x09;break;/设置频率为 5KHZ case 5:P2=0x49;break;/设置频率为 6KHZ case 6:P2=0x89;break;/设置频率为 7KHZ case 7:P2=0xc9;break;/设置频率为 8KHZ case 8:P2=0x12;break;/设置频率为 9KHZ case 9:P2=0x52;break;/设置频率为10KHZ case 10:P2=0x92;break;/设置频率为11KHZ case 11:P2=0xd2;break;/设置频率为12KHZ case 12:P2=0x1b;break;/设置频率为13KHZ case 13:P2

25、=0x5b;break;/设置频率为14KHZ case 14:P2=0x9b;break;/设置频率为15KHZ case 15:P2=0xdb;break;/设置频率为16KHZ case 16:P2=0x24;break;/设置频率为17KHZ case 17:P2=0x64;break;/设置频率为18KHZ case 18:P2=0xa4;break;/设置频率为19KHZ case 19:P2=0xe4;break;/设置频率为20KHZ default:break; lcd_dis_gt(high_pass); void funtion_low_pass() switch(low

26、_pass) case 0:P0=0x00;break; /设置频率为 1KHZ case 1:P0=0x40;break; /设置频率为 2KHZ case 2:P0=0x80;break; /设置频率为 3KHZ case 3:P0=0xc0;break; /设置频率为 4KHZ case 4:P0=0x09;break; /设置频率为 5KHZ case 5:P0=0x49;break; /设置频率为 6KHZ case 6:P0=0x89;break; /设置频率为 7KHZ case 7:P0=0xc9;break; /设置频率为 8KHZ case 8:P0=0x12;break;

27、 /设置频率为 9KHZ case 9:P0=0x52;break; /设置频率为10KHZ case 10:P0=0x92;break; /设置频率为11KHZ case 11:P0=0xd2;break; /设置频率为12KHZ case 12:P0=0x1b;break; /设置频率为13KHZ case 13:P0=0x5b;break; /设置频率为14KHZ case 14:P0=0x9b;break; /设置频率为15KHZ case 15:P0=0xdb;break; /设置频率为16KHZ case 16:P0=0x24;break; /设置频率为17KHZ case 17:

28、P0=0x64;break; /设置频率为18KHZ case 18:P0=0xa4;break; /设置频率为19KHZ case 19:P0=0xe4;break; /设置频率为20KHZ default:break; lcd_dis_dt(low_pass); /调显示子程序 void init(void) P0=0x00; /低通默认状态为1KHZ P2=0x00; /高通默认状态为1KHZ timea=0; timeb=0; timec=0; /默认放大倍数为1倍 HL_GO=1; void main(void) lcd_init(); /lcd初始化 init(); /主程序初始化 IT1=1; /INT1下降沿中断 EX1=1; /允许INT1中断 EA=1; lcd_pos(0x00); /设置显示地址,为第1行 for(i=0;i<8;i+) lcd_write(1,tablei); /显示“ZY: D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论