低频数字式相位测量仪.docx
- 文档编号:24333956
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:25
- 大小:137.50KB
低频数字式相位测量仪.docx
《低频数字式相位测量仪.docx》由会员分享,可在线阅读,更多相关《低频数字式相位测量仪.docx(25页珍藏版)》请在冰豆网上搜索。
低频数字式相位测量仪
辽宁工业大学
电子综合设计与制作(论文)
题目:
低频数字式相位测量仪
院(系):
电子与信息工程学院
专业班级:
电子091
学号:
090404003
学生姓名:
指导教师:
教师职称:
起止时间:
课程设计(论文)任务及评语
院(系):
电子与信息工程学院教研室:
电子信息教研室
学号
090404003
学生姓名
专业班级
电子091班
题目
低频数字式相位测量仪
任务和要求
任务和要求:
1.设计并制作一个低频相位测量系统。
(1)设计并制作一个相位测量仪
a.频率范围:
20Hz~20kHz。
b.相位测量仪的输入阻抗≥100k
。
c.允许两路输入正弦信号峰-峰值可分别在1V~5V范围内变化。
d.相位测量绝对误差≤2°。
e.具有频率测量及数字显示功能。
f.相位差数字显示:
相位读数为0o~359.9o,分辨力为0.1°。
(2)制作一个移相网络
a.输入信号频率:
100Hz、1kHz、10kHz。
b.连续相移范围:
-45°~+45°。
c.输出的正弦信号峰-峰值可分别在0.3V~5V范围内变化。
指导教师评语及成绩
平时:
论文质量:
答辩:
总成绩:
指导教师签字:
年月日
注:
成绩:
平时20%论文质量60%答辩20%以百分制计算
摘要
本设计系统由两片独立的CPU组成:
用单片机实现基本要求中的相位、频率、电压测量及其数字和图形显示功能,用74LS164接显示以及,移相网络由常规的模拟器件组成,能满足连续相移范围,满足设计要求。
该测量仪包括移相网络和相位测量仪两部分,分别完成移相信号的发生及其频率、相位差的预置及数字显示、信号的移相以及移相后信号相位差和频率的测量与显示等功能。
其中输入预置频率的正弦信号,也可输入预置相位差的两路同频正弦信号,并能显示预置频率或相位差值;相位测量仪能对移相信号的频率、相位差的测量和显示。
关键词:
相位差;相位测量仪;移相网络。
第1章绪论1
1.1低频相位测量仪概况1
1.2本文研究内容1
第2章系统主要硬件设计2
2.1方案设计与论证2
2.2总体设计方案3
2.3输入整形电路3
2.4相位差测量电路4
2.5单片机最小系统5
2.6显示电路6
2.7移相网络电路7
第3章系统软件设计9
3.1主程序图设计9
3.2相位测量程序图的设计9
3.3程序清单11
第4章系统设计与分析16
4.1系统原理图16
4.2系统原理功能17
第5章设计总结18
参考文献19
附录120
总体电路图20
附录221
元器件清单21
第1章绪论
低频相位测量仪概况
近年来,随着科学技术的迅速发展,很多测量仪逐渐向“智能仪器”和“自动测试系统”发展,这使得仪器的功能丰富而使用简单。
低频数字式相位测试仪在工业领域中是经常用到的通用测量工具。
在电力系统中电网并网合闸时,要求两电网的信号相同,这就要求精确的测量两工频信号之间的相位差。
还有测量两列同频信号的相位差在研究网络、系统的频率特性中具有重要意义。
本低频数字式相位测量仪由AT89S52芯片和小规模集成电路构成。
由于AT89S52芯片和可编程逻辑器件的集成度高,智能程度高,功能强大,使得它实现起来比较简单,而且具有体积小、性价比高、性能稳定的特点。
本文研究内容
设计并制作一个相位测量仪
a.频率范围:
20Hz~20kHz。
b.相位测量仪的输入阻抗≥100k
。
c.允许两路输入正弦信号峰-峰值可分别在1V~5V范围内变化。
d.相位测量绝对误差≤2°。
e.具有频率测量及数字显示功能。
f.相位差数字显示:
相位读数为0o~359.9o,分辨力为0.1°。
(2)制作一个移相网络
a.输入信号频率:
100Hz、1kHz、10kHz。
b.连续相移范围:
-45°~+45°。
c.输出的正弦信号峰-峰值可分别在0.3V~5V范围内变化。
第2章
系统主要硬件设计
方案设计与论证
1、相位测量部分的设计
方案一:
传统的模拟法:
该方案采用倍频、计数、门控等电路。
此方法难以实现大频率范围的相位测量,精度低、稳定性差。
方案二:
测时间法:
将两路同频的正弦信号经过信号整形电路后得到方波信号。
然后将两方波进行异或鉴相输出,从而得到两输入信号的过零时间差
和两信号的周期
,利用相位差
与信号周期
之间的关系:
,便可得到信号之间的相位差。
该方案简单,但需对信号的周期或频率进行准确测量,普通单片机需要通过扩展外部电路,外加高频震荡信号作为测量的时钟基准,增强计时、计数能力才能达到满足题目要求的精度。
方案三:
填充计数法:
将两路同频的正弦信号经过信号整形电路后得到方波信号.方波信号经过异或门鉴相后,得到两路输入信号的相位差信号,用固定频率
的采样脉冲进行填充并计数,得到信号周期计数值
和相位差计数值
,从而计算出相位差
。
填充计数法主要应用在要求一定的精度,测量的频率不是太高但实时性要求很强的场合,易于实现数字化和自动化。
方案论证及选定:
方案一稳定性、精度差,不采用;方案二测相位差时,为保证精度必须保证,相位差
和周期
的测量都要精确,电路设计方面比方案三复杂;方案三将测量相位差转化成了单一的脉冲个数的计数,电路的设计也简洁,测量准确度也非常高,但是,若被测信号的频率过高时对器件的要求也很高。
由设计要求为低频低频相位测量,可知采用填充计数法可提高准确度。
因此我们采用方案三。
2、移相网络的设计
方案一:
采用常见的模拟器件电阻,电位器,电容和运放的组合电路实现移相。
直接对模拟信号进行移相,采用这种方式制造的移相器有许多不足之处,如:
输出波形受输入波形的影响,移相操作不方便,移相角度随所接负载和时间等因素的影响而产生漂移等。
该方案由于使用模拟器件,因此精度不是很高,硬件系统比较复杂。
方案二:
采用高精度的延时电路或移相电路,虽可实现数控和步进,但由于成本高,调节较困难,不易实现。
方案论证及选定:
我们采用了简单的RC移相电路,电路设计简单、易行,比较容易的实现了相移的连续调节,节省了制作成本,且满足题目的基本要求,我们直接采用了方案一来产生模拟的相移输出。
总体设计方案
我们采用填充计数法对相位和频率进行测量,以单片机为核心,前端的两路信号分别通过跟随器,直流耦合电路,提高了系统输入阻抗。
然后使用LM393比较器进行整形,经74LS74双D触发器进行二分频(用于判断相位差为
时能正常产生鉴相脉冲)送到74LS86异或门进行鉴相,鉴相脉冲送输入到单片机的捕获端实现相位差测量;并将分频后两路信号,
送给D触发器,通过判断D触发器的输出电平确定相位差大于或者小于
,将输出电平作为标志位输入到单片机。
A信号
液晶显示
单片机
相位差测量
输入整形
B信号
输入整形
图2.2总体框图
输入整形电路
由系统要求相位测量仪的输入阻抗大于100k
,在输入端我们选择使用uA741作为信号的输入缓冲,从而提高了系统的输入阻抗。
为了减少噪声的影响,在输入端我们使用100K的电阻接地,然后进过LM393进行比较,得到方波,LM393的输出为OC结构,使用时要接上拉电阻和分压电阻,使输出电平符合单片机要求。
然后通过D触发器二分频,进过鉴相器异或后输入到单片机,通过捕获处理后的两通道的方波,就可计算出频率和相位差。
图2.3输入整形电路
相位差测量电路
通过理论分析,基准频率越高,记得的窄脉冲个数越多,相位差的测量也越精确,但是受到8254极限工作频率的影响,最终选取8.000MHz的晶振,由单片机I/O口控制两片8254分别对两路脉冲进行计数,将8254内含的两路计数器进行级联以提高计数位数,对32位的计数结果进行浮点运算使得相位差测量的分辨率达到0.1º,其原理图如图2.3所示
图2.4相位差测量电路
单片机最小系统
目前,应用最广的产品是8位单片机,其中又属Intel公司出品的MCS-51系列单片机应用最广。
MCS-51系列单片机已经成为事实上的工业标准,其内部包含如下功能部件:
1)一个8位的中央处理器CPU,完成运算和控制功能;
2)一个片内振荡器及时钟电路,外接石英晶体和微调电容需外接,为单片机产生时钟脉冲序列,系统允许的晶振频率0~33MHz;
3)256BRAM数据存储器,前128单元作内部数据存储器,可擦写的数据,后128单元为专用寄存器。
4)两个16位定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
5)可寻址的64KB外部数据存储器以及控制电路。
6)可寻址的64KB外部程序存储器以及控制电路。
7)21个特殊功能寄存器
8)32条可编程的I/O线(四个8位I/O并行端口)
9)一个可编程全双工串行口,可作全双工异步通信收发器使用,实现单片机和其它设备之的串行资料传送;也可作为同步移位器使用
10)五个中断源,外中断2个,定时/计数中断2个,串行中断1个;两个优先级,全部中断分为高级和低级共两个优先级。
图2.5单片机最小系统
显示电路
整个系统硬件电路中,单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,因此数据显示电路的设计采用静态显示的方式,显示电路由8个共阳极七段数码管和8片1位串入8位并出的74LS164芯片组成。
这种显示方式不仅可以得到较为简单的硬件电路,而且可以得到稳定的数据输出;这种连接方式不仅占用单片机端口少,而且充分利用了单片机的资源,容易掌握其编码规律,简化了软件编程,在实验过程中,也体现出较高的可靠性。
图2.6显示电路
移相网络电路
该模拟电路主要采用高、低通电路的临界截止点来产生极值相位的偏移。
当高、低通电路的截止频率等于输入信号频率时,根据其幅频特性,信号波形所产生的相位分别为45°和-45°,恰好满足赛题要求的连续相移范围-45°~45°的调节。
由于高、低通电路在截止点时会产生幅度的衰减,故电路在后级加了放大电路,且采用了电压串联负反馈的方式提高了输入阻抗并降低了输出阻抗,电路最后还设计有调幅装置,能够很好地满足A、B输出的正弦信号峰—峰值可分别在0.3V—5V范围内变化。
图2.7移相网络电路
第3章系统软件设计
主程序图设计
液晶显示
定时器开中断
脉冲累加器开中断
输入捕获开中断
开始
初始化
单片机在获取数据时,开始的是一般的读取指令MOV指令,分别从单片机的P0口、P2口、P1口的低3位读入数据,组合为一个19位的二进制数据。
经过多次测试,采用这种方式获得了比较好的效果。
主程序如图3.1。
图3.1主程序
相位测量程序图的设计
首先判断两路输入信号的上升沿,如果上升沿到达则计数器开始计数,否则继续等待。
在计数过程中继续判断第二路输入信号的上升沿是否到达,如果到达则将计数结果保存并且继续计数,直到第一路信号的下降沿到来后停止计数。
开始
信号输入
N
等待
是否为上升沿
Y
开始计数
N
第二个上升沿到
Y
存储、计数
N
是否为下降沿
Y
停止计数并显示
图3.2相位测量
程序清单
#pragmaoptimize(4)
#include"stdio.h"
#include"math.h"
#include"absacc.h"
#include"reg51j.h"
voidstart();
voidcepin();
voidcexwei();
voidcexwei6();
voidcerlc();
voidgood();
voiddisp();
voiddispff();
voiddispfa();
voidint0();
voidt0int();
codeunsignedcharled[36]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x58,0x5e,0x79,0x71,/***01...9AbcdEF***/
0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,
0xf7,0xfc,0xd8,0xde,0xf9,0xf1,/*0.1...9.A.b...F.*/
0x00,0xff,0x73,0x38/***灭,亮,P,L***/};
dataunsignedcharld[8],i,j,ii,jj,iia,jja,iib,jjb,l;
dataunsignedcharms,it11,t1s;
dataunsignedcharix10,ix11;
dataunsignedcharkey;
dataunsignedinttt,tt1,tt2,tta,ttb;
dataunsignedintuuh=0;
dataunsignedintuul=0;
dataunsignedintaaa[6];
datafloatff,fff,fa;
bdatabitbit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7;
#defineP8279DXBYTE[0x2000]
#defineP8279KXBYTE[0x2001]
#defineP8255AXBYTE[0x4000]
#defineP8255BXBYTE[0x4001]
#defineP8255CXBYTE[0x4002]
#defineP8255KXBYTE[0x4003]
#defineAD0XBYTE[0x6000]
#defineAD1XBYTE[0x6001]
#defineAD2XBYTE[0x6002]
#defineAD3XBYTE[0x6003]
#defineAD4XBYTE[0x6004]
#defineAD5XBYTE[0x6005]
#defineAD6XBYTE[0x6006]
#defineAD7XBYTE[0x6007]
#defineDA0832XBYTE[0x8000]
voidint0()interrupt0using1
{P8279K=0x40;key=P8279D;key=key&0x01;}
voidt0int()interrupt1using1/*10ms!
*/
{TL0=0xf0;TH0=0xd8;TR0=1;
ms++;
if(ms==50){bit0=0;}
if(ms>=100){ms=0;bit0=1;bit7=1;
}
}
voidstart()
{TL0=0xf0;TH0=0xd8;/*T0=d8f0=55536=10ms*/
TL1=0;TH1=0;/*T1--*/
IE=0x83;IP=0x00;/*int1ishigh*/
TMOD=0x11;TCON=0x05;
P8279K=0xd1;for(i=0;i<98;i++){i++;}
P8279K=0x00;P8279K=0x2f;
P8279K=0x40;P8279K=0x90;
P8255K=0x89;/*PA,PBisoutput;PCisinput;*/
i=j=l=0;
key=0x0f;
ms=t1s=0x00;
bit0=bit1=bit2=bit3=bit4=bit5=bit6=bit7=0;
TR0=1;TR1=0;
}
voidgood(void)
{/*P8279K=0xd1;for(i=0;i<0x80;i++){i++;}*/
P8279K=0x90;
if(bit0){P8279D=0x6f;P8279D=0x5c;P8279D=0x5c;P8279D=0x5e;
P8279D=0x40;P8279D=0x40;P8279D=0x40;P8279D=0x40;}
else{P8279D=0x6f;P8279D=0x5c;P8279D=0x5c;P8279D=0x5e;
P8279D=0x80;P8279D=0x80;P8279D=0x80;P8279D=0x80;}
}
voiddisp()
{P8279K=0x90;
P8279D=ld[0];P8279D=ld[1];P8279D=ld[2];P8279D=ld[3];
P8279D=ld[4];P8279D=ld[5];P8279D=ld[6];P8279D=ld[7];}
voiddispff()
{ff=fff;
uuh=ff;uul=100*ff-uuh*100;
if(uuh>=65000){uuh=65000;uul=0;}
ld[0]=0x71;
i=uuh/10000;ld[1]=led[i];uuh=uuh-i*10000;
i=uuh/1000;ld[2]=led[i];uuh=uuh-i*1000;
i=uuh/100;ld[3]=led[i];uuh=uuh-i*100;
i=uuh/10;ld[4]=led[i];uuh=uuh-i*10;
i=uuh;ld[5]=led[i+0x10];
i=uul/10;ld[6]=led[i];uul=uul-i*10;
i=uul;ld[7]=led[i];
if(ld[1]==0x3f){ld[1]=0x00;
if(ld[2]==0x3f){ld[2]=0x00;
if(ld[3]==0x3f){ld[3]=0x00;
if(ld[4]==0x3f)ld[4]=0x00;}}}
}
voiddispfa()
{uuh=fa;uul=100*fa-uuh*100;
if(uuh>=360){uuh=0;uul=0;}
ld[0]=0x77;ld[1]=0x77;ld[2]=0x00;
i=uuh/100;ld[3]=led[i];uuh=uuh-i*100;
i=uuh/10;ld[4]=led[i];uuh=uuh-i*10;
i=uuh;ld[5]=led[i+0x10];
i=uul/10;ld[6]=led[i];uul=uul-i*10;
i=uul;ld[7]=led[i];
if(ld[3]==0x3f){ld[3]=0x00;
if(ld[4]==0x3f)ld[4]=0x00;}
}
voidmain(void)
{aaa:
start();
while(key==0x0f)good();
bbb:
cepin();
cexwei();
if(key==0)dispff();
elsedispfa();
disp();
/*if(bit6)*/
{bit6=0;
while(bit0){if(key==0)dispff();
elsedispfa();
disp();}
while(!
bit0){if(key==0)dispff();
elsedispfa();
disp();}
}
gotobbb;
cepin();
cexwei();
cerlc();
if(tt2>=tt)fa=360.0-fa;
dispff();
dispfa();
gotobbb;
for(i=0;i<=49;i++){}
{for(j=i+1;j<=49;j++){if(ua[i]>ua[j]){uu=ua[i];ua[i]=ua[j];ua[j]=uu;}}}
uul=0;
for(i=10;i<=39;i++){uu=ua[i];uul=uul+(long)uu;}
uuf=(float)uul/30000.0;
uuf=2.0+x0;x0++;
ff0=100.0*uuf*uuf+88.0;ff0=sqrt(uuf);
ff0=ff0*0.1414;ff1=ff0*0.1732;
ff1=cos(ff1);
disp();
gotoaaa;
}
第4章系统设计与分析
系统原理图
图4.1系统原理图
系统原理功能
该低频数字相位测量仪以单片机最小系统为控制核心,由移相网络,相位测试仪,显示等功能模块组成,其中移相网络由阻容网络构成,相位测试仪对移相信号进行处理后进入单片机,由单片机计算显示相位差。
本硬件电路用了EDA工具,软件设计采用模块化编程方法,经过分析实测,该测量仪能够测量的正弦信号的频率范围为20Hz~20KHz。
峰-峰值可以分别在1V~5V范围内变化,而且输入阻抗大于100K,并且可以测量频率,直接数字显示出来,达到了一些基本要求,移相网络输入信号频率范围达到20Hz~20KHz,连续移相范围达到了-45°~+45°,输出的正弦信号峰-峰值可以分别在1~5V范围内变化,实现了题目要求。
第5章设计总结
通过本次课程设计,自己对单片机有了更深的了解,知道了整形电路,相位比较电路,显示电路,相移网络电路以及单片机最小系统的特点和功能,丰富了自己这方面的知识与经验,掌握了低频相位测量仪的工作原理,积累了较强的动手能力,加强了仿真软件这方面的知识,学会了读写汇编语言,提高了自己的专业知识,使自己在使用单片机上方便了很多并且为以后的发展奠定了基础。
参考文献
[1]童诗白编著《模拟电子技术基础》高等教育出版社2006
[2]张建华编著《数字电子技术》机械工业出版社2008
[3]陈汝全编著《电子技术常用器件应用手册》机械工业出版社2006
[4]毕满清编著《电子技术实验与课程设计》机械工业出版社2005
[5]潘永雄编著《电子线路CAD实用教程》西安电子科技大学出版社2009
[6]张亚华编著《子电路计算机辅助分析和辅助设计》航空工业出版社2004
附录1
总体电路图
附录2
元器件清单
器件类型
个数
100K电阻
2
5.1K电阻
4
10K电阻
1
1nF电容
3
741
2
二极管
4
74LS74
3
LM393
2
74LS86
1
8M晶振
2
74HC20
2
8254
2
按键
1
8052
1
74LS164
4
数码管
4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 低频 数字式 相位 测量仪
![提示](https://static.bdocx.com/images/bang_tan.gif)