波形发生器综合电子课设Word文件下载.docx
《波形发生器综合电子课设Word文件下载.docx》由会员分享,可在线阅读,更多相关《波形发生器综合电子课设Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
附录2主要源代码13
第1章概述
在科学研究、工程教育及生产实践中,常常要用到波形发生器。
如工业过程控制、教学实验、机械振动、生物医学领域。
目前,长期使用的信号发生器绝大部分都是由模拟电路构成的,这类仪器作为信号源,频率达百兆赫兹,在高频范围内其频率稳定性高、可调性好。
而用于低频信号输出时,其需要RC值很大,参数准确度难以保证,而且体积大,损耗也大。
目前,有人研究制造了由数字电路构成的波形发生器,其低频性能好,但是体积较大,价格较贵。
本设计采用一片AT89C51和一片DAC0832数模转换器做成的低频信号波形发生器,它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少等。
第2章系统设计
2.1方案论证和比较
方案一:
采用函数信号发生器ICL8038集成模拟芯片,它是一种可以同时产生方波、三角波、正弦波的专用集成电路。
但是这种模块产生的波形都不是纯净的波形,会寄生一些高次谐波分量,采用其他的措施虽可滤除一些,但不能完全滤除掉。
方案二:
采用AT89C51单片机和DAC0832数模转换器生成波形,由于是软件滤波,所以不会有寄生的高次谐波分量,生成的波形比较纯净。
它的特点是价格低、性能高,在低频范围内稳定性好、操作方便、体积小、耗电少。
经比较,方案二既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,性价比高,所以采用该方案。
2.2总体设计
本设计采用键盘操作控制输出方波、正弦波、三角波,可用键盘方便地控制频率和幅值的变化,并将幅值和频率用六位十进制数通过LED数码管显示出来,硬件原理方框图如图2.1所示。
图2.1硬件原理方框图
波形发生器的技术指标:
(1)波形:
方波、正弦波、三角波;
(2)幅值电压:
1V、2V、3V、4V、5V;
(3)频率:
10Hz、20Hz、50Hz、100Hz、200Hz、500Hz、1000Hz;
(4)输出极性:
双极;
第3章硬件电路设计
3.1主控制器设计
设计中主要采用的AT89C52型单片机,它具有如下优点:
(1)拥有完善的外部扩展总线,通过这些总线可方便地扩展外围单元、外围接口等。
(2)该单片机内部拥有4K字节的FLASHROM程序存储器空间和256字节的RAM数据存储空间,完全可以满足程序的要求。
由于该芯片可电擦写,故可重复使用。
如果更改程序内容,可将芯片拿下重新烧写。
(3)该单片机与工业标准的MCS-51型机的指令集和输出引脚兼容。
3.2数模转换电路设计
设计中采用的是DAC0832型芯片。
其优点是功耗低,泄漏电流误差小,温度低。
它是一种使用较多的8位D/A转换器,其转换时间为1us,工作电压为+5V到+15V,基准电压为-10V到+10V。
由于其内部有两个8位寄存器和一个8位D/A转换器,故可进行两极缓冲操作,使操作有很大的灵活性(本设计采用的是单缓冲方式)。
硬件连接电路是将两极寄存器的控制信号并接输入数据,在控制信号作用下直接送入DAC寄存器中。
DAC0832引脚图
DAC0832内部结构
硬件连接图如图3.1所示。
图3.1DAC0832的双极性输出
DAC0832的双极性输出,DAC转换器的输出电压U0与输入的数字量D之间的关系为U0=(Vref/2n)*D,输出电压的极性完全取决于基准电压Vref的极性。
当Vref的极性不变时,只能获得单极性的模拟电压输出。
DAC0832在Vref=+5V时,单极性输出为0到-5V。
在单极性电路的基础上再接一个反相比例加法器电路,可实现双极性输出
U0=-(15/7.5)*U1-(15/15)*Vref
=-(2*U1+5)
当U1=0~-5V时,U0=-5~+5V。
由于实际输出范围比单极性时扩大一倍,因此双极性输出时灵敏度下降为单极性时的一半。
单极性输出时
1LSB=5/28V
双极性输出时
1LSB=2*5/28=5/27
在双极性输出时,输入的二进制数00000000~01111111表示负数,对应输出电压为负值;
10000000~11111111表示正数,对应输出电压为正值。
DAC0832是电流型输出,在应用时外接集成运算放大器使之成为电压型输出。
本设计中采用的集成运算放大器是LM358,其内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式。
本设计采用的是双电源工作模式,构成电流/电压转换电路和反相比例加法器电路。
第4章软件设计
主程序框图如图4.1所示。
图4.1程序框图
主程序和子程序都存放在AT89C52单片机中。
主程序的功能是:
开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理。
子程序的功能有:
幅值输入处理、频率输入处理、正弦波输出、三角波输出、方波输出、显示等。
根据上述波形数据表的生成,可知本系统可实现频率、幅值的调整并且可以通过设置参数进行很好的改变。
信号的类型、幅度、频率的步进值可以实现显示。
主程序流程图
通过主程序流程图我们可以清晰的知道怎么样生成相应的波形。
通过利用89C52单片机对P1口进行扫面,得到相对应的数值后,将其数值存放在累加器A中,再根据对幅值的变化要求,利用乘法指令,实现对幅值的调整。
利用中断方式我们可以实现频率的改变。
幅值输入处理、频率输入处理、正弦波输出、锯齿波输出、方波输出、显示等。
子程序流程图
第5章系统分析和总结
我们的硬件分为电源板、低通滤波板、单片机最小系统板、液晶显示板、DDS板和加法器板共六个部分。
制作时,我们采用各电路板依次制作,依次调试的方法。
下面依次叙述各电路板的制作过程。
电源板:
根据题目的要求,波形发生器需要三路+5V电压和±
9V电压。
使用50W
单片机最小系统板:
由89C52,锁存器74LS373,与非门74LS00构成,板上设置排线跟其他电路板相连。
把程序写入89C52,经过仿真测试,程序通过,各功能正常。
调试方法和过程:
采用分别调试各个单元模块,调通后再进行各单元电路联机统调的方法,提高调试效率。
(1)软件部分调试
本机的软件主要功能是完成人机接口,因此编程的时候把界面的友好性放在首位,采用主从菜单式的操作方法。
由于对51系列单片机编程比较熟悉,在软件的仿真调试过程中没有遇到太大的问题。
各软件功能均正常实现。
(2)硬件部分调试
整个硬件调试过程基本顺利,由于采用了工艺精良的双面孔化PCB板,各单元电路工作稳定,给调试工作带来很大的方便。
各单元调试通过以后,进行整机调试,调试结果显示,整个系统能够正常工作。
开始的时候没有经验,不知如何下手,所以就去图书管查询,有许多的设计方案。
经过他的解释分析各方案之后,决定用查表的方法来做。
这样可以降低一些硬件设计的难度,初次设计应切合自己的水平。
用8031需要扩展ROM,这样还要进行存储器扩展。
而且现在8031实际中已经基本上不再使用,实际用的AT89S52芯片有ROM,这样把经过采样得到的数值制成表,利用查表来做就简单了。
我认为程序应该不大,片内ROM应该够用的。
应该说这次课程设计还是基本达到了设计的要求,但是也存在着未能解决的问题。
比如说波形的输出精度。
这次波形发生器的设计,使我学到了数模转换芯片DAC0832、数码管、键盘、集成运算放大器LM324,更重要的是学会了程序出问题时调试的方法,并养成了调试的习惯,学到了程序出问题后怎样去解决的基本方法。
最后要感谢杨老师的指导,以及同组陈峰同学的帮助。
参考文献
[1]陈莘城.实用电子电路设计与调试[M].北京:
中国电力出版社,1993.670-697.
[2]曹巧暖.单片机原理及应用[M].北京:
电子工业出版社,2002-7-2.
[3]曾兴雯,刘乃安,陈健.高频电路原理与分析[M].西安:
西安电子科技大学
出版社,2001.281-295.
[4]童诗白,华成英.模拟电子技术基础[M].北京:
高等教育出版社,2003.345-362
[5]潘永雄,沙河,刘向阳.电子线路CAD实用教程[M].西安:
西安电子科技大学出版社,2001.13-118.
[6]张毅刚,彭喜源,谭晓昀,曲春波.MCS-51单片机应用设计[M].哈尔滨:
哈
尔滨工业大学出版社,1997.53-61.
[7]杨欣.电子设计从零开始[C/OL].北京:
清华大学出版社,2004.1-4.
[8]zhiweihzx.TEC6122芯片资料.中国软硬件结合技术网.2005-10-31.
[9]A.J.Viterbi:
”AcquistionandTrackingBehaviorofPhase-LockedLoops”,JPLExternalPublicationNo.673,July14,1959
[10]JamesK.HardyHighFrequencyCircuitDesign[M].Washington:
PrestonPubli-shingCommpany,1979.
附录1系统原理图及仿真波形
附录2主要源代码
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
JNBP1.0,P10
JNBP1.1,P11
JNBP1.2,P12
JNBP1.3,P13
P10:
MOVR7,#00H
LCALLSQU
P11:
MOVR7,#01H
LCALLSAW
P12:
MOVR7,#02H
LCALLTRI
P13:
MOVR7,#03H
LCALLSIN
SQU:
JNBP1.1,N1
JNBP1.2,N2
JNBP1.3,N3
LJMPSSQU
N1:
LJMPTC0
N2:
N3:
SSQU:
CJNER7,#00H,TC0
MOVR0,#00H
K00:
MOVP0,#0FFH
MOVP2,#0FFH
MOVA,P2
CPLA
MOVR3,A
L00:
DECR3
CJNER3,#255,L00
INCR0
CJNER0,#254,K00
K01:
MOVP0,#00H
L01:
CJNER3,#255,L01
CJNER0,#254,K01
LJMPSQU
TC0:
RET
SAW:
JNBP1.0,N4
JNBP1.2,N5
JNBP1.3,N6
LJMPSSAW
N4:
LJMPTC1
N5:
N6:
SSAW:
CJNER7,#01H,TC1
MOVR0,#0FFH
K10:
MOVP0,R0
L10:
CJNER3,#255,L10
CJNER0,#255,K10
LJMPSAW
TC1:
TRI:
JNBP1.0,N7
JNBP1.1,N8
JNBP1.3,N9
LJMPTTRI
N7:
LJMPTC2
N8:
N9:
TTRI:
CJNER7,#02H,TC2
K20:
L20:
CJNER3,#255,L20
CJNER0,#254,K20
K21:
L21:
CJNER3,#255,L21
DECR0
CJNER0,#0,K21
LJMPTRI
TC2:
SIN:
JNBP1.0,N10
JNBP1.1,N11
JNBP1.2,N12
LJMPSSIN
N10:
LJMPTC3
N11:
N12:
SSIN:
CJNER7,#03H,TC3
K30:
MOVA,R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
L30:
CJNER3,#255,L30
CJNER0,#255,K30
LJMPSIN
TC3:
END