测速是工农业出产中常常碰着的题目,学会行使单片机技能计划测速仪表具有很重要的意义。
图3遮光叶片 3.光电编码器 光电编码器的事变道理与光电传感器一样,不外它已将光电传感器、电子电路、码盘等做成一个整体,只要用连轴器将光电传感器的轴与转轴相连,就能得到多种输出信号。它普及应用于数控机床、回转台、伺服传动、呆板人、雷达、军事方针测定等必要检测角度的装置和装备中。如图4所示,是某光电编码器的形状。
图4 制品光电编码器 二、硬件毗连 测速的要领抉择了测速信号的硬件毗连,测速现实上就是测频,因此,频率丈量的一些原则同样合用于测速。 凡是,可以用计数法、测脉宽法和等精度法来举办测试。所谓计数法,就是给定一个闸门时刻,在闸门时刻内计数输入的脉冲个数;测脉宽法是操作待测信号的脉宽来节制计数门,对一个高精度的高频计数信号举办计数。因为闸门与被测信号不能同步,因此,这两种要领都存在±1偏差的题目,第一种要领合用于信号频率高时行使,第二种要领例在信号频率低时行使。等精度法例对高、低频信号都有很好的顺应性。 这里为简化接头,仅回收计数法来举办测试。 图5所示是测速器的电路图,由六位数码管和测速接口构成。个中T0处接的只画了一只CS3020构成的霍尔传感器接线图,假如回收光电传感器接口也是一样的,读者可自行画出接线图。
图5测速计电路道理图 三、软件编程 丈量转速,行使霍尔传感器,被测轴安装有12只磁钢,即转轴每转一周,发生12个脉冲,要求将转速值(转/分)表现在数码管上。 措施如下: DISPBUF EQU 5AH ;表现缓冲区从5AH开始[Page] 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: DB 7Fh,0BFH,0DFH,0EFH,0F7H,0FBH DISPTAB:DB 0C0H,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码,看似多写了些措施,现实上这对付担保措施的质量很有甜头。[Page] 按时器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.查找等精度丈量道理,试计划等精度丈量的硬件计划并编写响应软件。 (责任编辑:admin) |