数字式波形发生器课程设计_第1页
数字式波形发生器课程设计_第2页
数字式波形发生器课程设计_第3页
数字式波形发生器课程设计_第4页
数字式波形发生器课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、南华大学电气工程学院 电子技术课程设计任务书设计题目: 数字式波形发生器 专 业: 电子信息工程 学生姓名: 唐磊 学 号: 20084470114 起迄日期: 2011年2月18日 201年3月1日 指导教师: 李月华 教研室主任: 朱卫华 2011年3月3日电子技术课程设计任务书1课程设计的内容和要求(包括原始数据、技术要求、工作要求等):1、 设计并制作频率可调且具有高稳定度的方波发生器;2、 频率范围:0.01hz100khz,频率调节分度为0.01hz;3、 频率温度度:10-6/天;4、 具有输出频率设定与显示功能,显示位数为9位;5、 输出波形的占空比应在47%53%之间;6、

2、输出幅度为012v,分级可调,且能显示幅度,幅度与频率显示交替进行;7、 输出信号上升时间100ns,下降时间50ns;8、 输出阻抗752对课程设计成果的要求包括图表(或实物)等硬件要求:设计电路,安装调试或仿真,分析实验结果,并写出设计说明书,语言流畅简洁,文字不得少于3500字。要求图纸布局合理,符合工程要求,使用protel软件绘出原理图(sch)和印制电路板(pcb),器件的选择要有计算依据。3主要参考文献:1 康华光.电子技术基础数字部分(第五版)m.北京:高等教育出版社,2006.2大学生电子设计联盟 4课程设计工作进度计划:序号起 迄 日 期工 作 内 容12010.12.25

3、-12.27设计电路22010.12.28-12.31 安装调试32011.1.1-1.7 分析实验结果并写出设计说明书主指导教师李月华日期: 2010 年 11 月 28 日引言波形函数发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本函数发生器采用stc89c52单片机作为控制核心,外围采用数字/模拟转换电路(dac0832)、运放电路(tl082)、按键和lcd显示电路等。此电路设计清晰,出现故障容易查找错误,操作简单方便。电路采用stc89c52单片机与一片dac0832数模转换器组成低频信号发生器。通过按键控制可分别控制选择输出的幅值和频率,同时用lcd

4、1602显示器显示幅值和频率。所产生的波形幅值范围为0到12v;本系统设计简单、性能优良,具有一定的实用性。一、 方案设计1 系统设计1.1 总体设计思路根据题目要求,经过仔细考虑,充分考虑各种因素,制定整体设计方案:以stc89c52单片机为控制核心,p1口接dac0832信号输入并书面转换,程序控制方波的产生,通过p2口接3个按键,控制幅值电压和频率,由按键选择波形的复制电压和频率输出,由tl082运放实现dac0832 输出电流到电压的转换。在lcd1602上实时显示频率和幅值。1.2 总体框图 按键控制单片机tl082运放电路输出dac0832转换1602显示二硬件电路本系统由单片机、

5、波形转换(d/a)电路、显示接口电路、键盘接口电路等部分组成。总的硬件电路图为:1. 功能与基本原理stc89c52外接12m晶振作为时钟频率,并采用电源复位设计。产生方波程序设计思路:根据定时器溢出的时间,将频率值换算为定时器溢出的次数,使用变量暂存定时器溢出的次数,当达到规定的次数时,将输出管脚的状态进行改变达到方波的产生。另外采用查询的方式实现案件的扫描和lcd液晶的显示,中断服务程序实现方波的产生和连续按键的计时功能。1.1 89c52单片机简介89c52的硬件结构:256字节*8bit内部ram;2个16位定时/计数器(t0、t1),具有四种工作方式;5个中断源和2级中断优先权;一个

6、全双工的串行口,具有四种工作方式;2个时钟引脚xtal1、xtal2外接晶体与片内的反相放大器构成了1个震荡器,它为单片机提供了时钟控制信号;复位电路等。1.2 时钟电路本次设计采用的是内部时钟方式,即c52内部有一个用于构成震荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚xtal1,输出端为引脚xtal2。这两个引脚跨接石英晶体震荡器和微调电容,就构成一个稳定的自激震荡器,图3.2是c52内部时钟方式的震荡器电路。图3.2 c51内部时钟方式的震荡器电路电路中电容c1和c2典型值通常选择为30pf左右,晶振的振荡频率的范围通常是在1.2mhz12mhz之间,晶振的频率越高,则系

7、统的时钟频率也就越高,单片机的运行速度也就越快。1.3 复位电路89c51的复位是由外部的复位电路来实现的,复位结构如图3.3所示。图3.3 复位结构复位引脚rst通过一个施密特触发器与复位电路相连,施密特触发器用来控制噪声,在每个机器周期的s5p2,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。2 键盘接口电路本设计中有三个按键,分别为总控制按键、频率转换按键、幅值转换按键。其与单片机的连接如图所示。3显示电路功能:驱动lcd1602液晶显示,扫描按钮由lcd1602液晶显示器和三个按钮组成。当第一个按键按下一次后,程序开始扫描,再由第二个按键控制显示幅值,

8、第三个按键控制显示频率。有单片机的口和口将数字信号发送到lcd1602。lcd1602是专门用于显示字母、数字、符号等点阵式lcd,它的外接电压也是5v扫描利用软件程序实现,其与单片机的连接如图所示。4 电源电路单片机采用5v电源,dac基准电压为15v,运放tl082采用正负15v供电。因此都采用外接电源供电。其电路图如图。5 波形转换(d/a)电路功能:将波形样值的编码转换成模拟值,完成波形输出。由一片0832和tl082运放组成。dac0832是具有20条引线的cmos器件,它内部具有两级数据寄存器,完成8为电流d/a转换,固不需要外加电路,输出波形为正负电压,0832是电流输出型,示波

9、器上显示的波形,通常需要电压信号,电流信号到电压信号的额转换可以由运算放大器tl082实现。在d/a转换电路中,很重要的一个参数就是基准电压(参考电压),设计中要求的最大幅值电压为12v,系统可以选用正负15v作为运算放大器供电的电源,同时用正15v作为dac0832的基准电压。单片机向0832 发送数字编码,产生不同的输出。利用采样定理, 8位d/a转换器对应-15v15v的电压输出,其输入数字量应为00hffh。在-15v15v的电压范围内产生波形,方波一个周期分成两个点,一个时钟中断向89c51送一个点,经过d/a转换后输出就可以得到方波。数字编码0x7f, 0x90, 0xa1, 0x

10、b2, 0xc3, 0xd4, 0xe5分别对应d/a输出的0v,2v,4v,6v,8v,10v,12v。单片机的晶振控制输出周期的速度,也就是控制输出的波形频率。这样输出的方波幅值和频率都得到控制。三、课设所需设备及芯片功能介绍1. 所需设备单片机最小开发系统,1602液晶屏一块,dac0832一片,tl082集成运放一片,pc机一台,其他器件任选。2. 芯片功能介绍8位d/a转换器dac0832简介:dac0832当今世界在以电子信是8位分辨率的d/a转换集成芯片,与微处理器完全兼容,这个系列的芯片 以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到了广泛的应用。这类d/a

11、转换器由8位输入锁存器,8位dac寄存器,8位da转换电路及转换控制电路构成。1、dac0832的引脚及功能:dac0832芯片是一种具有两个输入数据寄存器的8位dac,它能直接与mcs51单片机接口,其主要特性参数如下:分辨率为8位;电流稳定时间1us;可单缓冲、双缓冲或直接数字输入;只需在满量程和下调整其线性度;单一电源供电(5v15v);低功耗,200mw。为便于dac0832的使用,特将其应用特性总结如下:dac0832是微处理器兼容型d/a转换器,可以充分利用微处理器的控制能力实现对d/a转换的控制。这种芯片有许多控制引脚,可以和微处理器控制线相连,接受微处理器的控制,如ile、/c

12、s、/wr1、/wr2、/xfer端。有两级锁存控制功能,能够实现多通道d/a的同步转换输出。dac0832内部无参考电压源;须外接参考电压源。dac0832为电流输入型d/a转换器,要获得模拟电压输出时,需要外加转换电路。dac0832的引脚图及逻辑结构如下图: 图1 dac0832结构框图及引脚排列dac0832各引脚的功能如下:di0di7: 数据输入线。ile : 数据允许锁存信号,高电平有效;/cs: 输入寄存器选择信号,低电平有效。/wr1为输入寄存器的写选通信号。输入寄存器的锁存信号/le1由ile 、/cs、/wr1的逻辑组合产生。当ile 为高电平、/cs为低电平、/wr1输

13、入负脉冲时,在/le1产生正脉冲;/le1为高电平,输入锁存器的状态随数据输入线的状态变化,/le1的负跳变将数据线上的信息锁入输入寄存器。/xfer: 数据传送信号,低电平有效。/wr2为dac寄存器的写选通信号。dac寄存器的锁存信号/le2,由/xefr、/wr2的逻辑组合产生。当/xfer为低电平,/wr2输入负脉冲,则在/le2产生正脉冲;/le2为高电平是时,dac寄存器的输出和输入寄存器的状态一致,/le2负跳变,输入寄存器的内容打入dac寄存器。vref : 基准电源输入引脚 。rfb : 反馈信号输入引脚,反馈电阻在芯片内部。iout1、iout2 : 电流输出引脚。电流io

14、ut1、iout2 的和为常数,iout1、iout2 随dac寄存器的内容线性变化。vcc: 电源输入引脚。agnd: 模拟信号地dgnd: 数字地。2、dac0832三种数据输入方式: (1)双缓冲方式:即数据经过双重缓冲后再送入da转换电路,执行两次写操作才能完成一次da转换。这种方式可在da转换的同时,进行下一个数据的输入,可提高转换速率。更为重要的是,这种方式特别适用于要求同时输出多个模拟量的场合。此时,要用多片dac0832组成模拟输出系统,每片对应一个模拟量。 (2)单缓冲方式:不需要多个模拟量同时输出时,可采用此种方式。此时两个寄存器之一处于直通状态,输入数据只经过一级缓冲送入

15、da转换电路。这种方式只需执行一次写操作,即可完成da转换。 (3)直通方式:此时两个寄存器均处于直通状态,因此要将、和端都接数字地,ile接高电平,使le1、le2均为高电平,致使两个锁存寄存器同时处于放行直通状态,数据直接送入da转换电路进行da转换。这种方式可用于一些不采用微机的控制系统中或其他不须0832缓冲数据的情况。四.程序编写#include#include#includelcd_1602_h.h#define uchar unsigned char#define uint unsigned int#define dadata p1uchar code a67=1000.00,

16、/频率显示 0100.00, 0010.00,0001.00,0000.10,0000.05 ;uchar code squaretab72= /输出的幅度数组0x7f,0x7f, /0v 0x90,0x6e, /正负2v0xa1,0x5d, /正负4v0xb2,0x4c, /正负6v0xc3,0x3b, /正负8v0xd4,0x2a, /正负10v0xe5,0x19;/正负12vuchar code disp1=voltage: 000v ;uchar code disp2=frq:0000000.00hz;uint i,num,k,freq=0;uchar count,s;uchar ke

17、ytemp=0,keytemp2=0;sbit da=p23;sbit wr1=p24;sbit key1=p25;sbit key2=p26;sbit key3=p27;void delay(uint z)uint i,j;for(i=z;i0;i-)for(j=110;j0;j-);void t0_time()interrupt 1th0=(65536-1000)/256; /定时器装初值 精确到1mstl0=(65536-1000)%256;num+; void key1_ctr_frq() /调频控制按键if(key1=0) tr0=0;_nop_();if(key1=0)keytem

18、p+;while(!key1)tr0=1; if(keytemp=1) /通过按键按下的次数控制频率freq=1; /选择频率1khz /whileif(keytemp=2)/选择频率100hzfreq=10;if(keytemp=3)/选择频率10hzfreq=100;if(keytemp=4) /选择频率1hzfreq=1000;if(keytemp=5) /选择频率0.1hzfreq=10000;if(keytemp=6) /选择频率0.05hzfreq=20000;if(keytemp=6)keytemp=1;write_1602_com(0xc0+7);for(k=0;k=7)key

19、temp2=0;void key3_ctr() /总控制按键if(key3=0) /功能按键tr0=0;_nop_();/精确延时1usif(key3=0)delay(2);while(!key3)s+;/if(s=2)da=1;if(s=2)s=1;void init()tmod=0x01; /设定定时器0为工作方式1th0=(65536-1000)/256; /进行1ms的精确定时 tl0=(65536-1000)%256; /定时器装初值ea=1; /开总中断et0=1; /开定时器0中断tr0=1;init_1602();void main()dadata=0x00;da=0; wr1

20、=0;init();display_1602(0x80, disp1);_nop_();display_1602(0x80+0x40,disp2);_nop_();while(1)key3_ctr();/if(count=2)count=0;if(s=1) /总控制按键key1_ctr_frq();key2_ctr_vol();_nop_(); if(num=freq) /选频num=0;count+;if(count=2)count=0;switch(keytemp2)case 0:dadata=squaretab0count;break;case 1:dadata=squaretab1co

21、unt;break;case 2:dadata=squaretab2count;break;case 3:dadata=squaretab3count;break;case 4:dadata=squaretab4count;break;case 5:dadata=squaretab5count;break;case 6:dadata=squaretab6count;break; / end switch/end if/ end if / end while /end main液晶1602的初始化程序#ifndef lcd_1602_h#define lcd_1602_h#define ucha

22、r unsigned char#define uint unsigned intuchar com_1602,date_1602;sbit lcd_1602_rs=p20;sbit lcd_1602_rw=p21;sbit lcd_1602_en=p22;sbit lcd_busy=p07;void delay_1602(uint x) /延时子函数uint i,j;for(i=x;i0;i-)for(j=110;j0;j-);void write_1602_com(uchar com_1602)lcd_busy=0;lcd_1602_rs=0; /选择写命令模式p0=com_1602;del

23、ay_1602(5); /稍做延时以待数据稳定lcd_1602_en=1; /使能端给一高脉冲,因为初始化函数中已经将lcden置为0delay_1602(5); /稍做延时lcd_1602_en=0; /将使能端置0 ,以完成高脉冲void write_1602_data(uchar date_1602)lcd_busy=0;lcd_1602_rs=1;p0=date_1602;delay_1602(5);lcd_1602_en=1;delay_1602(5);lcd_1602_en=0;void display_1602(uchar addr,uchar *temp)uchar i;wri

24、te_1602_com(addr);delay_1602(5);for(i=0;i16;i+)write_1602_data(tempi);delay_1602(5) ;void init_1602(void)lcd_1602_rs=0;/清除读操作lcd_1602_rw=0; /初始化写操作lcd_1602_en=1;delay_1602(10);write_1602_com(0x01);delay_1602(10);write_1602_com(0x02);/光标归位,此处不设置可能出现错误write_1602_com(0x38); /设置16x2显示,5x7点阵,8位数据接口write_

25、1602_com(0x0c); /设置开显示,且显示光标并闪烁write_1602_com(0x06); /写一字符后光标自动加一五、系统调试与测试结果1. 硬件调试整个硬件调试过程基本顺利,由于采用了分单元模块制作,各单元电路工作稳定,给调试工作带来很大的方便。1.1 放大模块部分在实物模拟时,出现发送信号不稳定、跳变的问题。经过仔细检查电路线路路径和连线问题,最终发现pcb板子上某些连线存在断路的问题,于是用焊锡焊好,从而得以解决。1.2 调试过程中,由于某些元器件参数的问题,在频率要求上没有达到预期效果,频率最低未能达到0.01h,最高也不能达到100khz。各单元调试通过以后,进行整机

26、调试,调试结果显示,整个系统能够正常工作。2. 软件调试由于对51系列单片机编程不是很熟悉,在软件的仿真调试过程中请同学帮了忙,在同学的帮助和指导下,调试也顺利完成。3. 调试结果3.1 液晶显示结果图3.2 方波波形图3.3三角波波形3.4正弦波波形3.5 实验结果与实际要求对比3.5.1 经液晶显示可得频率范围为0.05hz1khz,频率调节分度为0.01hz,最大频率和最小频率都没有达到老师的要求,经分析原因是元器件参数的选择原因,焊接电路板时由于找不到7.5k的电阻,就用了8k的电阻代替了。所以最大频率和最小频率都没有达到老师的要求。3.5.2 具有输出频率设定与显示功能,显示位数为9

27、位;输出波形的占空比应在47%53%之间;输出幅度为012v,分级可调,且能显示幅度,幅度与频率显示交替进行;这三点要求均基本达到。3.3.3 由示波器观察到的方波图形可得的方波稳定准确度高,失真少,只是有一些杂波干扰。3.5.4 频率温度度:10-6/天;输出信号上升时间100ns,下降时间50ns;输出阻抗75。这三个要求由于验证不方便,所以没有检测。3.6 设计和调试遇到的主要问题3.6.1 设计时的主要问题是软件方案上,涉及到51单片机编程,由于没有学单片机,对单片机不熟悉,所以编程时很迷茫,这一大模块是在同学的帮助下得以顺利完成的。3.6.2 第一次观察波形时,达到的波形很不稳定,而

28、且不像方波,仔细检查线路才发现pcb板上某些地方由于洗板子时不小心断路了,用焊锡焊接好后,得到了精确度比较高的方波。六、实验心得两周的专业综合设计结束了,本次课程设计题目是数字式波形发生器的设计,虽然设计的时间不是很长,但在这短短的两周时间里确实使我学到了很多东西,在李老师的细心教导和同学的帮助下,我初步学会了使用单片机进行编程,也知道了一个单片机的工作过程,与此同时,还在对一些硬件的使用上,电路板的设计上有了很大的进步,对今后的学习有很大的帮助。 设计刚开始时,我通过老师和同学给的教学讲义,学习了本次使用单片机系统的基本工作原理,了解它的强大功能,用了两天的时间学习初步了解了用c语言对单片机

29、进行编程以及进一步复习了数模转换的工作原理,在老师的指导和同学的指点下,很顺利的完成了这个步骤。 其次,我们要进行的就是编写其它部分的程序,主要是按照设计的任务书来做,根据自己设计的实验步骤,一点点去实现各部分的功能。在这个过程中,学到了很多我已前没有用到过的新知识,真正的了解了一个单片机的基本工作原理,在了解了之后,设计程序才得心应手,在这个过程当中,遇到了很多问题,经过老师的耐心教导,最终把程序都给实现了。 在此次综合设计的整个过程中,学习了使用protel dxp软件绘制原理图和进行了单片机编程,同时还学习了单片机的一系列内容,包括:复位电路、时钟电路、数码管与单片机的接口、汇编指令系统。对于一些器件的工作原理也有了进一步的了解,如:led显示器等。而且软件程序和硬件电路的结合,更加深刻体会了单片机系统的妙处。在本次设计中,让我学到了很多的知识也懂得了很多的道

温馨提示

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

评论

0/150

提交评论