资源描述:
《浅谈基于AT89S51单片机的信号发生器设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浅谈基于AT89S51单片机的信号发生器设计摘要:本文提出并设计了一种基于AT89S51单片机控制的MAX038信号发生芯片的信号发生器设计。对其振荡频率控制、信号输出幅度控制以及频率和幅度数显的实现作了较详细的论述。该函数信号发生器可输出三角波,方波和正弦波。 关键词:函数信号;D/A;单片机控制 引言 本文提出并设计了一种基于AT89S51微处理器控制的MAX038信号发生芯片的信号发生器设计。文中详细介绍了该系统的原理、构成及其设计方法。依据MAX038输出频率的数控调节原理,配合单片机控制,我们可以实现数控的函数信号发生器。 1系统
2、总体设计 如图1所示,利用单片机AT89C51对主信号发生芯片进行数字控制。因为MAX038原是模拟量控制型芯片,所以中间要通过数模转换电路,对MAX038产生的波形信号进行频率、占空比、幅度的控制,以及产生波形的选择控制。 图1方案框图 MAX038的输出频率主要受振荡电容CF、IIN端电流和FADJ端电压的控制,其中前二者与输出频率的关系如图2所示。选择一个CF值,对应IIN端电流的变化,将产生一定范围的输出频率。另外,改变FADJ端的电压,可以在IIN控制的基础上,对输出频率实现微调控制。为实现输出频率的数控调整,在IIN端和FADJ端
3、分别连接一个电压输出的DAC。首先,通过DACB产生0V(00H)~2.5V(0FFH)的输出电压,经电压/电流转换网络,产生0μA到748μA的电流,叠加上网络本身产生的2μA电流,最终对IIN端形成2μA~750μA的工作电流,使之产生相应的输出频率范围。DACB将此工作电流范围分为256级步进间隔,输出频率范围也被分为256级步进间隔。所以,IIN端的电流对输出频率实现粗调。第二步,通过DACA在FADJ端产生一个从-2.3V(00H)~+2.3V(0FFH)的电压范围,该范围同样包含256级步进间隔,IIN端的步进间隔再次细分为256级步进
4、间隔,从而在粗调的基础上实现微调。 1.1单片机介绍及外围电路 图2单片机外围电路 如图2所示,AT89C51是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。[1] 3如图2中所示,在单片机的I/O口分配上利用率比较高,应为I/O资源刚好可以满足控制设计的需要,所以不需要另外扩充I
5、/O资源。根据P0口,P1口,P2口及P3口各自的特点,我们选用P0口作为数据口,通过分时复用的方法分别送数据给MAX505的A、B、C通道控制频率和占空比;送数据给LCD1602传送信息显示数据。选用P1口的P1.0~P1.5做按键输入口。P1.6与P1.7做幅度控制的I2C数据输出口,单片机自身不具备I2C功能,所以要通过软件控制实现。另外,P2口与P3口做MAX505、MAX038、4052(段选芯片)的数据控制口及片选口。还有P3.0(RXD)、P3.1(TXD)做上位机通信口分别接MAX232芯片的OUT输出IN与输入引脚。 1.2D/
6、A转换电路(频率,占空比控制电路) 如图3所示,我们用+2.5V做MAX505的基准电源。我们选用了MAX505的3路D/A输出分别控制MAX038的DADJ、FADJ和IIN引脚,在前面我们知道MAX038的DADJ和FADJ引脚要求输入的电压信号时在-2.3V~+2.3V之间,IIN的输入要求是0μA~750μA的电流。通过一个转换电路将MAX505的输出是0~2.5V的电压转换为所需要的电压电流。 在MAX038的FADJ端选择DACB通道,同样的接法可以实现-2.3V~+2.3V的电压控制信号。 图3D/A转换电路图 这样就实现了所
7、需要的模拟量的输入,D/A转换图如图3所示。 1.3频段选择电路 我们选用多路开关CD4052做为切换不同电容所需要用的芯片器件。每当S1,S2出于不同的的组合状态的时候,可以同时选通两路开关AxBx,因此采用如图4所示的连接方式可以实现将电容连接到5脚COCS上。 1.4幅度控制电路 该部分电路主要有放大器电路和数字电位器电路两部分组成,其中放大器部分电路的作用是将MAX038产生的电压波形2Vp-p放大为5Vp-p,数字电位器电路的作用是为了实现产生的电压波形在-5V~+5V之间数字可调。 美国模拟器件公司推出一次性编程(OTP)数字
8、电位计系列产品AD5171,用来读/写滑片位置,而OTP性能则能永久设定滑片的位置。工作温度范围为-40℃~+125℃之间