MT法测速.docx
- 文档编号:28897528
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:25
- 大小:229.76KB
MT法测速.docx
《MT法测速.docx》由会员分享,可在线阅读,更多相关《MT法测速.docx(25页珍藏版)》请在冰豆网上搜索。
MT法测速
MT法测速
摘要
在控制领域中,经常需要进行各种角度、位移量的测量。
当前,世界上正面临着一场新的技术革命,这场革命的重要基础之一就是测量技术。
测量技术的发展给人类社会和国民经济的各个部门及各个领域带来了巨大的、广泛的、深刻的变化,带动着传统工业和其他新兴产业的更新和变革,是当今人类社会发展的强大动力。
本设计为码盘转速测量系统,用来测量来自外部的不同的转速值。
实现转速的实时测量,显示。
具体应用AT89C51单片机为核心,旋转编码器实时轴转速测量,同时用LCD显示模块显示。
本文从转速测量原理入手,详细阐述了转速测量系统的工作过程,以及硬件电路的设计、显示效果。
本文吸收了硬件软件化的思想,实现了题目要求的功能。
关键词:
转速测量,旋转编码器,单片机,LCD显示模块
Abstract
Inthecontrolfield,avarietyofanglesanddisplacementmeasurementsoftenneedtobecarriedout.Atpresent,theworldisfacinganewtechnologicalrevolution;oneofthemostimportantbasesoftherevolutionismeasurement.Thedevelopmentofmeasurementtechnologybringsextensive,tremendousandprofoundchangestohumansocietyandallsectorsofthenationaleconomy,changesthetraditionalindustriesandotheremergingindustries,becomestoday'sstrongestdrivingforcefordevelopmentofhumansociety.
Theencoderspeedmeasurementsystemisdesignedtomeasureadifferentspeedfromtheoutsidevalues,toachievereal-timespeedmeasurementanddisplay.SpecificapplicationuseAT80C51microcontrollerasitscore,rotaryencodermeasuresreal-timeshaftspeed,inboth8serialSegmenttypeLCDdisplaymoduledisplay.Inthispaper,detailedworkingprocessofspeedmeasurementsystemisstartedwithprincipleofspeedmeasurement,andhardwarecircuitdesignanddisplay.Thispaperhasabsorbedtheideaofhardwareandsoftwaretoachievewiththesubjectrequiredfunctionality.
Keywords:
rotationalspeedmeasurement,rotaryencoder,
前言
在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。
要测速,首先要解决是采样问题。
在使用模技术制作测速表时,常用测速发电机的方法,即将测速发电机的转轴与待测轴相连,测速发电机的电压高低反映了转速的高低。
为了能精确地测量转速外,还要保证测量的实时性,要求能测得瞬时转速方法。
因此转速的测试具有重要的意义。
这次设计内容包含知识全面,对编码器测量转速的不同的方法及原理设计有较多介绍,在测量系统中能学到关于测量转速时的采样问题,单片机部分的内容,显示部分等各个模块的通信和联调。
全面了解单片机和信号采集的具体内容。
进一步锻炼我们在信号采集,处理,显示方面的实际工作能力。
第1章总体设计
1.1转速测量系统的方法
1.1.1测频法“M法”
在一定测量时间T内,测量脉冲发生器(替代输入脉冲)产生的脉冲数m1来测量转速,如图3-1“M”法测量转速脉冲所示,设在时间T内,转轴转过的弧度数为Xτ,则转速n可由下式表示:
n=
(3-1)
转轴转过的弧度数Xτ可用下式所示m1
X
(3-2)
图3-1“M”法测量转速脉冲
将(3-2)式代入(3-1)式得
转速n的表达式为:
n=
(3-3)
P-为转轴转一周脉冲发生器产生的脉冲数;
n-转速单位:
(转/分);
T-定时时间单位:
(秒)。
在该方法中,测量精度是由于定时时间T和脉冲不能保证严格同步,以及在T内能否正好测量外部脉冲的完整的周期,可能产生的1个脉冲的量化误差。
因此,为了提高测量精度,T要有足够长的时间。
定时时间可根据测量对象情况预先设置。
设置的时间过长,可以提高精度,但在转速较快的情况下,所计的脉冲数增大(码盘孔数已定情况下),限制了转速测量的量程。
而设置的时间过短,测量精度会受到一定的影响。
1.1.2测周期法“T法”
转速可以用两脉冲产生的间隔宽度TP来决定。
用以采集数据的码盘,可以是单孔或多孔,对于单孔码盘测量两次脉冲间的时间,就可测出转述数据,TP也可以用时钟脉冲数来表示。
对于多孔码盘,其测量的时间只是每转的1/N,N为码盘孔数。
如图3-2“T”法脉宽测量所示。
TP通过定时器测得。
定时器对时基脉冲(频率为fc)进行计数定时,在TP内计数值若为m2,则计算公式为:
n=
(3-4)
即:
(3-5)
fc-为硬件产生的基准时钟脉冲频率:
单位(Hz);
n-转速单位:
(转/分);
m2-时基脉冲。
图3-2“T”法脉宽测量
由“T”法脉宽测量可知“T”法测量精度的误差主要有两个方面,一是两脉冲的上升沿触发时间不一致而产生的;二是计数和定时起始和关闭不一致而产生的。
因此要求脉冲的上升沿(或下降沿)陡峭和计数和定时严格同步。
测周法在低转速时精度较高,但随着转速的增加,精度变差,有小于一个脉冲的误差存在。
1.1.3测频测周法“M/T法”
所谓测频测周法,即是综合了“T”法和“M”法分别对高、低转速具有的不同精度,利用各自的优点而产生的方法,精度位于两者之间,如图3-3“M/T”法定时/计数测量所示。
“M/T”法采用三个定时/计数器,同时对输入脉冲、高频脉冲(由振荡器产生)、及预设的定时时间进行定时和计数,m1反映转角,m2反映测速的准确时间,通过计算可得转速值n。
该法在高速及低速时都具有相对较高的精度。
测速时间Td由脉冲发生器脉冲来同步,即Td等于m1个脉冲周期。
由图可见,从a点开始,计数器对m1和m2计数,到达b点,预定的测速时间时,单片机发出停止计数的指令,因为Tc不一定正好等于整数个脉冲发生器脉冲周期,所以,计数器仍对高频脉冲继续计数,到达c点时,脉冲发生器脉冲的上升沿使计数器停止,这样,m2就代表了m1个脉冲周期的时间。
“M/T”法综合了“T”和“M”两种方法,转速计算如下:
设高频脉冲的频率为fc,脉冲发生器每转发出P个脉冲,由式(3-2)和(3-5)可得M/T法转速计算公式为:
(3-6)
n-转速值。
单位:
(转/分);
fc-晶体震荡频率:
单位(Hz);
m1-输入脉冲数,反映转角;
m2-时基脉冲数。
图3-3“M/T”法定时/计数测量
1.1.4转速测量系统中应用的方法
通过上面的分析可知,M法适合于高速测量,当转速越低,产生的误差会越大。
T法适合于低速测量,转速增高,误差增大。
M/T这种转速测量方法的相对误差与转速n无关,只与晶体振荡产生的脉冲有关,故可适合各种转速下的测量。
保证其测量精度的途径是增大定时时间T,或提高时基脉冲的频率fc。
因此,在实际操作时往往采用一种称变M/T的测量方法,即所谓变M/T法,在M/T法的基础上,让测量时间Tc始终等于转速输入脉冲信号的周期之和。
并根据第一次的所测转速及时调整预测时间Tc,兼顾高低转速时的测量精度。
1.2转速测量系统的总体框图
图2-1转速测量系统的总体框图
第2章硬件设计
2.1旋转编码器
旋转编码器是集光机电技术于一体的速度位移传感器。
当旋转编码器轴带动光栅盘旋转时,经发光元件发出的光被光栅盘狭缝切割成断续光线,并被接收元件接收产生初始信号。
该信号经后继电路处理后,输出脉冲或代码信号。
其特点是体积小,重量轻,品种多,功能全,频响高,分辨能力高,力矩小,耗能低,性能稳定,可靠使用寿命长等特点。
2.1.1增量式编码器
增量式编码器轴旋转时,有相应的相位输出。
其旋转方向的判别和脉冲数量的增减,需借助后部的判向电路和计数器来实现。
其计数起点可任意设定,并可实现多圈的无限累加和测量。
还可以把每转发出一个脉冲的Z信号,作为参考机械零位。
当脉冲已固定,而需要提高分辨率时,可利用带90度相位差A,B的两路信号,对原脉冲数进行倍频。
2.1.2绝对值编码器
绝对值编码器轴旋转器时,有与位置一一对应的代码(二进制,BCD码等)输出,从代码大小的变更即可判别正反方向和位移所处的位置,而无需判向电路。
它有一个绝对零位代码,当停电或关机后再开机重新测量时,仍可准确地读出停电或关机位置地代码,并准确地找到零位代码。
一般情况下绝对值编码器的测量范围为0~360度,但特殊型号也可实现多圈测量。
速的方法。
2.2最小系统的设计
2.2.1复位电路
MCS-51 单片机复位电路是指单片机的初始化操作。
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实复位功能。
复位电路的基本功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
2.2.2晶振电路
晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。
AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称。
2.31602简介
2.3.1 1602的控制原理
1602是工业字符型液晶,能够同时显示16x02即32个字符。
(16列2行)
图2-1引脚说明
1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线
VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,如表2-1所示。
表2-11602引脚说明
引脚
符号
功能说明
1
VSS
一般接地
2
VDD
接电源(+5V)
3
V0
液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
4
RS
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
5
R/W
R/W为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
6
E
E(或EN)端为使能(enable)端,下降沿使能。
7
DB0
低4位三态、双向数据总线0位(最低位)
8
DB1
低4位三态、双向数据总线1位
9
DB2
低4位三态、双向数据总线2位
10
DB3
低4位三态、双向数据总线3位
11
DB4
高4位三态、双向数据总线4位
12
DB5
高4位三态、双向数据总线5位
13
DB6
高4位三态、双向数据总线6位
14
DB7
高4位三态、双向数据总线7位(最高位)(也是busyflag)
15
BLA
背光电源正极
16
BLK
背光电源负极
寄存器选择控制表
RS
R/W
操作说明
0
0
写入指令寄存器(清除屏等)
0
1
读busyflag(DB7),以及读取位址计数器(DB0~DB6)值
1
0
写入数据寄存器(显示各字型等)
1
1
从数据寄存器读取数据
注:
关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0.
busyflag(DB7):
在此位为被清除为0时,LCD将无法再处理其他的指令要求。
2.3.21602的基本的读写时序图
读写操作时序如图所示:
图2-2写操作时序
图2-3读操作时序
第3章软件设计
3.1主程序初始化
AT89C51有两个定时器/计数器T0和T1,每个定时器/计数器均可设置成为16位,也可以设置成为13位进行定时或计数。
计数器的功能是对T0或T1外来脉冲的进行计数,外部输入脉冲负跳变时,计数器进行加1。
定时功能是通过计数器的计数来实现的,每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数个数乘以机器周期。
定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器溢出中断身请。
当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值将不同,从而可以适应不同的定时或计数控制。
3.2序流程
主程序流程图3-1所示。
图3-1主程序流程图
3.3中断程序流程图
图3-2中断程序流程图
第4章结果仿真
图4-1系统结果仿真
结论
采用单片机技术来实现转速的测量,可以提高转速的测量,可以提高转速测量的精确度,并且加快了采样的速率,具有较好的实时性。
本文介绍的转速方法使用于高、低转速的测量,测量精确度与转速无关,因而具有较宽的应用范围和广阔的应用的前景。
基于单片机的转速测量系统,具有硬件电路简单,程序简单和运算速度快,测速范围广,抗干扰性能好的特点。
在设计的信号处理电路中经过滤波,能够进一步减少误差,是测速精度得到提高。
通过这次毕业设计,我深深懂得了要不断把所学知识学以致用,也发现了自己的知识薄弱,还需通过自身不断努力,不断提高自己的分析问题、解决问题的能力,同时也提高了我的专业技能,拓展了我的专业知识面,使我更加体会到要想完成一件事必须认真、踏实、勤于思考、和谨慎稳重。
辞谢
通过两个星期的忙碌,本次课程设计已经接近尾声,通过这次学校组织的课程设计,端正了自己学习的态度,锻炼了自己独立动手的能力,在此,我要感谢每一个帮助过我的人。
首先,我要感谢的是我的导师卢老师。
卢老师平日里工作繁多,但在我做课程设计的每个阶段,都给予我悉心的指导和帮助。
可以说,没有卢老师的悉心指导和帮助,我是不可能顺利完成我的课程设计的。
另外,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。
再次,我要感谢的是我的同学和舍友们在我课程设计期间,他们给了我不少的关心和帮助。
总之,感谢每一位关心帮助过我的人,谢谢你们!
!
!
主要参考文献
1.孙育才MCS-51系列单片微型计算机及其应用[M].东南大学出版社2004.10
2.何立民MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京航空航天大学出版社1990.1
3.陈伯时.电力拖动自动控制系统-运动控制系统.机械工业出版社,2003
4.马全权,李庆辉,强盛.一种高精度实时电机转速测量新方法,齐齐哈尔大学学报.2002
5.孙桂荣,班莹,刘鸣.电机转速测量设计实验.实验室科学,2005
6.王雪文.张志勇.传感器原理及应用.北京航空航天大学出版社.2004
7.王秀杰,张畴先.模拟集成电路应用.西北工业大学出版社,2000
8.吴凡.高精度编码器的裂相指示光栅[J].光电工程,2001
9.梁天德,黄传明.单片机测速仪的设计和研制[J].华侨大学学报,1992
附录
#include
#include
sbitRS=P2^6;
sbitRW=P2^5;
sbitE=P2^7;
sbitBF=P1^7;
sbitSW=P2^0;
unsignedcharcodedigit[]={"0123456789"};//定义字符数组显示数字
unsignedintv;
unsignedintn;//储存电机转速
unsignedintM1;
doubleM2;
unsignedinta;
doublef0=1000000;
unsignedintZ;
unsignedintcount;//储存定时器T0中断次数
bitflag;//计满1秒钟标志位
/************************************************************/
voiddelay1ms()//函数功能:
延时1ms
{
unsignedchari,j;
for(i=0;i<10;i++)
for(j=0;j<33;j++)
;
}
/***********************************************************/
voiddelay(unsignedcharn)//延时若干毫秒
{
unsignedchari;
for(i=0;i delay1ms(); } /***********************************************************/ unsignedcharBusyTest(void)//判断液晶模块的忙碌状态 { bitresult; RS=0;//根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1;//E=1,才允许读写 _nop_();//空操作 _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 result=BF;//将忙碌标志电平赋给result E=0;//将E恢复低电平 returnresult; } /************************************************************/ voidWriteInstruction(unsignedchardictate)//将模式设置指令或显示地址写入液晶模块 { while(BusyTest()==1);//如果忙就等待 RS=0;//根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0;//E置低电平(根据表8-6,写指令时,E为高脉冲, //就是让E从0到1发生正跳变,所以应先置"0" _nop_(); _nop_();//空操作两个机器周期,给硬件反应时间 P1=dictate;//将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=1;//E置高电平 _nop_(); _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令 } /************************************************************/ voidWriteAddress(unsignedcharx)//指定字符显示的实际地址 { WriteInstruction(x|0x80);//显示位置的确定方法规定为"80H+地址码x" } /***********************************************************/ voidWriteData(unsignedchary)//将数据(字符的标准ASCII码)写入液晶模块 { while(BusyTest()==1); RS=1;//RS为高电平,RW为低电平时,可以写入数据 RW=0; E=0;//E置低电平(根据表8-6,写指令时,E为高脉冲, //就是让E从0到1发生正跳变,所以应先置"0" P1=y;//将数据送入P0口,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=1;//E置高电平 _nop_(); _nop_(); _nop_(); _nop_();//空操作四个机器周期,给硬件反应时间 E=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令 } /*********************************************************/ voidLcdInitiate(void)//对LCD的显示模式进行初始化设置 { delay(15);//延时15ms,首次写指令时应给LCD一段较长的反应时间 WriteInstruction(0x38);//显示模式设置: 16×2显示,5×7点阵,8位数据接口 delay(5);//延时5ms ,给硬件一点反应时间 WriteInstruction(0x38); delay(5); WriteInstruction(0x38);//连续三次,确保初始化成功 delay(5); WriteInstruction(0x0c);//显示模式设置: 显示开,无光标,光标不闪烁
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MT 测速