APP下载

基于proteus的波形发生器设计

2014-10-16乔建华孙少飞邢彩荣

太原科技大学学报 2014年2期
关键词:方波点数原理图

乔建华,孙少飞,邢彩荣,芦 丹

(太原科技大学电子信息工程学院,太原 030024)

波形发生器是一种常用的信号源,在生产实践、电子设计和教学科研中有广泛应用。基于单片机的波形发生器的传统设计方法是先设计系统硬件,制成电路印制板,然后在电路板上进行软件调试[1-3]。因此,开发时间长,易受虚焊等硬件噪声的干扰,不易查错,且成本高。本文采用proteus软件来设计波形发生器,将软硬件设计集于一体,方便快捷,易于修改,效果直观,同时可用系统自带的虚拟示波器随时观察输出波形,可大大缩短开发周期,提高开发效率。该波形发生器以单片机AT89C52为核心,采用DAC0832进行数模转换,可按键选择输出波形和设置信号频率,由LCD显示其参数,并在算法上引入比例因子,可按频率大小调整输出点数,从而扩大了信号的频率范围,满足了工程和实验的一般要求。

1 Proteus软件简介

Proteus是英国 Labcenter Electronics公司在1989年开发的电子电路和单片机系统设计与仿真工具软件[4],它包括智能原理图输入系统ISIS(Intelligent Schematic Input System)、虚拟系统模型VSM(Virtual System Modelling)和高级布线编辑软件ARES(Advanced Routing and Editing Software)三个部分,是目前唯一一种能仿真单片机及外围器件运行的软件。并提供了虚拟示波器、逻辑分析仪、电表等仪器仪表供选用,还能和Keil、MPLAB等软件联调使用。Keil软件是目前常用的51单片机编译调试软件,文献4介绍了Proteus和Keil51集成开发环境的接口配置方法,在此不再赘述。本设计即用Proteus和Keil51联调的方法来实现该波形发生器。

2 波形发生器的硬件设计

2.1 总体结构

本波形发生器主要产生方波、三角波、锯齿波、正弦波等四种波形。以单片机作为控制核心,首先根据要求频率计算出波形的周期,然后再把一个周期分为N个等时间间隔点输出对应的数据。输出的数字信号经过D/A转换器转换成模拟信号,再经过运放将电流输出转换成电压输出就可得到输出波形。所需的波形种类和频率从按键输入,并可通过LCD显示。因此,系统总体结构由主控芯片AT89C52、按键模块、LCD液晶显示模块、D/A数模转换模块、电流到电压转换模块组成。其总体结构如图1所示。

图1 系统总体结构图Fig.1 The block diagram of the system

2.2 核心器件AT89C52

该系统采用典型的常用的51系列的低功耗单片机AT89C52作为数据处理及控制核心,通过I/O模式与其它各模块连接。

2.3 D/A转换器DAC0832

DAC0832是价格低廉、接口简单、转换控制容易的8位电流型并行输出的数模转换器。其输入端与AT89C52的P2口相连。由于DAC0832是电流型输出,故外接两级运放得到双极性电压输出[5]。

2.4 LCD液晶模块LM016L

液晶显示器主要用来显示波形和频率,所以选用2行×16字符的LCD显示器LM016L.该液晶模块采用HD44780控制器,与单片机通讯采用8位并行传输,能存储 80 个字符码[6]。LM016L 与AT89C52的P0口经上拉电阻相连,三根控制线RS、R/W、E 和 P3.2~P3.4分别连接。显示效果如图2示。

图2 液晶显示界面Fig.2 The interface of LCD display

2.5 矩阵键盘

键盘采用4×4的矩阵键盘,行和列分别连到P1口的高四位和低四位,并将列线经与门连到INT0口,通过中断来识别按键。电路连接由图3可见。其中,“+”表示波形/频率功能切换键,“=”表示波形变换键,“÷”表示确定键,“0-9”数字键,“×”键、“-”键、“C/ON”键未用。

2.6 用Proteus绘制电路原理图

选择好系统所用的芯片后,就可在Proteus的ISIS下绘制电路原理图了。其步骤为:

(1)从库中选择 AT89C52、DAC0832、LCD、4 ×4矩阵键盘,摆放在图中合适位置。

(2)芯片连接。该系统外用器件较少,因此CPU按I/O接口模式与各芯片连接,DAC0832连到AT89C52的P2口,LCD经过上拉电阻连到P0口,按键连到P1口。

(3)其他连线。除了上述连接外,CPU的时钟、复位电路,与DAC连接的运放,电阻以及电源、地线等也逐项连好。

最终绘制出的电路原理图如图3所示。

3 软件设计及输出效果

3.1 软件设计思想

本系统主要是通过按键选择波形和输入频率,按下确定键后,单片机根据输入的参数生成相应的波形数据,然后在输出端就可通过示波器观察波形。因此,系统软件主要完成键处理和波形生成的工作。

为了提高程序的运行效率,采用外部中断方式检测按键状态。系统上电后,先进行外部中断INT0的设置和LCD显示的初始化。当有按键按下,就会进入中断服务程序,完成键处理工作。键处理的软件流程如图4所示。

在中断服务程序中,首先判断是否是波形/频率的切换键,若按下此键,即可改变这两者的状态。然后如果是在频率状态,即可由按键输入所要求的频率值;若是在波形模式,可由波形变换键改变波形状态。最后按下确认键,方可保存当前的波形和频率值,并将按键标志位置1,以备在主程序中检测按键状态,实时输出所设定的波形。

图3 系统电路原理图Fig.3 The circuit schematic diagram of the system

图4 键处理程序流程图Fig.4 Key process flow chart

主程序主要实现波形的生成。初始化后首先读取保存的波形状态和频率值f,由频率值f计算波形周期T.由于方波只需输出高低电平,故单独采用定时器T0以中断方式定时交替输出高低电平。对其它三种波形,根据频率值的大小,一周期取不同的点数,通过定时器T1定时输出对应点的数值,来得到相应的波形。主程序流程图如图5所示。

图5 主程序流程图Fig.5 Main program flow chart

为了得到清晰的波形和扩大输出波形的频率范围,其它三种信号每个周期所取的点数根据频率值的大小分段调整。设置系统晶振为12 MHz,则一个机器周期为1 μs,而且DAC0832转换时间也是1 μs[7],因此所产生信号的频率完全由单片机输出点数的时间间隔来确定。当设定的频率高时,可取少量点,反之可多取些点。同时为了保证输出曲线平滑,信号一个周期的最少点数取32点,而最多取256个点。当取256个点时,由图5可见取一个点至少需三条指令,所以一个周期最少有3×256 μs,此时可以得到输出波形的最高频率fmax约为:

当取128个点时,可得到信号的最高频率约为2 kHz.以此类推,并考虑指令执行的时间,得到一个周期所取的点数N和频率范围的对应关系如表1所示。因此,在本系统中,设置一个比例因子M.

通过M,将输出点数和对应输出值联系起来,使得输出的信号最高频率达到10 kHz,比文献[8]的信号频率范围更加宽。下面具体介绍每种波形的生成方法及由虚拟示波器所观察的波形输出效果。

表1 信号每周期点数和频率范围的对应关系Tab.1 Corresponding relationship between number per cycle and frequency range of the signals

3.2 方波设计

方波的产生比较简单,对DAC0832而言,相当于只需输入0或FFH.根据频率f计算出周期T,通过定时器T0中断产生t=T/2的定时时间,当定时中断到来,将输出给DAC0832的值取反即可。因此方波的频率不受点数的限制,只与定时时间、中断服务程序执行时间和DAC0832的最高转换速度有关,最高达 30 kHz[9].图 6(a)即为输出的 100 Hz 的方波波形,当频率改变为50 Hz时,波形如图6(b).从虚拟示波器上可以很清晰地看到波形频率的变化。

图6 方波波形Fig.6 Square wave waveform

3.3 锯齿波设计

对8位DAC0832来讲,锯齿波就是给DAC0832依次输入从0到255按比例增长的整数,到达255后再从0开始,循环往复。首先由表1确定N,每点输出的时间间隔即为1/(f×N),通过定时器T1产生。由于不同频率每周期的点数不同,设一个比例因子M=256/N,当定时时间到,输出对应从0到N-1的各个点n的值M×n.周而复始,经过DAC0832就可得到锯齿波。图7为50 Hz的锯齿波输出波形。

3.4 三角波设计

三角波与锯齿波的不同之处在于三角波在一个周期内是对称的,输出给DAC0832的值先从0增加到255,再从255减到0.因此,同样也设一个比例因子M=256/N,但对应点n时的输出值为2×M×n.并且在一个周期的前N/2点时,n是递增的;后N/2点时,n是递减的.50 Hz的三角波输出波形图如图9所示。

3.5 正弦波设计

正弦波的各个点值是通过查表取得的。先列一个周期256个点的正弦值表,同样计算一个比例因子M=256/N,对不同频率,按不同比例因子的步长取点输出。图8是50 Hz的正弦波输出波形。

图7 50Hz的锯齿波 Fig.7 50Hz sawtooth wave

图8 50Hz的正弦波Fig.8 50Hz sine wave

图9 50Hz的三角波Fig.9 50Hz triangle wave

4 结束语

本系统基于proteus软件设计的波形发生器可以通过按键选择方波、锯齿波、三角波、正弦波等不同的波形,以及输入所需的信号频率,同时在LCD进行显示,并且可以根据设定频率调整每个周期的输出点数,既扩大了输出波形的频率范围,又能得到清晰的输出效果,最后使用系统自带的虚拟示波器可直观清楚地观察到相应的输出波形。如果要制作实物,只要按所绘制的电路原理图,运用本软件的高级布线编辑系统ARES就可直接生成PCB图,然后进行印制板的制作。可见,采用proteus设计单片机应用系统是非常方便有效的一种方式,有非常广阔的应用前景。

[1]李娜,周成虎.函数信号发生器的设计与实现[J].吉林师范大学学报:自然科学版,2013(3):130-132.

[2]李庭贵.基于DAC0832和AT89S52的信号发生器设计[J].电子科技,2012(6):104-106+114.

[3]洪惠宇.基于单片机的简易波形发生器电路的设计[J].南京工程学院学报:自然科学版,2012(4):67-72.

[4]乔建华,李临生,田启川.Proteus在单片机教学中的应用分析[J].电气电子教学学报,2008,30(3):70-73.

[5]Texas Instruments.DAC0832 datasheet[EB/OL].[2013-03-10].http://www.ti.com/lit/ds/symlink/dac0832.pdf.

[6]Hitachi Semiconductor.LM016L datasheet[EB/OL].[2013-12-07].http://www.alldatasheet.com.

[7]李晓林,牛昱光,阎高伟.单片机原理与接口技术(第二版)[M].北京:电子工业出版社,2011.

[8]陈辉,陈梅,杜静,等.基于AT89C51单片机波形发生器的Proteus设计[J].自动化与仪器仪表,2012(3):51-53.

[9]陈晓风.DAC0832数模转换器转换速度的测试与研究[J].福建师范大学学报:自然科学版,2003(3):19-21.

猜你喜欢

方波点数原理图
便携式多功能频率计的设计与实现
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
测绘技术在土地资源管理中的应用
一种基于555定时器的方波产生电路设计
画点数
多核并行的大点数FFT、IFFT设计
维修电工线路板的接线技巧分析
一种防垢除垢的变频电磁场发生装置