基于89c51的测量电动机转速系统.docx
- 文档编号:11161177
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:17
- 大小:914.27KB
基于89c51的测量电动机转速系统.docx
《基于89c51的测量电动机转速系统.docx》由会员分享,可在线阅读,更多相关《基于89c51的测量电动机转速系统.docx(17页珍藏版)》请在冰点文库上搜索。
基于89c51的测量电动机转速系统
摘要
在测量电动机的转速中,测量转速的方法分为模拟式和数字式两种。
模拟式采用测速发电机为检测元件,得到的信号是模拟量。
数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。
由于微型计算机迅速发展,特别是高性价比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。
本设计是由增量式光电编码器,89C51单片机,二极管,蜂鸣器以及一些必要的运算放大器组成的电机转速检测系统。
本设计的主要功能是:
在电机运行过程中,检测系统对转速进行实时监控,转速如果超过200r/min,则发出报警;如果转速低于200r/min,则正常运行。
本设计的优点是:
硬件电路简单,软件编译简单,测量速度快捷,整体价格低廉,电路功耗低等特点。
但由于在硬件系统中的测量误差与计算中不可避免的舍入误差,使得测量系统含有一定的误差。
关键字:
光电编码器,单片机,蜂鸣器,T法测速,T0定时器/计数器
一、系统方案的选定
本设计的设计目的是:
设计一个由单片机控制的电机转速检测系统,实时监
测电机的转速,达到设定值,声音报警提示。
通过设计,掌握光电编码器的工作原理和控制系统的设计步骤,进一步提高综合运用知识的能力。
设计要求是:
选择光电编码器,设计电机转速检测系统,转速超过200r/min,自动报警提示。
所以根据设计目的与功能要求,选择增量式光电编码器,选定光电编码器的T法测速法;通过P3.2(INT0),或P3.4(T0)引脚把光电编码器输出0〜5V的方波脉冲序列,引入单片机内;通过单片机内部的TO定时器/计数器的功能,计算出光电编码器每个脉冲的时间间隔Tc;通过公式n=60/Z/Tc=60f/Z-M(Z=倍频系数X编码器光栅数)计算出电动机的实时转速N;通过编好的软件,拿实时转速N与规定转速上限n=200r/min比较,如果实时转速N大于200r/min,系统报警(蜂鸣器发声),红色报警灯亮;如果实时转速N小于200r/min,系统正常工作,不会报警,绿色工作指示灯亮。
同时,检测系统进入下一个检测周期,继续对电动机转速进行检测。
以此实现,转速系统对电动机的实时检测,报警提示。
二、系统各部件及原理
2.1.1光电编码器
光电式旋转编码器是检测转速或转角的元件,旋转编码器与电动机相连,当
电动机转动时,带动编码器旋转,产生转速或转角信号。
旋转编码器分绝对式和增量式两种。
绝对式编码器在码盘上分层刻上表示角度的二进制数码或是循环码,通过接收器把该数码送入计算机。
增量式编码器是在码盘上均匀地克制一定数量的光栅,当电动机旋转时,码盘随之一起转动。
通过光栅的作用。
通过光栅
的作用,持续不断地开放或封闭光通路,因此在接受装置的输出端便得到频率与转速成正比的方波脉冲序列,从而可以计算出转速。
光电码盘的光栅数为N,则
转速分辨率为1/N,常用的增量式光电码盘光栅数有1024、2048、4096等。
采用倍频电路,可以有效地提高转速分辨率,而不增加旋转码盘的光栅数。
图1增量式光电码盘原理图
图2某型光电编码器的使用参数
本设计中采用增量式光电编码器,光栅数为1024,不适用倍频电路,即一
倍频。
2.1.2测速方法
光电编码器的测速方法有三种,M测速方法,T测速方法,M/T测速方法。
M测速方法:
在一定时间Tc内测取旋转编码器输出的脉冲数M1,用以计算这段时间内的转速。
适用于高速测速。
T测速方法:
测出旋转码盘两个输出脉冲之间的间隔时间来计算转速,又称周期测速法。
适用于低速段测速。
M/T测速方法:
是T测速方法与M测速方法的综合,分辨率高,适用范围大。
考虑到转速上限为200r/min,转速不大,且要求转速的测量简单易行,采用T测速方法。
T测速方法的实现:
以旋转编码器输出的相邻两个脉冲的同样变化为计数的
起点和终点,记录计算机发出的脉冲数,从而测出时间Tt。
准确的测速时间Tt
是用所得的高频始终脉冲数M2计算出来的,即Tt=M2/f,因而电动机转速为n=60/ZTt=60f/ZM2。
测速原理如图所示:
輪码
器输
出脉
图3T法测速原理图
2.2.189C51单片机
89C51单片机是整个测量系统的主要部分,负责接收光电编码器的脉冲信号,开始记录单片机内部脉冲数M或者循环次数A,从而得出时间Tc,进而得出实时转速N。
通软件拿实时转速N与规定转速上限n=200r/min比较,如果实时转速N大于200r/min,系统报警(蜂鸣器发声),红色报警灯亮;如果实时转速N小于200r/min,系统正常工作,不会报警,绿色工作指示灯亮。
单片机原理图如下,在本设计中将使用到XTAL1XTAL2Vcc,RST/Vpd
Vss,INT0或T0,P1.0,P1.1,P1.2引脚。
图489C51单片机引脚图
2.2.2时钟信号
89C51芯片内部有一个高增益反相放大器,用于构成振荡器。
反相放大器的
输入端为XTAL1输出端为XTAL2两端跨接石英晶体及两个电容,构成稳定自
振荡器。
电容C1和C2常取30pF,可稳定频率并对晶振有微调作用,频率为024MHz本设计使用6MHZ勺晶振。
原理图如下:
图589C51的片内振荡器
2.2.3复位电路
为89C51单片机设置一个上电自动复位的电路,即上电复位是在加电瞬间电容通过充电来实现的。
在测量出现较大偏差时,通过复位电路来恢复初始状态从新测速,校正单片机的测速。
其原理图如下,(因为选用的是6MHZ的晶振,电容C=22Mf,电阻R=1kQ)
图6上电复位电路
2.2.4定时器与计数器
89C51芯片内有两个16为定时器/计数器,即定时器0(T0)和定时器1(T1),由工作模式寄存器TM0D和控制寄存器TCON工作原理如下:
图7工作模式寄存器TMOD
TF1
TEL1
TFO
TR.O
用于夕卜咅K中幽f
SFJ1«EM耳匸HCH8E*HSAH宾宣H
m运比T拴尙飙软彳牛jro«i出韦衣孟€砸f牛)
TL疋彳亍扌氓曲啦牧們)TI裤出蘇鮎碾件j
(IJrl^ttj
1O—停JLt
[]-44£t£j
IO—耒济出r]—a=i动
IO—停11:
(1—溢出
I<)——雄盜出
图8工作模式寄存器TCON
89C51的定时器有四种工作模式,模式表如下:
MOMl
工作方式
说明
00
0
爲位走时器/计數器,由TLO低五位和THO高八位组成
01
1
正位定时器/■计数器;由ILO低八莅和THD高八位组成
1o
2
官位定时器丿计劉I器,由TLO低八位组威
11
3
血。
低八位和珈高八位分别位呂位宦时器/计数器
图9定时器工作模式
由于是T测速方法,所以选择T0的外部计数方式C/T=1计数器的输入是来自
T0(P3.4)的外部脉冲,GATE=1只有。
2.3.1Tc的得出与转速的比较原理
T测速方法的实现:
以旋转编码器输出的相邻两个脉冲的同样变化为计数的起点和终点,记录计算机发出的脉冲数,从而测出时间Tt。
进而通过一系列的
数学变化,与转速上限200r/min比较,进而得到想要得到的信息。
在单片机内部,无法直接得到两个脉冲的时间间隔Tc,只能由间接计算而算出Tc。
具体实现为:
计机内部脉冲数M或者计循环次数A,通过计算从而得出时间Tc。
因此有两种计算方法:
1.计脉冲数M法;2.计循环次数A法。
由于用单片机进行数学计算,软件程序耗时,设计复杂,所以就对时间Tc
与转速n,进行变化,简化程序,得到一个直接与脉冲数M或循环次数A的大小比较关系。
2.3.2计脉冲M数法
计脉冲数法的原理是:
单片机原理及接口技术144页,例6-7-应用门控制
位GATEM照相机快门打开时间。
把光电编码器的输出脉冲信号引到P3.2(INTO)引脚。
实际上就是,利用测
出P3.2引脚上出现的正脉冲宽度。
TO应工作在定时方式。
TMO的门控制位GATE为1,且运行控制位TRO为1时,定时器/计数器的启动和关闭受外部中断引脚信号INTO的控制。
为此在初始化程序中使TO工作在模式1,置GATE=1TR1=1;一旦P3.2控制引脚出现高电平,T1开始对机器周期Tm计数,直到P3.2出现低电平,TO停止计数;然后读出TO的计数值M而实际码盘上的两相邻的脉冲时间应该对应的为2M脉冲数的时间。
工作原理如下:
*Tu
W临中平吋何I>|c低怎平时何斗
图1O计脉冲数M法原理图
由于n=60f/Z/2M,(f为单片机内部晶振f=6MHzM为脉冲次数,Z=倍频系数X编码器光栅数z=1024),所以通过数学变化有M=60f/Z/n/2,因为转速上限n=200r/min,所以脉冲数M临界为878.9,近似为878,舍入误差为0.103%,当M大于878,转速小于200r/min;当M小于878时,转速大于200r/min。
因此,利用一个比较脉冲数M与数878的大小,就可以实现转速的测定。
程序流程图如下:
图11计脉冲数M法流程理图
2.3.3计循环次数A法
计循环次数法的原理为:
单片机原理及接口技术136页,例6-2-当P3.4引脚上的电平发生负跳变,从P1.0输出一个500卩m的同步脉冲,以及101页,例4-11-软件延时程序,1)采用循环程序进行延时子程序。
把光电编码器的输出脉冲信号引到P3.4引脚。
选T0为模式2,外部计数方式,当P3.4引脚上电平发生负跳变时,T0计数器加1,溢出标志TF0置1,然后进入循环与延时子程序,在循环与延时子程序中记录循环次数A,并把溢出标
志TF0置0,保持T0的外部计数方式,继续等待下一个负跳变。
当下一个负跳变到来,T0计数器加1,溢出标志TF0置1。
跳出循环与延时子程序,保存循环次数A。
设计好的软件中延时时间为T=(5A+1)2卩m(单片机内部晶振f=6MHz一个机器周期为2卩n),而它也是光电编码器两个相邻脉冲之间的时间Tc。
由于n=60/Z/Tc(Z=咅频系数X编码器光栅数z=1024),又Tc=(5A+1)•2卩m通过数学变化有A=(60•/Z/n/2-1)/5,因为转速上限n=200r/min,所以循环数A临界为29.09,近似为29,舍入误差为3.1%,当M大于29时,转速小于200r/min;当M小于29时,转速大于200r/min。
因此,利用一个比较循环数A与数29的大小,就可以实现转速的测定。
比较A与临界值大小
延时等待
测量原理图如下:
Tc>
P3.4
负跳变
负跳变
负蹒变
对T0初始化
TMDHSOtSH
循环延时f程序开始记录循环数A
图12计循环数A法原理图程序流程图如下:
图13计循环数流程图
2.3.1报警提示
在软件中通使用硬件电路测量所得的脉冲数M或循环数A,与规定转速上限
200r/min对应的临界值的比较,得到相应的结果。
如果测得的脉冲数M或循环数A小于转速上限200r/min的临界值,系统报警,即软件使蜂鸣器发声,红色报警灯亮;如果测得的脉冲数M或循环数A大于转速上限200r/min的临界值,系统正常工作,不会报警,软件使绿色工作指示灯亮。
如图所示:
89C51
+5V
图报警提示部分原理图
232蜂鸣器
本设计中采用压电式蜂鸣器约需10mA的驱动电流,因此使用TTL系列的
7406低电平驱动。
如图所示:
驱动电路输入端接89C51的P1.0。
当P1.0输出高电平1时,7406的输出为低电平0,使压电蜂鸣器引线获得将近5V的直流电压,而产生蜂鸣。
当P1.0输出低电平0时,7406的输出为高电平1,使压电蜂鸣器引线两端均为+5V的直流电压,不能产生蜂鸣。
2.3.3红色报警灯与绿色工作指示灯
本设计中采用两个发光二极管,一个为红色报警灯与绿色工作指示灯。
如图所示:
红色报警灯接P1.1。
当P1.1输出低电平0时,发光二极管引线获得将近5V的直流电压,而点亮,发出红色报警指示。
当P1.1输出高电平1时,使发光二极管引线两端均为+5V的直流电压,不能点亮。
绿色工作指示灯接P1.2。
当P1.2输出低电平0时,发光二极管引线获得将近5V的直流电压,而点亮,发出绿色工作指示。
当P1.2输出高电平1时,使发光二极管引线两端均为+5V的直流电压,不能点亮。
二、系统设计硬件电路与PCB图
T
I
J
四、控制程序
4.1计脉冲数M法程序
ORG0000H
AJMPMAIN
ORG0300H
MAIN:
MOVTMOD,#09H;T为模式1,GATE置1
MOVTL0,#00H装载计数初值0
MOVTHO,#00H装载计数初值0
CLRP1.Q关闭蜂鸣器
SETBP1.1;关闭红色报警灯
SETBP1.2;关闭绿色工作指示灯
WAIT1:
JBP3.2,WAIT1;等待INT0变低
SETBTR0为启动T0做好准备
WAIT2:
JNBP3.2,WAIT2;等待方波脉冲,并开始计时
WAIT3:
JBP3.2,WAIT3;等待INT0变低
CLRTR0停止T0计数
MOVR1,TL0存放TL0的计数值
MOVR2,TH0存放TH0的计数值
PTFO1:
MOVA,R2将TH0的数值存放到寄存器A
CLRCY标志位清0
SUBBA,#06;A与临界值878D的高八位比较大小JBCCY,PTFO2如果A小于临界值,转向报警程序
CLRP1.2;如果A大于临界值,绿色工作指示灯点亮
SJMPWAIT1返回循环程序,继续测速
PTFO2:
CLRP1.1;红色报警灯点亮
SETBP1.0;蜂鸣器发声
SJMPWAIT1返回循环程序,继续测速
RETI
END结束
4.2计循环次数A法程序
ORG0000H
AJMPMAIN
ORG0300H
MAIN:
MOVTMOD,#06H设置T0为模式2,外部计数方式MOVTL0,#0FFH装载计数初值
MOVTHO,#0FFH
CLRP1.Q关闭蜂鸣器
SETBP1.1;关闭红色报警灯
SETBP1.2;关闭绿色工作指示灯
SETBTR0启动T0计数
L00P1:
JBCTF0,PTF01查询TO溢出标志,TFO=1时转移,且TFO=O(查P3.4负跳变)
SJMPL00P;1等待负跳变
PTFO1:
MOVA,#OH把0装入寄存器A
W1:
INCA;A力卩1
JBCTFO,PTFO2查询TO溢出标志,TFO=1时转移,且TFO=O(查P3.4负跳变)
SJMPW1等待负跳变
PTFO2:
CLRCY标志寄存器清O
SUBBA,#1DH循环次数A与临界值比较29D
JBCCY,PTFO3如果循环次数A小于临界值,转向报警程序
CLR1.2;如果循环次数A大于临界值,绿色工作指示灯亮
SJMPLOOP2转入延时子程序
PTFO3:
CLRP1.1;红色报警灯点亮
SETBP1.0;蜂鸣器发声
SJMPLOOP2转入延时子程序
LOOP2:
MOVR5,#0A设定循环次数为10次的延时
W2:
DJNZR5,W2;判断循环条件
SJMPLOOP1;返回循环程序,继续等待中断,准备测速
RETI
END结束
五、设计心得经过一周忙碌而又紧张的课程设计,终于完成了电机转速检测系统设计的设计报告。
一周的设计,不单单加深、巩固了单片机与运动控制系统所学的知识,特别是与定时器/计数器有关的知识;我更是深刻的的明白了一个道理——那就是理论与实践之间的巨大差距。
也许这就是所谓的“理想很丰满,现实很骨感。
”在课堂上,我们仅仅是了解了一些单片机的基本知识,对于光电码盘与定时器/计数器,循环计时,也只是通过一些数课本例题而得之,在实际的设计应用应该考虑到很多问题中,特别是在方案的选定中,考虑到很多实际问题。
在protel软件上做PCB图时,常会出现各种错误,如元器件的选择,封装号等,只能不断地上网查资料,或者向同学和大四的学长请教问题。
但是从另一个侧面讲,运用自己所学的知识,通过自己上网和去图书馆查资料,设计系统方案,编写程序,与同学讨论,向学长、老师请教来独立完成一个课题,完成一个实验,做好一项任务,对我们的学习,成长是大有裨益的,有利于我们的长于发展。
这种独立自主的实验设计对我们来说是一种锻炼,一种磨砺;一种从课内知识到课外实际应用的转化与迁移;更一种综合运用知识的能力,体会了学以致用,培养我们如何了解、把握一件事情,如何完成、做好一件事情的契机。
课程设计,让我体会到了探索知识的渴望,使我感受到了解决问题的艰辛。
令欣享到了自己劳动成果的喜悦。
但是我更是明白了自己现有知识的局限性,创新、开拓能力的不足。
在接下来的学习与生活中,自己一定要抓紧时间努力踏实学习,更要勤加思考,勤加练习,格物致知,学以致用,致知于行。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 89 c51 测量 电动机 转速 系统