毕业设计论文《低频数字式相位测量仪》
低频数字式相位测量
低频数字式相位测量作者:韦志考任云庆任安摘要:本系统主要由相位测量、数字式移相信号发生器和模拟移相网络三大模块组成。
分别由两块单片机独立地实现控制与显示功能。
采用DDS技术生成两路正弦波信号,并通过改变存储器中数据读取的起始地址来实现数字移相的功能,用Ф-T变换技术来实现相位差的测量,使得测量分辨率精确到0.1º,测得的频率与相位差值送入LCD进行显示,加入红外键盘功能,使得系统具有智能化、人性化的特色。
一、方案比较与论证1 、相位测量部分方案一:传统的模拟法。
该方案采用倍频、计数、门控等电路。
此方法难以实现大频率X围的相位测量,精度低、稳定性差。
方案二:采用双通道高速A/D对输入的信号进行采集,然后FFT和基波的矢量分解的方法计算出这两个信号的基频和相位。
该方案精度高,算法简单,对畸变波形有一定的处理能力。
但要求在AD采集前作频率测量,在信号频率较高时,需要使用超高速AD转换器并且需要较高的计算能力,一般需要使用DSP进行信号处理。
硬件复杂,难度较高。
方案三:整形鉴相法。
将输入两相位不同的正弦波通过比较器进行整形,变成方波。
然后将两方波进行异或比较输出,从而得到两输入信号的过零时间差和两信号的周期,通过计算获得信号的频率和相位。
该方案较简单,普通单片机需要通过扩展外部电路,增强计时、计数能力就能达到满足题目要求的精度。
2、数字式移相信号的产生部分方案一:采用单片机的定时器产生数字信号,通过滤波或锁相等环节输出正弦信号。
该方案对单片机要求低,但产生的信号频率低,频率步进大,模拟部分产生较大相移,难以保证输出的相位精度,很难达到设计要求。
方案二:采用硬件直接数字频率合成(DDFS)技术产生数字信号。
直接频率合成方法具有频率转换时间短、近载频相位噪声性能好、精度高,产生的信号频率X围宽等优点,使用FPGA实现,简化了硬件电路。
3、模拟移相部分采用常见的模拟器件电阻,电位器,电容和运放的组合电路实现移相。
低频数字式相位测量仪
低频数字式相位测量仪摘要本系统以AT89S51单片机为核心,由相位测量仪、移相网络、数字式移相信号发生器三个模块组成。
数字式相位测量仪实现了对20Hz到20KHz的峰-峰值为1V到5V的正弦信号、方波信号等进行精确的测频、测相的功能;移相网络则采用RC移相网络来实现,在100Hz、1KHz、10KHz三种情况下,通过切换电阻值的方法实现了最大相移±45°的调整。
被测信号的相位差、频率则通过数码管显示。
整个系统设计硬件结构简单,软件采用汇编语言实现,程序简单可读性强,效率高。
与传统的电路系统相比,具有处理速度快、稳定性高、性价比高的特点。
关键词:低频;相位测量;单片机;可编程逻辑器件AbstractThis is a system whose core is based on AT89S51 single chip and is composed of three modules by the phase measurement device,phase-shifting network,digital phase shifting generator.The digital phase measurement device can precisely measure the frequency and phase of sine signal from 20Hz to 20KHz with the voltage amplitude from 1Vp-p to 5Vp-p. The phase-shifting network uses the RC net. By changing the value of resistor, it can make the phase shift 45 degrees at most . The data are displayed on numberal displayer. Hardware is simple and software is realized by compiling language.Compared with traditional circuit, it has many advantages of faster processing speed, good stability and high ratio between property and price.Key W ords: low frequency; phase measure; MCU; CPLD目录1 引言 (1)2 总体设计 (2)2.1 方案论证 (2)2.1.1 移相网络 (2)2.1.2 数字式相位测量仪 (3)2.1.3 数字式移相信号发生器 (6)3 硬件设计 (8)3.1 移相网络 (8)3.2 相位测量仪 (11)3.2.1 信号调理部分 (11)3.2.2 CPLD测量模块 (12)3.2.3 单片机控制模块 (13)4 软件设计 (17)4.1 CPLD测量模块 (17)4.2 单片机控制模块 (19)5制作和调试 (21)5.1 硬件部分的制作和调试 (21)5.2 软件部分的制作和调试 (22)6总结 (22)致谢 (24)参考文献 (25)附录1 系统实物图 (26)附录2 实验原理图 (27)附录3 毕业设计作品说明书 (28)1 引言随着科学技术的突飞猛进的发展,电子技术广泛的应用于工业、农业、交通运输、航空航天、国防建设等国民经济的诸多领域中,而电子测量技术又是电子技术中进行信息检测的重要手段,在现代科学技术中占有举足轻重的作用和地位。
低频数字式相位测量仪设计报告
低频数字式相位测量仪摘要本低频数字式相位测量仪由数字式移相信号发生器、模拟移相网络、数字相位测量部分以及人机接口等模块组成。
数字式移相信号发生器采用双路时统DDS技术,基于FPGA实现。
相位测量部分采用基于相位—时间变换的等精度测量技术,由单片机控制CPLD实现。
本系统硬件设计应用了EDA技术,软件设计采用基于C51的模块化设计技术,总体上较好地完成了题目基本和发挥部分的要求。
并增加了扫频、扫相、扫幅及相位打印功能,扩展了模拟移相器移相范围及相位显示形式。
关键词:时统DDS数字移相等精度数字测相 FPGA/CPLD一.方案论证与选择根据题目要求本系统可分解为数字式移相信号发生器、模拟移相网络及相位测量部分等三个模块。
模拟移相网络已由题目给出,以下对另两部分实现方案进行论证。
(一)数字式移相信号发生器方案论证方案一:用PLL 频率合成技术产生正弦波信号,将其通过FFT 变换到频域,再乘以一定的旋转因子,即相当于时域的时延(移相)。
不同的旋转因子对应不同的移相,但对不同频率的输入信号进行移相时,需要调整滤波器参数或改变滤波器采样率。
前者运算量较大,后者需要用到PLL 技术,硬件繁琐。
方案二:应用单片机产生移相信号。
将正弦波信号数字化,形成数据表存入FLASH 或EPROM 等非易失性存储芯片中,单片机交叉读出该数据表中的数据,形成两路波形信号,送往两路D/A ,得到两路具有一定相位差的正弦波。
这种处理方式的实质是将数据地址的偏移量映射为信号间的相位差。
但受单片机速度限制,这种方法难以产生较高频率的信号。
方案三: 采用DDS 技术产生移相信号。
1、DDS 频率合成DDS 频率合成的基本原理是使用稳定的参考时钟源作为抽样时钟,通过地址累加来寻址波形查找表得到波形的幅度抽样值,然后将抽样值经D/A 转换和低通滤波输出平滑的波形。
图1.1给出了DDS 的工作原理框图。
相位累加器波形查找表DAC低通滤波器系统时钟K频率控制字NN Hf0图1.1 DDS 基本原理框图图1.1中相位累加器(N 为位数)以频率控制字K 为间隔对地址进行累加,将累加结果的最大有效位数H 作为ROM 查找表的地址(ROM 中存储波形数据),通过D/A 转换将所查地址单元的波形数据转化为模拟量,再由低通滤波器滤出其基波成分。
低频相位测量仪硬件电路设计
低频相位测量仪硬件电路设计本设计提出了一种基于AT89C51单片机开发的低频数字相位测量仪的方案。
主要包括相位测量模块、单片机最小系统、显示模块、电源模块的设计。
可以对低频率范围的信号进行相位等参数的精确测量,测相绝对误差不大于1°。
相位测量模块采用对输入的两路信号(同频率、不同相位)通过比较器整形、鉴相器异或之后得到的相位差,输入到单片机的中断口进行数据采集处理;采用数码管显示被测信号的相位差。
硬件结构简单,软件采用汇编语言实现,程序简单可读写性强、效率高。
与传统的电路系统相比,其有处理速度快、稳定性高、性价比高的优点。
关键词相位差单片机低频误差(2.11.1 课题研究内容我们设计的数字式相位测量系统电路, 主要是由MCU 芯片和小规模的集成电路 构成。
两路待测信号(同频率、不同相位的两路信号)通过整形电路,变成矩形波信号, 再通过鉴相器,得到两路波形的正脉冲宽度,也就是所要测量的两路信号的相位差所 对应的时间差。
以上部分构成了相位测量系统的相位测量电路 ⑻。
将其送到MCU 外部中断口,再通过MCU 处理数据(数字滤波、计算、送数据、 键盘处理等),最后得到我们所要的相位值,并将其通过数码管显示出来。
2 方案选择2.1 设计方案论证从功能角度来看,相位测量仪要完成信号相位差的测量。
相位测量仪有两路输入 信号,也是被测信号,他们是两个同频率的正弦信号,频率范围为 20Hz~20KHz (正 好是音频范围),幅度为U PP =1~5V (可以扩展到0.3~5V ),但两者幅度不一定相等。
相位和相位差的概念⑷:令正弦信号为:A t ]= AmSi n — I 2.1式中Am 称为幅值(最大值),且Am 7;2A ,A 称为有效值;二t -‘t •称为相位,称为初相位,「称为角频率。
Am 、「、;:0称为正弦量的三要素 只有两个同频率的(正弦)信号才有相位差的概念。
不妨令两个同频率的正弦信号为: Ai (t )=A m Sin (豹t *%i ) ( 22)A 2 t A A zm Sin t02 则相位差:71 - t 0^ ^'t ' ' 0^ ~ 01 i 02(2.3) 由2.3式中可看出,相位差在数值上等于初相位之差,二是一个角度 不妨令二二T ,其中匚是相位差二对应的时间差,且令T 为信号周期,则有比例关系:「360 丁:二(2.4) 可以推导得到:n - TJT 3 6 0(2.5)式子2.5中可以说明,相位差二与一一对应,可以通过测量时间差及信号周期T,计算得到相位差v,这就是相位差的基本测量原理。
低频数字式相位测量仪电子信息工程等专业毕业设计毕业论文[管理资料]
摘要频率、相位测量仪器在生产和科研的各个部门被广泛应用。
,对测量精度的要求也越来越高。
针对传统的测频法和测周法测量精度不高的缺陷,,以AT89C51单片机为控制器件的新型频率测量方法:等精度测量方法。
利用同步门控制单片机的双计数器进行“相关计数”,应用单片机的数学运算和控制功能,实现了高低频率等精度测量,克服了通用频率计由于±1MSB误差在高低频段测量精度不等的缺陷,既满足测量精度的要求,又满足系统反应时间的要求。
用此方法实现的频率计具有高精度、低成本、易改进的特点,具有一定的实用性。
本文主要介绍了其系统构成和工作原理,以及系统的软硬件设计。
本论文基于相位数字化原理,针对传统的数字式相位计采用的脉冲填充计数法测量精度不高,误差大的缺陷,利用单片机与外部电路相结合,采用高频脉冲填充计数,多周期等精度测量的方法实现了相位差的高精度测量,着重介绍系统原理及软硬件实现方法。
关键词:单片机;等精度;误差;测相仪;相位差;计数器abstractFrequency and phase measurements in production and research equipment widely used in all sectors. Achieve digital measurements. Automation. Intelligent applications has become necessary now to the measurement accuracy requirements are increasingly high. In traditional law and geodetic survey frequency measurement accuracy is not high Week law wrong on a theory based on the number of frequencies to AT89C51 Danpianji control devices for the new frequency measurement methods : such precision measurements. Use Chanpianji double rod "relevant calculations", the application Danpianji the arithmetic and control functions, such as achieving a high frequency precision measurements overcome +1MSB overall frequency of errors in the measurement of low frequency bands ranging from precision errors to meet the measurement accuracy requirements and system response time meet the requirements. The frequency of use of this method to achieve a high-precision, low-cost, easy to improve features, a certain relevance. This article introduces the principles of its composition and working systems, as well as system software and hardware design.This paper based on the principles of 13,800 digitized against traditional digital phase of a pulse recharge count law is not high precision measurements, error big mistakes, and the use of external circuits Chanpianji combined using HF pulse recharge number, such as multi-cycle approach to achieve precision measurements of the high-precision measurement of transmitters, highlight the principles and system software and hardware to achieve.Keywords:Chanpian; such precision; Error; Testing of devices; Pairs; Counter目录绪论 (1)第一章系统工作原理 (3)1.1频率测量原理 (3)1.2相位测量原理 (4)第二章系统总体设计思路及方案分析 (5)2.1测频 (5)2.1.1 脉冲数倍频测频法 (5)2.1.2 脉冲数分频测频法 (5)2.1.3 测频-测周结合法 (5)2.1.4 多周期等精度测量方法 (6)2.2测相 (8)2.2.1 脉冲填充计数测相法 (8)2.2.2 多周期等精度测相法 (8)第三章系统硬件设计电路 (11)3.1测频电路设计 (11)3.1.1 信号放大整形电路 (11)3.1.2 外部分频电路 (13)3.1.3 同步门逻辑控制电路 (14)3.1.4 与单片机接口显示电路 (15)3.1.5 扩展报警电路 (16)3.2测相电路设计 (18)3.2.1 前级放大整形电路 (18)3.2.2 相位差测量电路 (20)3.2.3 相位极性判别电路 (21)第四章系统软件设计 (22)4.1主要任务 (22)4.2系统流程设计 (22)4.3总体流程图 (23)结论与分析 (24)致谢 (25)参考文献 (26)附录 (27)绪论随着无线电技术的发展与普及,“频率”已成为广大群众所熟悉的物理量调节收音机上的频率刻度盘可使你选听到你喜欢的电台节目;调节电视机上的微调旋钮可使得电视机对准电视台的广播频率,获得图象清晰的收看效果,这些已成为人们的生活常识。
基于stm32的低频数字相位测量仪毕业论文
毕业论文基于stm32的低频相位测量仪设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
电气电子毕业设计100竞赛论文——低频数字式相位测量仪
电子竞赛——低频数字式相位测量仪目录摘要 (1)一.设计任务与设计要求 (2)1.1 设计任务 (2)1.2 设计要求 (2)1.2.1 基本要求 (2)1.2.2 发挥部分 (2)二.相位测量 (2)2.1相位测量方案选择与论证 (3)2.2相位测量框图 (3)2.3相位测量硬件电路设计与器件选择 (3)2.3.1 相位比较电路 (4)2.3.2 CPU与外围电路 (5)2.3.3键盘与显示电路 (6)2.3.4直流稳压电源电路 (6)2.4 测试方法与测试结果 (7)2.4.1 相位测试方法 (7)2.4.2相位测试结果 (7)2.4.3测量工具 (7)三.频率测量方案 (7)3.1 方案选择与论证 (7)3.2 硬件电路设计 (9)3.3 频率测量测试及结果 (9)3.4 测量工具 (10)四.移相网络电路参数计算 (10)4.1移相网络电路框图 (10)4.2移相网络电路参数计算 (10)4.3 移相网络测试 (12)4.4 测量工具 (12)五.发挥部分数字移相信号发生器 (12)5.1方案论证 (12)六.系统软件设计 (15)七.总的结果分析 (16)八.结论 (16)附录:移相信号发生器电路 (17)10-03设计题目:低频数字式相位测量仪参赛队员:刘传登韩春鹏王忠杰指导教师:车新生摘要本设计实现的是对两列信号的相位差的精确测量并数字显示测量结果。
为达到要求的精度本设计采用了将相位转换为直流电压的间接测量方法。
用16位A/D对输出的直流电压进行采样,送入单片机进行相位显示。
这样就使得相位差就具有足够高的分辨度,完成了任务要求。
在单片机P89C51实现以上功能的同时,利用单片机中的多位计数器/定时器对输入信号进行等精度频率测量。
为测量方便,又制作了移相网络电路,设计了移相信号电路和应用程序。
整个装置具有原理简单,测量精度高,测量范围宽,测量结果显示直观的特点。
关键词:相位测量等精度测量移相网络一.设计任务与要求1.1设计任务设计并制作一台低频相位测量系统,包括相位测量仪,数字式移相信号发生器和移相网络三部分。
【电子设计】低频数字式相位测量仪制作报告
低频数字式相位测量仪制作报告摘要本系统由低频数字相位频率测量仪,输入移相网络和数字式移相信号发生器组成。
利用CPLD,单片机控制模块实现了高精度的频率相位测量。
数字式移相信号发生器采用直接数字频率合成(DDFS)技术,输出频率范围宽,控制精度高。
由于在DDFS系统中采用了双D/A输出形式,信号幅度采用数字调节方式,输出信号幅度稳定。
移相网络的输入采用了自动增益控制(AGC),实现了高达48dB的宽范围输入,实现信号的自动稳幅输出。
此外,本系统友好的人机界面,合理实用的功能扩展,使整个系统更利于实际使用。
一.方案设计与论证1.相位频率测量部分方案一:对输入的两路正弦信号分别进行过零比较,并对生成的两路方波信号进行异或运算,得到占空比与相位差成正比的脉冲信号。
将该正弦送入单片机系统,对信号的脉宽进行测量,经计算得到输入的两路正弦信号的相位差。
单片机系统直接对过零比较后的方波信号计数,得到输入信号频率。
经单片机系统处理后,显示测量结果。
此方案电路相对简单,容易实现,但是受到单片机工作速度的限制,精度不高。
方案二:对输入的两路正弦信号分别进行过零比较,并对生成的两路方波信号进行异或运算,得到占空比与相位差成正比的脉冲信号。
由CPLD对相位差脉冲信号和频率信号进行计数,将计数结果送入单片机,单片机经过简单计算后显示测量结果。
此方案可以提高系统的测量精度,单片机要实现的功能相对简单,可以实现友好的人机界面。
缺点是电路相对复杂,成本较高。
系统框图详见图2-1。
综合考虑,这里采用了方案二。
2.移相网络部分方案一:直接采用题目中提供的参考电路。
此电路实现简单,但对于不同幅度的输入信号,不能做到自动稳幅输出。
对于小信号输入,无法满足题目输出峰-峰值0.3~5V的要求,除非采用可变增益放大器,在没有单片机控制的情况下,显然带来诸多不便。
方案二:以题目中提供的参考电路为基础,在信号输入前端加入自动增益控制电路(AGC),以适应各种幅度的信号输入。
低频数字式相位测量仪
低频数字式相位测量仪摘 要此系统由相位测量仪、数字式移相信号发生器和移相网络三部分组成。
为使系统更加稳定,使系统整体精度得以保障,本电路两块T89C52为核心控制器件分别控制相位测量、数字式移相信号发生,在数字式移相信号发生部分采用了锁相技术、CPLD 等技术, 使输出波形精度大大提高,并可对频率自动校验,提高频率稳定性。
一、题目要求(一) 任务设计并制作一个低频相位测量系统,包括相位测量仪、数字式移相信号发生器和移相网络三部分,示意图如下:图2 移相网络(二) 要求1、 基本要求(1)设计并制作一个相位测量仪(参见图1)a. 频率范围:20H z ~20KH z 。
b. 相位测量仪的输入阻抗≥100K Ω。
c. 允许两路输入正弦信号峰—峰值可分别在1V ~5V 内变化。
图1 相位测量仪图2 数字式移相信号发生器d.相位测量绝对误差≤2°e.具有频率测量及数字显示功能.f.相位差数字显示:相位读数为0°~359.9°,分辨率为0.1°。
(2)参考图2制作一个移相网络a.输入信号频率:100H z、1KH z、10KH z。
b.连续相移范围:—45°~+45°。
c.A¹、B¹输出的正弦信号峰—峰值可分别在0.3V~5V内变化。
2、发挥部分(1)设计并制作一个数字式移相信号发生器(图3),用以产生相位测量仪所需的输入正弦信号,要求:a.频率范围:20H z~20KH z,频率步进为20H z,输出频率可预置。
b.A、B输出正弦信号峰—峰值可分别在0.3V~5V内变化。
c.相位差范围0°~359°,相位差步进为1°,相位差可预置。
d.数字显示预置的频率、相位差值。
(2)在保持相位测量仪测量误差和频率范围不变的条件下,扩展相位测量仪输入正弦信号峰—峰值至0.3V~5V范围。
(3)用数字移相信号发生器校验相位测量仪,自选几个频点、相位差值和不同幅度进行校验。
低频数字式相位测量仪 vhdl fpga
低频数字式相位测量仪栏目树形导航| 首页 | 学习中心 | 课设与竞赛 | 下载中心 | 图片现场 | 技术留言 | 关于我们 | 本站提供 ||竞赛与设计首页|关于竞赛|历届电子竞赛题目|竞赛作品选编|历届仪器元器件范围|单片机课程设计|您现在的位置:奔跑的单片机 >> 课设与竞赛 >> 竞赛作品选编 >> 信息正文用户登录新用户注册低频数字式相位测量仪热【字体:小大】低频数字式相位测量仪作者:lintel 信息来源:本站原创点击数:8523 更新时间:2006-4-3低频数字式相位测量仪(C题)摘要:设计了一基于现场可编程门阵列(FPGA)的低频数字式相位测量仪。
该测量仪包括数字式移相信号发生器和相位测量仪两部分,分别完成移相信号的发生及其频率、相位差的预置及数字显示、发生信号的移相以及移相后信号相位差和频率的测量与显示几个功能。
其中数字式移相信号发生器可以产生预置频率的正弦信号,也可产生预置相位差的两路同频正弦信号,并能显示预置频率或相位差值;相位测量仪能测量移相信号的频率、相位差的测量和显示。
两个部分均采用基于FPGA的数字技术实现,使得该系统具有抗干扰能力强, 可靠性好等优点。
关键词:现场可编程门阵列(FPGA)数字式相位测量仪Abstrct:The paper deals with designing of a low frequency phasemeasurement system based on FPGA technology. This phase measurement system includes two modules---a signal generator and a phase measurementsubsystem. Its signal generator module can generate a sin wave withpreconcerted frequency and two waves with preconcerted phase difference. It can continuously change signal phases through phase shifting. And its phase measurement subsystem has functions of measuring signal phase andphase difference of two signals. All of its three modules adopt digitaltechnology base on FPGA. This system is characteristic of its strongantijamming performance and fine stability.Key words:FPGA/Digital/Phase measurement system目录0 引言 (3)1 系统设计1.1设计要求 (3)1.2 方案比较 (4)1.2.1相位测量仪方案 (4)1.2.2移相网络方案 (4)1.2.3正弦波信号发生器方案 (5)1.2.4频率测量方案 (5)1.2.5幅度控制方案 (6)1.2.6滤波选择方案 (6)1.2.7显示界面方案 (7)1.3方案论证 (7)1.3.1总体思路 (7)1.3.2设计方案 (7)2单元电路设计2.1相位测量仪 (7)2.1.1原理方框图 (7)2.1.2相位测量原理 (8)2.1.4电路图分析………………………………………………………………………………2.2数字式移相信号发生器 (10)2.2.1 数字移相原理 (10)2.2.2正弦波信号发生 (10)3 软件设计3.1用VHDL编写程序…………………………………………………………………………123.2 程序流程 (12)3.2.1 等精度频率测量的实现 (12)3.3程序清单仿真 (13)4 系统测试……………………………………………………………………………………145 结论…………………………………………………………………………………………17参考文献……………………………………………………………………………………17 附录 (17)0.引言同频率正弦信号间的相位差测量在电工技术、工业自动化、智能控制及通讯、电子等许多领域都有着广泛的应用,如电工领域中的电机功角测试,介质材料损耗角的确定等。
低频数字相位测量仪
、设计任务和技术要求1.1设计内容设计制作一个低频数字相位测量仪,要求使用单片机和 FPGA 来共同实现,FPGA 完成测量时间差,而单片机完成数据的读取、键盘控制和显示等功能。
1.2设计要求频率范围:20Hz~20kHz 。
相位测量仪的输入阻抗:仝 允许两路输入正弦信号峰峰值可分别在 1~5V 变化。
相位测量绝对误差W 2°。
具有频率测量及数字显示功能。
相位差数字显示,分辨力为 0.1 主芯片:Altera 的 FLEX10K10。
要求扩展键盘和显示接口电路,可以进行键盘控制以及显示等功能。
二、系统设计方案2.1方案论证根据系统的设计要求,本系统可分为三大基本组成部分:1. 数据采集电路数据采集电路主要是运用 FP GA/C PLD 采集两个同频待测正弦信号的频率和相位差所对应的时间差。
2. 数据运算控制电路数据运算控制电路主要是运用单片机读取FPGA/CPLD 采集到的数据,并根据这些数据计算待测正弦信号的频率及两路同频正弦信号之间的相位差。
3. 数据显示电路数据显示电路是通过功能键切换用LCD 液晶模块显示出待测信号的频率和相位差。
4. 整形电路由于FPGA 对脉冲信号比较敏感,而被测信号是周期相同、相位不同的两路正弦波信号, 为了准确地测出两路正弦波信号的相位差及其频率,我们需要对输入波形进行整形,使正弦 波变成方波信号,并输入 FPGA 进行处理。
整个系统的总体原理框图如图1) 2) 3) 4) 5) 6)7) 8)lOOkQ 。
2.1所示。
图2.1系统原理框图2.2程序设计框图图22程序设计流程图三、硬件电路图的设计与分析3.1 FPGA数据采集电路图3.1数据采集电路FPGA数据采集电路的功能就是实现将待测正弦信号的周期、相位差变为19位的数字量。
根据系统的总体设计方案,FPGA数据采集电路的输入输出信号有:CLK ――系统工作时钟信号输入端;A,B――两路被测信号输入端;EN ――单片机发出的传送数据使能信号;RSEL ――单片机发出的传送数据类型信号;DATA[18..O] ―― FPGA到单片机的数据输出口。
低频数字式相位测量仪
低频数字式相位测量仪设计报告目录1方案设计与论证2 1.1移相网络设计方案2 1.2相位测量仪设计方案3 2系统设计3 2.1总体设计32.1.1系统框图3 2.1.2模块说明4 2.2各模块设计及参数计算4 2.2.1移相网络设计及R、C参数设定4 2.2.2相位测量仪设计52.2.3软件系统63.结论64.参考文献75.附录7系统设计图7摘要本系统以单片机为核心,辅以必要的模拟电路,构成了一个基于具有高速处理能力的低频数字式相位测量仪。
该系统由相位测量仪和移相网络组成;移相网络能够产生-45~45°相位差的两路信号;相位测量仪能够测量出具有0°~359°的两路信号的相位差,绝对误差小于2°,具有频率测量及数字显示功能。
经过实验测试,以上功能均可以准确实现。
关键字:单片机移相相位差数字显示1方案设计与论证1.1移相网络设计方案本设计的核心问题是信号的模拟移相程控问题,其中包括波形相位以及波形幅度的程控。
在设计过程中,我们首先考虑了赛题中提供的方案。
如图1-1所示:V1VV2图1-1该模拟电路主要采用高、低通电路的临界截止点来产生极值相位的偏移。
当高、低通电路的截止频率等于输入信号频率时,根据其幅频特性,信号波形所产生的相位分别为45°和-45°,恰好满足赛题要求的连续相移范围-45°~45°的调节。
由于高、低通电路在截止点时会产生幅度的衰减,故电路在后级加了放大电路,且采用了电压串联负反馈的方式提高了输入阻抗并降低了输出阻抗,电路最后还设计有调幅装置,能够很好地满足A、B输出的正弦信号峰—峰值可分别在0.3V—5V范围内变化。
综上所述,该移相网络能够满足赛题的所有要求,且电路设计简单、易行,故我们直接采用了这种方式来产生模拟的相移输出。
1.2相位测量仪设计方案方案一:检相器可以利用正弦波形的正半周和负半周的对称特性。
低频数字相位测量仪毕业设计毕业论文及文献综述[管理资料]
摘要本文设计的是低频数字相位测量仪的软件控制部分。
在设计中采用MCU与FPGA 相结合的方案,将软件部分系统分为控制数据采集处理和单片机控制显示两部分的软件设计,本部分分软件设计充分发挥单片机控制运算能力强的特点来对其各个模块进行软件编程。
数据的采集利用FPGA去完成,可以准确地采集到两个同频正弦信号的相位差所对应的时间差以及信号的周期,从而更好地提高系统的可靠性。
再根据单片机具有较强的运算、控制能力的特点,我们通过对单片机最小系统来进行编程以之完成读取FPGA的数据,并根据所读取的数据计算待测信号的频率及两路同频信号之间的相位差。
同时通过软件编程来实现功能键的切换,由显示模块显示待测信号的频率和相位差。
关键字:数据采集; 单片机; 频率; 相位差;ABSTRACTThis paper is designed to phase low-frequency digital measuring instrument. this design which uses the combination of The MCU and FPGA will be divided the hardware into two parts of data acquisition processing and MCU minimum system ,it give full use to the features of MCU-controlled computing for power , the FPGA data acquisition for high speed and resource-rich . we use the FPGA to complete collection of the data, so we can accurately collect the phrase difference between the two-phase sinusoidal signal ,corresponding to the time difference and the cycle of signal, so as to greatly improve the reliability of the system. Then according to characteristics of the shrapnel-strong operation and the ability to control, we use the minimum system of MCU to complete the reading of data FPGA, then according to the data read calculate the frequency of signals under test and the phase difference between the two-way same frequency signal. At the same time, through the switching of function keys ,the frequency and phase of signals under test Will be showed by moduleKeyword:Data; Acquisition; SCM; Frequency; phase目录绪论 (1)相位测量原理 (2)输入与采集 (2)频率的测量 (2)相位差对应的时间差的测量 (3)2 设计要求与设计方案 (4)设计要求 (4)设计方案 (4)设计思路 (4)各模块的作用 (4)设计方案 (4)3 整机电路原理 (6)MCU控制FPGA电路 (6)MCU控制显示电路 (7)整机电路原理 (8)4 软件设计 (10)MCU控制FPGA的软件设计 (10)MCU控制FPGA电路框图 (10)软件设计思路 (11)MCU控制FPGA各程序流程图 (11)MCU控制显示的软件设计 (13)显示软件设计 (13)单片机控制显示程序流程图 (14)5 程序设计 (15)单片机的源程序 (15)结论 (27)致谢 (28)参考文献 (29)绪论随着科学技术的突飞猛进的发展,电子技术广泛的应用于工业、农业、交通运输、航空航天、国防建设、科研、生产等国民经济的诸多领域中,而电子测量技术又是电子技术中进行信息检测的重要手段,在现代科学技术中占有举足轻重的作用和地位。
低频数字相位测量仪..
现代电子学实验报告实验题目:低频数字相位测量仪姓名:年级:2012级指导教师:完成日期:2015年10月14日原创性声明本人声明本实验报告涉及的电路图、程序代码均为自己设计,没有抄袭他人的成果。
特此声明!声明人:目录摘要 (1)一、系统设计要求与技术指标 (2)二、方案选择与可行性论证 (2)2.1总体框架 (2)2.2频率测量 (2)2.3相位测量 (3)三、系统模块设计 (3)3.1信号整形电路的设计 (3)3.2 FPGA数据采集电路的设计 (5)3.2.1硬件部分 (5)3.2.2精度分析 (5)3.2.3软件部分 (5)3.3、单片机数据运算控制电路的设计 (6)3.3.1硬件部分 (6)3.3.2软件部分 (7)3.4、数据显示电路的设计 (10)3.4.1显示部分设计方案 (10)3.4.2数据显示电路 (10)四、参考资料 (12)附录 (13)主要器件介绍 (13)FPGA数据采集程序 (15)硬件电路图 (21)低频数字式相位测量仪的设计摘要:基于过零检测法原理,以单片机89C51和可编程逻辑器件CPLD为核心,从数据采集﹑数据运算控制、显示等电路功能电路设计,实现了一个低频数字式相位测量仪系统。
在此过程中,采用MCU与FPGA相结合的方案,将软件部分为数据采集、运算、控制和单片机控制显示两部分,充分发挥单片机具有的控制、运算能力强,FPGA数据采集速度快的特点来对实现各个模块功能进行程序设计,同时还对相关程序进行调试和仿真,验证了其可行性,使其性能接近最优。
而对硬件电路设计包括采用施密特触发器组成的整形电路、显示电路、FPGA 芯片及单片机外围电路等,实现了对频率信号频率、相位差的显示,同时配合系统完成数据采集、运算、控制等功能。
在上述基础上,本文还对有关频率信号的频率、相位测量技术及理论进行了研究和分析,对FPGA可编程芯片、单片机控制等的运用进行了学习,从而为课题研究奠定了理论基础。
低频率数字相位差测量仪设计
引言相位差测量数字化的优点在于硬件成本低、适应性强、对于不同的测量对象只需要改变程序的算法,且精度一般优于模拟式测量。
在电工仪表、同步检测的数据处理以及电工实验中,常常需要测量两列同频率信号之间的相位差。
例如,电力系统中电网并网合闸时,需要求两电网的电信号的相位差。
相位差测量的方法很多,典型的传统方法是通过示波器测量,这种方法误差较大,读数不方便。
为此,我们设计了一种基于锁相环倍(分)频的相位差测量仪,该仪器以锁相环倍(分)频电路为核心,实现了工频信号相位差的自动测量及数字显示。
论文摘要本系统为低频数字式相位/频率测量仪,由移相网络模块、相位差测量模块及频率测量模块三大部份构成,其系统功能主要是进行相位差测量及频率测量。
移相网络主要是由RC移相电路和LM324运放电路组成,将被测信号送入移相网络,经RC移相、LM324隔离放大,产生两路信号,一路为基准信号经过波形转换,另一路为移相后的信号。
分别经过波形转换、整形、二分频送给相位测量模块及频率测量模块。
相位差测量仪主要是由锁相环PLL(Phase Lock Loop)产生360倍频基准信号和移相网络的基准信号与待测信号进行异或后的信号作为显示器的闸门电路和控制信号。
频率测量模块主要是用计数法测量频率的,它是有某个已知标准时间间隔Ts内,测出被测信号重复出现的次数N,然后计算出频率f=N/Ts.显示电路模块主要是由计数器、锁存器、译码器和数码管组成。
低频率数字相位测量仪目录1设计任务书 (3)2设计方案概述 (3)3系统的组成………………………………………………………………………………4.3.1总体框图 (4)3.2移相网络部分 (4)3.3相位测量部分 (6)1)波形转换、整形放大 (8)2)锁相环倍频 (9)3)闸门电路 (11)4)控制门 (11)5)计数器 (11)6)锁存器 (11)7)显示译码器与数码管 (11)3.4频率测量部分 (12)1)数字频率计的基本原理 (12)2)系统框图 (12)4附录………………………………………………………………………一、设计任务书(一)任务设计仿真一数字相位计(二)主要技术指标与要求:(1)输入信号频率为1KHZ~20KHZ可调(2)输入信号的幅度为10mV(3)采用数码管显示结果,相位精确到0.1°(4)采用外部5V直流电源供电(三)对课程设计的成果的要求(包括图表)设计电路,安装调试或仿真,分析实验结果,并写出设计说明书。
低频数字式相位测量仪(余蜜)
低频数字式相位测量仪作者:余蜜 刘勇 尹佳喜(华中科技大学) 获奖队编号:1-32赛前辅导教师:刘志强 文稿整理辅导教师:熊蕊摘要:本设计以凌阳16位单片机S PCE061A 和Lattice 公司的CPLD ispLSI 1032E 为核心,由相位测量、移相网络和数字式移相信号发生器三个子系统组成。
采用CPLD 与单片机相结合的方法,充分利用单片机丰富的资源以及CPLD 的高速特性,大大地拓宽了系统的工作频带,提高了系统的灵敏度和精确度,使系统运行稳定。
利用红外键盘使系统可以远距离无线控制。
关键词:相位测量,移相,CPLD ,DDS一 方案论证与设计1 相位测量仪方案方案一:单周波计数法。
将有相位差的两路方波信号进行”异或”后作为闸门,在高电平时,利用外部高频信号进行计数,在下降沿将数据读出,低电平时对计数器清零。
设晶振频率为f c ,测得信号的频率为f r ,计数值为N ,则相位差phase 为o crN f f phase 180⨯⨯=方案二:定时间计数。
将高频时钟信号和两路信号异或得到的信号进行“与”,在设定时间s 内利用其上跳变沿计数,设高频时钟频率为f c ,计数值为N ,则o csf Nphase 180⨯=方案三:多周期同步计数法。
设被测信号的频率为f ,则将一被测信号进行f 1倍(f 取整)分频,则在f 1周期内(保证测量时间在1s 左右),被测信号异或与参考高频信号相与的信号singal1的计数为N 1,同时期参考高频信号的计数为N ,则o NN phase 1801⨯=以上三种方案都可以采用一个D 触发器将相位测量的相位扩展到o 0-o 360。
方案一需高速时钟,按题目要求,在20kHz 信号时的相位差分辨率为0.1o ,则要求时钟最少为72MHz ,实现困难。
而方案二测量时间段一定,存在遗漏0~1个周波的情况,从而引入较大的误差。
方案三的读数与异或得到的信号同步,不存在遗漏问题,误差很小,故采用此方案。
(完整版)基于stm32的低频数字相位测量仪毕业设计
授课学期2014 学年至2015 学年第一学期学院电子工程学院专业电子信息工程罗春华何振华李智灵吴诗凤凌琼娜任课教师秦兴盛成绩阅读教师签名日期广西师范大学学工部(处)制基于stm32的低频相位测量仪设计摘要:本设计提出了一种基于stm32f103rbt6单片机开发的低频数字相位测量仪的方案。
主要包括相位测量模块、单片机最小系统、显示模块的设计。
可以对低频率范围的信号进行相位等参数的精确测量,测相绝对误差不大于4°。
相位测量模块采用对输入的两路信号(同频率、不同相位)通过比较器整形、鉴相器异或之后得到的相位差,输入到单片机的中断口进行数据采集处理;采用LCD1602显示被测信号的相位差。
硬件结构简单,软件采用汇编语言实现,程序简单可读写性强、效率高。
与传统的电路系统相比,其有处理速度快、稳定性高、性价比高的优点。
关键词相位差单片机低频误差THE DESIGN OF LOW-FREQUENCYPHASE-MEASURING INSTRUMENTHARDWARE CIRCUITABSTRACTThe design of this low-frequency digital phase measurement program based on stm32f103rbt6.It include phase measurement modules, the smallest single-chip systems, display module, power module design. It can make precision measurement of low-frequency range phase of the signal parameters, measurement of absolute error no greater than 1.Phase measurement modules use two input signals(The same frequency and different phase)Through the comparator shaping XOR phase detector of the phase, To the microcontroller interrupt input port for data acquisition and processing. We choose LCD to display the measured phase difference signal. The is shown by assembly language. The program can be read and written simply and strongly and = psc; 时钟分割TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;模式TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure);基本初始化}结束语本次课程设计让我们懂得了如何去设计一个电路,如何排解遇到的困难,解决遇到的问题,在老师的带领下,我们一步步走向课程设计的尾声,做出了我们的作品,有很大的收获。
低频数字式相位测量仪.
低频数字式相位测量仪摘要:本系统设计了一个基于现场可编程门阵列(FPGA)的低频数字式相位测量仪。
该测量仪包括数字式移相信号发生器和相位测量仪两部分,分别完成移相信号的发生及其频率、相位差的预置及数字显示、信号的移相以及移相后信号相位差和频率的测量与显示等功能。
其中数字式移相信号发生器可以产生预置频率的正弦信号,也可产生预置相位差的两路同频正弦信号,并能显示预置频率或相位差值;相位测量仪能对移相信号的频率、相位差的测量和显示。
两个部分均采用基于FPGA的数字技术实现,使得该系统具有抗干扰能力强, 可靠性好等优点。
关键词:现场可编程门阵列(FPGA),数字式移相信号发生器,相位测量仪1.总体方案设计根据系统的设计要求,本系统可分为三大基本组成部分:数据采集电路、数据运算控制电路和数据显示电路。
考虑到FPGA/CPLD具有集成度高,I/O资源丰富,稳定可靠,可现场在线编程等优点,而单片机具有很好的人机接口和运算控制功能,本系统拟用FPGA/CPLD 和单片机相结合,构成整个系统的测控主体。
如图1.1。
图1.1 系统原理框图1.1整形电路方案一:最简单的信号整形电路就是一个单门限电压比较器(如图1.2所示),当输入信号每通过一次零时触发器的输出就要产生一次突然的变化。
当输入正弦波时,每过一次零,比较器的输出端将产生一次电压跳变,它的正负向幅度均受到供电电源的限制,因此输出电压波形是具有正负极性的方波,这样就完成了电压波形的整形工作。
图1.2 采用单门限触发器的整形电路方案二:为了避免过零点多次触发的现象,我们使用施密特触发器组成的整形电路。
施密特触发器在单门限电压比较器的基础上引入了正反馈网络。
由于正反馈的作用,它的门限电压随着输出电压Uo 的变化而改变,因此提高了抗干扰能力。
本系统中我们使用两个施密特触发器对两路信号进行整形,电路图如图1.3所示。
图1.3 采用施密特触发器的整形电路1.2 相位测量方案方案一:采用脉冲填充计数法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业设计论文《低频数字式相位测量仪》摘要该数字式相位测量仪以单片机 (89c52) 为核心 , 通过高速计数器 CD4040 为计数器计算脉冲个数从 , 而达到计算相位的要求 , 通过 8279 驱动数码管显示正弦波的频率,不采用一般的模拟的振动器产生 , 而是采用单片机产生 , 从而实现了产生到显示的数字化 . 具有产生的频率精确 , 稳定的特点 . 相移部分采用一般的 RC 移相电路 , 节省了成本。
一方案论证与比较 :1 常见正弦信号的测量方法 :方案一:采用模拟分离元件如二极管,三极管等非线性元件,实现频率的测量,检相的功能,使用起来方便,价格便宜,但采用分离元件由于分散性太大,不便于集成及数字化,而且测量误差大。
方案二:采用集成的检相器,检频器实现频率及相位的测量。
这种方法的实现框图如下:这种方法虽然可实现比较精确的测量,但由于模拟信号易受外界的干扰,不易调节,无法实现智能化,数字化的缺点,一般在要求较低的情况下使用。
方案三:此方案采用高速信号发生器产生 20MHz 的高频信号,其主要特点是采用 CD4040 高频计数器结合单片机,利用计数脉冲实现测量相位与频率的目标。
这种方法克服了模拟电路的缺点,实现了数字化与集成化。
本设计采用了这种方法。
这种方案的组成框图:二系统总体设计按照题目要求,我们设计的相位测量系统包括三部分:正弦波产生系统(包括频率调整电路),移相电路和相位显视系统,其总体框图如下:三各部分硬件电路设计及参数计算1、正弦波产生电路•方案一:利用 8038 芯片或 MAX038 可以实现压控的函数发生器通过改变少量的外围元件,可实现正弦波,方波,三角波,并可实现频率调节,但采用模拟器件由于元件分散性太大,即使使用单片函数发生器,参数也与外部元件有关,外接的电阻,电容对参数影响很大,因而产生的频率稳定度差,精度低,抗干扰能力差,调节困难,成本也高。
而且灵活性差,不能实现智能化。
实现步进更困难•方案二:利用单片机 89c52 芯片,发送脉冲信号,在一定频率范围内,再经过低通滤波,可以实现正弦信号。
这种方法可以实现频律的步进与预置,实现数字智能化。
它的原理框图:这种方法的缺点是产生的波的频率较低,难以达到高频的要求。
题目要求是:20HZ—20KHZ 的正弦波,若对每个周期的信号取样 64 个点。
则要求的 CP 脉冲的频率:1280HZ—1280KHZ 可以实现。
通过可编程计数器的计数初值的预置,调节计数器 2 的时序脉冲,设计中由于采样 64 个存储数据,所以计数器 2 为 64 进制计数器,即通过高速计数器送出 64 个脉冲后,实现一个周期的正弦波输出,这样计数器 2 处于不断的循环寻址中,从而存储器输出连续不断单位周期内 64 个采样正弦波数值,通过 DA 转换取得相应于正弦波形的电压,再通过电容滤波就可得到正弦波。
由于全过程采用了数字化,容易实现高精度的步进控制,而且通过对计数器 2 起始计数时间的控制(如在计数器 2 前再加一计数器,使该计数器达到某一数值时计数器 2 开始计时寻址),还可实现数字化的相移。
由于须采取两套相同的系统,本装置中没有采用。
2 移相电路:根据题目的要求,要实现相移在 -45 度 ---+45 度的调节,而提高部分要求移相在0—3 59 度之间,且可实现步进 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 - -60o3' 相位测量及显示电路:本部分电路不采用相敏整流法,避免了模拟电路得不好控制,不易数字化的缺点,而是采用单片机 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 测试仪器:示波器: Hitachi V- 1060频率计: SAMPO CN3165万用表: DT9202•本设计能达到的技术指标:1 )相位测量: (a) 频率范围: 10HZ---100HZ.(b) 相位测量仪的输入阻抗〉 =100 千欧。
( c )允许两路输入正弦信号的峰峰值可在 0.5v---5vf 范围内变化。
(d) 相位测量绝对误差 <=2 度。
(e) 具有频率测量及数字显示功能 .(f) 相位差数字显示:相位读数为 0 o ~359.9 o ,分辨力为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 度。
其实现了数字化的相位测量。
但此设计在高频的性能稍差。
有待改进。
附:#pragma optimize(4)#include "stdio.h"#include "math.h"#include "absacc.h"#include "reg51j.h"void start();void cepin();void cexwei();void cexwei6();void cerlc();void good();void disp();void dispff();void dispfa();void int0();void t0int();code unsigned char led[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***/};data unsigned char ld[8],i,j,ii,jj,iia,jja,iib,jjb,l; data unsigned char ms,it11,t1s;data unsigned char ix10,ix11;data unsigned char key;data unsigned int tt,tt1,tt2,tta,ttb;data unsigned int uuh=0;data unsigned int uul=0;data unsigned int aaa[6];data float ff,fff,fa;bdata bit bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7;#define P8279D XBYTE[0x2000]#define P8279K XBYTE[0x2001]#define P8255A XBYTE[0x4000]#define P8255B XBYTE[0x4001]#define P8255C XBYTE[0x4002]#define P8255K XBYTE[0x4003]#define AD0 XBYTE[0x6000]#define AD1 XBYTE[0x6001]#define AD2 XBYTE[0x6002]#define AD3 XBYTE[0x6003]#define AD4 XBYTE[0x6004]#define AD5 XBYTE[0x6005]#define AD6 XBYTE[0x6006]#define AD7 XBYTE[0x6007]#define DA0832 XBYTE[0x8000]/* xdata signed int ua[255]; *//*------------------INT------------------------*/ void int0() interrupt 0 using 1{ P8279K=0x40; key=P8279D; key=key & 0x01; }void t0int() interrupt 1 using 1 /*10ms !*/{ TL0=0xf0; TH0=0xd8; TR0=1;ms++;if(ms==50) { bit0=0; }if(ms>=100){ ms=0; bit0=1;bit7=1;}}/*---------------------------------------------*/ void start(){TL0=0xf0; TH0=0xd8; /*T0=d8f0=55536=10ms*/TL1=0; TH1=0; /*T1-- */IE=0x83; IP=0x00; /*int1 is high */TMOD=0x11; TCON=0x05;P8279K=0xd1; for(i=0;i<98;i++ ){i++;}P8279K=0x00; P8279K=0x2f;P8279K=0x40; P8279K=0x90;P8255K=0x89; /*PA,PB is output; PC is input;*/ i=j=l=0;key=0x0f;ms=t1s=0x00;bit0=bit1=bit2=bit3=bit4=bit5=bit6=bit7=0;TR0=1; TR1=0;}/*********************************************/ void cepin(){ EA=0;TR0=1;TR1=0;TH1=TL1=0;ii=0;jj=0;ff=0;tt=0;while(!T0){T0=1;};TR1=1;while( T0){T0=1;};while(!T0){T0=1;};TR1=0;ii=TH1;jj=TL1;tt=ii*0x100+jj ;ff=1000000.0/tt ;TR1=0;TH1=TL1=0;bit6=1;if(tt<=9999){ TR1=0; TL1=0;TH1=0;TMOD=0x51;TL0=0xf0; TH0=0xd8; TR0=1;ms=98;bit7=0; EA=1; IE=0x82; bit6=0;while(!bit7){}TR1=1;bit7=0;while(!bit7){}TR1=0;bit7=0; ii=TH1;jj=TL1;tt=ii*0x100+jj ;ff=tt ;tt=1000000.0/ff;TR1=0;TH1=TL1=0;}fff=ff;TL0=0xf0; TH0=0xd8;TL1=0; TH1=0; /*T1-- */IE=0x83; IP=0x04; /*int1 is high */TMOD=0x11; TCON=0x05;TR0=1;EA=1;}/*********************************************/ void cexwei(){ EA=0;TR0=1;TR1=0;TH1=TL1=0;ii=0;jj=0;ff=0;tt=0;while(!T0){T0=1;};TR1=1;T0=1;while( T0){ if(!T1) bit2=1;}T0=1;T1=1;while(!T0){ if(bit2) {if(T1) {jjb=TL1,iib=TH1;bit2=0;}} else { if(!T1) bit2=1;} }TR1=0;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;TL0=0xf0; TH0=0xd8;TL1=0; TH1=0; /*T1-- */IE=0x83; IP=0x04; /*int1 is high */TMOD=0x11; TCON=0x05;TR0=1;EA=1;}void cexwei6(){cexwei(); aaa[0]=fa;cexwei(); aaa[1]=fa;cexwei(); aaa[2]=fa;cexwei(); aaa[3]=fa;cexwei(); aaa[4]=fa;cexwei(); aaa[5]=fa;fa=(aaa[0]+aaa[1]+aaa[2]+aaa[3]+aaa[4]+aaa[5])/6; }/***************************************/void cerlc(){ EA=0;TR1=0;TH1=TL1=0;while(!T0) {};TR1=1;while( T1) {};while(!T1) {};TR1=0;i=TH1;j=TL1;tt2=i*0x100+j ;EA=1;IE=0x83;TH1=TL1=0;}/*--------------goodl,goodm------------------*/ void good(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; }}void disp(){ 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]; } void dispff(){ 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; }}}}void dispfa(){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; }}/*------------------------------------------------------*/ void main(void){aaa: start();while(key==0x0f) good();bbb: cepin();cexwei();if(key==0) dispff();else dispfa();disp();/* if(bit6) */{ bit6=0;while (bit0) {if(key==0) dispff();else dispfa();disp(); }while (!bit0){if(key==0) dispff();else dispfa();disp(); }}goto bbb;cepin();cexwei();cerlc();if(tt2>=tt) fa=360.0-fa;dispff();dispfa();goto bbb;/********************float************************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();**********************float************************/ goto aaa;}#pragma optimize(4)#include "stdio.h"#include "math.h"#include "absacc.h"#include "reg51j.h"void start();void cepin();void cexwei();void cexwei6();void cerlc();void good();void disp();void dispff();void dispfa();void int0();void t0int();void t1int();code unsigned char led[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***/};code unsigned char u[100]={0, 1, 2, 4, 6, 8, 12, 15, 19, 24,29, 34, 40, 46, 52, 59, 66, 73, 80, 88,95, 103, 111, 119, 127, 135, 143, 151, 159, 166, 174, 181, 188, 195, 202, 208, 214, 220, 225, 230, 235, 239, 242, 246, 248, 250, 252, 253, 254, 255, 254, 253, 252, 250, 248, 246, 242, 239, 235, 230, 225, 220, 214, 208, 202, 195, 188, 181, 174, 166, 159, 151, 143, 135, 127, 119, 111, 103, 95, 88, 80, 73, 66, 59, 52, 46, 40, 34, 29, 24,19, 15, 12, 8, 6, 4, 2, 1, 0, 0};code unsigned char u0[100]={0, 1, 2, 4, 6, 8, 12, 15, 19, 24,29, 34, 40, 46, 52, 59, 66, 73, 80, 88,95, 103, 111, 119, 127, 135, 143, 151, 159, 166, 174, 181, 188, 195, 202, 208, 214, 220, 225, 230,235, 239, 242, 246, 248, 250, 252, 253, 254, 255, 254, 253, 252, 250, 248, 246, 242, 239, 235, 230, 225, 220, 214, 208, 202, 195, 188, 181, 174, 166, 159, 151, 143, 135, 127, 119, 111, 103, 95, 88,80, 73, 66, 59, 52, 46, 40, 34, 29, 24,19, 15, 12, 8, 6, 4, 2, 1, 0, 0};data unsigned char ld[8],i,j,ii,jj,iia,jja,iib,jjb,l; data unsigned char ms,it11,t1s;data unsigned char intt1,intt2;data unsigned char ix10,ix11;data unsigned char key;data unsigned int tt,tt1,tt2,tta,ttb;data unsigned int uuh=0;data unsigned int uul=0;data float ff,fa;bdata bit bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7;#define P8279D XBYTE[0x2000]#define P8279K XBYTE[0x2001]#define P8255A XBYTE[0x4000]#define P8255B XBYTE[0x4001]#define P8255C XBYTE[0x4002]#define P8255K XBYTE[0x4003]#define AD0 XBYTE[0x6000]#define AD1 XBYTE[0x6001]#define AD2 XBYTE[0x6002]#define AD3 XBYTE[0x6003]#define AD4 XBYTE[0x6004]#define AD5 XBYTE[0x6005]#define AD6 XBYTE[0x6006]#define AD7 XBYTE[0x6007]#define DA0832 XBYTE[0x8000]/* xdata signed int ua[255]; *//*------------------INT------------------------*/void int0() interrupt 0 using 1{ P8279K=0x40; key=P8279D; TR1=0; TMOD=0x21;if(key==0x40) {ff=100.00; TH1=TL1=156; intt1=intt2=0;}else if(key==0x41) {ff=1000.00; TH1=TL1=255; intt1=intt2=0;} else if(key==0x42) {ff=10000.00; TH1=TL1=255; intt1=intt2=0;} }void t0int() interrupt 1 using 1 /*10ms !*/{ TL0=0xf0; TH0=0xd8; TR0=1;ms++;if(ms==50) { bit0=0; }if(ms>=100){ ms=0; bit0=1;bit7=1;}}void t1int() interrupt 3 using 2{TR1=1;if(key==0x41) {intt1=intt1+4; if(intt1>=100) intt1=0;}else if(key==0x42) {intt1=intt1+5; if(intt1>=100) intt1=0;} else if(key==0x40) {intt1++; if(intt1>=100) intt1=0;}DA0832=u[intt1];}/*---------------------------------------------*/void start(){TL0=0xf0; TH0=0xd8; /*T0=d8f0=55536=10ms*/TL1=0; TH1=0; /*T1-- */IE=0x8b; IP=0x01; /*t1 is high */TMOD=0x21; TCON=0x05;P8279K=0xd1; for(i=0;i<98;i++ ){i++;}P8279K=0x00; P8279K=0x2f;P8279K=0x40; P8279K=0x90;P8255K=0x89; /*PA,PB is output; PC is input;*/i=j=l=0;key=0x0f;ms=t1s=0x00;bit0=bit1=bit2=bit3=bit4=bit5=bit6=bit7=0;TR0=1; TR1=0;}void cepin(){}void cexwei(){}void cerlc(){}/*--------------goodl,goodm------------------*/void good(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; }}void disp(){ 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]; } void dispff(){ 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; }}}}void dispfa(){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; }}/*------------------------------------------------------*/ void main(void){aaa: start();while(key==0x0f) good();bbb: while(bit0) { if(key==0x43) dispfa(); else dispff(); disp(); }while(!bit0) { if(key==0x43) dispfa(); else dispff();disp(); }TR1=1;goto bbb;/********************float************************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();**********************float************************/goto aaa;}。