目 录
1 引言 2
2 设计任务和要求 2
2.1 设计目的 2
2.2 设计意义 2
2.3 方案设计与论证 2
3 总原理图及主要模块的流程图 4
3.1 总原理图及元器件清单 4
3.2 主要流程图 4
4 性能测试与分析 4
5 结论与心得 7
致谢 7
参考文献 7
1 引言
波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。本次课程设计使用的ATC51 单片机构成的发生器可产生锯齿波、三角波、梯形波,波形的周期可以用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等优点。此设计给出了源代码,通过仿真测试,其性能指标达到了设计要求。
关键词:单片机,信号发生器。
2 设计任务和要求
2.1 设计目的
3)学习基本理论在实践中综合运用的初步经验,掌握模拟电路设计的基本方法、设计步骤,培养综合设计与调试能力。
4)掌握锯齿波——三角波——梯形波函数发生器的原理及设计方法。
5)学会函数信号发生器的设计方法和性能指标测试方法。
6)培养实践技能,提高分析和解决实际问题的能力。
2.2 设计意义
函数发生器作为一个常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源。由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察。测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最为广泛的一类电子仪器。它可以产生多种波形信号,如锯齿波,三角波,梯形波等,因而广泛用于通信、雷达、导航、宇航等领域。
2.3 方案设计与论证
方案的比较:
方案一:采用单片机函数发生器(如8038),8038可同时产生正弦波、方波等。
而且方法简单易行,用D/A转换器的输出来改变调制电压,可以实现数控调整频率,但产生信号的频率稳定度不高。
方案二:采用锁相式合成器,利用锁相环,将压控制振荡器的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。
方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。
鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率难以达到输出频率覆盖系数的要求等的缺点。所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定健儿精度的准确性得与保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。
3 总原理图及及主要模块的流程图
3.1 总原理图及元器件清单
(1)我用proteus来画出我设计的总原理图,如图3-1。
图3-1 总原理图
(2)此次设计我用到了一下的元器件:
1个ATC51,1个 DAC0832, 2个电阻,2个放大器,+5V电源,1个示波器,3个开关。
3.2 主要流程图
图3-2 流程图
4 性能测试与分析
主程序和子程序都存放在ATC51单片机中。
主程序的功能是:开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理,主程序框图如图1所示。
子程序的功能有:幅值输入处理、频率输入处理、正弦波输出、锯齿波输出、方波输出、显示等。
程序代码:
ORG 0000H
MAIN:MOV A,P1
MOV R0,A ;设置高电平
MOV R1,#00H ;设置低电平
LCALL START
SJMP MAIN
START:
JNB P1.0,START1 ;P1.0控制锯齿波的输出
JNB P1.1,START2 ;P1.1控制三角波的输出
JNB P1.2,START3 ;P1.2控制梯形波的输出
RET
;*********锯齿波********
START1:
MOV DPTR,#7FFFH
MOV A,#00H
LOOP1:MOVX @DPTR,A
INC A
SJMP LOOP1
RET
;**********三角波********
START2:
CLR A
MOV DPTR,#7FFFH
LOOP2: MOVX @DPTR,A
INC A
JNZ LOOP2
MOV A,#0FEH
UP1: MOVX @DPTR,A
DEC A
JNZ UP1
SJMP LOOP2
RET
;*********梯形波*********
START3:
MOV A,#00H
MOV DPTR,#7FFFH
MOVX @DPTR,A
ACALL DELAY
LOOP3: MOVX @DPTR,A
INC A
JNZ LOOP3
ACALL DELAY
MOV A,#0FEH
UP2: MOVX @DPTR,A
DEC A
JNZ UP2
SJMP START3
ACALL DELAY
DELAY:
MOV R2,#200
LOOP4: DJNZ R2,LOOP4
RET
END
我用proteus 来验证我设计的电路是否满足设计的要求,下面是仿真的结果。首先我按下P1.0按钮,根据我编的程序,按下P1.0,跳转到START1,执行此程序,仿真出的结果如图4-1。
图4-1
按下P1.1,跳转到START2,执行此程序,仿真出的结果如图4-2。
图4-2
按下P1.2,跳转到START3,执行此程序,仿真出的结果如图4-3。
图4-3
从仿真的结果可以看出,我的设计是满足题目的要求的。
5 结论与心得
开始的时候由于没有经验,不知如何下手,所以就上网搜很了多关于函数发生器的资料;来看,尽管有许多的设计方案,可是总感觉自己还是有许多的东西弄不太清楚,看不懂那些程序的作用,于是就请教同学。我们一起讨论,还是不能解决问题的时候我们会向老师请教。
这个设计尽管经历了不少的艰辛,但给我积累了一点设计的经验,最后也有点小小的成就感。后面的路还很长,我还的努力!
致谢
在此次课程设计中,我遇到不懂的问题,谢老师和同学都帮我,让我把问题顺利地得到解决,最后完成此次课程设计报告。从中我学到了很多东西,在此,我想对谢老师和帮助过我的同学表示感谢!
参考文献
[1]梁炳东.单片机原理与应用。北京:人民邮电出版社,2009 [2]http://wenku.baidu.com/view/3c8bc5c4bb4cf7ec4afed0bc.html
[3]http://baike.baidu.com/view/1270245.htm#sub1270245