基于单片机的信号源发生器设计

发布者:静默思考最新更新时间:2015-05-07 来源: elecfans关键字:单片机  信号源发生器 手机看文章 扫描二维码
随时随地手机看文章
  引言

  信号源产生电路可以由RC 震荡电路、LC 震荡电路以及由555 定时器构成的震荡电路制成,更多的则是用专门的函数信号发生器IC 产生,但它们的功能较少, 精度不高, 频率上限只有300 kHz, 无法产生更高频率的信号, 另外调节方式也不够灵活, 频率和占空比不能独立调节, 二者互相影响。也有采用专门DDS 芯片的信号发生器, 但电路结构复杂, 成本较高 。而专门针对极低频率的信号源其设计频率范围又较窄 , 应用范围小。为此, 本文研究并设计出了一种基于单片机C8051F130 和MAX038 的信号源发生器, 能在15 MHz 内产生三角波、正弦波、方波, 精度高、失真度小、能有效弥补上述设计的不足, 满足大部分测试对信号源的要求。

  1 信号源发生器的总体设计

  该信号源发生器主要以单片机C8051F130 为控制核心, 通过对Maxim 公司波形发生器芯片MAX038 及其外部电路控制实现其不同幅度和频率, 不同类型信号的输出, 其中C8051F130 是Silicon Laborat or ies 公司推出的一种具有8051 内核及指令集完全兼容的集成混合信号片上系统, 执行指令最快速度可达100 MIPS, 内部具有8448( 8K+ 256) 字节片内RAM 和128 K 字节的flash 存储器,拥有多达64 个输入输出口, 可以完全满足本设计的控制需求, MAX038 是1 个只需要少量外部元件便能产生准确正弦波、三角波和方波的波形产生器, 输出频率和占空比可以通过外围电路的电流、电压和电阻进行调节。整个信号源发生器由频率控制部分、波形选择部分、占空比调节部分、键盘输入控制部分、信号状态显示部分、电源部分等构成, 电路框图如图1 所示。

  

图1  信号源发生器

 

  图1 信号源发生器

  2 信号源发生器各部分硬件电路设计

  2. 1 波形选择部分

  直接使用C8051F130 上I/ O 口P0. 0、P0. 1 连接MAX038 上A0 和A1 管脚, 对输入进行设置即能产生正弦波、方波和三角波, 管脚电平和波形之间的关系如表1所示。

  表1 A0 和A1 管脚电平对应波形关系

  

表1  A0 和A1 管脚电平对应波形关系

 

  波形切换可以在任意时候进行, 而不管输出信号的相位, 切换时间小于0. 3 us。

  2. 2 频率控制部分

  MAX038 输出信号的频率由注入引脚IIN 的电流IIN 、COSC 引脚端接的电容CF 以及引脚FADJ 上的电压V FADJ 决定。当VFADJ = 0 V 时, 基本输出频率Fo 由下式给出:

  

 

  式中: IIN 为流入IIN 引脚的电流( 为获得最佳性能取10 A到400 A ) , CF 为连接COSC 引脚和地的电容( 在20 pF~ 100 F 中选取) , 如果VFADJ 是已知, 则任意输出频率Fx = Fo [ 1- (0. 2915 VFADJ ) ] , 在本设计中通过10位D/A 转换器A D7533 输出不同电压, 连接1 个30 k 的电阻控制流入MAX038 IIN 管脚的电流与C8051F130 控制CD4051 选择不同的CF 共同决定信号的输出频率值, 整个输出信号的频率分为7 个频段, 频段划分与CF 值和流入IIN 电流值对应关系如表2 所示。

  表2 频段划分与CF 值和流入IIN 电流值对应关系

  

表2 频段划分与CF 值和流入IIN 电流值对应关系

 

  2. 3 占空比调节部分

  DADJ 引脚端上的电压控制输出波形的占空比, 当VDADJ = 0 时占空比为50%, 当电压从+ 2. 3 V 到- 2. 3 V将引起输出占空比从15%~ 85%变化, 电压变化1 V 可使占空比变化15%, 占空比调节部分选用串行输入、双电压输出的8 位D/ A 转换器AD7303, 通过C8051F130 控制AD7303 输出- 2. 3~ + 2. 3 V, 接入DADJ 引脚调节占空比。[page]

  2. 4 幅度调节部分

  在经过频率控制和占空比调节之后, MAX038 输出端能输出幅度为2 V( VPP ) 的有关波形, 对地对称即相对对地电位而言是- 1~ + 1 V, 输出阻抗小于0. 1 Ω , 可直接向50 pF的容性负载提供的驱动电流为±20 mA 。为满足实际使用对信号源的要求, 还需要幅度调节电路调节输出信号幅度和增加信号驱动能力, 幅度调节电路由宽带高速电流反馈运放AD811 构成的反相比例运算电路构成, 其中反馈电阻大小由单片机C8051F130 控制X9C103 数字电位器实现, 输出信号随运放增益的不同, 幅度可以在200 mV~20 V( VPP ) , 增减步进量为200 mV ( VPP ) 。图2 给出了信号源发生器频率控制部分、占空比调节部分和幅度调节部分的电原理图。
 

 
2. 5 电源部分

 

  电源电路部分主要向其他电路提供各芯片工作所需要的电压, 需要+ 15 V、- 15 V、+ 5 V、- 5 V , 为了减小电源的干扰对各部分电路的影响特别是对D/A 转换器转换精度的影响, 采用了广州周立功公司生产的宽压输入隔离稳压正、负双输出隔离电源芯片ZY _WHAD- 3W 系列,其具有转换效率高, 高低温特性好, 电压精度高等特点, 另外A D7533 工作还需要的+ 10 V 基准电压由AD584 提供( 见图2) , 电源电路原理图如图3 所示。

  

信号源发生器频率控制、占空比调节和幅度调节电

 

  

电源电路电原理

 

  2. 6 键盘输入和信号状态显示

  该部分电路使用液晶显示模块SG19264 和按键开关实现信号源发生器的频率、幅度、占空比调节和信号状态输出显示, 使用C8051F130 的I/ O 口连接4 4 键盘矩阵和SG19264 数据口和控制口, 根据按键情况在液晶模块上显示输出信号类型、频率、幅度、占空比等状态信息。[page]

3 软件设计

  信号发生器软件设计采用模块化编程结构, 分为初始化程序、键盘处理程序、波形选择程序、频率调节程序、占空比调节程序、幅度调节程序、信号状态显示程序, 信号发生器上电执行初始化程序产生频率1 kHz, 幅度2 V(VPP), 占空比为50% 的方波, 初始化后响应是何按键按下, 转入相应的信号状态调节程序最后通过信号状态显示程序在液晶上显示, 程序流程图如图4 所示。

  

程序流程

 

  图4 程序流程

  4 结 论

  为验证所设计信号源发生器性能, 在按照上述硬件和软件设计后, 对其输出信号各项指标参数进行了实际测试, 其中使用Agilent 53132A 和National VP7720A 对其主要参数输出频率精度和总失真度系数的测试数据如表3 和表4 所示。

  表3 输出频率

  

表3 输出频率

 

  表4 正弦波失真系数

  

表4 正弦波失真系数

 

  由表3 和表4 可见, 本设计的信号发生器能达到输出波形失真度小于0. 3% , 输出频率精度优于2 ×10- 4 , 在同类设计中性能较优。

  经实验验证, 所设计的信号发生器能输出频率小于15 MHz, 幅度200 mV~ 20 V(VPP )连续可调, 占空比在15%~ 85%的方波、正弦波、三角波, 具有外围电路简单、体积小、精度高、输出波形失真小等优点。该信号发生器已经广泛应用在我院电学电子测试工作中。


关键字:单片机  信号源发生器 引用地址:基于单片机的信号源发生器设计

上一篇:C51脉冲宽度检测程序
下一篇:基于单片机的声光控电路及节能照明系统的设计

推荐阅读最新更新时间:2024-03-16 14:01

PIC单片机增强型开发板产生两路PWM
//************************************************************* // |-| |-| |-| // | | | | | | // __| |________| |_______|_|_____------ PWM1 // // |----| |----| |----| // | | | | | | // __| |_____| |____| |_------ PWM2 //本实验利用PIC单片机的CCP模块功能产生PWM功能,PWM的周期为: //(PR2+1)*4TOSC*(TMR2预分频值) //了解CCP模
[单片机]
PIC<font color='red'>单片机</font>增强型开发板产生两路PWM
最简单的51单片机红外遥控解码程序
用单片机进行红外遥控解码,对大多数初学者来说是很麻烦的一个问题。下面介绍本人自编的红外遥控解码的C51程序,自认为是可能是史上最简的。此程序是针对uPD6121系列的遥控器的取码程序,解码值在Im 中,当IrOK=1时解码有效。   /* 51单片机红外遥控解码程序 */   /* 适用uPD6121系列 */   #include   #define DIGPORT P2   #define WORDPORT P0   unsigned char code LED_num ={0x3f,0x18,0x76,0x7c,0x59,0x6d,0x6f,0x38,0x7f,0x7d};   #define Imax 14
[模拟电子]
基于51单片机的电动车手机充电器设计
0 引言 众所周知,现在车载充电器在汽车产业中是非常普遍。在全球提倡环保和低碳节能的重要时期,骑自行车或电动自行车的人也越来越普遍,然而,现在的电动自行车都没有为手机充电的功能,因此,设计一种电动自行车车载手机充电器无疑是非常有必要的。本文就是利用电动车的太阳能电池板作为电源,设计一种种电动车车载手机充电器,以使骑电动车的人不再为手机充电发愁。 1 系统原理 在电动车的车篮上方位置处安装一块太阳能电池板套件,再将单片机控制电路与套件通过线路相连接,在太阳光充足的情况下,太阳能电池板可以工作,将吸收来的光辐射转换电能,为单片机控制电路提供电流和电压,再通过单片机控制电路为手机充电。太阳能电池板套件工作时,既可以为充电器单路
[单片机]
基于51<font color='red'>单片机</font>的电动车手机充电器设计
51单片机的8x8点阵贪吃蛇
如今用8x8LED点阵制作的贪吃蛇游戏在网上的源码已经多不胜数了,由于闲得蛋疼,也搞了搞,不过因为Me很懒,又穷,所以硬件就木有搞,只是用proteus仿真了一下。。。 源码工程及仿真在这:https://pan.baidu.com/s/1i5tyOtv 顺便也唠叨一下这个贪吃蛇的源码吧,有图有真相,上图 画面简单清晰明了,perfect! 贪吃蛇游戏主要包含几个程式:画蛇、画食物、蛇行走、蛇吃食物、蛇长身体、蛇撞墙dead、蛇自杀dead。 简约流程:界面初始化(画蛇、画食物)—- 蛇行走—- 蛇吃食物—- 蛇长身体—- 刷新显示页面 Let’s see the program。 在initSnake()这个函
[单片机]
51<font color='red'>单片机</font>的8x8点阵贪吃蛇
单片机技术研发太苦,值得坚持吗?
有年轻的工程师问,我目前会51,STM的控制编程,但对外围电路设计很陌生,想开发,但总是因为各种问题而失败,模电基础较差,但个人觉得实用比较好,目前看到的教材上理论居多,另外会画板子,焊接技术一般,现在想知道后面的路怎么走? 在回答这个问题之前我们先看看一个资深工程师的感悟: 十几年过去了,我从只会拧螺丝钉,学会了使用各种尺寸的锯子,学会了使用不同用途的电钻,知道了怎么修理汽车,明白了房子结构,搞清楚了怎么搭木头才不会倒。 然后我又发现了,各种新鲜的信息工具层出不穷。用了iPhone, 不停地自动化自己的信息库,使用Mac来提高效率,使用终端来与电脑对话,学习各种语言与数据结构。 然后我又发现了,各种家用产品百花齐
[单片机]
PIC单片机ad采样在LCD上显示
/* Main.c file generated by New Project wizard * * Created: 周二 4月 10 2018 * Processor: PIC18F452 * Compiler: MPLAB C18 */ #include p18f452.h #define RW PORTBbits.RB5 #define RS PORTBbits.RB6 #define EN PORTBbits.RB7 #define P0 PORTD #define ADGO ADCON0bits.GO void tmr(void); void KeyInterrupt1 (void); //中断服务函数 void
[单片机]
51单片机-按键
矩阵按键: 实现功能按一个键,相应的灯亮。 左边的是普通二极管,右边的是发光二极管。左边的二极管如果想导通,则右边要比左边电平低。如果导通就是按键可以控制灯亮,那么按键左下的都为低电平,系统复位时默认I/O是高电平,所以给垂直方向的I/O拉低,这样如果按键按下,电路导通,那么垂直方向I/O的低电平会把水平方向的拉低。这样就可以通过检测水平方向哪个I/O为低电平来检测哪个键被按下。 开始时对程序的错误想法:被按下的键两边肯定都是低电平,把它们存在一个数组里,然后检测。这样是不对的,用一个临时变量去存P0的值,不会有相同的,开始P0的值为oxff,这样即使按下按键,那么两边的引脚还是高电平,所以失败了。 #
[单片机]
51<font color='red'>单片机</font>-按键
基于AT89C51单片机实现自动量程切换电压测量系统的设计
在电子系统设计调试过程中,电压测量往往是一个测控或测量系统中不可缺的项目。对于电压测量,若其在一个小动态范围内变化,则无论电平高低,要做到精确测量并不困难。但当被测量在宽动态范围内变化时,例如从mV级甚至μV级到V级,做到测量误差均匀的控制在一定范围之内,常用的方式是切换量程,即指定测量范围,例如常用的数字电压表等仪器。然而在许多情况下为了保证测量的实时性,测量时不可能变换测量通道的量程,因此要在整个电压变化范围内做到精确测量就凸显出其重要性。本文基于MCU AT89C51控制,实现了一种自动量程切换的电压测试系统。 1 电压测量原理及系统组成 为了对不同量级的电压信号进行测量,对输入信号进行放大时就不能采用相同的增益倍数
[单片机]
基于AT89C51<font color='red'>单片机</font>实现自动量程切换电压测量系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved