基于光电传感器的转速测量系统设计_第1页
基于光电传感器的转速测量系统设计_第2页
基于光电传感器的转速测量系统设计_第3页
基于光电传感器的转速测量系统设计_第4页
基于光电传感器的转速测量系统设计_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、传感器原理及应用创新性应用课题研究报告题 目:基于光电传感器的转速测量系统设计学 院: 自动化工程学院 年级专业: 2012级电子信息科学与技术 姓 名: 王强 董立华 周勇 宋晓杰任课教师: 迟宗涛 2015年 12月 27 日摘 要:转速是发动机重要的工作参数之一,也是其它参数计算的重要依据。目前常用的转速测量方法有离心式转速表测速法、测速发电机测速法、光电码盘测速法和霍尔元件测速法等。在对各种测速方法进行分析后提出了基于光电传感器的转速测量系统。详细分析了系统的组成及工作原理,给出了系统中各硬件模块设计方法及系统软件设计方法,给出了部分程序流程图和程序清单。该测速系统安装维护方便,工作稳

2、定,运行可靠,具有较大的推广应用价值。关键词 :单片机,光电转速传感器,转速测量,数据处理Abstract:The rotate speed is one of the important parametersfor the engine, and it is also the important factor that calculatesother parameters. At present there aremany methods for the tachometric survey measurement. Afteranalyze variousrotate speed meas

3、urement methods, the photoelectric sensor tachometric survey system is presented. The composition and the principle of the system are presented, and the design method of hardware and the software are also presented. The whole system has the bigger promotion application value.Keywords:single-chip com

4、puter,photoelectric sensor,rotate speed measurement,data processing目 录1 引 言42 系统组成及工作原理42.1转速测量原理42.2转速测量系统组成框图43 系统硬件电路的设计53.1 脉冲产生电路设计53.2 光电转换及信号调理电路设计63.2.1 光电传感器简介63.2.2 光电转换及信号调理电路设计73.3 测量系统主机部分设计83.3.1 单片机83.3.2 键盘显示模块设计103.3.3 串行通信模块设计123.3.4 电源模块设计134 系统软件设计144.1 主程序设计144.2 数据处理过程164.3 浮点数

5、学运算程序175 制作调试176 结果分析19结 论20参考文献21致 谢221.1引 言转速测量是社会生产和日常生活中重要的测量和控制对象。近年来,由于世界范围内对转速测量合理利用的日益重视,促使转速测量技术的迅速发展,各种新型的测量仪表相继问世并越来越多地得到应用。进行转速测量的检测控制,可以使用多种传感器。由于技术保密,厂家不会提供详细电路图和源代码,用户很难自行进行二次开发和改进。针对这种现状,使用光电传感器结合STC公司的STC 89C51型单片机设计的一种转速测量与控制系统。STC 89C51单片机采用了CMOS工艺和高密度非易失性存储器技术,而且其输入/输出引脚和指令系统都与MC

6、S-51兼容,是开发该系统的适合芯片。一种量大面广的产品,广泛应用于国民经济的各个行业中。而电机的生产王国正在由日本转移到中国,尤其是浙江温州和广东珠三角地区。广东省佛山市顺德区就有大大小小的电机生产厂家上百家,每年生产上亿台电机,同时顺德有许多家电生产厂家,家电中也要大量用到电机,不管是电机生产厂家,还是将电机作为它们的产品中的零部件的厂家,要将它们的产品打到国际市场上,迫切需要IS09002认证,IS09002要求生产产品所用的零部件以及最终的产品都要经过本单位的质量检测,也就是说,在顺德,每年要检测几亿个电机,对电机的测试仪的需求非常迫切。电机测试的参数主要有:效率、功率因数、定子输入电

7、流、转矩、转速等,本课题主要研究转速的测量。转速是发动机重要的工作参数之一,也是其它参数计算的重要依据。目前常用的转速测量方法有离心式转速表测速法、测速发电机测速法、光电码盘测速法和霍尔元件测速法等。在对各种测速方法进行分析后提出了基于光电传感器的转速测量系统。详细分析了系统的组成及工作原理,给出了系统中各硬件模块设计方法及系统软件设计方法,给出了部分程序流程图和程序清单。该测速系统安装维护方便,工作稳定,运行可靠,具有较大的推广应用价值。 转速测量通常有以下几种传感器可选:电涡流转速传感器、无源磁电转速传感器、有源磁电转速传感器等。具体需要选择哪类传感器,则要根据转速测量的要求而定。如:低速

8、测量是否需要检测零转速,高速测量的最高转速,转速发生的装置情况。转速发生装置有以下几种:用标准的渐开线齿轮(M1M5)作转速发生信号、在转轴上开一键槽 目前科研生产中采用的速度测量方法可分为两类;直接测量法和间接测量法两大类。直接测量法是通过某种测量原理或效应直接获得速度量, 如多普勒测速仪、空间滤波测速等。这种方法的最大优点是反应快、可测量瞬时速度,但设备成本高,且受到大气物理环境的限制。间接测量法是测量目标的移动距离和时间, 通过计算得到速度量, 如光电测速、光栅测速、磁栅测速和图像测速等,用于测量小型弹丸的天幕法和光幕法测速系统、用于车辆测速的激光测速仪,以及用于生产流水线上的光电脉冲测

9、速方法等等1.2国内外发展情况 转速是各类电机运行中的一个重要物理量,如何准确、快速而又方便地测量电机转速,极为重要。目前国内外常用的转速测量方法有离心式转速表测速法、测速发电机测速法、闪光测速法、光电码盘测速法和霍尔元件测速法。 (1)离心式转速表测速法 离心式转速表是利用离心原理制成的测速仪表,可以直接读出转速。测转速时,转速表的端头要插入电机转轴的中心孔内,插入前,应注意清除中心孔中的油污,并使转速表的轴与电机的轴保持同心,不可上下左右偏斜,否则易将表轴扭坏,并影响准确读数,而且转速表要间歇使用,以减少磨损和发热。如果要改变量程,还要将转速表取出停转后再改变

10、量程2。 (2) 测速发电机测速法 测速发电机测转速时,测速发电机连接到被测电机的轴端,将被测电机的机械转速变换为电压信号输出E=CeFn,在输出端接一个刻度以转速为单位的电压表,即可读出转速。 (3) 闪光测速法 闪光测速法是利用可调脉冲频率的专用电源施加于闪光灯上,将闪光灯的灯光照到电机转动部分(可在电机端轴上粘贴一张标记纸片),当调整脉冲频率使黑色扇形片静止不动时,此时脉冲的频率是与电机转动的转速是同步的。若脉冲频率为f,则电机的转速为n=60f(rmin) 。 (4) 光电码盘测速法 光

11、电码盘测速法是通过测出转速信号的频率或周期来测量电机转速的一种无接触测速法。光电码盘安装在转子端轴上,随着电机的转动,光电码盘也跟着一起转动,如果有一个固定光源照射在码盘上,则可利用光敏元件来接收到的光的次数就是码盘的编码数6。若编码数为60,测量时间为t,测量到的脉冲数为N,则n=N/t。 (5) 霍尔元件测速法 霍尔元件测速法是利用霍尔开关元件测转速的。霍尔开关元件内含稳压电路、霍尔电势发生器、放大器、施密特触发器和输出电路。输出电平与TTL电平兼容,在电机转轴上装一个圆盘,圆盘上装若干对小磁钢,小磁钢越多,分辨率越高,霍尔开关固定在小磁钢附近,当电机转动时,

12、每当一个小磁钢转过霍尔开关,霍尔开关便输出一个脉冲,计算出单位时间的脉冲数,即可确定旋转体的转速。 在这五种测速方法中,离心式转速表测速法和测速发电机测速法所用的都是现成的测速仪表,容易得到。但转速表或测速机都要与电机同轴连接,一方面增加了电机机组安装难度,另一方面有些微电机功率很小,转速表或测速机消耗的功率占了微电机大部分,更有甚者微电机甚至拖不动这些仪表,所以对微特电机的测速,这二种方法不适用。霍尔元件测速法和光电码盘测速法的测速方法基本类似,都是在转轴上装一个很轻巧的传感器,将电机的转动信号通过磁(霍尔元件)或光(光电码盘)转换为电脉冲,从而通过计算电脉冲的个数来测速。闪光测速

13、法目前实际应用不广泛,主要是光源的问题。本课题研究的是其中的光电码盘测速法。2 系统组成及工作原理2.1 转速测量原理在此采用频率测量法,其测量原理为,在固定的测量时间内,计取转速传感器产生的脉冲个数,从而算出实际转速。设固定的测量时间为Tc(min),计数器计取的脉冲个数m,假定脉冲发生器每转输出p个脉冲,对应被测转速为N(r/min),则f=pN/60Hz;另在测量时间Tc内,计取转速传感器输出的脉冲个数m应为m=Tcf ,所以,当测得m值时,就可算出实际转速值1:N=60m/pTc (r/min)(1)2.2 转速测量系统组成框图系统由信号预处理电路、单片机STC 89C51、系统化LE

14、D显示模块、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机匹配的TTL信号;通过对单片机的编程设置可使内部定时器T0对输入脉冲进行计数,这样就能精确地算出加到T0引脚的单位时间内检测到的脉冲数;设计中转速显示部分采用价格低廉且使用方便的LED模块,通过相关计算方法计算得到的转速通过I2C总线放到E2PROM存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。系统的原理框图如图2.1所示。波形整形波形变换信 号放大器键盘模块单片机

15、数字存储电路RS232LED 显 示图2.1 系统的原理框图3 系统硬件电路的设计3.1 脉冲产生电路设计设计采用了红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。系统在光电传感器收发端间加入电动机,并在电动机的转轴上安装一转盘。在这个转盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。每当转盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮子即时的转速。转盘的圆孔的个数决定了测量

16、的精度,个数越多,精度越高。这样就可以在单位时间内尽可能多地得到脉冲数,从而避免了因为两个过孔之间的距离过大,而正好在过孔之间或者是在下个过孔之前停止了,造成较大的误差。设计中转盘的圆孔的实际个数受到技术的限制。为了达到预定的效果设计在转盘过孔的设计上采用11个过孔,从而留下了10个同等的间距。这样在以后的软件设计中能够较为方便的计算出脉冲频率。脉冲发生源的硬件结构图如图3.1所示。图3.1脉冲发生源硬件结构图(左为正视图,右为侧视图)3.2 光电转换及信号调理电路设计由于系统需要将光信号转换为电信号,因而需要使用光电传感器并设计相应的信号调理电路,以得到符合要求的脉冲信号,送给单片机STC8

17、9C51进行计数,同时得到计数的时间,由单片机进行相关计算以得到电动机转速。3.2.1 光电传感器简介光电传感器是采用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。光电传感器一般由光源、光学通路和光电元件三部分组成。光电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活多样,因此,光电式传感器在检测和控制中应用非常广泛。由光通量对光电元件的作用原理不同所制成的光学测控系统是多种多样的,按光电元件(光学测控系统)输出量性质可分二类,即模拟式光电传感器和脉冲(开关)式光电传感器。模拟式光电传感器是

18、将被测量转换成连续变化的光电流,它与被测量间呈单值关系。模拟式光电传感器按被测量(检测目标物体)方法可分为透射(吸收)式、漫反射式、遮光式(光束阻档)三大类。所谓透射式是指被测物体放在光路中,恒光源发出的光能量穿过被测物,部份被吸收后,透射光投射到光电元件上;所谓漫反射式是指恒光源发出的光投射到被测物上,再从被测物体表面反射后投射到光电元件上;所谓遮光式是指当光源发出的光通量经被测物光遮其中一部份,使投射刭光电元件上的光通量改变,改变的程度与被测物体在光路位置有关。光源是许多光电传感器的重要组成部分,要使光电传感器很好地工作,除了合理选用光电元件外,还必须配备合适的光源。发光二极管是一种把电能

19、转变成光能的半导体器件。它具有体积小、功耗低、寿命长、响应快、机械强度高等优点,并能和集成电路相匹配。因此,广泛地用于计算机、仪器仪表和自动控制设备中。钨丝灯泡是一种最常用的光源,它具有丰富的红外线。如果选用的光电元件对红外光敏感,构成传感器时可加滤色片将钨丝灯泡的可见光滤除,而仅用它的红外线做光源,这样,可有效防止其他光线的干扰。激光与普通光线相比具有能量高度集中,方向性好,频率单纯、相干性好等优点,是很理想的光源。综上所述,各种光源各具优点,但从经济与使用便利方面考虑,并考虑到抗干扰性能,我们决定选用红外光二极管做系统测量的光源。由光源、光学通路和光电器件组成的光电传感器在用于光电检测时,

20、还必须配备适当的信号调理电路。这些信号调理电路负责将光电传感器输出的微弱的光电信号进行放大、整形,转换成所单片机定时计数所需要的脉冲信号。不同的光电元件,所要求的测量电路也不相同,为此设计时必须详加考虑。光电开关有以下几种类型 (1)漫反射式光电开关:它是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的表面光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式 (2)镜反射式光电开关:它亦集发射器与接收器于一体,光电开关发射器发出的光线经过反射镜反射回接收器,当被检测物体经过且完全阻断光

21、线时,光电开关就产生了检测开关信号。 (3)对射式光电开关:它包含了在结构上相互分离且光轴相对放置的发射器和接收器,发射器发出的光线直接进入接收器,当被检测物体经过发射器和接收器之间且阻断光线时,光电开关就产生了开关信号。当检测物体为不透明时,对射式光电开关是最合适的检测装置。 (4)槽式光电开关:它通常采用标准的U字型结构,其发射器和接收器分别位于U型槽的两边,并形成一光轴,当被检测物体经过U型槽且阻断光轴时,光电开关就产生了开关量信号。槽式光电开关比较适合检测高速运动的物体,并且它能分辨透明与半透明物体,使用安全可靠。 (5)光纤式光电开关:它采用塑料或玻璃光纤传感器来引导光线,可以对距离

22、远的被检测物体进行检测。通常光纤传感器分为对射式和漫反射式。 7 本课题中使用的光电开关是根据光敏二极管工作原理制造的一种感应接收光强度变化的器件,当它发出的光被目标反射或阻断时,则接收器感应出相应的电信号。它包含调制光源,由光敏元件等组成的光学系统、放大器、开关或模拟量输出装置,其工作原理如图5所示。光电式传感器由独立且相对放置的光发射器和收光器组成。当目标通过光发射器和收光器之间并阻断光线时,传感器输出信号。它是效率最高、最可靠的检测装置。槽形(U形)光电开关是对射式的变形,其优点是无须调整光轴。 3.2.2 光电转换及信号调理电路设计传感器将电机的转速信号转变成了电脉冲信号,该信号经过L

23、M324集成运放整形驱动,送到单片机进行脉冲计数,从而测出电动机转速。光电转换部分与单片机的连接框图如图3.2所示。LED数码管数码显示译码器计数脉冲整形驱动LM324传感器STC 89C51图3.2 光电转换部分与单片机的连接框图LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形如图所示。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图3.3所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该

24、输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324的引脚排列见图3.4图3.3放大器图 图3.4 引脚图由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。本设计计划采用高性能集成四运放LM324来进行光电信号调理电路设计。电路采用两级放大电路对脉冲信号进行放大,防止信号脉冲太小以至对实验结果不产生影响。此外,还设计了有源带通滤波器。为了达到预定效果,对系统运用MULTISIM 8进行模拟仿真,并利用模拟仿真结果对有关元器件进行参数设定,以使电路满足要求。如图3.5所示是MULTISI

25、M 进行电路模拟仿真示意图及其模拟仿真结果。图3.5 电路模拟仿真示意图及其模拟仿真结果3.3 测量系统主机部分设计3.3.1 单片机单片机是单片微型计算机(Single Chip Microcomputer)的简称,是指在一块芯片上集成了中央处理器CPU、随机存储器RAM、程序存储器ROM或EPROM、定时器/计数器、中断控制器以及串行和并行I/O接口等部件,构成一个完整的微型计算机。目前,新型单片机内还有A/D及D/A转换器、高速输入/输出等部件。由于它的结构和指令功能都是按工业控制要求设计的,特别适用于工业控制及其数据处理场合,因此,确切的称谓应是微控制器(Microcontroller

26、). 系统使用的单片机是STC 89C51型单片机。STC 89C51单片机是基于MCS-51单片机为内核的,其输入/输出管脚以及指令系统和MCS-51单片机是完全兼容的。其优越的性价比使其成为颇受欢迎的8位单片机。如图3.6是STC 89C51结构框图。STC 89C51单片机的特点: 它内部有一个8位的CPU,具有4KB的EEPROM。 128字节的RAM数据存储器,21个特殊功能寄存器SFR。 4个8位并行I/O口,其中P0、P2为地址/数据线,可寻址64KB ROM和64KB RAM. 一个可编程全双工串行口,具有5个中断源。 两个16位定时器/计数器。 计数脉冲输入 T0 T1定时/

27、计数器 T0、T1特殊功能寄存器SFR128字节RAM4K ROM(EPROM)(8031无)时钟源串行接口并行I/O接口中断系统CPUP0 P1 P2 P3TXD RXDINT0 INT1中断输入图3.6 STC 89C51结构框图 图3.7是STC 89C51单片机引脚分布图。由图我们可以看到,单片机的引脚除了电源、复位、时钟接入、用户I/O口外,其余管脚是为实现系统扩展而设置的。这些引脚构成MCS-51单片机片外三总线结构,即: 地址总线(AB):地址总线宽为16位,因此,其外部存储器直接寻址为64K字节,16位地址总线由P0口经地址锁存器提供8位地址(A0至A7);

28、P2口直接提供8位地址。 数据总线(DB):数据总线宽度为8位,由P0提供。 控制总线(CB):由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成。图3.7 STC89C51管脚图3.3.2 键盘显示模块设计图3.8为键盘电路图,按键功能通过软件编程设置:按 K0为清零、复位;按K1显示计时时间;按K2显示计数脉冲数;此按键电路为低电平有效,当无按键按下时,单片机输入引脚P1.0、P1.1、P1.2、P1.3端口均为高电平。当其中任一按键按下时,其对应的P1端口变为低电平,在软件中利用这个低电平设计其功能。软件中还设置了按键防抖动误触发功能,软件中

29、设置定时器1 50ms中断一次,每次中断都对按键进行扫描,如果扫描到有按键按下,则延迟10ms,再次进行键扫描,若仍有按键按下,则按键为真,并从P1口读取数据,低电平对应的即为有效按键。 图3.8 按键电路图显示部分采用价廉方便的LED数码管,图3.9为数码管的引脚接线图。测量系统有8位共阳的LED数码管,表3.1为驱动LED数码管的段代码表,1-代表对应的笔段亮,0-代表对应的笔段不亮。若需要在最右边(S0)显示“5”,只要将从表中查得相应的段代码写入P0口,在将P2.0置高,P2.1-P2.7置低即可。图3.9 数码管的引脚接线图表3.1 驱动LED数码管的段代码表数字dpecgbfa十六

30、进制P0.7P0.6P0.5P0.4P0.3P0.2 P0.1P0.0共阴共阳010110111B74810001010014EB210101101AD523100111019D624000111101E64610111011BB4470001010115EA810111111BF409100111119F60显示电路如图3.10,其电路采用动态显示方式。电机转速的测量结果经过译码, 输出的8位并行数据通过STC89C51 的并行口(P0口)输出,送至7段LED ,同时由P2口输出位扫描信号以实现测量数据的动态显示。P0口 和 P2口都是准双向口,输出时需要接上拉电阻

31、。P0内部没有上拉电阻,P2口内部有弱上拉。所以P0口外围电路设计为低电平有效,高电平无效。要使数码管S0-S7的其中一个亮,其对应的P2端口要置高,P2的其余端口置低。如:S0亮:P2.0置高,P2.1-P2.7置低。系统将定时把缓冲区的数据送出,在数码管上显示。图3.10 显示电路图LCD原理 各种图形的显示原理 线段的显示:点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位

32、置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。 字符的显示:LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它

33、的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。 汉字的显示:字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直

34、到32B显示完就可以LCD上得到一个完整汉字 。 本设计选用了1602型LCD。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。3.3.3 串行通信模块设计STC89 C51单片机的串行通讯接口的输入输出为TTL高电平为3.8V-5V,低电平为0-0.3V,这对近距离通讯还可以,但当通讯距离远时,就会因为TTL电平低,抗干扰能力弱而影响可靠性。为了提高串行通讯接口的抗干扰能力和增强可靠性,于是就出现了许多通讯标准和规程。目前,RS-232标准就是其中比较常用的一种,这样,一方面可提高这些设备的通用性,另一方面又增强了

35、数据传送时的可靠性。232电平转换采用MAX232芯片把TTL电平转换成RS232电平格式,可以用于单片机与微机通信,以及单片机与单片机之间的通信,测量系统设计了两个DB9的接口,其中一个用于ISP下载器模块的程序下载接口,称为“ISPInterface”,另一个接口为单片机与其它具有RS232接口的通信端口,称为“Common Port”。具体的电路原理图如图3.11所示。图3.11电路原理图3.3.4 电源模块设计电源模块为系统板上其它模块提供5V电源以及±15V电源。电源的设计有分立元件和集成稳压器几种方法,目前较常用的是用集成稳压器来设计稳压电源。常用的集成稳压器有固定式三端

36、稳压器与可调式三端稳压器。常用可调式集成稳压器有LM317系列,它们的输出电压从1.25V37伏可调,负端则为LM337等。最简的电路外接元件只需一个固定电阻和一只电位器。其芯片内有过热和安全工作区保护,最大输出电流为1.5A。系统需要设计两个电源,其中5V电源采用7805,电路原理图如图3.12所示。原理:9V的交流电压输入后经桥堆整流,通过1000F的电解电容进行滤波,再经过集成稳压器7805稳压,C17、C19等电容对其进行滤波后,最后输出+5V电压。供系统板上的其它模块使用。图3.12 5V电源模块电路图±15V电源采用LM317与LM337设计,其典型电路如图3.13。22

37、0V的交流电压经变压器变为±15V交流电压,再经桥堆整流器变为大小变化的直流电压。C1C4为滤波电容,滤除电压中的高频部分,使电压趋于稳定的直流电压。其中LM317和LM337构成±15V直流稳压电源的稳压部分,确保在其输出端的电压稳定在1.25V左右。D1D4对LM317和LM337具有短路保护作用。通过对电位器R3、R4的调节来获得所需的电压,即±15V稳定的直流电压。图3.13 ±15V直流稳压电源4 系统软件设计4.1程序模块设计软件部分由数据处理程序、按键程序设计、中断服务子程序、LED显示程序等几个部分组成。数据处理完成对各种测量数据的处理,

38、如各种数据的计算、数据格式的转换等。按键程序包括按键防抖动处理、判键及修改项目等。按键流程图如图4.1所示。定时器1服务子程序设计,流程图如图4.2所示。定时器1完成定时功能,定时2Oms,并每隔20ms进行一次显示,每隔1秒读一次计数结果。单片机对在1秒内计数的值进行处理,转换成每分钟的速度送显存以便显示。具体算法如下:主程序在对定时器、计数器、堆栈等进行初始化后即判断标志是否为 1,如果为 1,说明要求对数据进行计算处理,首先将标志清零,以保证下次能正常判断,然后进入数据处理程序,由于这里的闸门时间为 1s,而显示要求为转/分,因此,要将测到的数据进行转换,转换的方法是将测得的数据乘以60

39、,但由于转轴上安装有11只孔,每旋转一周可以得到11个脉冲,因此,要将测得的数据除以11,所以综合起来,将测得的数据乘以5.4545即可得到每分钟的转速。计算得到的结果是二进制的整数,要将数据送往显示缓冲区需要将该数转化为BCD码。运算得到的是压缩BCD码,需要将其转换为非压缩BCD码,从标号CBCD开始的一段程序即作了这样的处理。需要说明的是,这里多位二进制乘法和多位二进制到BCD码的转换都是用了现成的成熟子程序,因此,首先将二进制数转换为压结合实际BCD码,然后再转换成非压缩BCD码,看似多写了些程序,实际上这对于保证程序的质量很有好处。定时器T1用作定时发生器,在定时中断程序中进行数码管

40、的动态扫描,同时产生1s的闸门信号。1s闸门信号的产生是通过一个计数器Count,每次中断时间为20ms,每计50 次即为1s,到了1s后,即清除计数器Count,然后关闭作为计数器用的T0,读出TH0、TL0中的数值,分别送入SpCount和SpCoun+1单元,将T0中的值清空,置标志为1,要求主程序进行速度值的计算。软件部分由数据处理程序、中断服务子程序、1602液晶显示程序等几个部分组成。 数据处理完成对各种测量数据的处理,如各种数据的计算、数据格式的转换等。 定时器1服务子程序设计,流程图如图4.2所示。定时器1完成定时功能,定时2Oms,并每隔20ms进行一次显示,每隔1秒读一次计

41、数结果。单片机对在1秒内计数的值进行处理,转换成每分钟的速度送显存以便显示。 具体算法如下:主程序在对定时器、计数器、堆栈等进行初始化后即判断标志是否为 1,如果为 1,说明要求对数据进行计算处理,首先将标志清零,以保证下次能正常判断,然后进入数据处理程序,由于这里的闸门时间为 1s,而显示要求为转/分,因此,要将测到的数据进行转换,转换的方法是将测得的数据乘以60,但由于转轴上安装有12只孔,每旋转一周可以得到12个脉冲,因此,要将测得的数据除以12,所以综合起来,将测得的数据乘以5即可得到每分钟的转速。计算得到的结果是二进制的整数,要将数据送往显示缓冲区需要将该数转化为BCD码。运算得到的

42、是压缩BCD码,需要将其转换为非压缩BCD码,从标号CBCD开始的一段程序即作了这样的处理。需要说明的是,这里多位二进制乘法和多位二进制到BCD码的转换都是用了现成的成熟子程序,因此,首先将二进制数转换为压结合实际BCD码,然后再转换成非压缩BCD码,看似多写了些程序,实际上这对于保证程序的质量很有好处。定时器T1用作定时发生器,在定时中断程序中进行数码管的动态扫描,同时产生1s的闸门信号。1s闸门信号的产生是通过一个计数器Count,每次中断时间为20ms,每计50 次即为1s,到了1s后,即清除计数器Count,然后关闭作为计数器用的T0,读出TH0、TL0中的数值,分别送入SpCount

43、和SpCoun+1单元,将T0中的值清空,置标志为1,要求主程序进行速度值的计算。 图4.1 按键流程图图4.2定时器1服务子程序流程图4.2 数据处理过程在系统开始工作,或者完成一次频率测量,系统软件都进行测量初始化。测量初始化模块设置堆栈指针(SP) 、工作寄存器、中断控制和定时/ 计数器的工作方式。定时/ 计数器的工作首先被设置为计数器方式。在对定时/ 计数器的计数寄存器清0 后,置运行控制位TR 为1 ,启动对待测信号的计数。计数闸门由软件延时程序实现,从计数闸门的最小值开始,也就是从测量频率的高量程开始。计数闸门结束时TR 清0 ,停止计数。计数寄存器中的值通过16进制数到10进制数

44、转换程序转换为10进制数。对10进制数的最高位进行判别,若该位不为0 ,满足测量数据有效位数的要求,测量值和量程信息一起送到显示模块;若该位为0 ,将计数闸门的宽度扩大10倍,重新对待测信号的计数,直到满足测量数据有效位数的要求。当上述测量判断过程直到计数闸门宽度达到1s ,这时对应的频率测量范围为100Hz - 999Hz ,如果测量结果仍不具有3 位有效数字,频率计则使用定时方法测量待测信号的周期。定时/计数器的工作这时被设置为定时器方式,在对定时/ 计数器的计数寄存器清0 后,判断待测信号的上跳沿是否到来。待测信号的上跳沿到来后,置运行控制位TR 为1 ,以单片机工作周期为单位,启动对待

45、测信号的周期测量。然后判断待测信号的下跳沿是否到来,待测信号的下跳沿到来后,运行控制位TR 清0 ,停止计数。16 位定时/ 计数器的最高计数值为65535 ,这样在待测信号的频率较低时,定时/ 计数器将发生溢出。当产生定时/ 计数器将溢出,程序进入定时器中断服务程序,中断服务程序对溢出次数进行计数。待测信号的周期由3个字节组成:定时/ 计数器溢出次数、定时/ 计数器的高8 位和低8 位。信号的频率f 与信号的周期T 之间的关系为:f = 1/ T完成信号的周期测量后,需要做一次倒数运算才能获得信号的频率。为提高运算精度,这里采用浮点数算术运算。浮点数用3个字节组成,第一字节最高位为数符,其余

46、7 位为阶码;第二字节为尾数的高字节;第三字节为尾数的低字节。待测信号周期的3个字节定点数首先通过截取高16 位、设置数符和计算阶码转换为上述格式的浮点数。然后浮点数算术运算对其进行处理,获得用浮点数格式表达的信号频率值。浮点数到BCD 码转换模块把用浮点数格式表达的信号频率值变换成测转速的显示格式,送到显示模块显示待测信号的频率值。4.3浮点数学运算程序STC89C51系列单片机属于微控制器,由于其CPU字长和指令功能的限制,它适用于控制领域,在信号处理方面不很擅长。在频率计中需要完成周期到频率的换算,为保证测量结果的准确,这里应用了浮点数数学运算。从周期到频率的换算过程包括: 3字节定点数

47、到浮点数的转换、浮点数数学运算和浮点数到十进制码的转换。5 制作调试在硬件调试与制作方面,可从下面系列着手考虑。信号盘可用一般钢板制成,这个信号盘就是发动机实验时所用的转盘,盘上共有11个齿,每个大孔直径为6mm,盘中心还有一个中心孔。中心孔主要用于在固定发动机上。将信号盘与电机安装在一起,使其随电机转动;传感器固定在支架上,垂直于转速盘,当转速盘旋转时,光电传感器就输出矩形脉冲信号,每11个脉冲对应发动机1个工作循环,其中的2个宽脉冲信号配合上止点信号可精确确定上止点的位置。此检测装置完全按照发动机上传感器的实际安装位置进行安装。如图5.1,将信号盘固定在电动机转轴上,光电转速传感器正对着信

48、号盘。光电转速传感器接有4根导线,其中黑线、黄线为电源输入线,红线为信号输出线,白线为共地线。测量头由光电转速传感器组成,而且测量头两端的距离与信号盘的距离相等。测量用器件封装后,固定装在贴近信号盘的位置,当信号盘转动时,光电元件即可输出正负交替的周期性脉冲信号。信号盘旋转一周产生的脉冲数,等于其上的孔数。因此,脉冲信号的频率大小就反映了信号盘转速的高低。此转速测量装置可以实现数字显示,成为数字式转速表。图5.1 转速测速示意图LM324整形电路调试。在焊接硬件电路时需细心排除元器件和焊接等方面可能出现的故障,元器件的安装位置出错或引脚差错可能导致电路短路或实现不了电路本身的功能,甚至烧坏元器

49、件。单片机部分最容易出现的问题为元器件引脚的虚焊。被测物理量经过传感器变换后,往往成为电阻、电流、电压、电感等某种电参数的变化值。为了进行信号的分析、处理、显示和记录,须对信号作放大、运算、分析等处理,这就引入了中间变化电路。查阅有关资料结合选用的光电传感器相关参数,我们设计了如图3.6所示的中间变换电路。当调制盘上的圆形孔旋转至与光电开关的透光位置重合时,触发器输出高电平;当通光孔被遮住时,触发器输出低电平。输出的信号经LM324电路整形调试,可以将信号源完好的整形成矩形脉冲信号。在把矩形脉冲信号输入单片机之前,先把矩形脉冲信号接入示波器进行调试。除了要考虑到硬件方面,对软件调试也不能忽视。

50、程序应该模块化,便于修改。使用RAM或IO,必须先定义再使用,避免直接引用。将来需要调整时,只要修改定义部分就好了。写程序要有足够的注释、说明文档、流程图、原理图。每次修改程序,应该同步更新相关的注释、说明文档、流程图、原理图。免得下次再改时对不上号。实验板与PC机连接时一定要先连接串行通信电缆,然后再将其电源线插入USB借口;拆除时先断开其电源,再断开串行通信电缆。否则极易损坏PC机的串口。在进行软件编程调试时需要用到单片机的集成开发环境MedWin V2.39 软件,编程时容易出现键盘输入和无意的语法错误,还有一些模块达不到预期的功能,都要经过调试才能排除。MedWin V2.39 软件具

51、有很强大的编程调试功能,能够模仿仿真实际单片机的端口和内部功能部件的状态值。该软件中有硬件调试和软件调试功能可以看到单片机内存单元对应的运行值,外围部件中可以显示单片机端口,中断、定时器1、定时器2、定时器3 还有串口对应的运行值。可以单步调试也可以模块调试,最好的是可以对你所怀疑的语句模块设置断点。所以MedWin V2.39 具有强大的编译调试功能。此系统将个功能模块:主程序、数据处理程序、按键程序设计、中断服务子程序、LED显示程序分开分别进行调试,最后整体调试。编译无误后生成目标代码BIN文件。采用STC 单片机下载软件STC-ISP将其下载到实验板的单片机中。 在最后一步点击软件ST

52、C-ISP界面中的下载按钮之前,一定要保持实验板的串行通信线及电源线与PC机连接良好,并且实验板的电源开关处于关闭状态,然后点击下载按钮,再打开实验板电源开关,此时软件将自动完成程序下载。下载完毕,实验板上的单片机立即开始运行。6结果分析设计已基本完成题目中的各项要求,但是还是有一定的误差,其中电机转速的测量与实际转速相差15 转/分左右,经分析主要是由以下原因造成的:中断处理的进入和中断处理程序都会有一定时间的延时,从而造成时间闸门的误差,这是造成测量误差的一个主要因素。另外,由于电机的转盘是采用塑料盘片磨制而成,高速旋转时容易打飘不稳,导致获得的脉冲信号频率与实际转速有一定的误差。7 部分

53、源程序 #include<reg52.h> #include<stdio.h> #define uchar unsigned char #define uint unsigned int sbit lcden=P26;/定义1602使能端sbit lcdrs=P24; sbit lcdrw=P25; sbit a=P10;/对射传感器的信号输出端sbit add=P34;/按键加一变量sbit

54、 jian=P35;/按键减一变量 sbit bj=P23;/蜂鸣器端口char zhuan16;/设置临时数组uint num2;/每秒的转速uint number=7;/设定转速的初值,在其基础上按键加一或按键减一uint num=0;/转数变量void Init_Timer0(void); void delay(uint z)/延迟函数 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);&#

55、160; void write_com(uchar com)/1602写命令 lcdrs=0; P0=com;  delay(5); lcden=1; delay(5); lcden=0;  void write_date(uchar date)/1602写数据 lcdrs=1; lcden=1; P0=date; delay(5); lcden=0;  void LCD_Wr

56、ite_String(uchar x,uchar y,uchar *s) /向1602写字符串      if (y = 0)          write_com(0x80 + x);     /表示第一行  else     

57、       write_com(0xC0 + x);      /表示第二行           while (*s)           write_date( *s);   

58、    s+;           void LCD_Write_Char(uchar x,uchar y,uchar Data) /向1602写字符        if (y = 0)        

59、0;  write_com(0x80 + x);             else           write_com(0xC0 + x);                 write_date( Data);     void init()    /初始化 bj=0; /蜂鸣器初始化write_com(0x0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论