1、基于 AT89S51 单片机的信号发生器设计摘 要:本文提出并设计了一种基于 AT89S51单片机控制的 MAX038信号发生芯片的信号发生器设计。对其振荡频率控制、信号输出幅度控制以及频率和幅度数显的实现作了较详细的论述。该函数信号发生器可输出三角波,方波和正弦波。 关键词:函数信号;D/A ;单片机控制 引言 本文提出并设计了一种基于 AT89S51微处理器控制的 MAX038信号发生芯片的信号发生器设计。文中详细介绍了该系统的原理、构成及其设计方法。依据 MAX038 输出频率的数控调节原理,配合单片机控制,我们可以实现数控的函数信号发生器。 1 系统总体设计 如图 1所示,利用单片机
2、AT89C51对主信号发生芯片进行数字控制。因为 MAX038原是模拟量控制型芯片,所以中间要通过数模转换电路,对MAX038产生的波形信号进行频率、占空比、幅度的控制,以及产生波形的选择控制。 图 1 方案框图 MAX038 的输出频率主要受振荡电容 CF、IIN 端电流和 FADJ端电压的控制,其中前二者与输出频率的关系如图 2所示。选择一个 CF值,对应IIN端电流的变化,将产生一定范围的输出频率。另外,改变 FADJ端的电压,可以在 IIN控制的基础上,对输出频率实现微调控制。为实现输出频率的数控调整,在 IIN端和 FADJ端分别连接一个电压输出的 DAC。首先,通过 DACB产生
3、0V(00H)2.5V(0FFH)的输出电压,经电压/ 电流转换网络,产生 0A 到 748A 的电流,叠加上网络本身产生的 2A 电流,最终对 IIN端形成 2A750A 的工作电流,使之产生相应的输出频率范围。DACB将此工作电流范围分为 256级步进间隔,输出频率范围也被分为 256级步进间隔。所以,IIN 端的电流对输出频率实现粗调。第二步,通过DACA 在 FADJ端产生一个从-2.3V(00H)+2.3V(0FFH)的电压范围,该范围同样包含 256级步进间隔,IIN 端的步进间隔再次细分为 256级步进间隔,从而在粗调的基础上实现微调。 1.1 单片机介绍及外围电路 图 2 单片
4、机外围电路 如图 2所示,AT89C51 是美国 ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含 4k bytes的可反复擦写的只读程序存储器(PEROM)和 128 bytes的随机存取数据存储器(RAM) ,器件采用 ATMEL公司的高密度、非易失性存储技术生产,兼容标准 MCS-51指令系统,片内置通用 8位中央处理器(CPU)和 Flash存储单元。1 如图 2中所示,在单片机的 I/O口分配上利用率比较高,应为 I/O资源刚好可以满足控制设计的需要,所以不需要另外扩充 I/O资源。根据 P0口,P1 口,P2 口及 P3口各自的特点,我们选用 P0口作为数据口,通过分
5、时复用的方法分别送数据给 MAX505的 A、B、C 通道控制频率和占空比;送数据给 LCD1602传送信息显示数据。选用 P1口的 P1.0P1.5做按键输入口。P1.6 与 P1.7做幅度控制的 I2C数据输出口,单片机自身不具备 I2C功能,所以要通过软件控制实现。另外,P2 口与 P3口做MAX505、MAX038、4052(段选芯片)的数据控制口及片选口。还有P3.0(RXD) 、P3.1(TXD)做上位机通信口分别接 MAX232芯片的 OUT输出 IN与输入引脚。 1.2D/A 转换电路(频率,占空比控制电路) 如图 3所示,我们用+2.5V 做 MAX505的基准电源。我们选用
6、了MAX505的 3路 D/A输出分别控制 MAX038的 DADJ、FADJ 和 IIN引脚,在前面我们知道 MAX038的 DADJ和 FADJ引脚要求输入的电压信号时在-2.3V+2.3V 之间,IIN 的输入要求是 0A750A 的电流。通过一个转换电路将 MAX505的输出是 02.5V 的电压转换为所需要的电压电流。2 在 MAX038的 FADJ端选择 DACB通道,同样的接法可以实现-2.3V+2.3V 的电压控制信号。 图 3D/A转换电路图 这样就实现了所需要的模拟量的输入,D/A 转换图如图 3所示。 1.3 频段选择电路 我们选用多路开关 CD4052做为切换不同电容所
7、需要用的芯片器件。每当 S1,S2 出于不同的的组合状态的时候,可以同时选通两路开关 AxBx,因此采用如图 4所示的连接方式可以实现将电容连接到 5脚 COCS上。3 1.4 幅度控制电路 该部分电路主要有放大器电路和数字电位器电路两部分组成,其中放大器部分电路的作用是将 MAX038产生的电压波形 2Vp-p放大为 5Vp-p,数字电位器电路的作用是为了实现产生的电压波形在-5V+5V 之间数字可调。 美国模拟器件公司推出一次性编程(OTP)数字电位计系列产品AD5171,用来读/写滑片位置,而 OTP性能则能永久设定滑片的位置。工作温度范围为-40+125之间,温度系数为 35ppm/,
8、工作电压在2.75.5V之间,工作电流不大于 5A。AD5171 是 64滑点的数字电位计。 图 4 频段选择电路 I2C(Inter-Integrated Circuit)总线是一种由 PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C 总线最主要的优点是其简单性和有效性。总线的构成及信号类型是由数据线 SDA和时钟 SCL构成的串行总线,可发送和接收数据。总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。4 当 SCL保留高电位同时 SDL变低时传送开始。这个开始状态之后,时钟信号变低来启动数据传送。在每
9、一个数据位,时钟位在确保数据位正确时变高电平。在每一个 8位数据的结尾发送一个确认信号,而不管它是地址还是数据。在确认时,传送端不会把 SDL变为低电平,如果正确接收到了数据允许接收端把电位变为 0。确认信号后,当 SCL处于高电平时 SDL从低变为高,指示数据传送停止。 I2C 总线是由数据线 SDA和时钟 SCL构成的串行总线,可发送和接收数据。在 CPU与被控 IC之间、IC 与 IC之间进行双向传送,最高传送速率 100kbps。CPU 发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量
10、。这样,因为地址码的作用各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。 I2C 总线在传送数据过程有 3种类型信号,它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 结束信号:SCL 为低电平时,SDA 由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的 IC在接收到 8bit数据后,向发送数据的 IC发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况做出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障
11、。 接口的设计也大大提高了芯片的利用效率,我们利用 AT89C51的P1.6、P1.7 脚就可以控制数据对模拟量进行数字控制。4 图 5 幅度控制电路 1.5 键盘电路 键盘用的是上拉电阻,选通接地的形式。 KEY0 键功能:三角波,正弦波,矩形波的循环选择。 KEY1 键功能:频段、频率、占空比、幅度的控制的循环选择。 KEY2 键功能:选定的控制对象步进量增。 KEY3 键功能:选定的控制对象步进量减。 KEY4 键功能:选择确定。 KEY5 键功能:选择不确定(即返回) 。 例如产生一个正弦波的控制方式:在开始界面用 KEY0键选择正弦波,用 KEY4键确定进入频率,占空比,幅度的控制的
12、循环选择界面,首先用KEY1键来选择频率,KEY4 键确定进入,然后用 KEY2和 KEY3键来实现频率步进的增值或减值,数值确定后 KEY4键确定,然后 KEY5键返回到频率,占空比,幅度的控制的循环选择界面,用 KEY2键来选择占空比,KEY4键确定进入,然后用 KEY2和 KEY3键来实现占空比步进的增值或减值,数值确定后 KEY4键确定,然后 KEY5键返回到频率,占空比,幅度的控制的循环选择界面,用 KEY2键来选择幅度,KEY4 键确定进入,然后用 KEY2和 KEY3键来实现幅度步进的增值或减值,数值确定后 KEY4键确定。5 图 6 键盘电路 2 结束语 采用 MAX038 芯
13、片制作函数信号发生器随设计思想不同,具有多种方法,本文只是一种可能实现的方法。此法的频率控制和幅度控制分辨率高,且硬件集成度高,整机自动化程度高,性能优良,具有很高的实用价值。 同时该信号源设计尚存在的不足之处,主要有两个方面,第一为缺乏频率准确显示的手段,可以配备相应的数字频率计模块,但如何将显示的精度与信号源的频段配合有待讨论研究;第二为输出级可配以显示输出幅度的仪表,并且放大电路有待进一步改进,使其具有更强的输出能力。 参考文献 1 康华光.电子技术基础(第 4版)M.北京:高等教育出版社.1998. 2 张友德等.单片微型机原理、应用与实验M.上海:复旦大学出版社,1993. 3 陈泽宗等.单片精密函数发生器应用J.电子技术报,1997,20(7):34. 4 常新等.高频信号发生器原理,维修与鉴定M.北京:电子工业出版社,1996. 5 谢嘉奎,宣月清.电子线路非线性部分M.北京:高等教育出版社,1988.