基于单片机的函数发生器的设计
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单片机也可方便地实现嵌入应用。