版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于51单片机的函数信号发生器参赛组员: 刘志强 王力 郑艳霞二0一一年五月十七日摘要波形发生器是一种常用的信号源,广泛地应用于电子电路、自动化控制系统和教学实验等领域。本函数发生器采用STC89C51单片机作为控制核心,外围由数字/模拟转换电路(DAC0832)、运放电路(LM351)、稳压电路(KA7805、KA7905)、按键和LCD显示电路等构成。整个电路由STC89C51单片机和DAC0832数模转换器组成信号发生器,基准电压由稳压电路KA7805和KA7905构成,运放LM351构成偏置、滤波以及放大电路。由于采用器件均具有较高的性价比,使得整个函数信号发生器具有价格低、性能高、稳
2、定性好、操作方便、体积小、耗能低等特点。此电路线路多由排针引出,由杜邦线进行外部线路连接,故出现故障易于查找,操作方便,放大电路电位器控制,易于改变增益大小,便于幅值修改。此函数发生器通过按键控制产生方波、三角波、正弦波,同时由LCD1602同步显示频率、幅值和步进。频率变化范围为10Hz10kHz,波形平滑,频率准确。本系统设计简单、性能优良,具有一定实用性。关键字:单片机;运放;DAC0832;调频;LCD1602目 录一、系统方案 1 1、1 信号发生部分 1 1、2 显示部分 2 1、3 滤波及幅值显示 2二、系统设计 3 2、1 整体设计方案 3 2、2 总提框图 3 2、3 主要流
3、程图 4三、硬件电路 4 3、1 单片机电路 5 3、2 DAC0832电路 5 3、3 滤波电路 5 3、4 放大电路 6 3、5 部分参数运算 6四、软件设计及流程 7 4、1 流程图 7 4、2 软件设计部分思想 7五、 调试及测试结果 10 5、1 软件调试 10 5、2 硬件调试 10六、 参考文献 13七、附录 13 整体原理图 13 重要程序代码 14一、系统方案题目要求实现任务为制作一个能产生100Hz-1000Hz,频率可调的正弦波、方波和三角波的信号发生器,输出波形无失真。不可使用DDS和专用芯片。并可扩展至频率10Hz-10kHz,步进100Hz,输出正弦波Vpp在0-5
4、V之间,且可以实时显示频率、幅值和步进。由于不可使用专用芯片和锁相环倍频技术,故以下方案论证皆不涉及专用芯片及锁相环。1、1 信号发生部分方案一:采用RC串并联振荡器产生正弦信号,利用比较器产生方波,通过积分产生三角波。频率变化利用RC大小控制。此方案优点:技术成熟,可参考资料较多。缺点外部电路元器件较多,调试难度较大,频率稳定度和准确度差,很难满足频率变化要求,更无法满足步进。方案二:基于MAX038内部结构图通过51单片机通过0832数模转换器产生小阶梯模拟量正弦波波形,通过正弦波可比较产生方波和积分产生三角波。优点频率可调,且有详细的工业成型内部电路原理图。缺点积分电路衰减产生,且在不同
5、频率段无法使用一个积分电路完成。硬件制作复杂,调试麻烦。方案三:通过51单片机和DAC0832产生方波,三角波和正弦波的小阶梯式模拟量波形,通过采样点间的间隔时间和采样点数目的控制产生10Hz-10kHz的频率,在低频段尽量多的采样点避免使用不同滤波电路。然后经过LPF滤波即可产生波形。通过以上方案比较及验证可以得出结论,方案三可能性最大,且硬件电路简单,调试方便,满足电路需求。故选此方案。1、2 显示部分方案一:LED数码管显示。由于要求同时显示频率、幅值和步进。LED数码管不能显示字符,故此方案不可行。方案二:点阵显示。显示效果不好,且不易控制编程较难,故不采用此方案。方案三:LCD显示。
6、LCD显示易于编程,可同步显示字符数字,符合要求。故显示部分选用1602LCD显示。1、3滤波及幅值显示 滤波:滤波电路由于三角波和正弦波通过相同的滤波电路若采样点不够在高频部分易产生高频部分三角波滤波后变成正弦波,但若采用不同滤波电路三角波也必须采用不同频段的滤波电路,为节约器件便于调试,通过软件部分采样点采取足够,使用低通滤波,低频段通过,高频段滤波达到要求。幅值:幅值显示的方法有两种方案。其与频率显示相同。其一,可以通过外部电路读取。频率可以通过计数器与脉冲波比较得出频率,幅值也可以通过ADC外部判断输入显示且可以通过八位的串行输入避免51单片机IO口不足的缺陷。但幅值与频率相同均可直接
7、调节稳定,直接显示,通过内部程序调节既节约器件,又精确,故直接由内部程序决定,幅值测定后不改变。二、 系统设计2、1 整体设计方案通过以上理论分析最终确定制定如下的整体设计方案:以STC89C51单片机为控制的核心,P0口外接1602数据口,P1口外接DAC0832数据口,P2口作为控制口,和键盘接入口,运用外部中断使速度较慢的键盘和显示与速度较快的DAC输出隔开,外部使用LM351使偏置电压正负对称,使用巴特沃斯二阶低通滤波器使波形平滑。滤波后外接负载电路改变幅值。2、2 总体框图2、3 主要流程图三、硬件电路本电路由单片机最小系统(复位电路、稳压电源、晶振)、按键电路、DAC0832电路、
8、滤波电路和放大电路四部分组成,整体电路图见附录。3、1 单片机电路单片机电路由复位电路,24MHz的晶振,稳压电源,以及P0口的排阻组成。其主要功能是检测外部输入信号确定相应的输出信号方式。输出信号类型及频率由单片机内部编程确定。当外部按键按下时,外部74LS20通过与非门控制P32口低电平,使得执行外部中断,扫描按键位置,确定功能,使得LCD显示屏幕显示。3、2 DAC0832 电路DAC0832 是一款8位并行输入的电流输出模数转换器件,时间间隔为1us,由于电路输出且全为正值过外部加LM351作为电流转换电压电路,且加变位器使得偏置为正负对称,且可调节由于期间本身带来的失调电压。3、3
9、滤波电路 由于DAC输出的阶梯状模拟量波形具有足够多的采样点故只需要一个通频带足够宽的二阶巴特沃斯滤波器即可。3、4 放大电路 电位器控制,可以调节幅值大小,且可以增大负载能力。3、5 部分参数运算整个电路中涉及运算部分主要有DAC0832电流转电压及其偏置由于其由电位器控制故,可以在调试中确定,由失真和偏置电压及平均值共同确定其大小。在滤波电路中,由于最高频率为10kHz,且低频部分较为平滑,故二阶巴特沃斯低通滤波器选用较高频率。选用电阻10k欧姆,电容10nF,计算得知 f=1/(2Pi*R*C)=15.9K Hz在运算放大电路中,运用反向放大电路,公式为: Vout=-(R10/RV2)
10、*Vin由于RV2为变位器故,以调试结果为主。四、软件设计及流程4、1 流程图4、2 软件设计部分思路4、2、1 外部中断: 在软件运行阶段,由于运行定时器中断的时间占全部运行时间的大部分,那么当按键按下时,软件很可能还没有运行到按键检测的程序中,则按键将出现时灵时不灵的情况,为避免这种情况的发生,采用外部中断,当按键按下时,执行外部中断中的程序,所以只需要将按键检测程序放到外部中断程序中,那么就不会出现按键失灵的情况,另将显示程序放到外部中断中,因为在按键没有按下的情况下,输出波类型和频率都是不会发生改变的,所以仅仅需要当数据改变一次,才送去LCD显示一次,这样不但可以减少MCU的工作量,也
11、可以使显示更稳定。4、2、2定时器中断:由于程序是按照从上到下的顺序,如果采用程序延时的方式来输出DA所需要的数据,那么波型将很不容易控制,所以我们采用用定时器中断的方式来输出信号,又因为输出信号频率较高,如果全用一个定时器产生输出信号,那么定时器中断中的语句将会比较长,在下一个定时器中断来临时,上一次中断中的程序次很可能还没有执行完成,将出现错误,所以采用两个定时器来计数,具体方式为:定时器产生方波和10-100Hz的正弦波和三角波,定时器产生100-10kHz的正弦波和三角波,当输出方波和10-100Hz的正弦波和三角波时,定时器打开,定时器关闭,输出信号由定时器控制,当输出100-10k
12、Hz的正弦波和三角波时,定时器关闭,定时器打开,输出信号由定时器控制,这样就可以尽可能输出频率高的波形。、采样点控制:在100Hz以下,正弦波和三角波一个周期的采样点我们全部采用256点,那么在外部电路在基本不需要滤波的情况下,DA也能输出比较圆滑的波形,这样就大大减小了外部电路的设计难度,只需要用一个通频带比较高的低通滤波器,在100Hz以上,如果再全部采用256个点,那个MCU运算速度将会不够,进而达不到较高频率,所以随着频率的升高,只有减少一个周期的采样点,从而达到设计要求。4、2、4 设计亮点: 在中断程序中,由于三角波和正弦波的选择,需要使用键盘,程序中需要进行按键确认,使用if语句
13、进行判断使得整个中断语句耗时达到14us左右,影响外部取点,经过调试将第二个语句改为else 最终达到8us。且烧录过程中选择6T双倍速将一个机器周期由原来的12个时钟周期变为6个时钟周期,中断时间缩短至4us。程序如下: void T1_timer() interrupt 3quzhi=quzhi+gedian;if(an_cishu=2)P1=sanjiaoquzhi;elseP1=sinquzhi;五、调试及测试结果5、1 软件调试软件调试分为KEIl调试和proteus中调试两种,在两种软件中均可以正常得出理想波形。5、2 硬件调试硬件调试分为四个步骤进行。一、电路连接的导通性。在电路
14、版得焊接过程中,电路连接完成后由万能表蜂鸣器测试各个点位是否导通。确认每个接地,接电点位完全导通。二、通电测试,在输出端接一发光二极管,调节频率10Hz,调试电路至灯开始闪烁,者频率可以输出,波形未定。 三、示波器调试,分别测试P1输出脚的方波信号,DAC083211脚的输出信号,观察是否有方波输出。调试直至输出;测试电流转电压电路输出信号,电平,平均值,是否失真,调节变位器,使信号输出,;同理调节反向放大电路,使输出符合题意。四、测试按键、显示屏,记录分析示波器信号。调试结果如下:三角波: 正弦波: 方波: 三种波形在FFT下的谐波分量,图形如下:由以上图形可知,信号发生器产生的波形频率较为
15、标准,但由于在使用在运放的过程中LF351缺少由一个741代替,导致在高频部分电平有所衰减。但,负载电路的反向放大器增益由电位器可调,故正弦波的输出Vpp也可保证在0-5V。且由以上的FFT谐波分量也可以看出三角波与正弦波的波形较为标准。六、参考文献1 新概念51单片机C语言教程:入门、提高、开发、拓展全攻略 郭天祥 北京:电子工业出版社,20092 电子系统设计 专题版 黄虎 北京:北京航天航空大学出版社,20093 电子系统设计 基础版 余小平,奚大顺 北京:北京航空航天出版社,20104 芯片资料均来自: 七、附录:整体原理图:重要源程序代码:#include#define uint u
16、nsigned int#define uchar unsigned charsbit lcden=P26;sbit lcdrs=P27;sbit key2=P20;sbit key1=P21;sbit key0=P22;sbit da_cs=P25;sbit da_wr=P24;uchar code to_start= press angkey;uchar code nothing=nothing out ;uchar code sin=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae
17、,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa
18、,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69
19、,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
20、,0x00,0x00,0x01,0x02 ,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0f,0x10,0x11,0x13,0x15,0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e,0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e,0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72,0x76,0x79,0x7c,0x
21、80; uchar code sanjiao=0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,
22、166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,255,254,252,250,248,246,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214,212,210,208,206,204,202,200,198,
23、196,194,192,190,188,186,184,182,180,178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148,146,144,142,140,138,136,134,132,130,128,126,124,122,120,118,116,114,112,110,108,106,104,102,100,98,96,94,92,90,88,86,84,82,80,78,76,74,72,70,68,66,64,62,60,58,56,54,52,50,48,46,44,42,40,38,36,34,32,30
24、,28,26,24,22,20,18,16,14,12,10,8,6,4,2;void key_gongneng();uint key_sub_mul(uint movedate);void display();void control();uint T0_chuzhi,an_cishu,gedian,quzhi,fangbo_fre=250,fre=250,t0_aa,fangbo_quzhi,fangbo_fre_show,fre_show,flag,t0_cishu,t0_zhuangzhi;void delay(uint xms)/延时函数;uint i,j;for(i=xms;i0;
25、i-)for(j=25;j0;j-);void write_com(uint com)/LCD写命令;lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uint date)/LCD写数据;lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;/*-init()程序为各部分功能初始化设置;-*/void init()uint i;TMOD=0x22;/定时0工作方式为2,定时器1工作方式为2;EA=1;/开总中断;EX0=1;/开外部中断;ET0=1;ET1=1;/开定时
26、器0和定时器1中断;TH0=0;TL0=0;/定时器0装初值;TH1=0;TL1=0;/定时器1装初值;da_cs=0;da_wr=0;/开DA片选;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);/LCD初始设置;write_com(0x80);for(i=0;i=500)movedate+=125;if(movedate=50&movedate500)movedate+=50;if(movedate5000)movedate=5000;while(!key1);flag=0; if(key0=0)delay(5
27、);/消抖;if(key0=0)if(movedate50&movedate500)movedate-=125;if(movedate5)movedate=5;while(!key0);flag=0;return movedate;/*-control()控制程序-*/void control()flag=1;if(an_cishu=0)TR0=0;TR1=0;if(an_cishu=1)TR1=0;TR0=1;if(fangbo_fre500&fangbo_fre1000&fangbo_fre2500)t0_zhuangzhi=256-500000/fangbo_fre;TH0=t0_zhu
28、angzhi;TL0=t0_zhuangzhi;fangbo_quzhi=2;if(an_cishu=2)if(fre=50&fre=500) TR0=0;TR1=1;TH1=194;TL1=194;gedian=fre/125; if(an_cishu=3)if(fre=50&fre=500) TR0=0;TR1=1;TH1=194;TL1=194;gedian=fre/125; /*-display()LCD显示程序;an_cishu=0时显示nothing out ;an_cishu=1显示方波和其频率;an_cishu=2时显示三角波和其频率;an_cishu=3显示正弦波和其频率;-
29、*/void display()uint i;uint wan,qian,bai,shi,ge;if(an_cishu=0)/显示nothing out,表示什么也不输出;write_com(0x80);for(i=0;i16;i+)write_date(nothingi);write_com(0x80+0x40);for(i=0;i16;i+)write_date( );if(an_cishu=1)/显示方波输出;及其VPP,步进值,和频率;wan=fangbo_fre_show/10000;qian=fangbo_fre_show%10000/1000;bai=fangbo_fre_sho
30、w%1000/100;shi=fangbo_fre_show%100/10;ge=fangbo_fre_show%10;write_com(0x80);write_date(S);write_date(Q);write_date(U);write_date(W);write_date(:);write_date( );write_date(v);write_date(:);write_date(5);write_date(v);write_date( );write_date(s);write_date(:);if(fangbo_fre50&fangbo_fre500)write_date(1
31、);write_date(0);write_date(0);elsewrite_date(2);write_date(5);write_date(0);write_com(0x80+0x40);write_date(F);write_date(R);write_date(E);write_date(:);write_com(0x80+0x40+7);write_date(wan+0x30);write_date(qian+0x30);write_date(bai+0x30);write_date(shi+0x30);write_date(ge+0x30);write_com(0x80+0x40
32、+14);write_date(H);write_date(Z);if(an_cishu=2)/显示三角波输出;及其VPP,步进值,和频率;gedian=fre_show/100;wan=fre_show/10000;qian=fre_show%10000/1000;bai=fre_show%1000/100;shi=fre_show%100/10;ge=fre_show%10;write_com(0x80);write_date(T);write_date(R);write_date(i);write_date(W);write_date(:);write_date( );write_date(v);write_date(:);write_date(5);write_date(v);write_date( );write_date(s);write_date(:);if(fre=50&fre500)write_date(1);write_date(0);write_date(0);elsewrite_date(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园安全用电工作制度
- 幼儿园工作制度文件范本
- 幼儿园德育常规工作制度
- 幼儿园推普通话工作制度
- 幼儿园环境整治工作制度
- 幼儿园自我检测工作制度
- 幼儿园追检补检工作制度
- 幼儿园食品快检工作制度
- 计算机数据库技术在信息管理中应用的改进措施
- 学校考试管理办法
- GB/T 45953-2025供应链安全管理体系规范
- 干部审计知识培训课件
- 2025年商标代理人业务水平考试题库附答案
- 化工储罐知识培训课件
- 【《某煤矿深部煤巷二次支护设计分析》14000字(论文)】
- 华为销售培训课件
- 2025年中级消防设施操作员理论知识考试真题(后附专业答案和解析)
- 学前教育原理(第2版) 课件 第一章 学前教育导论
- 新生儿电解质紊乱与护理
- 生物分离工程教学课件
- (高清版)DG∕TJ 08-2312-2019 城市工程测量标准
评论
0/150
提交评论