一种基于单片机的函数发生器的设计实现
1 引言
在自动控制系统设计及调试过程中,不同频率的正弦波、三角波和方波常作为信号源,应用十分方便。过去常由分立元件及集成运放构成振荡器,后来出现的icl8038其最高频率仅能达到100khz。而max038芯片性能更好,最高频率可达20mhz,且三种波形由同一端输出。单片机控制品质卓越,基于单片机的函数发生器运行可靠,操作方便。
2 高频信号发生器芯片max038简介
maxim公司生产的max038芯片是一种高频精密的函数发生器,可产生三角波、锯齿波、正弦波、方波及脉冲波,且频率及占空比的控制可独立进行。
lin管脚电流范围在10~400μa时电路获得最佳工作性能。输出波形的选择由逻辑地址引脚a0和a1的组合来决定:a1a0=10或11时,输出正弦波;a1a0=00时,输出方波;a1a0=01时输出三角波。波形切换可在0.3μs内完成,但输出波形有0.5μs的延迟时间。输出频率由lin引脚的电流、sosc引脚的对地电容量和fadj的电压来决定。当fadj引脚接地时,输出频率由公式给出:
f0=lin/cf
式中,f0是输出频率,单位mhz;lin是管脚输入电流,单位μa;cf是决定输出频率的串入电容值,单位pf。
3 基于单片机的函数发生器的设计与实现
3.1 系统硬件接口电路设计
intel公司的mcs-51系列中的8051单片机应用已很成熟,以其为基核的其他8位机都有极好的兼容性,应用十分方便。图1所示为以8051和max038为核心的系统硬件电路。

用8279完成键盘输入和led显示控制两种功能,键盘按键设置:数字键0~9,小数点,正弦波、方波和三角波切换键,频率选择hz、khz、mhz切换键,占空比键,回车键。采用外部译码方式,8279的sl0~sl2经74ls138(2)输出接键盘,同时经74ls138(1)输出驱动后送led。8279的显示输出b0~b3,a0~a3作8位数据输出,当键盘出现有效闭合键时,数据自动进入8279的ram存储器,并向cpu申请中断。
max038的频率控制电压由10位dac1020提供,经rin=50kω的电阻进入lin引脚,8051的p2.6作为dac1020的片选信号,采用双缓冲器方式,锁存10位数据。dadj引脚电压范围-2.4v~+2.4v由8位dac0832的双极性输出电压提供,即占空比调节的控制电压。用8051的p2.5作为dac0832的片选信号,基准电压采用max038内部2.5v基准电压,接入vr端。dac0832的ile接+5v,片选端和数据传送端都与74ls373输出线a0相连。
设lin输入端电压为vin,串接电阻为rin,则有公式:
f0=vin/〔rin×cf〕
式中,f0是输出频率,单位mhz;vin是输入端电压,单位v;rin是串接电阻,单位ω;cf是决定输出频率的串入电容值,单位pf。
取rin=50kω,vin的范围0.5~5v,这样对于某一电容,可提供十倍扫频范围,从而电容的选择就可确定输出频率范围,即频段。第一频段电容取100μf,频率范围0.1~1hz,第二频段到第九频段电容选择按十倍衰减,即可获得各频段频率范围,第九频段频率范围是10~20mhz,每一频段步进值选各频段低段频率的0.5%。有九个频段供选择切换,8051的p1.2~p1.5通过t1042译码后送入频段设定电路,由软件启动频段设定电路中的开关来进行频段选择。
3.2 系统软件设计方案及实现
系统的主程序流程框图如图2所示。

先对8279进行初始化,即允许中断申请,清8279状态,置键盘显示方式及时钟编程等,再置max038初始波形与频率、占空比。然后测试回车键是否闭合,以决定是否进行中断处理,判断输出波形并输出控制信号,有关输出波形频率的控制电压及占空比的计算送dac1020及dac0832,最后将波形频率及占空比送显示缓冲区,调显示子程序显示。
4 结束语
利用单片机对max038的实时程序控制可产生高频高精度的输出波形,系统运行稳定,输出波形失真小、漂移小、频率范围宽,基于8051的chmos单片机也可方便地实现嵌入应用。
评论