摘要:为了设计一款结构简单、性能优良的信号发生器。采用了AT89C51单片机为控制核心。在Proteus下仿真可以产生正弦波、方波、三角波、锯齿波,而且可以方便地设定输出信号的频率及幅度,得到的输出波形失真度低,频谱纯度高。
关键词:信号发生器;D/A转换;AT89C51;频率;幅度
0 引言
在计算机控制技术、电子技术飞速发展的今天,信号发生器的应用越来越广,对信号发生器的频率稳定度、频谱纯度、频率范围和输出信号的频率微调分辨率提出越来越高的要求,普通的频率源已经不能满足现代电子技术的高标准要求。国内外纷纷设计制作先进的信号发生器,从实用价值来看,各高校中信号发生器应用极为广泛,能够设计出低成本、高精度的信号发生器并推广使用具有非常重要的意义。
基于单片机的信号发生器的设计,以性价比相对较高的AT89C51单片机为核心,以简单、廉价的元器件构筑,能够产生高精度、高纯度的方波、三角波、锯齿波、正弦波,同时可以实现波形自由切换,以及频率和幅度在线调整。目前购买的信号发生器价格昂贵,功能强大,实际在高校开展实验过程中用到最多的是低频函数信号发生器。如果能够在高校实验领域应用本文设计的仪器取代它们,将具有重要的实际意义。
1 系统硬件设计
信号发生器的设计涉及到程序固化与存储能力、电源电路设计、波形选择电路、时钟电路与复位电路、波形转换与电压放大功能、输出控制电路等部分。系统总体设计框图如图1所示。
其中复位电路通过确定的电压值启动复位操作,同时排除瞬间干扰的影响,又有防止MCU在电源启动和关闭期间的误操作有效,保证数据安全。输入电路用于检测各按键与拨动开关的状态,并通过运算处理实现相应控制,显示电路用于显示波形频率与幅度。DAC0808是系统的核心部分,为使芯片正常工作,必须提供一个基准频率,可以是晶体振荡器也可以是高精度振荡电路。为了使信号输出有一定的幅度与功率,在波形产生电路后增加放大电路模块,放大电路可以增加输出信号的准确度,具有更好的控制特性与准确性。为了对输出波形进行选择,由单片机控制多路模拟开关输入四路信号中的一路。将输入信号经电路转换后送入单片机。
2 系统软件设计
2.1 系统主程序流程图
信号发生器的软件设计包括按键处理程序、正弦波产生程序、方波产生程序、三角波产生程序、锯齿波产生程序几个主要部分。主程序的主要功能接收用户键盘输入的数据(信号参数的预制、选择)和控制指令,单片机发送数据及控制指令,按要求输出信号。系统主程序流程图如图2所示。
根据功能要求,本软件设计了按键输入程序,用户可通过DIP开关设置输出信号的频率,或选择输出正弦波、方波、三角波、锯齿波等。当用户设定输出时,程序把参数送至单片机,并对单片机发出控制命令使其按要求输出需要的信号。
主程序模块主要完成的任务是对系统的初始化,初始化同时扫描是否有相应的功能键按下,如有,则转入相应的功能子程序进行相应的操作。
2.2 系统仿真
在PROTEUS电子设计平台下,先绘制电路,然后对设计的程序进行编译,生成*.HEX文件,加载到单片机中,得到的仿真图如图3所示。
2.2.1 波形选择仿真
在运行过程中,改变接在P3口的拔码开关,得到仿真结果如图4所示。
2.2.2 波形频率调整
在运行过程中,通过改变P2口的值,观察波形的频率变化,图5是正弦波频率变化的情况。
2.2.3 幅值调整
在运行中,通过调整RV1的值,观察到波形幅度发生改变,图6是当RV1分别处于20%和50%时的正弦波波形。
3 结语
基于AT89C51的信号发生器可以输出正弦波、方波、三角波、锯齿波,波形失真小,幅值输出准确,波形频率稳定度取决于频率基准信号,输出信号失真度低,在低频到高频部分都能有较好波形输出,达到了预期的设计目的。这种信号发生器操作简单,显示直观而且价格低廉、可靠性高、灵活性好,具有很大的应用价值。