ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:1.17MB ,
资源ID:6201019      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6201019.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(低频信号源报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

低频信号源报告.docx

1、低频信号源报告 低频信号源报告院 系:物理与机电工程学院专 业:电子信息科学与技术学 号: 11101071004姓 名: 杜林森指导教师:周永明 2013 年 12 月1低频信号发生器的设计要求 1.1 功能要求 1.波的输出频率范围:下限频率50HZ,上限频率为100HZ 2.输出波中不能产生尖峰干扰 3.按键可前后切换波形 4.按键可上下调节频率 5.按键上下可调节幅值 6.利用LCD液晶显示输出波的名称、频率和幅值 1.2 技术指标 1.波形失真度:5% 2.LCD1602显示 2.1 系统设计原理数字信号可以通过数/模转换成模拟信号,因此可以通过产生数字信号再转换成模拟信号的方法获得

2、所需要的波形。单片机本身就是一个完整的微型计算机。具有组成微型计算机的各个组成部分:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等1,只要将单片机在配置键盘及其接口、显示器及其接口、数模转换以及放大电路,则可实现波形的输出,即构成所需的信图1 系统原理框图号发生器,其原理框图如图1所示。单片机是整个波形发生的核心部分,通过程序的编写和执行,产生各种各样饿波形,并且通过键盘来进行各种波形的切换,并且实现波形的频率和幅度大小的调节。当数字信号经过接口电路到达转换电路,将其转换为模拟信号,即输出所需的波形。 2.2 设计思想(1) 将一个周

3、期的信号分离成256个点(按X轴等分),每两个点之间的时间间隔为T,用单片机定时产生,其表示式为:T=T256。如果单片机的晶振为12MHZ,采用定时方式1,则定时器初值为:X=216 -T/Tosc1。(2) 为了实现调整幅度,将一个周期的256个信号点分为四等分,每1/4周期的信号点为64个,调整幅度的时候可以将这1/4周期的点的幅度同时增大或者减小。(3) 对于生出的四种波形分别用波形生成器生成四个不同的波表。3主要元器件的介绍 3. 1 STC12C5A60S2简介 3.1.1 STC12C5A60S2结构 单片机内部结构图如图2所示在设计中,STC12C5A60S2用于产生波形的数字

4、信号,并控制信号的频率和幅。STC12C5A60S2是一种带4K字的程序存储器的低电压、高性能的COMS8位微处理器,又称单片机。它的内部结构按功能可分为8个组成部分:微处理器(CPU)、数据存储器(RAM),程序存储器(ROM/EPROM)、特殊功能寄存器(SFR)、并行I/O口、串行通信口、定时器/计数器及中断系统4。本系统选择STC12C5A60S2作为主控芯片,不仅满足系统要求而且比较廉价,从功能实现和经济双方面考虑,选择是非常合理的。 3.1.2 管脚说明 EA/VPP:当EA保持高电平时,单片机访问的是内部程序存储器,但当PC值超过某值时,将自动转向外部程序存储器内的程序。当EA保

5、持低电平时,则不管是否有内部程序存储器而只访问外部程序存储器4。 3. 2 DAC0832简介 3.2.1 工作原理 DAC0832内部结构图如图4所示。 在设计中,DAC0832主要用来将数字信号转换为模拟信号。DAC0832是8位D/A芯片,片内带数据锁存器,电流输出。该系列产品包括DAC0830、DAC0831、DAC0832,它们可以完全相互代换。它由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路组成5。图4 DAC0832内部结构 DAC0832可以有三种工作方式: 1、单缓冲方式 若应用系统中只有一路D/A转换或虽然有多路转换,但并不要求各路信号同步输出时,则采

6、用单缓冲方式来接口。方法是:使锁存器和DAC寄存器同时接收数据4。 2、双缓冲方式 当多路D/A信号要求同步输出时,则采用双缓冲方式。方法是:分别使其输入锁存器接收数据;同时传送数据到其 DAC寄存器,以实现多路转换同步输出4。 3、直通方式 所有控制信号均有效,适宜于连续控制时。 3.2.2 引脚图及其功能 各引脚如图分布如图5所示。 DI7DI0:8位数据输入端,DI7为最高位。 IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。 IOUT2:模拟电流输出端2,当DAC寄存器中数据全为1时,输出电流最大,IOUT1和IOU

7、T2的和为一个常数6。 RFB:反馈电阻引出端,DAC0832内部已经有反馈电阻,所以RFB端可以直接图5 DAC0832引脚图到外部运算放大器的输出端,这样相当于将一个反馈电阻接到运算放大器的输出端和输入端之间。 VREF:参考电压输入端,此端可接一个正电压,也可以接一个负电压,它决定0 至255的数字量转换出来的模拟电压值的幅度。 3.2.3字符液晶LCD1602简介 字符液晶显示器根据显示的容量可以分为1行16个字、2行16个字、2行20个字等,这里介绍常用的1602液晶模块,可以显示2行每行16个字符。LCD1602采用标准的16脚接口,其引脚图如图6所示。其中: VSS:地电源 VD

8、D:接5V正电源 VEE:液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。图6 LCD1602引脚图 EN:使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 D0D7:8位双向数据线。 RS:寄存器选择,1:选择数据寄存器,0:选择指令寄存器。 RW:读写信号线,高电平时进行读操作,低电平时进行写操作。RS=0,RW=0:写入指令或者显示地址,RS=0,RW=1:读忙信号,RS=1,RW=0:写入数据5。4信号发生器硬件设计 4.1 硬件原理框图 硬件原理框图如图7所示图7 系统硬件原理框图 4

9、.2 主控电路 单片机STC80C52内部设置两个16为可编程的定时器/计数器T0和T1,它们具有计数方式和定时方式两种工作方式以及4中工作模式。在信号发生器中,将其作为定时器使用,用来精确地确定波形的两个采样点输出之间的延时时间。模式1是采用16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。 中断系统是使处理器具有对外界异步事件的处理而设置的。当中央处理器CPU处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转向处理这个紧急事件。在信号发生器中,只要片内定时器/计数器溢出时产生的中断请求,即在单片机输出一个波形的采样点信号后,接着启动定

10、时器,在定时器未产生中断之前,单片机等待,直到定时器计数结束后,产生中断请求,单片机响应中断,接着输出下一个采样点信号,如此循环产生所需的信号波形。主控电路如图8所示。其中P0口用于输出数字信号,输入DAC0832后经过数模转换后输出相应的电压,生成相应的波形。P2口用于液晶的数据输入口,使得液晶能够显示出此刻输出波形的类型、频率以及幅值。P3.0到P3.5口用于键盘检测,当单片机接收到键盘的输入后可以产生相应的操作,达到切换波形,调整频率和幅值。P1.5到P1.7口用于液晶的控制端口,用于操作液晶显示。其中主控电路还包括复位电路和时钟电路,晶振选用12MHZ的。图8 主控电路 4.3数/模转

11、换及放大电路 由于单片机产生的是数字信号,要想的到所需的波形,数字信号转换成模拟信号,所以选用价格低廉、接口简单、转换控制容易并且具有8位分辨率的数模转换器DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。但实际上,DAC0832输出的电量也不是真正能够联系可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0832是电流型输出,在运用时应该利用外界运放使之成为电压型输出7。 数/模转换及放大电路如图9所示。由于此电路只有单通道,所以选用的是DAC0832的单缓冲方式应用接口电路。 其中输出波经过了滤波和二级放大才得到最终

12、的波形。图9 数/模转换及放大电路 4. 4键盘接口电路 按键接口电路如图10所示。 这种特殊的接法为了避免按键与单片机相连时出现不确定状态。当按键没有按下时,单片机与键盘接口对应的I/O输入为高电平;当有按键按下时,产生一个下拉,使得单片机接口输入为低电平,因而可以产生相应的操作。 当按下S1键时,每按一次则输出波形频率加1HZ,当频率达到100HZ时,再按一次则还原为50HZ,当按下S2键时,每按一次则输出波形频率减1HZ,当频率达到50HZ时,再按一次,则频率变为100HZ。按键S3和S4分别进行波形的正反向切换,时输出端口输出不同的波形:正弦波、锯齿波、方波、三角波。S5和S6分别进行

13、幅度正方向调节,本设计总共设置了四种幅度的档位选择。图10 键盘接口电路 4.5 时钟电路 单片机有两个引脚(XTAL1,XTAL2)用于外接石英晶体和微调电容,从而构成时钟电路,其电路图如图11所示。电容C1和C2对振荡频率有稳定作用,其电容量选择为30pf ,振荡器的选择频率为12MHZ的石英晶体。由于频率较大时,三角波、正弦波、锯齿波中每一点的延时时间只有几微妙,故延时时间还要加上指令时间才能获得较大的频率波形。图11 时钟电路4.6显示电路 显示电路如图12所示。图12 液晶显示模块电路显示电路时用来显示波形信号的频率和幅度以及输出波形的类型,使得系统更加的合理。从经济的角度出发,选用

14、LCD1602比较合理。5 信号发生器软件设计 程序流程图如图12所示。 本程序的子程序选择是通过键盘的输入来实现的,在取得按键值之后启动相应的中断服务程序,再直接根据查询值来切换波形以及实现幅度和频率的调整。图13 系统软件流程图6 信号发生器的实物图及其输出波形展示 通过前面的软硬件设计以后,整个电路的设计基本完成,系统在以Proteus7.2这款软件为平台,对正弦波、方波、锯齿波和三角波进行了仿真与测试,通过仿真证明了电路软硬件设计的正确性。最后就是进行焊接实物图并且测试实物图的正确性。 系统硬件的整体实物图如图14所示。图14 系统硬件的整体实物图 7. 1 正弦波的测试 正弦波的测试

15、如图15所示。 此波的幅度可调整,有四个幅度档位。频率可调,频率的调节范围为50HZ至100HZ,按键每按一次,则频率可加减1HZ。并且可以通过液晶显示详细信息。波形的缺陷在于在峰值处由于点的叠加造成有少许重叠,不过,不影响整体的完整性,失真也较小。如图显示的是幅度第三档位,频率为50HZ的波形。 图15正弦波实物图测试程序如下 7. 2 方波的测试 方波的测试如图16所示。 此波的幅度可调整,有四个幅度档位。频率可调,频率的调节范围为50HZ至100HZ,按键每按一次,则频率可加减1HZ。并且可以通过液晶显示详细信息。失真较小。如图显示的是幅度第四档位,频率为50HZ的波形。 7. 3 三角

16、波的测试 三角波的测试如图17所示。 此波的幅度可调整,有四个幅度档位。频率可调,频率的调节范围为50HZ至100HZ,按键每按一次,则频率可加减1HZ。并且可以通过液晶显示详细信息。波形失真也较小。如图显示的是幅度第四档位,频率为50HZ的波形。图17 三角波的测试 8 总结这种基于单片机的信号发生器已经展现出很好的性能,而且有着较高的性价比。此外,它产生的波形也模拟电路波形相比,波形有着更好的平滑性,其周期也更加稳定。应经越来越多的应用到各种电子设备中,给人们日常的生活带来了极大的方便。由于我个人的所学知识有限,此次设计中的低频信号发生器也有其不足之处,有些指标还有待提高,例如可调频率的范

17、围不够宽,没法提高到更高的频率,同时,其幅度并不是连续可调,只有四个档位。我将会在今后的学习中更加踏实地学好各个知识点。附 录程序部分代码:#includereg52.h#include #define uint unsigned int#define uchar unsigned charsbit RS=P37;sbit RW=P36;sbit E=P35;sbit CS1=P34;sbit CS2=P33;sfr LCDData=0x80;sfr keyport=0xa0;sfr DACin=0x90;uchar fz;uchar key;uint p;uint ys;/* 12864显示

18、 */void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void Write_Instruction(uchar x) delay(5); E=0; RW=0; RS=0; LCDData=x; E=1; delay(2); E=0;void Write_Data(uchar x) delay(5); E=0; RW=0; RS=1; LCDData=x; E=1; delay(2); E=0;void CLS(void) Write_Instruction(0x01);void LCDInit(void) delay(5

19、); Write_Instruction(0x30); delay(2); Write_Instruction(0x30); delay(2); Write_Instruction(0x0c); delay(2); Write_Instruction(0x01); delay(2); Write_Instruction(0x06);void Write_String(uchar x,uchar y,uchar *p) switch(y) case 1:Write_Instruction(0x80+x-1);break; case 2:Write_Instruction(0x90+x-1);br

20、eak; case 3:Write_Instruction(0x88+x-1);break; case 4:Write_Instruction(0x98+x-1);break; default:break; while(*p) Write_Data(*p+); /* 键盘驱动 */bit ReadKey(void) bit dat; keyport=0xf0; if(keyport=0xf0) dat=0; else dat=1; return(dat);uchar IdentifyKey(void) uchar i=1,j=0xfe,m; while(j!=0x7f) keyport=j;

21、m=keyport&0xf0; switch(m) case 0xe0: j=0x7f; break; case 0xd0: i=i+4; j=0x7f; break; case 0xb0: i=i+8; j=0x7f; break; case 0x70: i=i+12; j=0x7f; break; default: i=i+1; j=(j500) p=500; DispalyPL(p);break; case 5:fz=fz+10; /峰值加1 if(fz50) fz=0; DispalyFZ(fz);break; case 6:fz=fz-10; /峰值减1 if(fz200) fz=5

22、0; DispalyFZ(fz);break; case 7:p=p+10; /频率加1 if(p500) p=0; DispalyPL(p);break; case 8:p=p-10; /频率减1 if(p500) p=500; DispalyPL(p);break; case 11:p=p+100; /频率加10 if(p500) p=0; DispalyPL(p);break; case 12:p=p-100; /频率减10 if(p500) p=500; DispalyPL(p);break; case 13:Write_String(4,2,正弦波);break; case 14:W

23、rite_String(4,2,三角波);break; case 15:Write_String(4,2,方 波);break; default:break; uchar code sin_tab= 0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2, 0xa5,0xa8,0xab,0xae,0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4, 0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8,0xda,0xdc,0xde,0xe0, 0xe2,0xe4,0xe6,0x

24、e8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf4, 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe, 0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf3,0xf2, 0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe3,0xe1,0xde,0xdc, 0xda,0xd8,0x

25、d6,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf, 0xbc,0xb9,0xb6,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c, 0x99,0x96,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7d,0x79,0x76, 0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52, 0x4f,0x4c,0x49,0x46,0x43,0x41,0x3e,0x3b,0x39,0x36,0x33,0x31, 0x2e,0x

26、2c,0x2a,0x27,0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17, 0x15,0x14,0x12,0x10,0xf,0xd,0xc,0xb,0x9,0x8,0x7,0x6,0x5,0x4, 0x3,0x3,0x2,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x1,0x1,0x2,0x3,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xa,0xc,0xd, 0xe,0x10,0x12,0x13,0x15,0x17,0x18,0x1a,0x1c,0x1e,0x20,0x23, 0x25,0x27,0x29,0x2c,0x2e,0x30,0x33,0x35,0x38,0x3b,0x3d,0x40, 0x43,0x46,0x48,0x4b,0x4e,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63, 0x66,0x69,0x6c,0x6f,0x73,0x76,0x79,0x7c; void delay_us(uint i) int s; for(s=0;si;s+);/* 方波发生函数 */void fan(void) uint b; DACin=0x00; delay_us(256); _nop_(); DACin=0xff; delay_us(256

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1