M法、T法测速单片机程序设计摘要本设计为M法、T法测速的单片机程序设计。
使用STC89C52单片机作为控制器,使用该单片机的外部中断和定时器对编码器的输出的脉冲进行采样来计算出电机的转速。
可以使用按键输入来调整M法、T法测速法中Z、Tc和Tt等参数以及测速方法的选择,以此来增强本设计的适应性。
参数选择结果和电机转速计算结果均显示在LCD1602上。
关键字:STC89C52,M法、T法测速,LCD1602,电机转速ⅠAbstractThis design as m, t-law velocity measurement of single-chip computer programming. Using STC89C52 single-chip computer as the controller, using the microcontroller's external interrupts and timers for encoder output pulse is sampled to calculate the speed of the motor. Can be adjusted using touchtone m, t law Velocimetry parameters such as z, Tt and Tc, as well as in speed measurement method of choice, as a way to enhance the adaptability of this design. Parameter selection and calculation of motor speed results are available on LCD1602.Keywords:STC89C52,M、T method, the LCD1602, Motor speedⅡ目录第1章绪论 (1)1.1 旋转编码器 (1)1.2 数字测速的精度指标 (2)1.2.1 分辨率 (2)1.2.2 测速误差率 (2)1.3 M法测速 (2)1.4 T法测速 (3)第2章硬件系统设计 (5)2.1 STC89C52介绍 (5)2.2硬件电路 (6)2.3.1时钟电路 (6)2.3.2 显示电路 (7)2.3.3 速度检测电路 (8)2.3.4 按键输入电路 (8)第3章系统软件设计 (9)3.1 主程序设计 (9)3.1 M法测速程序设计 (10)3.2 T法测速程序设计 (11)总结 (12)参考文献 (13)附录A 系统原理图 (14)附录B 主要C语言源程序 (15)Ⅲ第 1 页第1章 绪论1.1 旋转编码器旋转编码器是用来测量转速的装置,光电式旋转编码器通过光电转换,可将输出轴的角位移、角速度等机械量转换成相应的电脉冲以数字量输出(REP )。
它分为绝对式和增量式两种。
技术参数主要有每转脉冲数(几十个到几千个都有),和供电电压等。
单路输出是指旋转编码器的输出是一组脉冲,而双路输出的旋转编码器输出两组A/B 相位差90度的脉冲,通过这两组脉冲不仅可以测量转速,还可以判断旋转的方向。
1、增量式编码器增量式编码器轴旋转时,有相应的相位输出。
其旋转方向的判别和脉冲数量的增减,需借助后部的判向电路和计数器来实现。
其计数起点可任意设定,并可实现多圈的无限累加和测量。
还可以把每转发出一个脉冲的Z 信号,作为参考机械零位。
当脉冲已固定,而需要提高分辨率时,可利用带90度相位差A ,B 的两路信号,对原脉冲数进行倍频。
增量式旋转编码器示意图如图1-1所示。
图1-1 增量式旋转编码器示意图第 2 页2、绝对值编码器绝对值编码器轴旋转器时,有与位置一一对应的代码(二进制,BCD 码等)输出,从代码大小的变更即可判别正反方向和位移所处的位置,而无需判向电路。
它有一个绝对零位代码,当停电或关机后再开机重新测量时,仍可准确地读出停电或关机位置地代码,并准确地找到零位代码。
一般情况下绝对值编码器的测量范围为0~360度,但特殊型号也可实现多圈测量。
1.2 数字测速的精度指标1.2.1 分辨率分辨率定义:改变一个计数值所对应的转速变化量,用符号Q 表示。
当被测转速由n1变为n2时,引起记数值增量为1,则该测速方法的分辨率是分辨率Q 越小,说明测速装置对转速变化的检测越敏感,从而测速的精度也越高。
1.2.2 测速误差率测速误差率:转速实际值和测量值之差与实际值之比, 记作测速误差率反映了测速方法的准确性,δ越小,准确度越高。
测速误差率的大小决定于测速元件的制造精度,并与测速方法有关。
1.3 M 法测速M 法是测量单位时间内的脉数换算成频率,因存在测量时间内首尾的半个脉冲问题,可能会有2个脉的误差。
速度较低时,因测量时间内的脉冲数变少,误差所12n n Q -=100%n nδ∆=⨯第 3 页占的比例会变大,所以M 法宜测量高速。
如要降低测量的速度下限,可以提高编码器线数或加大测量的单位时间,使用一次采集的脉冲数尽可能多。
计算公式为:c160ZT M n =时钟Z = 倍频系数 x 编码器光栅数。
M 法测速的分辨率: cc 1c 16060)1(60ZT ZT M ZT M Q =-+=M 法测速误差率: %1001%10060 )1(60 601c1c 1c 1max ⨯=⨯-=M ZT M ZT M ZT M δ 在上式中,Z 和 Tc 均为常值,因此转速 n 正比于脉冲个数。
高速时M1大,量化误差较小,随着转速的降低误差增大。
所以,M 法测速只适用于高速段。
1.4 T 法测速T 法是测量两个脉冲之间的时间换算成周期,从而得到频率。
因存在半个时间单位的问题,可能会有1个时间单位的误差。
速度较高时,测得的周期较小,误差所占的比例变大,所以T 法宜测量低速。
如要增加速度测量的上限,可以减小编码器的脉冲数,或使用更小更精确的计时单位,使一次测量的时间值尽可能大。
计算公式为:2060ZM f n =第 4 页T 法测速的分辨率)1(6060)1(602202020-=--=M ZM f ZM f M Z f Q T法测速误差率%10011%10060 60 )1(602202020max⨯-=⨯-=M ZM f ZM f M Z f δ 低速时,编码器相邻脉冲间隔时间长,测得的高频时钟脉冲个数M2多,所以误差率小,测速精度高,故T 法测速适用于低速段。
第2章硬件系统设计2.1 STC89C52介绍STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,2个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出第 5 页的处理器,从此以后,单片机和专用处理器的发展便分道扬镳图2-2 单片机原理图2.2硬件电路2.3.1时钟电路STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD 分别是此放大器的输入端和输出端。
时钟可以由内部方式产生或外部方式产生。
内部方式的时钟电路如图4—2(a) 所示,在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
其电路图2-3如下所示:第 6 页第 7 页图2-3 STC89C52的时钟电路2.3.2 显示电路本设计的显示部分使用的是液晶显示器LCD1602,该显示器只能显示英文字母和数字,所以参数的说明尤其英语意思或是符号代替。
屏幕上会显示参数、模式以及计算后的速度。
图2-4 显示电路原理图第 8 页2.3.3 速度检测电路光电编码器是开漏输出,所以在和单片机连接时需要加上拉电阻。
编码器输出端连接到51单片机外部中断0引脚上所以就可以在每次接收到脉冲时就能触发外部中断。
图2-5 测速电路原理图2.3.4 按键输入电路按键输入负责调整测速模式和改变参数的值,一个按键是“确认”按键,一个是“加”按键,在模式选择时为T 法选择键;另一个是“减”按键, 在模式选择时为M 法选择键。
在调整参数的时候,也是根据“减”“加”调整参数。
其电路图如图2-6所示。
图2-6 按键输入电路第3章系统软件设计3.1 主程序设计本设计程序运行时,通过按键输入首先来选择测速方法,然后设定测速法中T 和Z等参数。
如果选择M法测速则外部中断0和定时器0同时打开,当计时时间Tc到时,读取外部中断中对脉冲个数M1,最终计算出转速并显示。
如果选择的是T法测速则只开外部中断0关闭定时器0,当外部中断检测到第一脉冲时打开定时器0开始计数。
检测到第二个脉冲是关闭定时器计算转速。
图3-1为主程序流程图。
第 9 页图3-1 主程序流程图3.1 M法测速程序设计选择M法测速模式后,打开外部中断0,同时开启定时器0开始一定时间的定时,外部中断开始计数脉冲个数。
当定时间到的时候关闭外部中断和定时器,读取外部中断计数的个数并计算速度。
M法测速程序流程如图 3-2所示。
第 10 页图3-2 M法测速程序流程图3.2 T法测速程序设计程序初始化完成后选择T法测速模式,只打开外部中断0,当外部中断检测到脉冲的第一个跳变时打开定时器0的中断开始计时。