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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

多功能信号发生器设计.docx

1、多功能信号发生器设计河南理工大学单片机应用与仿真训练设计报告多功能信号发生器设计姓 名: 学 号专业班级: 电气本11-4 指导老师: 所在学院:电气工程与自动化学院 时 摘要本设计采用基于AT89S52的单片机最小系统为核心,成功产生出幅值和频率都可调的正弦波、锯齿波、方波、三角波等波形。频率范围是100-1KHz,幅值调节范围0V到+5V。本系统主要由四大模块组成:显示模块、波形发生模块,幅频调节模块、及外部电源模块。各个模块的实现方法如下:一、显示模块:本系统采用应用较广泛的数码管作为显示模块。其显示与控制机理是单片机通过与数码管按照一定的规定相连接,然后再程序中在对数码管进行初始化后,

2、就可以向其写字符或读字符。二、波形发生模块及稳幅输出模块:产生指定波形可以通过DAC芯片来实现,不同波形产生实质上是对输出的二进制数字量进行相应改变来实现的。本系统采用的是两片DAC0832 8位数/模转换器,前级DAC0832的输出作为后级DAC0832的参考电压。稳幅输出则通过LM324集成运放来实现对DAC0832输出电流信号到电压信号的转变。三、幅频调节模块:通过按键与门电路74LS08的组合来实现通过产生中断来实现对波形的选择和频率的调节。而幅值调节通过改变前级DAC输入数字量来实现后级DAC参考电压Vref的改变来改变幅值。为了产生尽可能精确的频率,在定时器中断程序中调用波形的输出

3、程序,每发生一次定时器中断,输出一个点。程序设计输出64个点,64*T,就是波形的周期。通过改变定时器的周期来改变输出波形的周期。四、电源模块:利用MAX232的2脚,6脚产生正负10V直流电压用作LM324的电源。本系统软件主要通过C语言开发,硬件电路设计具有典型性。同时,本系统中任何一部分电路模块均可移植于其它实用开发系统的设计中,电路设计实用性很强。1、 概述1.1 信号发生器现状. 目前,市场上的信号发生器多种多样,一般按频带分为超高频、高频、低频、超低频、超高频信号发生器。其中高频、低频和超低频信号发生器,大多使用文氏桥振荡电路,即RC振荡电路,通过改变电容和电阻值,改变频率。用以上

4、原理设计的信号发生器,其输出波形一般只有两种,即正弦波和脉冲波,其零点不可调,而且价格也比较贵,一般在几百元左右。但是在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟震动等领域往往需要低频信号源,而由硬件搭建的波形发生器效果往往达不到好的效果,而且低频信号源所需要的RC很大,大电阻,大电容在制作上有困难,参数的精度也难以保证,而且体积大,漏电,体积大是该类波形发生器的显著缺点。1.2 单片机在波形发生器中的应用随着电子技术的飞快发展,单片机的应用不断的深入,基于单片机的智能仪器的设计技术不断成熟。单片机构成的仪器具有高可靠性,高性价比,单片机技术在智能仪表和自动化等诸多领域有了极为广

5、泛的应用,并应用到各种家庭电器,单片机技术的广泛应用推动了社会的进步。利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于通过程序控制,只要对电路稍加修改,调整程序,就能实现功能的升级。2、 系统总体方案及硬件设计2.1 系统分析基于单片机的信号发生系统是一个实际应用系统,可为相关实验及实际应用提供支持。本论文包括硬件系统的详细设计及C语言在基本控制中的应用。此系统具有的功能如下:硬件部分(1)七段数码管显示电路;(2)键盘和与与门中断产生电路;(3)时钟电路与复位电路;(4)具有8位精度的D/A

6、转换和波形产生电路;(5)正负10V直流电源转换电路;软件部分(1)系统复位初始化;(2)键盘中断与处理;(3)中断0服务程序;(4)定时器0中断服务程序;(5)正弦波发生程序;(6)三角波发生程序;(7)方波发生程序;(8)锯齿波发生程序。2.2 总体方案设计2.2.1系统总体结构框图设计 图2-1 系统主结构框图2.3 总体硬件设计(1)程序存贮器AT89S52内部自带8K的ROM,512B的RAM,所以不需要对其扩展存储器。(2)按键及中断接口系统采用按键通过门电路来产生中断,并在中断服务程序里来扫描按键来实现波形切换和频率的调节。(3)显示模块本设计实现了89S52的P1口控制数码管显

7、示当前波形种类和波形频率。(4)D/A转换本设计D/A转换部分采用DAC0832芯片,通过对单片机输出的二进制数字量进行从数字量到模拟量的变换来实现波形的产生。(5)信号变换部分对信号的变换部分采用四运放集成芯片LM324,它采用14脚双列直插塑料封装,它的内部包含四组形式完全相同的运算放大器。(6)外部电源因LM324工作需要正负12V的直流电源,因此利用MAX232的2,6脚的RS232电平输出LM324所需的正负10v电压。2.4系统各模块设计2.4.1 资源分配为了满足功能和指标要求,现分配资源如下:1.晶振采用12MHZ2.IO端口分配:P0口与DAC0832的DI0-DI7数据输入

8、;P3口的P3.4P3.7分别与四个按键相连,依次控制波形种类的选择。波形频率的增加、波形频率的减小和波形幅值的增加与减小用74LS02连接到P3.2。DAC0832-I的输入寄存器写选通信号WR1与P2.4连接,DAC寄存器写选通WR2和数据传送信号XFER相连后与P2.6连接。P1口做数码管的数据输入端口。2.4.2显示器接口设计 本系统采用的数码管是一类价格便宜 使用简单,通过对其不同的管脚输入相对的电流,使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数的器件。P0口与两片74HC573连接,分时输出段码与位选码。P3.1与P3.3分别控制两个锁存器的选通与否。

9、图2.2 系统显示电路2.4.3 复位与时钟电路设计2.4.3.1复位电路设计单片机的复位是靠外电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,通常是RST引脚保持10ms以上的高电平。复位电路连接如图3-2所示。此电路仅用一个电容及一个电阻。系统上电时,在RC电路充电过程中,由于电容两端电压不能跳变,故使RESET端电平呈高电位,系统复位。经过一段时间,电容充电,使RESET端呈低电位,复位结束。 图2-3 复位电路2.4.3.2 时钟电路设计8XX51系列单片机工作时必须要有

10、个时钟脉冲,有两种方法可以向AT89S51提供时钟脉冲:第一:外部时钟方式。使用外部电路始终给AT89S51提供时钟脉冲如右图图2-4 晶振电路第二:内部时钟方式。使用晶振利用AT89S51内部电路产生时钟脉冲如左图。我们一般使用这种方式。AT89S51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、

11、起振的难易程度及温度稳定性。如果使用石英晶体,我们推荐使用30pF+/-10pF,而如使用陶瓷谐振器建议选择40pF+/-10PF。2.4.4 按键中断电路设计图2-5按键中断实现工作原理如下:1. 当没有按键按下时,INT0端口保持高电平,中断不触发,当有任何一个按键按下时通过74LS21(四输入端双与门)实现INT0变成低电平。从而触发中断,进而执行中断服务程序。2.进入中断服务程序后,系统执行键盘扫描程序,来识别究竟是哪个按键按下。然后根据识别的按键来进入相关的处理函数,例如按下波形选择键触发中断后,在中断服务程序中,系统将波形符号加1,从而改变波形。2.4.5 D/A转换电路设计2.4

12、.5.1 DAC0832基本介绍DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。其主要参数如下:1.分辨率为8位2.转换时间为1s3.满量程误差为1LSB4.参考电压为(+10-10)V5.供电电源为(+5+15)V6.逻辑电平输入与TTL兼容2.4.5.2 DAC0832引脚图图2-6 DAC0832引脚图(1)DI7DI0 :8位的数据输入端,DI7为最高位。(2)IOUT1 :模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。(3)IOUT2 :模拟电流输出端2, IOUT2与IOUT1的和

13、为一个常数,即IOUT1IOUT2常数。(4)RFB :反馈电阻引出端,DAC0832内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5)VREF :参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10-10)V。VREF端与D/A内部T形电阻网络相连。(6)Vcc :芯片供电电压,范围为(+5 15)V。(7)AGND :模拟量地,即模拟电路接地端。(8)DGND :数字量地。2.4.5.3 内部结构框图图2-7 DAC0832内部

14、结构图内部结构框图分析:在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号 XFER。当ILE为高电平,片选信号 /CS 和写信号 /WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当 /WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。对第二级锁存来说,传送控制信号 /XFER 和写信号 /WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后

15、,当 /WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。2.4.5.4 DAC0832的工作方式1单缓冲工作方式 此方式是使两个寄存器中任一个处于直通状态,另一个工作于受控锁存器状态或两个寄存器同步受控。一般的做法是将WR1和XFER接数字地,使DAC 寄存器处于直通状态。另外把ILE接高电平,CS接端口地址译码信号,WR1接CPU系统总线的IOW信号,这样便可通过执行一条输出指令,选中该端口,使 CS和 WR1有效,从而启动DA转换。 图2-8单缓冲工作单极性方式电路连接双极性模拟输出电压 :图2-9单缓冲工作双极性方式电路连接(2)双缓冲工作方式 双缓

16、冲方式的一大用途是数据接收和启动转换可以异步进行,即在对某数据转换的同时,能进行下一数据的接收,以提高转换速率。这时,可将ILE接高电平,WR1和WR2接CPU的IOW,CS和XFER分别接两个不同的IO地址译码信号。(3)直通工作方式当DAC0832芯片的片选信号、写信号、及传送控制信号的引脚全部接地,允许输入锁存信号ILE引脚接5V时,DAC0832芯片就处于直通工作方式,数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。2.4.5.5本系统采用的转换原理图 DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。8 位输入寄存器用于存放主机

17、送来的数字量,使输入数字量得到缓冲和锁存,由加以控制;8位DAC寄存器用于存放待转换的数字量,由加以控制;8位D/A转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制2个寄存器的选通或锁存状态。DAC0832与反相比例放大器相连,实现电流到电压的转换,因此输出模拟信号的极性与参考电压的极性相反,数字量与模拟量的转换关系为Vout1=-Vref(数字码/256)图2-10 D/A转换器双极性输出电路3、 软件设计3.1软件总体设计应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。一个优秀的应用系统的应具有下列特点:(1)根据软件功能要求,将系统软

18、件分成若干个独立的部分。设计出软件的总体结构,使其结构清晰、流程合理。(2)要树立结构化程序设计风格,各功能程序模块化、子程序化。既便于调试、链接,又便于移植、修改。(3)建立正确的数学模型。即根据功能要求,描述各个输入和输出变量之间的数学关系,它是关系到系统好坏的重要因素。(4)为提高软件设计的总体效率,以简明、直观法对任务进行描述,在编写应用软件之前,应绘制出程序流程图。(5)要合理分配系统资源,包括ROM、RAM、定时数器、中断资源等。(6)注意在程序的有关位置处写上功能注释,提高程序的可读性。(7)加强软件抗干扰设计,它是提高系统应用可靠性的有利措施。本系统的软件包括以下几个程序模块:

19、(1)系统复位初始化;(2)键盘中断与处理;(3)中断0服务程序;(4)定时器0中断服务程序;(5)正弦波发生程序;(6)三角波发生程序;(7)方波发生程序;(8)锯齿波发生程序。3.2 软件功能设计3.2.1系统初始化程序设计初始化程序如下: #include#include#include#include#define unchar unsigned char#define uint unsigned int#define DAC0832 XBYTE0xfffe#define pi 3.1415926#define DAdata P0sbit SQU_K=P34;sbit SAW_K=P3

20、5;sbit TRI_K=P36;sbit SIN_K=P37;sbit ZF=P20; /增大幅值sbit JF=P21; /减小幅值sbit ZT=P22; /增大周期sbit JT=P23; /减小周期sbit DA1=P24; /输入寄存器开关sbit DA2=P25;sbit DAC1=P26; /DAC寄存器开关sbit DAC2=P27;sbit dula=P33; /段选锁存控制位sbit wela=P31; /位选锁存控制位unchar Wavecount=0,Waveform=0;unchar aat=0xef; unchar THtemp=0xff,TLtemp=0x64

21、;float fuzhi,fuzhitemp=5;unchar fuzhige,fuzhixiaoshu;unchar hztempbai,hztempshi,hztempge;unchar jisuan;int hztemp; void DAout1() DAdata=aat; DA1=0; DA1=1; DAC1=0; DAC1=1;void DAout2(unchar DAtemp) DAdata=DAtemp; DA2=0; DA2=1; DAC2=0; DAC2=1;3.2.2 按键检测及中断处理程序单片机系统中,键盘扫描是CPU工作的一个主要内容之一。CPU忙于各项工作任务时,如何

22、兼顾键盘扫描。既保证不失时机的响应键盘操作,又不过多占用CPU时间。因此,要根据应用系统中的CPU的忙、闲情况,选择好键盘的工作方式。本系统采用中断工作方式,该方式相交其它方式有节省CPU资源,提高效率等优点。即当键盘有健按下时,才执行键盘扫描,然后执行该键功能程序。 图3.1按键处理结构图3.2.3方波波发生程序设计void square() /方波 DAout2(juxingWavecount+); /DAdata=juxingWavecount+; if(Wavecount63) Wavecount=0;/方波表unchar code juxing64=255,255,255,255,2

23、55,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;3.2.4正弦波产生程序void sinwave() /正弦波 DAout2(sinWavecount+); /DAdata=sinWavecount+; if(Wavecount63) Wavecount=0;/正弦波表 unchar code s

24、in64=135,145,158,167,176,188,199,209,218,226,234,240,245,249,252,254,254,253,251,247,243,237,230,222,213,204,193,182,170,158,146,133,121,108,96,84,72,61,50,41,32,24,17,11,7,3,1,0,0,2,5,9,14,20,28,36,45,55,66,78,90,102,114,128;3.2.5三角波产生程序void triang() /三角波 DAout2(sanjiaoWavecount+); /DAdata=sanjiaoW

25、avecount+; if(Wavecount63) Wavecount=0;/三角波表unchar code sanjiao64=0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,248,240,232,224,216,208,200,192,184,176,168,160,152,144,136,128,120,112,104,96,88,80,72,64,56,48,40,32,24,16,8,0;3.2.6锯齿波

26、产生程序void sawtooth() /锯齿波 DAout2(juchiWavecount+); /DAdata=juchiWavecount+; if(Wavecount63) Wavecount=0;/锯齿波表unchar code juchi64=0,4,8,12,16,20,24,28,32,36,40,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,190,194,198,

27、202,206,210,215,219,223,227,231,235,239,243,247,251,255;4、 实验仿真4.1 protues软件仿真打开PROTEUS软件,选择所需器件并连接如图4-1所示 图4-1连接导线打开KEIL软件,调出程序编译,生成HEX文件,并将其载入protues里。调试窗口见图4-2。 图4-2系统调试4.2 仿真结果1.正弦波仿真: 频率44HZ 仿真结果如图4-3 图4-3 正弦波2.三角波仿真:频率100HZ 仿真结果如图4-4 图4-4三角波3.方波仿真:频率100HZ 仿真结果如图4-5 图4-5方波4.锯齿波仿真:频率100HZ 仿真结果如图

28、4-6 图4-6 锯齿波4.3仿真结论采用PROTEUS进行单片机仿真,可以大大缩短单片机的开发周期。它不仅能仿真单片机CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。本系统仿真结果,满足设计需求。实际操作灵活,使用方便。5、 课程设计体会这次课程设计主要是基于对单片机的掌握和应用,这是我第一次动手实践制作电路图和焊接硬件电路,从课题的选择、系统原理方案的设计,电路原理的理解,到电路上元器件的焊接、程序的编写,电路的调试,调试下载,一步步,我觉得每个环节我都收获很大。在设计中,我力求硬件电路简单,充分发挥软件灵活方面的特点,在满足系统设计要求的同时在一定程度上作

29、出扩展。在此次课程设计中,我主要有以下几个方面的心得体会:一、 在对单片机的具体实践掌握方面。上个学期我们开设了单片机原理与接口技术这门专业课,尽管在这门课程的学习上,自己态度非常认真而且也下了很大的功夫。但是在纯粹的理论上,总感觉不是那么的踏实和具体,而这次课程设计就为我具体实践提供了一次很好的机会,我觉得这个教学安排对我们实践能力的锻炼时很有帮助的,通过此次课程设计,我对单片机的掌握有了更加切实的感受和接触,以及简单的应用,收获很大二、在软件的使用方面。这次课程设计主要用到keil uvision2和Proteus两个软件,这次课程设计使我更加深入和熟练的掌握了这两个软件的使用。特别是pr

30、otues软件,该软件功能强大,操作简单,可以大大加快单片机的开发过程,是单片机开发的有力帮手。三、 在C语言程序的编写方面。在大三学过汇编编程,但与C语言相比汇编有可读性好,移植容易等优点,所以这次采用了更方便好用的C语言编写程序。此次课程设计是我掌握了编写一个较大型系统软件的思路,提高了自己的编程水平。单片机课程设计马上就要结束了,自己在设计过程中碰到了不少“难题”,通过自己翻阅大量资料和请教老师,解决了一个个难题。通过这次毕业设计,我深深体会到:世上无难题,只怕有心人。碰到难题不要惧怕,只要你肯钻研,问题总会有解决的办法。最后在此我特别感谢在此次课程设计对我提供帮助的老师和同学。参考文献1 余发山 王福忠 单片机原理及应用技术 北京:中国矿业大学出版社,20082 张义和等编. 例说51单片机 北京:人民邮电出版社,20083 周和琴,吴秀清编著. 微型计算机原理与接口技术北京:中国科学技术大学出版社,20044 周润景等编著. Proteus在MCS-51&ARM7系统中的应用百例:电子工业出版社,20065

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

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