浅谈基于AT89S51单片机的信号发生器设计
时间:10-02
整理:3721RD
点击:
浅谈基于AT89S51单片机的信号发生器设计
本文提出并设计了一种基于AT89S51单片机控制的MAX038信号发生芯片的信号发生器设计。对其振荡频率控制、信号输出幅度控制以及频率和幅度数显的实现作了较详细的论述。该函数信号发生器可输出三角波,方波和正弦波。pf.39.net/whbdf/
引言
本文提出并设计了一种基于AT89S51微处理器控制的MAX038信号发生芯片的信号发生器设计。文中详细介绍了该系统的原理、构成及其设计方法。依据MAX038 输出频率的数控调节原理,配合单片机控制,我们可以实现数控的函数信号发生器。
1系统总体设计
如图1所示,利用单片机AT89C51对主信号发生芯片进行数字控制。因为MAX038原是模拟量控制型芯片,所以中间要通过数模转换电路,对MAX038产生的波形信号进行频率、占空比、幅度的控制,以及产生波形的选择控制。
图1 方案框图
MAX038 的输出频率主要受振荡电容CF、IIN端电流和FADJ端电压的控制,其中前二者与输出频率的关系如图2所示。选择一个CF值,对应IIN端电流的变化,将产生一定范围的输出频率。另外,改变FADJ端的电压,可以在IIN控制的基础上,对输出频率实现微调控制。为实现输出频率的数控调整,在IIN端和FADJ端分别连接一个电压输出的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级步进间隔,从而在粗调的基础上实现微调。
1.1单片机介绍及外围电路
图2 单片机外围电路
如图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口作为数据口,通过分时复用的方法分别送数据给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/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转换电路图
这样就实现了所需要的模拟量的输入,D/A转换图如图3所示。
1.3频段选择电路
我们选用多路开关CD4052做为切换不同电容所需要用的芯片器件。每当S1,S2出于不同的的组合状态的时候,可以同时选通两路开关AxBx,因此采用如图4所示的连接方式可以实现将电容连接到5脚COCS上。
1.4幅度控制电路
该部分电路主要有放大器电路和数字电位器电路两部分组成,其中放大器部分电路的作用是将MAX038产生的电压波形2Vp-p放大为5Vp-p,数字电位器电路的作用是为了实现产生的电压波形在-5V~+5V之间数字可调。
美国模拟器件公司推出一次性编程(OTP)数字电位计系列产品AD5171,用来读/写滑片位置,而OTP性能则能永久设定滑片的位置。工作温度范围为-40℃~+125℃之间,温度系数为35ppm/℃,工作电压在2.7~5.5V之间,工作电流不大于5A。AD5171是64滑点的数字电位计。
图4 频段选择电路
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点是其简单性和有效性。总线的构成及信号类型是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。
当SCL保留高电位同时SDL变低时传送开始。这个开始状态之后,时钟信号变低来启动数据传送。在每一个数据位,时钟位在确保数据位正确时变高电平。在每一个8位数据的结尾发送一个确认信号,而不管它是地址还是数据。在确认时,传送端不会把SDL变为低电平,如果正确接收到了数据允许接收端把电位变为0。确认信号后,当SCL处于高电平时SDL从低变为高,指示数据传送停止。
本文提出并设计了一种基于AT89S51单片机控制的MAX038信号发生芯片的信号发生器设计。对其振荡频率控制、信号输出幅度控制以及频率和幅度数显的实现作了较详细的论述。该函数信号发生器可输出三角波,方波和正弦波。pf.39.net/whbdf/
引言
本文提出并设计了一种基于AT89S51微处理器控制的MAX038信号发生芯片的信号发生器设计。文中详细介绍了该系统的原理、构成及其设计方法。依据MAX038 输出频率的数控调节原理,配合单片机控制,我们可以实现数控的函数信号发生器。
1系统总体设计
如图1所示,利用单片机AT89C51对主信号发生芯片进行数字控制。因为MAX038原是模拟量控制型芯片,所以中间要通过数模转换电路,对MAX038产生的波形信号进行频率、占空比、幅度的控制,以及产生波形的选择控制。
图1 方案框图
MAX038 的输出频率主要受振荡电容CF、IIN端电流和FADJ端电压的控制,其中前二者与输出频率的关系如图2所示。选择一个CF值,对应IIN端电流的变化,将产生一定范围的输出频率。另外,改变FADJ端的电压,可以在IIN控制的基础上,对输出频率实现微调控制。为实现输出频率的数控调整,在IIN端和FADJ端分别连接一个电压输出的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级步进间隔,从而在粗调的基础上实现微调。
1.1单片机介绍及外围电路
图2 单片机外围电路
如图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口作为数据口,通过分时复用的方法分别送数据给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/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转换电路图
这样就实现了所需要的模拟量的输入,D/A转换图如图3所示。
1.3频段选择电路
我们选用多路开关CD4052做为切换不同电容所需要用的芯片器件。每当S1,S2出于不同的的组合状态的时候,可以同时选通两路开关AxBx,因此采用如图4所示的连接方式可以实现将电容连接到5脚COCS上。
1.4幅度控制电路
该部分电路主要有放大器电路和数字电位器电路两部分组成,其中放大器部分电路的作用是将MAX038产生的电压波形2Vp-p放大为5Vp-p,数字电位器电路的作用是为了实现产生的电压波形在-5V~+5V之间数字可调。
美国模拟器件公司推出一次性编程(OTP)数字电位计系列产品AD5171,用来读/写滑片位置,而OTP性能则能永久设定滑片的位置。工作温度范围为-40℃~+125℃之间,温度系数为35ppm/℃,工作电压在2.7~5.5V之间,工作电流不大于5A。AD5171是64滑点的数字电位计。
图4 频段选择电路
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线最主要的优点是其简单性和有效性。总线的构成及信号类型是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。总线必须由主器件(通常为微控制器)控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。
当SCL保留高电位同时SDL变低时传送开始。这个开始状态之后,时钟信号变低来启动数据传送。在每一个数据位,时钟位在确保数据位正确时变高电平。在每一个8位数据的结尾发送一个确认信号,而不管它是地址还是数据。在确认时,传送端不会把SDL变为低电平,如果正确接收到了数据允许接收端把电位变为0。确认信号后,当SCL处于高电平时SDL从低变为高,指示数据传送停止。
顶顶顶顶顶顶顶顶顶顶顶顶顶
毕业设计吧!