毕业设计论文《低频数字式相位测量仪》Word下载.docx

上传人:b****5 文档编号:18615280 上传时间:2022-12-29 格式:DOCX 页数:22 大小:153.10KB
下载 相关 举报
毕业设计论文《低频数字式相位测量仪》Word下载.docx_第1页
第1页 / 共22页
毕业设计论文《低频数字式相位测量仪》Word下载.docx_第2页
第2页 / 共22页
毕业设计论文《低频数字式相位测量仪》Word下载.docx_第3页
第3页 / 共22页
毕业设计论文《低频数字式相位测量仪》Word下载.docx_第4页
第4页 / 共22页
毕业设计论文《低频数字式相位测量仪》Word下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

毕业设计论文《低频数字式相位测量仪》Word下载.docx

《毕业设计论文《低频数字式相位测量仪》Word下载.docx》由会员分享,可在线阅读,更多相关《毕业设计论文《低频数字式相位测量仪》Word下载.docx(22页珍藏版)》请在冰豆网上搜索。

毕业设计论文《低频数字式相位测量仪》Word下载.docx

2移相电路:

  根据题目的要求,要实现相移在-45度---+45度的调节,而提高部分要求移相在0—359度之间,且可实现步进1度要求。

采用高精度的延时电路或移相电路,虽可实现数控和步进,但由于成本高,调节较困难,不易实现,我们采用了简单的RC移相电路,比较容易的实现了相移的连续调节。

节省了制作成本,且达到了题目的基本要求。

此电路的基本原理

图一                   图二

其中图一是无源RC滞后网络,其传递函数为:

h(jw)=1/(1+jwrc),相移角=arctan2*3。

14*r*c,图二为无源RC超前网络。

其传递函数为:

h(jw)=1/(1-j1/wrc),相移角=arctan(1/(2*3.14*r*c).

它们的相频特征曲线为

本设计使用的电路图:

ewb的仿真波形:

  按照相移与F,R,C的关系式,在滞后电路中取相移角为:

45o,有tanA=2*3.14*r*c*f=1,当f=20hz时,r*c=0.008,当f=20khz时,r*c=0.000008,从而取r=4.7千欧c=1微法。

在超前网络中,取相移为45o,有tanB=1/(2*3.14*r*c*f).当f=20hz时,r*c=0.008,当f=20khz时r*c=0.000008,从而取r=4.7kΩ,c=1μF这样,相移可达+60o--60o

3'

相位测量及显示电路:

  本部分电路不采用相敏整流法,避免了模拟电路得不好控制,不易数字化的缺点,而是采用单片机89c52,利用高频计数器cd4040和逻辑电路来实现的相位测量。

这部分的电路图是

  工作原理:

由于这部分的输入是有相移的两路正弦信号,而要实现其数字化,所以要把正弦信号转化成方波信号,其电路如下:

output输出的波形为

  output输出的波形再与固定的晶振脉冲相与非产生新的脉冲信号,作为CD4040的CP脉冲,计算脉冲个数。

CD4040工作方式:

  当RST脚为“0”时,计数器开始计数,CLK脚为脉冲输入端;

当RST脚为“+1”时,计数器的各脚清零。

所以在output脚输出的信号的一个周期内,计数器计数一次。

为扩大测量的相移差的范围,采用两片CD4040.达到24位的要求。

计算参数如下:

  设晶振的周期为Ts,两个正弦波变换成方波后的周期为To,output输出的信号的低电平的时间为T,则对应的相移对应的时间为To/2-T;

CD4040计数的数值为N.则T=N*Ts,则T'

=To-N*Ts;

得相移对应的晶振个数N'

=(To-N*Ts)/Ts;

每个晶振个数对应一定的相移:

A0

  则总的相移:

A0*N'

  在一个周期内,测得的计数脉冲的个数通过8255传给单片机89c52,进行计算,从而达到通过软件达到现视的目的。

此设计通过8279达到显示管的驱动。

四系统软件设计:

1系统软件工作流程图

测量及显示程序流程图:

2)信号产生程序流程图:

2,主要程序:

见附页

五测试指标:

1测试仪器:

示波器:

HitachiV-1060

频率计:

SAMPOCN3165

万用表:

DT9202

本设计能达到的技术指标:

1)相位测量:

(a)频率范围:

10HZ---100HZ.(b)相位测量仪的输入阻抗〉=100千欧。

(c)允许两路输入正弦信号的峰峰值可在0.5v---5vf范围内变化。

(d)相位测量绝对误差<

=2度。

(e)具有频率测量及数字显示功能.(f)相位差数字显示:

相位读数为0o~359.9o,分辨力为0.1°

2)移相网络:

(a)输入频率范围:

20KHZ—200KHZ(b)连续相移范围-45度---+45度.(c)输出的正弦信号峰峰值可在0.3v—5v之间变化.

3)信号产生:

(a)频率范围:

10HZ—20KHZ;

(b)频率可实现可调.(c)输入相位可欲置.

六,结论

本设计基本完成了基本部分和发挥部分的要求,用单片机89C52产生了频率在10HZ—20KHZ的正弦波,实现了相移在-60度--+60度的连续可调,测量部分采用高速计数器与单片机实现了在0度—359.9度的测量。

精确度达到了0.1度。

其实现了数字化的相位测量。

但此设计在高频的性能稍差。

有待改进。

附:

#pragmaoptimize(4)

#include"

stdio.h"

math.h"

absacc.h"

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]

/*xdatasignedintua[255];

*/

/*------------------INT------------------------*/

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;

/*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;

/*********************************************/

voidcepin()

{EA=0;

TR1=0;

TH1=TL1=0;

ii=0;

jj=0;

ff=0;

tt=0;

while(!

T0){T0=1;

};

TR1=1;

while(T0){T0=1;

ii=TH1;

jj=TL1;

tt=ii*0x100+jj;

ff=1000000.0/tt;

bit6=1;

if(tt<

=9999){TR1=0;

TL1=0;

TH1=0;

TMOD=0x51;

TL0=0xf0;

ms=98;

bit7=0;

EA=1;

IE=0x82;

bit6=0;

bit7){}

ii=TH1;

ff=tt;

tt=1000000.0/ff;

fff=ff;

IP=0x04;

EA=1;

voidcexwei()

T0=1;

while(T0){if(!

T1)bit2=1;

T1=1;

T0){if(bit2){if(T1){jjb=TL1,iib=TH1;

bit2=0;

}}

else{if(!

}}

iia=TH1;

jja=TL1;

tta=iia*0x100+jja;

ff=1000000.0/tta;

ttb=iib*0x100+jjb;

tt=tta-ttb;

if(fff>

20000.0){tta=1000000.0/fff;

fa=360.0-360.0*tt/tta;

if(fa<

=0.0001)fa=0.001;

voidcexwei6()

{

cexwei();

aaa[0]=fa;

aaa[1]=fa;

aaa[2]=fa;

aaa[3]=fa;

aaa[4]=fa;

aaa[5]=fa;

fa=(aaa[0]+aaa[1]+aaa[2]+aaa[3]+aaa[4]+aaa[5])/6;

/***************************************/

voidcerlc()

T0){};

while(T1){};

T1){};

i=TH1;

j=TL1;

tt2=i*0x100+j;

/*--------------goodl,goodm------------------*/

voidgood(void)

{/*P8279K=0xd1;

0x80;

}*/

P8279K=0x90;

if(bit0){P8279D=0x6f;

P8279D=0x5c;

P8279D=0x5e;

P8279D=0x40;

else{P8279D=0x6f;

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;

=360){uuh=0;

ld[0]=0x77;

ld[1]=0x77;

ld[2]=0x00;

/*------------------------------------------------------*/

voidmain(void)

{aaa:

start();

while(key==0x0f)good();

bbb:

cepin();

if(key==0)dispff();

elsedispfa();

disp();

/*if(bit6)*/

{bit6=0;

while(bit0){if(key==0)dispff();

while(!

bit0){if(key==0)dispff();

gotobbb;

cepin();

cerlc();

if(tt2>

=tt)fa=360.0-fa;

dispff();

dispfa();

/********************float************************

for(i=0;

=49;

i++){}

{for(j=i+1;

j<

j++){if(ua[i]>

ua[j]){uu=ua[i];

ua[i]=ua[j];

ua[j]=uu;

}}}

uul=0;

for(i=10;

=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);

**********************float************************/

gotoaaa;

voidt1int();

0x77,0x7c,0x58,0x5e,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1