您的位置 首页 培训

运用单片机制造的测速表

测速是工农业生产中经常遇到的问题,学会使用单片机技术设计测速仪表具有很重要的意义。要测速,首先要解决是采样的问题。在使用模拟技术制…

测速是工农业生产中常常遇到的问题,学会运用单片机技能规划测速外表具有很重要的含义。

要测速,首先要处理是采样的问题。在运用模仿技能制造测速表时,常用测速发电机的办法,行将测速发电机的转轴与待测轴相连,测速发电机的电压凹凸反映了转速的凹凸。运用单片机进行测速,能够运用简略的脉冲计数法。只需转轴每旋转一周,发生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数,即可取得转速的信息。

一、脉冲信号的取得

能够有多种办法来取得脉冲信号,这些办法有各自的运用场合。下面逐个进行剖析。

1.霍尔传感器

霍尔传感器是对磁灵敏的传感元件,常用于开关信号收集的有CS3020、CS3040等,这种传感器是一个3端器材,外形与三极管类似,只需接上电源、地,即可作业,输出一般是集电极开路(OC)门输出,作业电压规模宽,运用十分便利。如图1所示是CS3020的外形图,将有字面对准自己,三根引脚从左向右别离是Vcc,地,输出。

图1CS3020外形图

运用霍尔传感器取得脉冲信号,其机械结构也能够做得较为简略,只需在转轴的圆周上粘上一粒磁钢,让霍尔开关挨近磁钢,就有信号输出,转轴旋转时,就会不断地发生脉冲信号输出。假如在圆周上粘上多粒磁钢,能够完结旋转一周,取得多个脉冲输出。在粘磁钢时要留意,霍尔传感器对磁场方向灵敏,粘之前能够先手动挨近一下传感器,假如没有信号输出,能够换一个方向再试。

这种传感器不怕尘埃、油污,在工业现场运用广泛。

2.光电传感器

光电传感器是运用十分广泛的一种器材,有各式各样的办法,如透射式、反射式等,根本的原理便是当发射管光照射到接纳管时,接纳管导通,反之关断。以透射式为例,如图2所示,当不透光的物体挡住发射与接纳之间的空隙时,开关管关断,不然翻开。为此,能够制造一个遮光叶片如图3所示,装置在转轴上,当扇叶经过期,发生脉冲信号。当叶片数较多时,旋转一周能够取得多个脉冲信号。

图2光电传感器的原理

图3遮光叶片

3.光电编码器

光电编码器的作业原理与光电传感器相同,不过它已将光电传感器、电子电路、码盘等做成一个全体,只需用连轴器将光电传感器的轴与转轴相连,就能取得多种输出信号。它广泛运用于数控机床、回转台、伺服传动、机器人、雷达、军事目标测定等需求检测视点的设备和设备中。如图4所示,是某光电编码器的外形。

图4制品光电编码器

二、硬件衔接

测速的办法决议了测速信号的硬件衔接,测速实际上便是测频,因而,频率丈量的一些准则相同适用于测速。

一般,能够用计数法、测脉宽法和等精度法来进行测验。所谓计数法,便是给定一个闸口时刻,在闸口时刻内计数输入的脉冲个数;测脉宽法是运用待测信号的脉宽来操控计数门,对一个高精度的高频计数信号进行计数。因为闸口与被测信号不能同步,因而,这两种办法都存在±1差错的问题,榜首种办法适用于信号频率高时运用,第二种办规律在信号频率低时运用。等精度规律对高、低频信号都有很好的适应性。

这儿为简化评论,仅选用计数法来进行测验。

图5所示是测速器的电路图,由六位数码管和测速接口组成。其间T0处接的只画了一只CS3020组成的霍尔传感器接线图,假如选用光电传感器接口也是相同的,读者可自行画出接线图。

图5测速计电路原理

三、软件编程

丈量转速,运用霍尔传感器,被测轴装置有12只磁钢,即转轴每转一周,发生12个脉冲,要求将转速值(转/分)显现在数码管上。

程序如下:

DISPBUF EQU 5AH ;显现缓冲区从5AH开端

SecCoun EQU 59H

SpCoun EQU 57H ;速度计时器单元57H和58H,高位在前(57H单元中)

Count EQU 56H ;显现时的计数器

SpCalc bit 00h ;要求核算速度的标志

Hidden EQU 16 ;消隐码

ORG 0000H

AJMP START

ORG 1BH

JMP TIMER1 ;守时中止1进口

ORG 30H

START: MOV SP,#5FH ;设置仓库

MOV P1,#0FFH

MOV P0,#0FFH

MOV P2,#0FFH ;初始化,一切显现器、LED

MOV TMOD,#00010101B ;守时器T1作业于办法1,守时器0作业办法1 MOV TH1,#HIGH(65536-4000)

MOV TL1,#LOW(65536-4000)

SETB TR1

SETB ET1 ;开守时器1中止

SETB EA

LOOP: JNB SpCalc,LOOP ;假如未要求核算,转自身循环

;标号:MULD功用:双字节二进制无符号数乘法

;进口条件:被乘数在R2、R3中,乘数在R6、R7中。

;出口信息:乘积在R2、R3、R4、R5中。

;影响资源:PSW、A、B、R2~R7仓库需求:2字节

MOV R2,SpCoun

MOV R3,SpCoun+1

MOV R6,#0

MOV R7,#5 ;测得的数值是每秒计数值,转为每分转速(每一转测12次,故乘5而非60)

CALL MULD

;标号:HB2功用:双字节十六进制整数转化成双字节BCD码整数

;进口条件:待转化的双字节十六进制整数在R6、R7中。

;出口信息:转化后的三字节BCD码整数在R3、R4、R5中。

;影响资源:PSW、A、R2~R7仓库需求:2字节

MOV A,R4

MOV R6,A

MOV A,R5

MOV R7,A ;将乘得的成果送R6R预备转化,这儿成果不可能超越2字节

CALL HB2

CBCD:

MOV DISPBUF,R3 ;最高位

MOV A,R4 ;

ANL A,#0F0H ;去掉低4位

SWAP A ;将高4位切换到低4位

MOV DISPBUF+1,A

MOV A,R4

ANL A,#0FH

MOV DISPBUF+2,A

MOV A,R5

ANL A,#0F0H

SWAP A

MOV DISPBUF+3,A

MOV A,R5

ANL A,#0FH

MOV DISPBUF+4,A

CLR SpCalc ;清核算标志

JMP LOOP

;主程序到此结束

TIMER1: PUSH ACC;ACC入栈

PUSH PSW ;PSW入栈

SETB RS0 ;作业区1

JNB TR0,SETTR0 ;假如T0未运转,则敞开T0

JMP GO1

SETTR0:

SETB TR0

GO1:

INC SecCoun ;秒计数器加1

MOV A,SecCoun

CJNE A,#251,Go2 ;假如未到1s则转

CLR TR0 ;1s到了,则中止T0的运转

MOV SpCoun,TH0

MOV SpCoun+1,TL0 ;读取计数值

CLR A

MOV TH0,A

MOV TL0,A ;清计数器

SETB SpCalc ;要求主程序核算速度

MOV SecCoun,#0 ;清秒计数器

Go2:

INC COUNT;用于显现的计数器

MOV A,COUNT

CLR C

SUBB A,#6

JZ N1

JMP N2

N1: MOV COUNT,#0

N2: MOV A,#DISPBUF

ADD A,COUNT

MOV R0,A ;指向当时要显现的显现缓冲区

MOV A,@R0 ;取榜首个待显现数

MOV DPTR,#DISPTAB ;字形表首地址

MOVC A,@A+DPTR ;取字形码

MOV P0,A ;将字形码送P0位(段口)

MOV A,COUNT

MOV DPTR,#BitTab ;字位表首地址

MOVC A,@A+DPTR

ORL P2,#11111100B

ANL P2,A

MOV TH1,#HIGH(65536-4000)

MOV TL1,#LOW(65536-4000)

POP PSW

POP ACC

RETI

BitTab: DB7Fh,0BFH,0DFH,0EFH,0F7H,0FBH

DISPTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH

……其他数学运算程序(略)

四、程序剖析

主程序在对守时器、计数器、仓库等进行初始化后即判别标志SpCalc是否为1,假如为1,阐明要求对数据进行核算处理,首先将SpCalc标志清零,以确保下次能正常判别,然后进入数据处理程序,因为这儿的闸口时刻为1s,而显现要求为转/分,因而,要将测到的数据进行转化,转化的办法是将测得的数据乘以60,但因为转轴上装置有12只磁钢,每旋转一周能够得到12个脉冲,因而,要将测得的数据除以12,所以归纳起来,将测得的数据乘以5即可得到每分钟的转速。核算得到的成果是二进制的整数,要将数据送往显现缓冲区需求将该数转化为BCD码。运算得到的是紧缩BCD码,需求将其转化为非紧缩BCD码,从标号CBCD开端的一段程序即作了这样的处理。需求阐明的是,这儿多位二进制乘法和多位二进制到BCD码的转化都是用了现成的老练子程序,因而,首先将二进制数转化为压结合实际BCD码,然后再转化成非紧缩BCD码,看似多写了些程序,实际上这关于确保程序的质量很有优点。

守时器T1用作4ms守时发生器,在守时中止程序中进行数码管的动态扫描,一起发生1s的闸口信号。1s闸口信号的发生是经过一个计数器Count,每次中止时刻为4ms,每计250次即为1s,到了1s后,即铲除计数器Count,然后封闭作为计数器用的T0,读出TH0、TL0中的数值,别离送入SpCoun和SpCoun+1单元,将T0中的值清空,置SpCalc标志为1,要求主程序进行速度值的核算。这儿还有一个细节,用作1s闸口信号发生的Count每次中止都会加1,而T0却有一个周期是被封闭的,因而,计数值是251而不是250。

看完这一部份内容今后,请读者自行完结以下作业:

1.试用测脉宽法测验速度(提示:80C51单片机内部有高精度信号源,而其计数器又具有门控特性),留意硬件规划要略作更改。

2.查找等精度丈量原理,试规划等精度丈量的硬件规划并编写相应软件。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/252468.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部