基于单片机的相位测量仪设计制作 毕业设计.docx
《基于单片机的相位测量仪设计制作 毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的相位测量仪设计制作 毕业设计.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的相位测量仪设计制作毕业设计
基于单片机的相位测量仪设计制作
摘要
本次设计提出了一种基于8051单片机开发的相位差测量仪的设计,系统以单片机8051及计数器为核心,构成完备的测量系统。
系统可以对20Hz~20kHz频率范围的信号进行频率、相位等参数的精确测量,测相绝对误差不大于1°。
系统采用液晶1602显示被测信号的频率、相位差。
硬件结构简单,程序简单可读写性强,软件采用C语言实现。
与传统的电路系统相比,其有处理速度快、稳定性高、性价比高的优点。
关键字:
单片机相位差测量1602
Thedesignandimplementationofintelligentcharger
ABSTRACT
Inourdailylife,mobilephonehasbecomemoreandmoreimportant.Weoftenneedtouseamobilephone,phonecalls,textmessaging,surfingtheInternet,watchingmovies,listeningtomusic,playgames,andsoon.Withlargescreenandhighfrequencymobilephone,lithiumionbatterybecomesmoreimportant,thelithiumionbatterychargeralsobroughttotheattentionoftheconsumers.
Thisproductadoptstheli-ionbatterychargerICMAX1898,throughSTC89C52RCcontrolcanrealizeprefilled,fastcharging,andconstantvoltagecharge.Bysettingtheothercaneasilychangethechargingtime,etc.,youcanalsomonitorthechargingprocessofeachstate,aswellastheuseof1602convenientdisplaysinformationaboutthechargingcurrent.Thisdesignimplementsthecircuitissimple,lowcost,andchargeeffectisverygood,includingthehighsecurity,shorttime-consuming,smalldamagetothebattery,andmeettherequirementsofgeneralusers.
Keywords:
singlechipMAX18981602
1绪论
在电子测量技术中,相位测量时最基本的测量手段之一,相位测量仪式电子领域的常用仪器。
随着相位测量技术广泛应用于科学研究、实验、生产实践等各个领域,对相位测量技术的要求也向高精度高智能化方向发展,在低频范围内,相位测量在电力、机械等部门具有非常重要的意义。
基于数字式相位测量仪的高精度、高智能化、直观化的特点,工业上常常用此进行低频信号相位差的精确测量。
同频信号间相位差的测量在电力系统、工业自动化、智能控制及通信、电子、地球物理勘探等许多领域都有着广泛的应用。
尤其在工业领域中,相位不仅是衡量安全的重要依据,还可以为节约能源提供参考。
相位测量仪是适用于电能计量、用电检查、继电保护、差动检测、电力建设和变送电工程等的一种高精度仪器仪表。
相位测量仪是电力系统各部门的必备仪器之一。
在许多领域,经常会遇到需要检测两个信号之间的相位差,精确地测量两个信号之间的相位差,具有很重要的意义。
比如当电网并网合闸时,这就需要精确测量相位差。
相位差的测量是研究网络相频特性中不可缺少的重要方面。
近年来随着电子技术的发展,仪器仪表也得到了充足的发展。
随着测量需求的逐渐增大,一款高精度的相位测量仪正是市场所需要的。
单片机由运算器,控制器和存储器等构成,它是近年来发展成熟和应用广泛的一种芯片,许许多多简单的控制都可以用到它,它不但使用简单,而且成本也低,市面上的单片机型号更是繁多,可以让设计人员根据自己的需求去选择。
单片机和计算机相比,单片机缺少了外围设备等。
概括的讲:
一块芯片就成了一台计算机。
由于单片机的需求大,现在已经有8位、16位、32位的单片机,其中作为8位单片机的51单片机最为成功,因为其简单可靠而性能不错获得了很大的好评。
2设计原理与方案论证
2.1设计要求
基本要求:
(1)设计单片机系统;
(2)设计信号周期和相位测量电路;
(3)显示信号频率和相位差。
2.2方案论证
2.2.1控制部分的方案选择和论证
方案一:
采用传统的8位单片机,例如STC12C5A60S2作为控制核心。
该单片机是目前最流行以及开发平台最低的一种嵌入式控制芯片,目前已经广泛运用于市场上,高校的教学也有讲这方面的知识。
方案二:
采用FTC10F04单片机,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
方案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。
但是方案一做设计容易上手,方案比较通用,而且货源充足,有利于生产。
综合比较选用方案一
2.2.2显示模块的选择方案和论证
方案一:
LED数码管动态扫描。
相对于液晶显示比较经济实惠,但液晶显示比数码管显示美观,LED数码管在操作上比较繁琐。
方案二:
点阵显示。
用点阵显示美观,但是分辨率不高,而且需要的功率比较大,单个LED出现问题后会对整个点阵的显示产生影响。
方案三:
LCD1602液晶是一种具有8位并行接口方式的点阵图形液晶显示模块;其显示分辨率为16x2。
经过综合比较最终选择方案三,即选择LCD1602液晶显示屏。
2.2.3相位测量方案选择和论证
方案一:
过零点检测法:
原理是将基准信号的过零时刻与被测信号的过零时刻进行比较,由二者之间的时间间隔与被测信号周期的比值推算出两信号之间的相位差。
方案二:
倍乘法:
用正弦函数和余弦函数构成的无穷级数来表示,然后再通过运算得出相位差。
从测量范围、准确度等技术指标来看,综合比较选择方案一,即过零点检测法。
2.3相位差测量原理论证
由过零比较法可知,时间差和相位差有如下关系:
(2.1)
由此可得:
(2.2)
其中,
是相位差
对应的时间差,
是信号周期。
式2.2表明,相位差
与时间差
有着一一对应的关系,只要通过测量时间差
及信号周期
,就可以求得相位差
。
3系统硬件电路设计
本设计共包括以下模块:
单片机主控电路、显示电路和相位测量等电路。
系统总体框图如图1所示。
图1系统总体框图
系统电路原理图如图2所示
图2系统电路原理图
3.1各单元模块功能分析及模块电路设计
3.1.1单片机控制模块
本系统以STC12C5A60S2单片机为控制核心。
STC12C5A60S2系列1T单片机特点如下:
P3.2
INT0(外部中断0)
P3.3
INT0外部中断0)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器写选通)
单片机电路如图3所示:
图3单片机最小系统
3.1.2稳压电路设计
图47805稳压电路
图4所示,电源电路采用集成稳压管LM7805进行稳压。
电池提供的12V直流电压通过LM7805可以输出稳定的5V电压。
电池提供的12V电压可用于驱动继电器的工作。
LM7805有三个引脚,分别为Vin:
输入引脚,电压为12V;Vout:
输出引脚,电压为5V;GND:
接地端。
3.1.3相位差测量模块
相位测量模块主要包括整形电路的设计和鉴相器电路的设计。
待测信号和参考信号在进入相位差测量电路之前先经过一个整流二极管,使交流信号变为直流信号。
整形电路采用的是过零比较法将待测信号变成矩形波信号,然后再送给鉴相器电路进行下一步的处理。
具体电路如图5所示。
其中,Ua、Ub分别是待测信号和参考信号;Uc、Ud分别是经过过零比较整形后的两路矩形波信号;Ue、Uf分别是经过三极管转换电路得到的只有0、1电平的矩形波信号,用以作为JK触发器的时钟信号;Ug、Uh分别是经JK触发器后的二分频信号,同时也是鉴相器的输入信号;Ui、Uj分别是相位差信号及其取反后的信号,这两个信号分别接入单片机的P3.2和P3.3口。
这里用LM339组成如下图所示的整形电路。
选不同阻值的上拉电阻会影响输出端高电位的值。
本设计中采用的是10K的上拉电阻。
图5相位测量电路
LM339简要介绍
图6是很常见LM33引脚图,lm339可以各种电压比较器电路。
该电压比较器的特点是:
1)失调电压小,典型值为2mV;2)电源电压范围宽,单电源为2-36V,双电源电压为±1V~±18V;3)对比较信号源的内阻限制较宽;4)共模范围很大,为0~(Ucc-1.5V)Vo;5)差动输入电压范围较大;6)输出端电位可灵活方便地选用。
LM339集成块采用C-14型封装。
图6LM339管脚图
JK触发器工作原理的简要介绍
相位测量电路中用到两个JK触发器,JK触发器的J端、K端及电源端均接到+5V上,清零端通过C9接地,当接通电源瞬间,清除端通过C9处于低电平,使Q端置为低电平;C9逐渐充电完毕,这时清零端通过R30处于高电平。
当CLK端接收到触发脉冲时,Q端有低电平变为高电平;当下一个脉冲到来,Q端又由高电平变为低电平,如此不断反复。
74LS113为双下降沿J-K触发器,有预置位端。
其管脚图如图7所示。
图774LS113管脚图
引脚介绍:
/CP1、/CP2时钟输入端(下降沿有效)
J1、J2、K1、K2数据输入端
Q1、Q2、/Q1、/Q2输出端
/SD1、/SD2直接置位端(低电平有效)
功能表如表3.6所示:
表3.674LS113功能表
(说明:
H—高电平,L—低电平,X—任意,
—高到低电平跳变)
鉴相器电路的设计
鉴相器就是异或门电路,输入波形Ug、Uh中,正脉冲宽度就是Ug和Uh相位差所对应的时间差。
图8鉴相器输入输出波形图
由图可知,鉴相器的输出信号是两输入信号的二倍频信号,而该输入信号是经过JK触发器的二分频信号,由此可知,该相位差信号和待测信号是同频的。
3.1.4显示模块
1602在单片机系统中很常见,优点就不再叙述,它的特点如下:
显示质量高,数字式接口,体积小、重量轻,功耗低,而且它可以构建简单的人机交互界面,技术成熟,而且在网上的资料很多,所以容易使用和开发。
1602LCD主要技术参数:
显示容量:
16×2个字符
工作电压:
4.5—5.5V
工作电流:
2.0mA(5.0V)
各引脚接口说明如下表所示:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
第1脚:
接地
第2脚:
接5V。
第3脚:
VL为液晶显示器对比度调整端
第4脚:
RS为寄存器选择
第5脚:
R/W为读写信号线
第6脚:
E端为使能端
第7~14脚:
D0~D7数据线。
第15脚:
背光源的正极。
第16脚:
背光源的负极。
1602LCD的指令说明及时序
如表10-14所示:
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器的地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器的地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数据到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
与HD44780相兼容的芯片时序表如下:
读状态
输入
RS=L,R/W=H,E=H
输出
D0—D7=状态字
写指令
输入
RS=L,R/W=L,D0—D7=指令码,E=高脉冲
输出
无
读数据
输入
RS=H,R/W=H,E=H
输出
D0—D7=数据
写数据
输入
RS=H,R/W=L,D0—D7=数据,E=高脉冲
输出
无
该模块在本次设计中的电路如图9所示:
图9LCD1602电路图
4软件部分设计
在单片机设计中,可以使用C语言和汇编语言。
由于C语言通俗易懂,移植性好,所以本次设计使用C语言来设计程序。
4.1C语言的简介
4.2系统软件设计思想
本系统对核心测量电路——相位测量部分进行了详细的软件设计。
首先要对相位差的测量过程有个基本的了解,待测信号输入相位测量电路,经过整形、鉴相一系列处理后,最终得到了相位差信号,将该相位差信号送入P3.2口(INT0),再将取反后的相位差信号送入P3.3口(INT1)。
通过软件计数的方法对相位差信号的高电平和低电平分别计数10个,同时开启定时器,记录相应的时间。
具体算法如下:
设相位差信号高电平的时间为t1,低电平的时间为t2,则相位差t为
(4.1)
其中,相位差信号高电平的时间为t1,通过INT1测得,因为INT1管脚接入的是相位差取反后的信号,而取反信号低电平的时间就是原信号高电平的时间,当外部中断INT1的中断服务子程序启动时,软件计数也同时开始了,定时器T0开始定时,没来一次下降沿,软件计数自动加1,知道计数值为10,关闭定时器T0,并记录此时所用时间,改时间相当于10倍的t1;同理,相位差低电平的时间为t2,通过INT0测得,相位差信号直接送了INT0口,所以记录INT0低电平的时间即为t2,当外部中断INT0的中断服务子程序启动时,同样软件计数的方法,并结合定时器T1定时,最后可求得相当于10倍t2的时间。
再根据式4.1方可得到所测相位差,并通过液晶显示出来。
图10主程序流程图
INT1中断服务子程序有流程图,如图11所示。
图11INT1中断服务子程序
5仿真调试及结果
经过初步的分析和设计完成后,系统的软件和硬件调试是分不开的。
在后面的调试中,我们会发现,许多的硬件故障时在调试软件的时候才慢慢的发现的,如果我们先排除掉系统中一些较为明确的硬件故障,然后再对其进行然间测试,这样就可以调高测试的效率,减少测试的时间,使测试的可靠性更加好。
在我们进行系统调试的时候,我们要先对各个模块进行调试,避免系统调试的时候,因为模块故障而无法继续调试下去。
学会排除,是设计成功的一大因素。
5.1硬件的调试
本次设计的调试不问分为下面几个部分:
(1)逻辑错误调试
成品模块的逻辑错误是由于在设计过程中,模块的排布安装等问题造成的,这类错误包含:
连接错线、短路、开路,信号不同几种,其中这个短路时最常见的错误。
(2)器件调试
元器件在使用的过程中也可能会失效,其中原因可能是本身元器件坏掉了或者是由于组装元器件的时候元器件失效了。
例如某些电容、二极管的极限错误等等。
(3)可靠性调试
对于这样的一种系统,引起系统不可靠的因素会有很多,很多时候,接触不良,内部干扰,外部干扰,电源过大,器件的负载太大等等,另外,走线和布局不合理有时候也导致出现在各种问题。
(4)电源故障
如果这系统中出现电源故障,那么可能是通电后,造成了器件的损坏。
电源的故障包括下面几个方面,有时候因为电压值不符合设定的要求,有时候是电源的插座和引线借口不对,电源的功率不足,负载能力很差。
在本次调试系统的时候,我们要用运用万用表和反正模拟器,根据硬件电路图我已经设计好的装配图检查好各个线路的正确性,并确定好各个元器件的型号,参数,规格是否正确。
还要注意在焊接电路板的时候,布局布线等方面,避免电路出现极性错误或者短路,还要重点的检查扩张的系统是否存在相互之间的短路,或者有其他的信号之间短路。
由于本次的整个电路板都是手工焊制,可能我出现虚焊短接等可能,需要特别注意这一方面。
5.2软件调试
在本系统中,硬件电路采用了集成芯片设计。
每一个集成芯片都有相应的控制方法,即工作时序。
在应用每一个芯片的时候,都要认真阅读它的数据手册,再了解它的参数和性能。
该系统除含有传感器模块外,还含有液晶显示模块,模块比较多,可以分别用子函数来实现各模块的初始化和工作。
(1)按键部分软件调试
观察按键按下之后显示界面是否按照理论设计变化,发现只在按下一次按键之后,液晶上的字符会移动很多位,这说明硬件有抖动。
(2)调试子程序
在调试主程序前,必然要调用子程序,所以也要确保子程序没有错误,才不会对主程序有影响。
(3)调试主程序
主程序运行后,观察液晶显示屏是否工作,它显示的数据是否会变化。
若运行结果不正确,首先分析可引起相关故障的原因,再通过调试排除。
例如:
若定时/计数器的初始化出错,则时钟将不能工作;若显示程序出错,则将不能正确显示时钟单元内容;若定时/计数器中断服务子程序出错,则其显示数据的变化规律将不正常。
(4)调试总结
刚开始调试程序的时候,由于单片机的定时器功能涉及到寄存器的设置,由于比较少接触到这方面的知识,所以一开始的时候也是调试了很多次,也没有什么头绪。
但后来经过同学的指导,认真查看了STC12C5A60S2的芯片资料说明书之后,根据里面的详细的介绍,再三调试,终于能够正常使用定时器功能。
在调试超声波模块程序时,由于没有认真查看时序电路图,总是显示错误,进过反复调试还是找不到问题的所在,最后我的网上查找资料,对比了一些人写过的程序之后,进过修改,其功能还是调试好了。
5.3Proteus中仿真图的绘制与调试
5.3.1仿真图的绘制
打开ProteusISIS编辑环境,如图12所示。
添加器件AT89C51,注意在Proteus中添加的CPU一定要与Keil中选择的CPU相同,否则无法执行Keil生成的.hex文件。
其工作界面分为原理图编辑窗口(Editingwindow)、预览窗口(Overviewwindow)和工具栏。
a.新建*.dsn
图12ProteusISIS编辑环境
打开绘图界面后,首先新建一个绘图文件,选择“File”—“NewDesign”,并保存成.dsn型文件。
b.绘制仿真原理图
(1)添加元器件:
元件拾取共有两种办法,一种是按类别查找和拾取元件,另一种是直接查找和拾取元件。
我采用的是前一种方法,元件通常以其英文名称或器件代号在库中存放。
双击找到的元件名,该元件便拾取到编辑界面中了。
右侧列表中自上而下分别为元件图形和元件封装。
具体如图13所示。
图13分类拾取元件示意图
(2)元件的放置
在原理图编辑区的蓝色方框内,单击鼠标左键即完成元件的释放。
如图14所示。
图14元件的放置示意图
(3)电路连线
完成连线后即可得到图15所示的仿真原理图。
图15连线后的完整原理图
(4)导入.HEX文件
选中AT89C51并单击鼠标左键,打开“EditComponent”对话窗口,在此窗口中的“ProgramFile”栏中,选择先前用Keil生成的.HEX文件,如图16所示。
图16“EditComponent”对话窗口
在ProteusISIS的菜单栏中选择“File”—“SaveDesign”命令,保存设计。
在保存设计文件时,最好将与一个设计相关的文件(如Keil项目文件、源程序、Proteus设计文件)都存放在一个目录下,以便查找。
单击ProteusISIS界面左下角的
按钮,进入程序调试状态。
5.3.2仿真结果
在仿真软件中,输入信号分别为200HZ和100HZ的正弦信号,仿真结果如下:
说明该仿真可以实现信号的频率显示。
5.4设计结果及总结
5.4.1设计结果
本次设计的要求是设计单片机系统,信号周期和相位测量电路,显示信号频率和相位差。
我在本次设计中,完成了单片机最小系统的硬件设计,设计了信号周期以及相位测量电路,并且设计了液晶1602的电路。
通过仿真软件Proteus7,我调试成功了单片机系统和液晶1602,该系统可以显示两路信号的频率,范围是20HZ-20KHZ,完成了本次设计的基础部分。
由于测量相位差的子函数一直调试不通,所以本次设计测量相位差的功能没有实现。
5.4.2设计总结
经过三个月的毕业论文设计,收获颇丰,感触良多。
首先毕业论文的设计要求我们认真研究该课题,了解该课题研究的国内外相关背景,发展前沿及趋势,通过上网和图书馆查找相关资料,不但给我们的方案选择指明了方向,而且拓宽了视野,增长了见识。
在提出一系列初步方案之后,要求我们根据客观实际情况作出最优化的选择,通过各环节各方案的仔细比较,我们不但对各元器件的功能性能增加了了解,而且更加熟悉和深刻了该方案的目的和作用要求,整体方案是由各小方案组成的,这又要求我们根据误差要求及前后环节的实际情况进行优化组合。
本次毕业设计涉及了模拟电子技术,数字电子技术和单片机等多方面的知识,比如小信号部分用的主要是模拟电子技术方面的知识,而计数部分又用到数字电子技术知识,最后处理使用的是单片机编程,环环相扣,需要我们对每个环节的设计考虑周全。
而在仿真方面,这是一个考验人耐性的阶段,在我们用Protel99SE绘制出SCH原理图并设置参数进行仿真时,总是出现错误,经过将近10天的检查,原本以为准确无误的原理图被我们找出了将近十几个错误,修改之后,终于柳暗花明,拨云见日,预期的波形跃入了眼帘。
而经过这个阶段,我们对Protel软件的使用比以前大有长进。
在仿真波形及各项参数得出之后,要求我们对其进行分析运算,看看是否达到了预期要求。
误差分析要求我们对各环节可能产生的误差进行分析,并有针对性的提出改进方案。
在论文书写方面,论文书写格式,字体等的要求相当严格,经过这个阶段后,基本掌握了论文的规范书写,