由EPROM和DAC构成的正弦波发生电路
下面向大家介绍用EPROM/RAM和DAC产生函数波形的原理,并给出一种lkHz的正弦波发生器电路和程序清单。
在某些特殊的情况下,需要用存储器EPROM或RAM与数模转换器DAC组成电路产生所希望的正弦渡、三角波等。尤其是在测量领域,比如阻抗LCR测量仪,测量频率从100Hz到数MHz,频率连续可调,并且频率的大小对中央处理单元CPU来说可控可知,甚至还希望得到参考工作频率的π/4、π/2等多个准确相移的波形时,用RAM和DAC来实现是最适合不过了。
下面先探讨一下RAM和DAC产生函数波形的机理。对数模转换器DAC的基本要求是输出电压V和输人数字量D成正比,即V=D×Vref,其中.Vref'为参考电压,D=dn-1x2n-2+dn-2x2n-2+…+d1x21+d0x2°。假设D为定值,Vref是某函数,则输出V-定也是Vref的函数。不过Vref是模拟量,一般将它作为固定的值,把D作为函数来产生函数波形。可以存储数据的器件有ROM、RAM等。因为模数转换器DAC是数模转换器ADC的逆变换,如果预先把一个函数波形周期的采样数据存人ROM或RAM中,再和DAC连接,然后周期性地从ROM或RAM中取出存储的数据送人DAC,将可以还原原来的波形。
这里以产生固定频率的正弦波为例(任意频率的任何函数波形都可参照设计),设计指标为1kHz的正弦波。由于是固定频率的正弦波,‘所以用EPROM及EPROM周期的地址产生器和DAC组成,DAC为8位的AD7524;EPROM为CY7C245,11位地址,8位数据输出线;用12位的计数器74HC4040对4.096MHz计数,形成EPROM的地址。电路原理图见附图。需要产生正弦波的频率为1000Hz,EPROM的地址总共使用10位,存在EPROM中的正弦波数据大小为2的10次幂,即1024。所以EPROM的地址扫描频率为1000与1024的乘积,但因为4.096MHz晶体更常见,取其4分频后再用。
AD7524可以作为四象限的乘法器使用。附图的接法属于二象限类型,其极性由参考电压Vref确定。
存入EPROM的数据为正的单极性数据,8位数据,最大值满幅为255。
虽然数据量仅1024个。但用手工写出相当麻烦。
为了方便读者制作或参考,这里给出所需的c语言源程序,用vC或BC等C编译器编译并运行生成可执行文件DOT1024.EXE之后,生成可汇编的DOT1024.ASM,用常见的51系列汇编器:如A51.
EXE,将数据生成可烧录的INTEL或其他格式文件,最后用编程器把数据固化到EPROM中。
对电路和程序稍加修改不难得到其他频率和函数的波形。
通用正弦波转换器电路