多功能信号发生器.docx
《多功能信号发生器.docx》由会员分享,可在线阅读,更多相关《多功能信号发生器.docx(21页珍藏版)》请在冰点文库上搜索。
多功能信号发生器
河南机电高等专科学校
《职业技能培训》结课大作业
多功能信号发生器设计
姓名:
专业班级:
学号:
任课教师:
时间:
成绩:
多功能信号发生器设计
医电08级1班任课老师:
摘要:
信号发生器是一种常用的信号源,广泛应用于电子电路,自动控制系统和教学实验等领域。
目前使用的信号发生器大部分是函数发生器,且特殊发生器的价格昂贵,所以本设计使用的是AT89c51单片机构成的发生器,可产生三角波方波正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。
在单片机上加外围器件矩阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LED显示频率的大小。
在单片机的输入端口进行D/A转换,再通过运放进行波形调整。
本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。
关键词:
信号发生器;单片机;波形调整
目录
1.概述4
2.设计要求4
3.总体构思4
4.各单元电路的设计和实现5
5.功能仿真及其结果8
6.编译,现在及调试16
7.总结与展望24
参考文献24
1.概述
近年来,正弦脉宽调制技术(简称为SPWM技术)以其优良的传输特性成为电力电子装置中调制技术的基本方式。
SPWM法就是以正弦波作为基准波(调制波),用一列等幅的三角波(载波)与基准正弦波相交,由交点来确定逆变器的开关模式。
这样产生的脉冲系列可以使负载电流中的高次谐波成分大为减小。
电力电子技术和微机控制技术的发展使得正弦波脉宽调制技术(SPWM在电气传动、ups电源等领域得到广泛的应用,如何产生标准的、精确的和可控的SPWM信号是实现这种技术的关键。
2.设计要求
1.学习MSP430F169单片机等器件的工作原理及各引脚的说明,掌握MSP430F169单片机系统的工作原理和设计方法。
利用MSP430F169等元器件完成单片机系统设计和焊装、调试。
2.使用MAX038芯片实现正弦、三角波信号产生器和单片机测频电路、程序设计。
3.完成基于MSP430F169单片机的SPWM程序设计和SPWM驱动电路硬件焊装、调试
3.总体构思
3.1总体设计框图
总体设计框图如图1-1所示。
图1-1总体设计框图
1)按键
通过按键设定所需要的波形频率,并在LED上显示频率大小。
2)MSP430F169单片机模块
MSP430F169单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形。
3)LCM12864显示模块
LCM12864液晶显示模块是由128列64行液晶显示点阵和其控制电路组成,显示模块不仅可以显示数字,还可以显示汉字和图形。
4)SPWM驱动电路
220V交流电经降压变压器降压后输出到整流桥变成单向脉动电压,经滤波电容滤波后变为直流电压。
该直流电压值随电网电压波动,不能直接供给电子电路使用。
7805是专用三端稳压器件,输入滤波后的电压(约为9V)输出稳定的5V电压供LCM12864使用。
3.2信号发生器简介
信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。
目前使用的信号发生器大部分是函数信号发生器,且特殊波形发生器的价格昂贵。
本设计使用的是MSP430F169单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。
在本设计的基础上,加上按钮控制和LED显示器,则可通过按钮设定所需要的波形频率,并在LED上显示频率大小。
在单片机的输出端口接电路产生双路互补信号,电流源采用桥式稳压电源。
本设计具有线路简单、结构紧凑、性能优越等优点
4.各单元电路的设计和实现
4.1电源部分
220V交流电经降压变压器降压后输出到整流桥变成单向脉动电压,经滤波电容滤波后变为直流电压。
4.2MSP430单片机
4.2.1MSP430系列单片机的特点
MSP430系列单片机是德州仪器公司于上世纪九十年代开发出的产品,已在许多领域得到了广泛应用。
MSP430系列单片机具有以下主要特点:
1)超低功耗。
2)强大的处理能力。
3)高性能模拟技术及丰富的片上外围模块。
4)方便高效的开发环境。
5)系列化产品。
MSP430系列单片机的各系列产品型号、研发顺序如图2-1所示:
图4-1MSP430系列单片机各系列产品
4.2.2MSP430F169单片机结构概述
MSP430F169单片机结构框图如图2-2所示。
其结构特点如下:
1)16位CPU通过总线连接到存储器和外围模块。
2)直接嵌入仿真处理,具有JTAG接口。
MSP430F169系列单片机包含以下主要功能部件:
1)CPU:
MSP430系列单片机的CPU和通用微处理器基本相同,只是在设计上采用了面向控制的结构和指令系统。
具有较高的执行速度和效率,增强了MSP430系列单片机的实时处理能力。
功能:
(1)内部:
执行指令译码、数据处理;
(2)外部:
通过三总线(地址总线、数据总线和命令总线)控制片内所含外设模块。
2)存储器:
存储程序、数据以及外围模块的运行控制信息。
分为程序存储器和数据存储器。
MSP430F413的F是指该单片机采用FLASH型程序存储器。
图4-2MSP430F169单片机结构框图
3)外围模块(也称片内外设):
经过地址总线(AB)、数据总线(DB)、中断服务及请求线与CPU相连。
MSP430F169单片机包含的外围模块有:
时钟模块、看门狗模块、定时器A、定时器B、比较器A、输入输出端口、A/D转换模块和D/A转换模块等。
4.2.3产生SPWM的几种方法方法
众所同知,正弦波眯宽调具有结构简单、电网功率因数与逆变器输出电压无关、动态响应好、输出电压波形近似为正弦波和系统调速范镯宽等优点SPWM渡形的生成方法一般有1种:
自
然采样法、规则采样I法、规则采样I法和直接面积等教法,前三种比较常用,后一种往往被认为计算复杂而不予采用,经深入研究,它具有控制精度高、输出正弦波形好、开关点实时计算并不复杂,不像前三种方法的开关点计算都需要解比较复杂的方程。
自然采样法
按照SPWM控制的基本原理,在正弦波和三角波的自然交点时刻控制功率开关器件的通断,这种生成SPWM波形的方法称为自然采样法。
正弦波在不同相位角时其值不同,因而与三角波相交所得到的脉冲宽度也不同。
另外,当正弦波频率变化或幅值变化时,各脉冲的宽度也相应变化。
要准确生成SPWM波形,就应准确地算出正弦波和三角波的交点。
规则采样法
规则采样法有两种:
规则采样I法、规则采样Ⅱ法。
自然采样法的主要问题是SPWM波形每个脉冲的起始和终了时刻对三角波的中心线不对称,使求解困难。
如果设法使SPWM波形的每一个脉冲都与三角载波的中心线对称,就可以简化,而且两侧的间隙时间相等,从而使计算工作量大为减轻。
其实质是用阶梯波来代替正弦波,使算法简化。
在规则法中,三角波每个周期的采样时刻都是确定的,不作图就可算出相应时刻的正弦波值。
等效面积法
任取正弦表中的一个小区间[t,t+dt],正弦波面积为Sl,则
S1=M×Vs∫sinwtdt
=(M÷w)*Vs|coswt-cosw(t+dt)|
本实验采用的就是等效面积法。
4.3.3逆变原理简述
通俗的讲,逆变器是一种将直流电(DC)转化为交流电(AC)的装置。
它由逆变桥、控制逻辑和滤波电路组成。
逆变器的工作原理:
(1)直流电可以通过震荡电路变为交流电。
(2)得到的交流电再通过线圈升压(这时得到的是方形波的交流电)。
(3)对得到的交流电进行整流得到正弦波。
AC-DC就比较简单了我们知道二极管有单向导电性,可以用二极管的这一特性连成一个电桥,让一端始终是流入的,另一端始终是流出的,这就得到了电压正弦变化的直流电,如果需要平滑的直流电还需要进行整流 ,简单的方法就是连接一个电容。
逆变的目的:
实现可调频。
为了产生SPWM,要严格控制逆变这个要求。
4.4芯片MAX038简介
芯片MAX038产生信号的频率可以通过调整电流、电压、电阻分别控制。
该信号发生器能在100Hz~100kHz范围能输出可调的正弦波、方波、三角波。
输出稳定性良好。
电压可在0~5V连续调节。
信号输出部分采用低损耗电流反馈型宽带运放作电压放大,很好地解决了带宽和带负载能力的要求。
5.功能仿真及其结果
5.1多功能信号发生器系统电路图
多功能信号发生器系统电路图如图3-1所示。
图3-1多功能信号发生器系统电路图
图3-1多功能信号发生器系统电路图由以下六部分组成:
1)按钮控制通过按钮设定所需要的波形频率,并在LED上显示频率大小。
2)MSP430F169单片机MSP430F169单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形。
3)直流稳压电源。
4)LCM12864液晶显示器。
5)双路互补SPWM信号产生电路其中加速电容在正向时使三极管快速导通,反之快速截止。
6)LM741CN放大器。
5.2MSP430F169单片机原理
5.2.1MSP430F169单片机引脚简介
MSP430F169单片机部分引脚名称及功能如表3-1所述。
表5-1MSP430F169引脚功能表
引脚名称
引脚编号
I/O
描述
AVCC
64
模拟正电源端,向电压检测电路,brownout,晶体振荡电路,所频环电路,比较器A,端口1,以及液晶分压电阻网络供电。
AVSS
62
模拟负电源端,内部连接于DVCC。
DVCC
1
数字正电源端,提供所有部件电源。
DVSS
63
数字地,所有部件的接地端。
VeREF+
10
外部参考电压输入。
XT2IN
53
I/O
晶振XT2输入。
XT2OUT
52
I/O
晶振XT2输出。
P5.4/MCLK
48
I/O
通用数字I/O;主要系统时钟MCLK输出。
P5.0/STE1†
44
I/O
通用数字I/O。
P3.3/UCLK0/SCL
31
I/O
通用数字I/O。
P3.2/SOMI0
30
I/O
通用数字I/O。
P3.0/STE0
28
I/O
通用数字I/O。
P1.1/TA0
13
I/O
通用数字I/O。
P1.0/TACLK
12
I/O
通用数字I/O;定时器A时钟输入。
XIN
8
I
基本振荡器XT1输入端。
XOUT
9
I/O
晶体振荡器XT1输出端。
5.2.2PIO端口
PIO端口是并行输入输出端口,8位。
MSP430F413单片机PIO端口特点:
1)类型丰富:
P1,P2,P3,P4,P5,P6,S和COM。
2)功能丰富:
I/O,中断能力,其它片内外设功能,驱动液晶。
3)寄存器丰富:
P1与P2各有7个寄存器,P3、P4、P5、P6有四个寄存器。
具有中断功能的数据输入、输出端口P1和P2各寄存器符号和功能如下所述(以P1口为例):
1)P3IN:
输入寄存器;2)P3OUT:
输出寄存器;3)P3DIR:
方向选择寄存器;4)P3SEL:
功能选择寄存器。
5.3MSP430F169与点阵显示器LCM12864接口
5.3.1LCM12864液晶显示模块简介
LCM12864液晶显示模块是由128列64行液晶显示点阵和其控制电路组成,整个电路板外形、尺寸如图3-2所示。
该显示模块不仅可以显示数字,还可以显示汉字和图形。
模块电路板下端有20个接线引脚,其中VDD与VSS引脚是LCM12864液晶模块电源与地接入端,VOUT是LCM12864液晶模块自生成负电压输出端。
VO需要一个外部的0V~-10V负压输入,可接入电位器调整液晶灰度。
在背光电路中需要串接5欧姆电阻,直接将背光接入电源可能会造成损坏。
其余引脚由单片机控制。
图5-2LCM12864液晶显示模块外型图
LCM12864液晶显示模块的引脚定义如表5-2所示。
表3-2LCM12864引脚说明
序号
名称
参数
说明
1
VSS
GND0V
模块电源地
2
VDD
+5V
模块电源+5VDC
3
VO
0V~-10V
外部液晶偏置电压输入端
4
D/I
H/L
H:
数据;L:
指令
5
R/W
H/L
H:
MPULCM读数据;L:
MPULCM写数据
6
E
H/L
LCM使能
7
DB0
H/L
数据线0(H表示高电平,L表示低电平
8
DB1
H/L
数据线1
9
DB2
H/L
数据线2
10
DB3
H/L
数据线3
11
DB4
H/L
数据线4
12
DB5
H/L
数据线5
13
DB6
H/L
数据线6
14
DB7
H/L
数据线7
15
CS1
H/L
左半屏使能(低电平有效)
16
CS2
H/L
右半屏使能(低电平有效)
17
/RST
H/L
LCM复位(低电平有效)
18
VOUT
GND0V
模块电源地
19
SLA
+5V
LED背光电源+5VDC
20
SLK
GND0V
LED背光电源地
5.3.2LCM12864驱动电路
1)电源电路设计
LCM12864耗电量大,不能使用电池供电。
5V直流稳压电源如图3-3所示。
图5-3直流稳压电源电路图
220V交流电经降压变压器降压后输出到整流桥变成单向脉动电压,经滤波电容滤波后变为直流电压。
该直流电压值随电网电压波动,不能直接供给电子电路使用。
7805是专用三端稳压器件,输入滤波后的电压输出稳定的5V电压供LCM12864使用。
MSP430系列单片机电源电压范围是1.8-3.6V,因此将5V电压经二极管降压0.7V后,供单片机系统使用。
经长期实验验证,单片机系统可长期安全可靠运行,其优点是与5V供电的TTL或CMOS电路接口,不必再加电平转换电路。
2)单片机与LCM12864接口电路MSP430F169单片机与LCM12864接口电路如图3-1所示。
5.4MSP430F169单片机产生双路互补SPWM信号原理
5.4.1定时器产生PWM信号原理
MSP430F413定时器A具有输出两路PWM信号的功能,占空比d=t/T中的周期等于写入CCR0数值乘以时钟周期,TA1占空比的t值等于写入CCR1值乘以时钟周期,TA2占空比的t值等于写入CCR2值乘以时钟周期。
本设计中送入CCR1和CCR2的数据相同,但TA1和TA2的输出模式互补,以便驱动H桥产生正弦交流PWM脉冲。
由于是在单片机中预先存入PWM数值表,按表定周期更新PWM脉宽值,使单片机定时器输出相应脉宽的脉冲。
此方法的优点是可以根据实际需要在单片机的波形存储器中写入不同波形,随时更改、添加,能满足产生不同波形的需要。
5.4.2SPWM信号占空比数据求法
正弦三角函数取值范围在1与-1之间,但PWM不可能出现负值。
因此,将正弦函数值加1,平移到正数范围。
将一个交变周期分为36个PWM周期的正弦波数据表如下所示,将数据表中数据除2,即可得该角度的占空比。
1.0000,1.1736,1.3420,1.5000,1.6428,1.7660,//0_50度
1.8660,1.9397,1.9848,2.0000,1.9848,1.9397,//60_110度
1.8660,1.7660,1.6428,1.5000,1.3420,1.1736,//120_170度
1.0000,0.8264,0.6580,0.5000,0.3572,0.2340,//180_230度
0.1340,0.2340,0.3572,0.5000,0.6580,0.8264};//300_350度
结合上述互补输出电路可见,数值1对应的PWM占空比为0.5,则A、B两点的正负脉冲对称,平均值为0,与正弦波0度值对应。
用两路定时器输出端同步互补发出上表所述SPWM数据,则可驱动H桥产生2VDD峰-峰值的SPWM波。
5.5MAX038芯片原理
5.5.1MAX038芯片特点
MAX038CPP芯片采用20引脚DIP封装,引脚图如图3-4所示。
各引脚功能简述如下:
图5-4引脚图
REF:
芯片内部2.5V参考电压输出;
GND:
模拟地;
A1,A0:
输出波形选择,TTL/CMOS兼容;
FADJ,DADJ:
输出频率、占空比调节;
IIN:
震荡频率控制器电流输入;
PDI,PDO:
内部鉴相器输入、输出;
SYNC:
同步信号输出,允许内部震荡器与外电路同步;
DGND,DV+:
内部数字电路电源;
V+,V-:
MAX038电源(+5V,-5V);
OUT:
波形输出端。
MAX038芯片附加少许外围电路就能够产生三角波、锯齿波、正弦波、方波、矩形脉冲波形。
该芯片具有如下的功能特点:
(1)输出频率范围:
0.1~20MHz,最高可达40MHz:
(2)输出波形占空比(15%~85%)独立可调,占空比可由DADJ端调整,如果DADJ端接地,则输出占空比为50%;
(3)具有低输出阻抗的输出缓冲器,输出阻抗的典型值为0.1Ω;
(4)备有TTL兼容的独立同步信号SYNC(方波输出,固定占空比为50%),方便组建频率合成器系统;
(5)低温度漂移。
5.5.2MAX038芯片应用电路
MAX038芯片应用电路如图3-5所示。
图5-5MAX038芯片应用电路
在两个与TTL/CMOS信号输入匹配的地址引脚A1,A0上输入合适的代码信号,能够实现输出波形变换的控制,具体输入代码和输出波形的对应关系如表1所示。
当V+=5V,V-=-5V,VDADJ=VFADJ=VPDI=VPDO=0V,RL=1kΩ,CL=20pF,输出波形、频率变化调整时,输出电压能够稳定的达到Vp-p=2V。
6.编译,现在及调试
6.1程序流程图
主程序图如图6-1所示。
N
Y
图6-1主程序图
主程序设计主要要完成的功能概括如下:
(1)完成三相SPWM信号发生功。
(2)SPWM调制波频率10KHz,经1uF电容滤波可在示波器上观测到逆变后的正弦信号。
(3)增加SPWM频率设定功能,可输出基波频率10Hz至500Hz可调的SPWM信号。
SPWM产生流程图如图4-2所示:
图6-2SPWM产生流程图
SPWM主要由计数器B来实现,具体实现方法如下:
用CCR0的计数值来计算出SPMW的周期,用CCR1—CCR6来计算出占空比。
由于CCR1—CCR6的数是自己设的,且要产生SPWM,故所设定的数值要按正弦规律来改变。
增加SPWM频率设定功能如图4-3所示.
Y
N
图6-3增加SPWM频率设定功能
通过按钮电路来增加SPWM的频率并在显示屏上显示。
6.2多功能信号发生器程序
多功能信号发生器程序显示程序如下:
#include
#include
#defineTOP0//竖直方向零点
#defineBOTTOM64//竖直方向坐标最大值
#defineLEFT0//水平方向坐标最小值
#defineRIGHT128//水平方向坐标最大值
#defineEN_WIDTH8//数字字符串的长度
#defineCH_WIDTH128//中文字符串的长度
constunsignedcharshowData_0[]={//16*16点阵的“正弦波”
unsignedcharpx,//显示字符串的X位置
py,//显示字符串的Y位置
width;//字符串的宽度
intdata;//显示数字
//write_Command(),用于写命令到LCD,CS(片选)在此函数外设置
voidwrite_Command(charcmd)
{
P3OUT&=0xfb;//禁止EN
P5DIR=0xff;
P3OUT&=0xfc;//rs=0,r/w=0
P5OUT=cmd;
P3OUT|=0x04;//使能
P3OUT&=0xfb;//禁止
}
//初始化LCD
px=16;py=112;width=16;drawStr_02(px,py);//显示CP脉冲频率
px=32;py=0;width=80;drawStr_04(px,py);
px=32;py=112;width=16;drawStr_02(px,py);//显示SPWM设定频率
px=48;py=0;width=80;drawStr_05(px,py);
px=48;py=112;width=16;drawStr_02(px,py);//显示SPWM输出频率
spwmf=(int)fj;
px=32;fff=spwmf;mmm_1=fff%10;fff=fff/10;py=104;drawStr_10(px,py,mmm_1);
mmm_1=fff%10;fff=fff/10;py=96;drawStr_10(px,py,mmm_1);py=88;drawStr_10(px,py,fff);
px=48;fff=spwmf;mmm_1=fff%10;fff=fff/10;py=104;drawStr_10(px,py,mmm_1);//显示SPWM输出频率值
mmm_1=fff%10;fff=fff/10;py=96;drawStr_10(px,py,mmm_1);py=88;drawStr_10(px,py,fff);
_EINT();//使能中断
nnn=0;
ce_flg=1;
for(;;)
{
if(ce_flg==1)//显示正弦波或三角波频率值
{
_NOP();
if((P1IN&0x02)==2)
{
px=0;py=0;width=64;drawStr_0(px,py);
}
else
{
px=0;py=0;width=64;drawStr_01(px,py);
}
px=0;py=104;width=8;mmm_1=mmm%10;mmm=mmm/10;drawStr_10(px,py,mmm_1);
py=96;mmm_1=mmm%10;mmm=mmm/10;drawStr_10(px,py,mmm_1);
py=88;mmm_1=mmm%10;mmm=mmm/10;drawStr_10(px,py,mmm_1);
py=80;mmm_1=mmm%10;mmm=mmm/10;drawStr_10(px,py,mmm_1);
py=72;mmm_1=mmm%10;mmm=mmm/10;