基于430的低频相位测量仪设计报告第一版.docx
《基于430的低频相位测量仪设计报告第一版.docx》由会员分享,可在线阅读,更多相关《基于430的低频相位测量仪设计报告第一版.docx(11页珍藏版)》请在冰豆网上搜索。
基于430的低频相位测量仪设计报告第一版
2014年重庆市大学生“TI”杯
设计报告
(仪器仪表类)
题目名称:
低频数字式相位测量仪
参赛队员:
彭明闯、胡少怡、郑涛
指导教师:
参赛学校:
重庆大学城市科技学院
1、设计目的
相位测量技术的应用已深入到许多领域,广泛应用于国防、科研、学校和厂矿,传统相位测量使用的是指针式仪表,但随着电子技术的发展,数字显示相位仪不断涌现。
利用了MSP430单片机的高速硬件捕获功能来实现频率和相位的测量;并对输出波形进行比较及采样,通过合理的算法取得更高的精度,并采用大屏幕液晶显示测量详细信息,这使得在测量低相位的时候,更加的简便和精确,系统硬件结构简单,频率、相位稳定度高;采用液晶显示和按键设置频率及相位差。
移相网络电路按题目要求由常规的模拟器件组成。
本系统主要由相位测量、移相网络和处理系统、输出模块组成。
二、设计要求
设计并制作一个低频数字式相位测量系统,包括相位测量、移相网络两部分。
1、频率范围:
20Hz~20kHz。
2、相位测量仪的输入阻抗≥100kΩ。
3、允许两路输入正弦信号峰-峰值可分别在1~5V范围内变化。
4、相位测量绝对误差≤2℃。
5、相位差数字显示:
相位读数为-45.0°~+45.0°,分辨率为0.1。
6、移相网络
1)输入信号的频率:
100Hz、1kHz、10kHz
2)连续相移范围:
-45.0°~+45.0°
3)两路输出的正弦信号峰-峰值可分别在0.3~5V范围内变化。
其框图如图1所示。
图
(1)
三、设计的具体实现
1、硬件设计
低频数字式测相仪由移相网络,相位测量,数字处理,显示模块四部分组成,此电路不仅可以调节由输出两路波形之间的相位差,而且还可以调节输出波的幅值,其变化范围在1-5V;它能够测量出100HZ,以及1000HZ和10000HZ的输入波并移相之后的相位差,并采用1602液晶显示屏显示测量数据,当电路接通电源后,调节输入波形频率及电路中的相应电阻档位,通过单片机的计算输出相应的相位差。
设计总模块图见图
(2)。
图
(2)
单元电路分析
(1)移相网络:
我们移相网络采用RC移相网络来制作,电路中电阻与电容串联由于电容两端电压的相位落后于电流的相位为π/2,而电阻两端电压和流过电阻的电流同相,可以算出输出电压U。
与输入电压U1直径的相位差,在0度至180度之间可调的移相电路,电路中R可调节。
对相应的频率值调节相应的R值,以输出超前和滞后的波形,在选择电阻值的时候,我们采用双刀双掷开关,使得两条电路在选择的时候同时选择,避免出错,而且更加方便使用。
我们只需要移动一个波形就足够改变其相位差,如果需要移相则改变运放后的滑动变阻器,使得其波形之间的相位差变化范围为-45度--+45度。
电路见图(3)。
图(3)
(2)数字信号采集模块:
数字信号采集我们采用NE5532的运算放大,经过LM311过零比较后,输出相应的电平信号,但是经过LM311后波形并不完善,因此我们采用由555定时器组成的施密特触发器来对信号波进行整形和完善。
电路如图(4)
图(4)
(3)显示模块:
显示数据时,因为显示的数据数字较多,如果使用数码管,不仅使用的数码管数量多,而且出于节能的方面,LCD1602比数码管有更好的节能效果,而且LCD1602采用模块化,需要使用的时候即插即用,十分方便,这也使得缩短这个项目的研究时间,因此最后本小组决定采用LCD1602作为单片机MSP430的输出显示模块。
电路如图(5)所示。
图(5)
2、软件设计
主程序程序流程图:
图(6)
中断子程序流程图
图(7)
四、开发总结与心得
1、总体方案论证和确立
在这一阶段。
我们主要任务是根据大赛要求对系统的总体结构进行初步的规划设计,对系统进行模块化,对各部分资源做出分配。
确定软件的主要思路框架。
这一阶段上主要解决的问题有:
确定小组各成员的分工,各取所长,分头进行前期资料的准备
确定电源的开发流程,规划电源的开发进度;
将电气部分划分为了电源、单片机和输出三大模块,并确定各模块的方案。
分配各模块资源,确定各模块的主要参数。
2、各分立模块的制作调试
在这一阶段,我们的主要任务是,完成各个模块的搭建,并调试使之达到预定的参数指标。
根据课程设计的要求我们确定的各部分模块的参数,一一制作出各部分模块,并对其进行了调试确定其各方面性能均能达标。
单片机最小系同开始时因资源口分配的不当,进分析发现,会使以后的编程以及走线有很大的影响,于是根据实际要求重新设计了电路。
3、测相系统的装配调试
在这个阶段,我们的主要任务是务必使电源完全达到设计的性能指标。
使各个模块之间协调可靠,互不影响,能够成功输出各个电压值。
五、附录
附录一:
元件清单。
表
(1)
名称
数量
参数
LM311
2
NE5532
4
555计时器
2
二极管
8
1N4007
电阻
若干
电容
2
0.01uf
稳压二极管
2
杜邦线
若干
MSP430
1
1602LCD屏
1
GY5101AB
按钮
2
排针
若干
滑动变阻器
3
附录二:
完整电路图,图(8)。
图(8)
附录三:
源程序
#include
#include"cry1602.c"
#include"cry1602.h"
#include
charbuf[];
floatpwm;
floatpwm_cha;
intpwm_start1,pwm_end1,pwm_wide1;
intpwm_start2,pwm_end2,pwm_wide2;
voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//StopWDT
P1SEL|=BIT2;//P1.2CCI1A
P1SEL|=BIT3;//P1.3CCI2A
TACCTL1=CAP+CM_3+CCIS_0+SCS+CCIE;//捕获模式,上升和下降都捕获,选择CCI1A,同步,捕获中断开Captureinputselect:
0-CCI1A
TACCTL2=CAP+CM_3+CCIS_0+SCS+CCIE;//捕获模式,上升和下降都捕获,选择CCI2A,同步,捕获中断开Captureinputselect:
0-CCI2A
TACTL=TASSEL_2+MC_2;//SMCLK=8M,L连续计数模式
_EINT();//开总中断
_NOP();
while
(1)
{
if(pwm_end1>=pwm_start1)
{
pwm_wide1=(pwm_end1-pwm_start1)*2;
}
elseif(pwm_end1{
pwm_wide1=(pwm_start1-pwm_end1)*2;
}
pwm_cha=pwm_start1-pwm_start2;
pwm=pwm_cha/pwm_wide1*360;
//显示程序
WDTCTL=WDT_ADLY_1000;//间隔定时器,定时1000ms
P6DIR|=BIT2;P6OUT|=BIT2;//关闭电平转换
LcdReset();
sprintf(buf,"%f",pwm);
DispNChar(3,0,4,buf);
}
}
//Timer_A3InterruptVector(TAIV)handler
#pragmavector=TIMERA1_VECTOR
__interruptvoidTimer_A(void)
{
switch(TAIV)
{case2:
if(TACCTL1&CCI)
pwm_start1=CCR1;
else
pwm_end1=CCR1;
break;
case4:
if(TACCTL2&CCI)
pwm_start2=CCR2;
else
pwm_end2=CCR2;
break;
case10:
break;
}
LPM0_EXIT;
return;
}