基于C51单片机直流电机测速仪设计
摘 要:电机的转速是各类电机运行过程中的一个重要监测量,测速装置在电机调速系统中占有非常重要的地位,特别是数字式测速仪在工业电机测速方面有独到的优势。本文介绍了一种基于C51单片机的光电传感器转速测量系统的设计。系统采用对射式光电传感器产生与齿轮相对应的脉冲信号,使用AT89C51单片机采样脉冲信号并计算每分钟内脉冲信号的数目,即电机对应的转速值,最终系统通过LCD实时显示电机的转速值。经过软硬件系统的搭建,分别通过Protues软件系统仿真实验和实际电路搭建检查实验。仿真实验表明本系统满足设计要求,并且结构简单、实用。整个直流电机测速系统在降低测速仪成本,提高测速稳定性及可靠性等方面有一定的应用价值。
关键词:转速测量;光电传感器;单片机
Based On C51 SCM Single DC Motor Speedometer Design
ABSTRACT:Motor speed is all kinds of motor operation is an important process to monitor the amount of speed measuring device in the motor control system occupies a very important position, Especially the digital speedometer in the industrial motor speed has unique advantage. This paper describes a photoelectric sensor 51 SCM-based speed measurement system design. System uses a beam photoelectric sensor generates a pulse signal corresponding to the gear, the use of a sampling pulse signal AT89C51 SCM and calculating the pulse per minute, the number of signals that the speed of the motor corresponding to the value of the final system time through the LCD display the motor speed value.After a hardware and software system structures, respectively, through Protues software system to build the actual circuit simulation and experimental examination. Simulation results show that the system meets the design requirements, and the structure is simple and practical. DC Motor Speed entire system in reducing speedometer costs, improve reliability, speed stability and a certain application value.
Keywords: Speed measurement; Photoelectric; Single chip micyoco
目 录
1 绪论 ............................................................. 1
1.1 数字式转速测量系统的发展背景 ................................ 1
1.2 转速测量在国民经济中的应用 .................................. 1
1.3主要研究内容................................................. 2
1.4 设计的目的和意义 ............................................ 2
2 转速测量系统的原理 .............................................. 4
2.1 转速测量原理 ................................................ 4
2.2 转速测量计算方法 ............................................ 5
3转速测量系统设计方案 ............................................. 7
3.1 直流电机转速测量方法 ........................................ 7
3.2 设计任务及方案 .............................................. 8
4 直流电机测速系统设计 ............................................ 9
4.1 单片机AT89C51介绍 .......................................... 9
4.2 转速信号采集 ............................................... 14
4.2 转速信号处理电路设计 ....................................... 16
4.4 最小系统的设计 ............................................. 17
4.4.1复位电路............................................... 17
4.4.2 晶振电路 .............................................. 20
4.5 显示部分设计 ............................................... 20
5 直流测速系统仿真 ............................................... 24
5.1 直流测速系统仿真 ........................................... 24
5.1.1单片机最小系统仿真 .................................... 25
5.1.2 数码管显示仿真........................................ 25
5.2 主程序流程设计 ............................................. 26
5.2.1 主程序流程设计....................................... 26
5.2.2 定时器的初始化........................................ 27
5.3 实际电路实验 ............................................... 28
参考文献 .......................................................... 30
致 谢............................................................. 31
1 绪论
1.1 数字式转速测量系统的发展背景
在现代工业自动化高度发展的时期,几乎所有的工业设备都离不开旋转设备,形形色色的电机在不同领域发挥着很重要的作用。与之而来的问题是,如何更好地控制旋转设备,对于不同的场合,对电机的控制要求是不同的,但大部分都会涉及到旋转设备的转速测量,从而利用转速来实施对旋转设备的控制。而数字显示转速测量系统在工业电机转速测量方面有独到的优势。
目前国内外测量电机转速的方法很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号。其中应用最广的是光电式,光电式测速系统具有低惯性、低噪声、高分辨率和高精度的优点。加之激光光源、光栅、光学码盘、CCD 器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。而采用光电传感器的电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度与被测转速无关等优点,具有广阔的应用前景[1]。
1.2 转速测量在国民经济中的应用
转速测量的应用系统在工业生产、科技教育、民用电器等各领域的应用极为广泛,往往成为某一产品或控制系统的核心部分,其各种参数在不同的应用中有其侧重,但转速测量系统作为普遍的应用在国民经济发展中,有重要的意义。特别在调速系统中的应用。
直流电机具有良好的起、制动性能,易于在宽广范围内平滑调速,所以长期以来在要求调速指标较高的场合获得了广泛应用。随着电力电子技术和控制技术的发展,交流调速系统日趋完善,其性能可与直流调速系统相媲美,其变频调速的应用范围日益扩大,但它的控制技术相对复杂,整个控制系统造价较高,在某些领域短时间内还难以取直流调速系统,调速系统便应运而生了。调速系统主电路线路简单,所用的功率元件少;开关频率高,可达到1000~4000Hz,电流易连续,谐波少,脉动小,电机损耗和发热都较小;低速性能好,稳态精度高,因
而调速范围宽;调速系统频带宽,快速响应性能好,动态抗扰能力强;主电路元件工作在开关状态,导通损耗小,装置效率高[2];直流电源采用三相整流时,电网功率因数高,可广泛用于交通、工矿企业等电力传动系统中。
1.3主要研究内容
(1) 详细介绍电机转速的测量方法,对光电码盘直流电机测速法,其具体测量方法的转速计算,测量精度和误差进行阐述。在保持一定的测量精度情况下,应用光电码盘测速法,说明转速测量原理。
(2) 根据单片机系统的设计原则,提出测量方案,构建硬件系统,分别对硬件系统的配置予以估计,使其能够对转速进行测量。同时分析接口电路,显示转速。
(3) 对单片机定时/计数器进行设置,设计和说明定时/计数器在光电码盘法测量中的作用和使用方法,讨论测量精度的问题。
(4) 根据系统要求设置各控制字,用C汇编语言编制程序,包括主程序流程,显示中断程序流程。并用软件的方法对计数和定时进行同步,力求在不增加硬件的条件下,使同步达到满意的效果。
(5) 利用Keil软件和Protues集成环境对系统对工作软件进行编译、调试和仿真。
1.4 设计的目的和意义
转速是工程中应用非常广泛的一个参数,其测量方法较多,而模拟量的采集和模拟处理一直是转速测量的主要方法,这种测量方法已不能适应现代科技发展的要求,在测量范围和测量精度上,已不能满足大多数系统的使用。随着大规模及超大规模集成电路技术的发展,数字系统测量得到普遍应用,特别是单片机对脉冲数字信号的强大处理能力,使得全数字测量系统越来越普及,其转速测量系统也可以用全数字化处理。在测量范围和测量精度方面都有极大的提高。因此,本设计的目的是:对各种测量转速的基本方法予以分析,针对不同的应用环境,利用80C51系列单片机设计一种全数字化测速系统,从提高测量精度的角度出发,分析讨论其产生误差的可能原因,为今后的实际使用提供借鉴[3]。并从实际硬件电路出发,分析电路工作原理和软件流程,根据仿真情况提出修改方案和解决办法。
课题以单片机为中心,设计的全数字化测量转速系统,在工业控制和民用电器中都有较高使用价值。其可以应用于工业控制中的某一部分,如数控车床的电机转速检测和控制、水泵流量控制以及需要利用转速检测来进行控制的许多场
合。如车辆的里程表、车速表等。其次该转速测量系统由于采用全数字化结构,因而可以很方便的和工业控制计算机进行连接,实行远程管理和控制,进一步提高现代化水平。并且,几乎不需做很大改变直接就能作为单独的使用产品。总之,转速测量系统的研究是一件非常有意义的课题。
2 转速测量系统的原理
2.1 转速测量原理
一般的转速长期测量系统是预先在轴上安装一个有60 齿的测速齿盘,用变磁阻式或电涡流式传感器获得一转60 倍转速脉冲,再用测频的办法实现转速测量。而临时性转速测量系统,多采用光电传感器,从转轴上预先粘贴的一个标志上获得一转一个转速脉冲,随后利用电子倍频器和测频方法实现转速测量。不论长期或临时转速测量,都可以在微处理器的参与下,通过测量转轴上预留的一转一齿的鉴相信号或光电信号的周期,换算出转轴的频率或转速。即通过速度传感器,将转速信号变为电脉冲,利用微机在单位时间内对脉冲进行计数,再经过软件计算获得转速数据。即: n=
式中, n — 转速,转/分钟
N — 采样时间内所计脉冲个数
T — 采样时间,分钟
m — 每旋转一周所产生的脉冲个数(通常指测速码盘的齿数)。 如果m=60,那么1 秒钟内脉冲个数N就是转速n, 即: NN1=⨯ (2-2) n=mT6060
通常m为60。
在对转速波动较快系统或要求动态特性好而精度高的转速测控系统中,调节周期一般很短,相应的采样周期需取得很小,使得脉冲当量增高,从而导致整个系统测量精度降低,难以满足测控要求。提高采样速率通常就要减小采样时间T,而T 的减小会使采到的脉冲数值N下降,导致脉冲当量(每个脉冲所代表的转速) 增高,从而使得测量精度变得粗糙。通过增加测速码盘的齿数可以提高精度,但是码盘齿数的增加会受到加工工艺的限制,同时会使转速测量脉冲的频率增高,频率的提升又会受到传感器中光电器或磁敏器或磁电器件最高工作频率的限制。凡此种种因素限制了常规智能转速测量方法的使用范围。而采用本文所提出的定时分时双频率采样法,可在保证采样精度的同时,提高采样速率,充分发挥微机智能测速方法的优越性及灵活性[4]。 N (2-1) mT
图2-1 系统原理图
各部分模块的功能:
(1) 传感器:用来对信号的采样。
(2) 放大、整形电路:对传感器送过来的信号进行放大和整形,在送入单片机进行数据的处理转换。
(3) 单片机:对处理过的信号进行转换成转速的实际值,送入LED。
(4) LED显示:用来对所测量到的转速进行显示。
2.2 转速测量计算方法
转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否,因此,转速测量一直是工业领域的一个重要问题。按照不同的理论方法,先后产生过模拟测速法(如离心式转速表)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。本文介绍的采用单片机和光电传感器组成的高精度转速测量系统,其转速测量方法采用的就是电子式定时计数法。
对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。在频率的工程测量中,电子式定时计数测量频率的方法一般有三种:
① 测频率法:在一定时间间隔t 内,计数被测信号的重复变化次数N ,则被测信号的频率fx 可表示为: N (2-3) t fX=
② 测周期法:在被测信号的一个周期内,计数时钟脉冲数m0,则被测信号频率fX=fc,其中,fc 为时钟脉冲信号频率。 m0
③ 多周期测频法:在被测信号m1个周期内,计数时钟脉冲数m2,从而得到被测信号频率fx,则fx可以表示为fx=m1⨯fc⨯m2,m1 由测量准确度确定。
电子式定时计数法测量频率时,其测量准确度主要由两项误差来决定:一项是时基误差;另一项是量化±1误差。当时基误差小于量化±1 误差一个或两个
数量级时,这时测量准确度主要由量化±1 误差来确定。对于测频率法,测量相对误差为:
Er1 = 测量误差值/实际测量值×100 % = 1⨯100% (2-4) N⎛⎫ ⎪⎝t⎭
由此可见,被测信号频率越高,N 越大,Er1就越小,所以测频率法适用于高频信号(高转速信号)的测量。对于测周期法,测量相对误差为:
1⨯100%Er2= 测量误差值/实际测量值×100% = (fc⨯m0) (2-5)
对于给定的时钟脉冲fc,当被测信号频率越低时,m0越大,Er2就越小,所以测周期法适用于低频信号(低转速信号) 的测量。对于多周期测频法,测量相对误差为:
Er3 = 测量误差值/实际测量值×100% = 1⨯100% (2-6) m1⨯fc⨯m2从上式2-6 可知,被测脉冲信号周期数m1越大, m2就越大,则测量精度就越高。它适用于高、低频信号(高、低转速信号) 的测量。但随着精度和频率的提高, 采样周期将大大延长,并且判断m2也要延长采样周期,不适合实时测量。
根据以上的讨论,考虑到实际应用中需要测量的转速范围很宽,上述的转速测量方法难以满足要求。因此,研究高精度的转速测量方法,以同时适用于高、低转速信号的测量,不仅具有重要的理论意义,也是实际生产中的需要。
3转速测量系统设计方案
3.1 直流电机转速测量方法
直流电机转速测量的方案选择一般要考虑传感器的结构、安装以及测速范围与环境条件等方面的适用性;再就是二次仪表的要求,除了显示以外还有控制、通讯和远传方面的要求。经过查找资料,综合资料分析,从实现难度、熟悉程度、器件用量等方面综合考虑,我们才能最终选择一个最合适的方案。
目前国内外常用的转速测量方法有离心式转速表测速法、测速发电机测速法、闪光测速法、光电码盘测速法和霍尔元件测速法。
(1) 离心式转速表测速法
离心式转速表是利用离心原理制成的测速仪表,可以直接读出转速。测转速时,转速表的端头要插入电机转轴的中心孔内,插入前,应注意清除中心孔中的油污,并使转速表的轴与电机的轴保持同心,不可上下左右偏斜,否则易将表轴扭坏,并影响准确读数,而且转速表要间歇使用,以减少磨损和发热。如果要改变量程,还要将转速表取出停转后再改变量程。
(2) 测速发电机测速法
测速发电机测转速时,测速发电机连接到被测电机的轴端,将被测电机的机械转速变换为电压信号输出E=Cefn,在输出端接一个刻度以转速为单位的电压表,即可读出转速。
(3) 闪光测速法
闪光测速法是利用可调脉冲频率的专用电源施加于闪光灯上,将闪光灯的灯光照到电机转动部分(可在电机端轴上粘贴一张标记纸片),当调整脉冲频率使黑色扇形片静止不动时,此时脉冲的频率是与电机转动的转速是同步的。若脉冲频
r率为f,则电机的转速为n=60f⎛ ⎝min⎫ 。 ⎪⎭
(4) 光电码盘测速法
光电码盘测速法是通过测出转速信号的频率或周期来测量电机转速的一种无接触测速法。光电码盘安装在转子端轴上,随着电机的转动,光电码盘也跟着一起转动,如果有一个固定光源照射在码盘上,则可利用光敏元件来接收到的光的次数就是码盘的编码数。若编码数为60,测量时间为t,测量到的脉冲数为N,则n=N/t。
(5) 霍尔元件测速法
霍尔元件测速法是利用霍尔开关元件测转速的。霍尔开关元件内含稳压电路、霍尔电势发生器、放大器、施密特触发器和输出电路。输出电平与TTL电平兼容,在电机转轴上装一个圆盘,圆盘上装若干对小磁钢,小磁钢越多,分辨率越高,霍尔开关固定在小磁钢附近,当电机转动时,每当一个小磁钢转过霍尔开关,霍尔开关便输出一个脉冲,计算出单位时间的脉冲数,即可确定旋转体的转速。
在这五种测速方法中,离心式转速表测速法和测速发电机测速法所用的都是现成的测速仪表,容易得到。但转速表或测速机都要与电机同轴连接,一方面增加了电机机组安装难度,另一方面有些微电机功率很小,转速表或测速机消耗的功率占了微电机大部分,更有甚者微电机甚至拖不动这些仪表,所以对微特电机的测速,这二种方法不适用。霍尔元件测速法和光电码盘测速法的测速方法基本类似,都是在转轴上装一个很轻巧的传感器,将电机的转动信号通过磁(霍尔元件)或光(光电码盘)转换为电脉冲,从而通过计算电脉冲的个数来测速[5]。闪光测速法目前实际应用不广泛,主要是光源的问题。所以本课题设计采用光电码盘测速法。
3.2 设计任务及方案
本文针对电机的转速进行测量,以单片机为核心对光电开关产生的数字信号进行运算,从而测得电机的转速,然后用LCD把电机的转速显示出来。即通过光电开关将电机的转数转换成0,1的数字量,只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数和计算,就可获得转速的信息。
系统主要由AT89C51单片机处理系统、直流电机、光电转换、放大电路和单稳整形电路、显示系统等几个部分组成,如图3-1 所示。
图3-1 系统组成框图
4 直流电机测速系统设计
随着超大规模集成电路技术提高,尤其是单片机应用技术以及功能强大,价格低廉的显著特点,使全数字化测量转速系统得到广泛应用。出于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受到企业用户的青睐。对测量转速系统的硬件和编程进行研究,设计出一种以单片机为主的转速测量系统,保证了测量精度。
整个直流测速系统由信号采集电路、信号处理电路、单片机及数字显示四部分组成,用一个红外发光二极管和一个接受红外光的二极管组成一套光电管外加一个测速齿盘。当发射端连续发射红外信号,通过测速齿盘的转动,在接受端收到的红外信号不连续,如开关的通断。通过比较器和放大电路,从而输出“0”“1”两种高低电平,并把两种信号传给单片机进行统计,然后利用设定算法进行计算,最后通过数码显示管显示计算结果。其直流电机系统方框图如4-1所示,直流电机系统电路图如图4-2所示。
图4-1 直流测速系统方框图
4.1 单片机AT89C51介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[6]。
图4-2 直流电机测速系统电路图
图4-3 是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。
图4-3 AT89C51芯片
它有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚„„第40脚。
在40个管脚中,其中有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。
AT89C51单片机的功能:
(1)主要特性
◆ 与MCS-51 兼容
◆ 4K字节可编程闪烁存储器
◆ 寿命:1000写/擦循环
◆ 数据保留时间:10年
◆ 全静态工作:0Hz-24Hz
◆ 三级程序存储器锁定
◆ 128*8位内部RAM
◆ 32位可编程I/O线
◆ 两个16位定时器/计数器
◆ 5个中断源
◆ 可编程串行通道
◆ 低功耗的闲置和掉电模式
◆ 片内振荡器和时钟电路
(2)管脚说明(图4-4)
图4-4 AT89C51管脚分布图
◆ VCC:供电电压,
◆ GND:接地。
◆ P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 ◆ P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
◆ P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
◆ P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘
故。
P3口也可作为AT89C51的一些特殊功能口。
P3口管脚备选功能
● P3.0 RXD(串行输入口)
● P3.1 TXD(串行输出口)
● P3.2 /INT0(外部中断0)
● P3.3 /INT1(外部中断1)
● P3.4 T0(记时器0外部输入)
● P3.5 T1(记时器1外部输入)
● P3.6 /WR(外部数据存储器写选通)
● P3.7 /RD(外部数据存储器读选通)
● P3口同时为闪烁编程和编程校验接收一些控制信号。
● RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
● ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
● PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
● EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
● XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
● XTAL2:来自反向振荡器的输出。
(3)振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外
部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
(4)芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
4.2 转速信号采集
在设计中采用光电传感器采集信号,这种传感器是把旋转轴的转速变为相应频率的脉冲,然后用测量电路测出频率,由频率值就可知道所测转速值。这种测量方法具有传感器结构简单、可靠、测量精度高的特点。是目前常用的一种测量转速的方法。
从光源发出的光通过测速齿盘上的齿槽照射到光电元件上,使光电元件感光。测速齿盘上有30个齿槽,当测速齿槽旋转一周,光敏元件就能感受与开孔数相等次数的光次数。对于被测电机的转速在90—1700r/min的来说,每转一周产生30个电脉冲信号,因此,传感器输出波形的频率的大小为: 45Hz≤f≤850Hz
测速齿盘装在发射光源(红外线发光二极管)与接收光源的装置(红外线接收二极管)之间,红外线发光二极管(规格IR3401)负责发出光信号,红外线接收三极管(规格3DU12)负责接收发出的光信号,产生电信号,每转过一个齿,光的明暗变化经历了一个正弦周期,即产生了正弦脉冲电信号。
图4-5 所示为转速传感器电路,由于红外光不可见,无法用肉眼识别发光信号是否在工作,故将红外线的输出回路串接了一个普通光电二极管作为判别光源发生回路是否为通路。所选用的红外二极管IR3401,在正向工作电流为20mA时,其导通电压为1.2-1.5V,所选用的发光二极管的正向压降一般为1.5-2.0V,电流为10-20mA。R的计算公式为:
R=U (4-1) I
计算得:Rmin=425Ω;Rmax=465Ω。设定中所选阻值430Ω(Rmin≤Rmax)。 转速传感器输出电压幅度在0~1.6mV呈正弦波变化,由此可见,红外线接收三极管的光信号转化为电信号的电压U0很微弱(一般为mV量级),需要进行信
号处理.
图4-5 转速传感器电路图
(1)光电传感器是应用非常广泛的一种器件,有各种各样的形式,如透射式、反射式等,基本的原理就是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,如图4-6 所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。为此,可以制作一个遮光叶片如图4-7 所示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。
图4-6 光电传感器的原理图 图4-7 遮光叶片图
(2)选用的传感器型号为SZGB-3(单向)
SZGB-3型传感器特点介绍如下:
(1) 供单向计数器使用,测量转速和线速度;
(2) 采用密封结构性能稳定;
(3)光源用红外发光管,功耗小,寿命长;
(4) 20电源电压为12V DC ;
SZGB-3型传感器主要性能介绍如下:
SZGB-3型光电转速传感器,使用时通过连轴节与被测转轴连接,当转轴旋转时,将转角位移转换成电脉冲信号,供二次仪表计数使用。以下为其性能指标。
1)输出脉冲数:60脉冲(每一转);
2) 输出信号幅值:50r/min时300mV;
3) 测速范围:50—5000r/min;
4) 使用时间:可连续使用,使用中勿需加润滑油;
5) 工作环境:温度-10~40℃,相对湿度≤85%无腐蚀性气体 。
4.2 转速信号处理电路设计
转速信号处理电路包括信号放大电路、整形及三极管整形电路。由于产生的电压信号很小,所以要进行放大处理,一般要放大至少1000倍(≥60dB),然后在进行信号处理工作。所以选择了LM339增益放大器来作为放大电压的放大元件。
(1)LM339工作原理及管脚图
LM339类似于增益不可调的运算放大器。每个比较器有两个输入端和一个输出端。两个输入端中的一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。当用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM339输入共模范围的任何一点),另一端加一个待比较的信号电压,当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。当“-”端电压高于“+”端时,输出管饱和,相当于输出端接高电位。两个输入端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM339用在弱信号检测等场合是比较理想的。
LM339的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)。选不同阻值的上拉电阻会影响输出端高电位的值。因为当输出晶体三极管截止时,它的集电极电压基本上取决于上拉电阻与负载的值。
下图4-8(a) 给出了一个LM399的基本单限比较器。输入信号Uin为待比较电压,把它加到同相输入端,在反相输入端接一个参考电压(门限电平)Ur。当输入电压Uin Ur时,输出为高电平UOH。图4-8(b)为其传输特性。图4-8(c)
为LM339的管脚图。
(c)
图4-8 LM339工作原理图及管脚图
(2)信号采集信号处理整体连线如下图4-9 所示
图4-9 比较型光电传感器整体电路图
在图4-9 中,发光二极管相当于一个红外线发射管,JP1是红外线接收管,接收光强在上面转换成电流,在R上成为电压信号。当光线照射到白色面上时,光线反射强烈,光线照射到黑色面上时,光线反射较弱。因此当光照在不同颜色面上时,阻值会发生明显的变化。将阻值的变化值与RA1的标准值进行比较,就可以从LM339输出逻辑电平给单片机。
4.4 最小系统的设计
4.4.1复位电路
MCS-51单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。整体电路图如图4-10 所示。
图4-10 复位电路图
(1)复位功能
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
单片机的复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位如图4-11(a)和按钮复位如图4-11(b)所示的两种方式。
图4-11 RC复位电路图
(2)单片机复位后的状态
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器
PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见表4-1。
值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。
说明:表4-1中符号*为随机状态:
表4-1 寄存器复位后状态表
PSW=00H,表明选寄存器0组为工作寄存器组;SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出。IP=×××00000B,表明各个中断源处于低优先级;IE=0××00000B,表明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。
C51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,C51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。C51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。
4.4.2 晶振电路
晶振如图4-12所示是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分,其中较低的频率是串联谐振,较高的频率是并联谐振。
AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。晶体振荡电路如图4-12。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
图4-12 晶振电路图
4.5 显示部分设计
(1) 许多电子产品上都有跳动的数码来指示电器的工作状态,其实数码管显示的数码均是由八个发光二极管构成的。每段上加上合适的电压,该段就点亮。
LED数码有共阳极和共阴极两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳极的,相反的,就叫共阴极的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。实物如图4-13所示。
图4-13 数码管
共阳型如图4-13所示就是八个发光管的正极都连在一起,作为一条引线.A-G段用于显示数字,字符的笔画,(dp显示小数点),每一段控制A-G-dp的亮与灭。
共阳极数码管内部结构:
图4-13 共阳型LCD图
共阴型如图4-14 所示就是七个发光管的负极都连在一起 ,作为一条引线。A-G段用于显示数字,字符的笔画,(dp显示小数点),每一段控制A-G-dp的亮与灭。
共阴极数码管内部结构
:
图4-14 共阴型LCD图
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89C51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,由于热得视觉暂留现象及发光二极管的余辉效应,每位数码管的点亮时间可以为1~2ms,这样尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
(2)段码表
表4-2为LED段码表
表4-2 LED段码表
5 直流测速系统仿真
硬件电路完成以后,进行系统软件设计和仿真。首先要分析系统对软件的要求,然后进行软件的总体的设计,包括程序的总体设计和对程序的模块化设计。按整体功能分为多个不同的模块,单独设计、编程、调试,然后将各个模块装配联调,组成完整的软件。
根据设计的要求,单片机的任务是:内部进行计数,在计算出速度后显示。软件编程用C语言完成的,需要能掌握C语言,还要熟练AT89C51单片机。从程序流程图、编写程序、编译,到最后的调试,是很复杂的。下面作简单介绍:系统软件主程序的功能是完成系统的初始化、显示程序。
5.1 直流测速系统仿真
与以往的80C51单片机不同,AT89C51具有在线调试和下载功能,它由支持AT89C51的开发工具包Keil uVersion2.0开发系统来提供。也就是说,在用户系统保留AT89C51的情况下,通过开发系统与AT89C51的串行接口通信,直接对用户系统进行调试,并在调试完成后将调试好的程序下载到AT89C51中。Keil uVersion3.0开发系统提供四项功能:编译、下载、调试和模拟,分别由Keil uVersion2.0提供的编译器、在线串行下载器、调试器和模拟器来实现。Keil uVersion2.0编译器可在Windows操作系统下直接使用,编译C语言源程序,并生成16进制文件和列表文件。调试器采用Windows系统,允许用户使用AT89C51的UART串行接口在芯片上调试代码执行。在典型调试对话中,调试器提供对片内所有外围设备的访问、单步和设置断点的代码执行控制方式。模拟器采用Windows系统,能完全模拟AT89C51的所有功能。模拟器使用简单,结合了许多标准调试特征,包括多断点、单步以及代码执行跟踪等能力。
同样伟福仿真器是国内较好的仿真器之一,它能够仿真的CPU品种多、功能强。通过更换仿真头POD,可以对不同的CPU进行仿真。可仿真51系列,196系列,PIC系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。由于伟福编译过程没有Keil uVersion2.0那么繁琐,能对程序进行直接编译,省去了建立和设置工程等步骤,使用方便、快捷。所以本设计以Keil uVersion2.0为基础,运用C语言来编译程序。
当程序设计完以后,仿真部分运用Proteus仿真软件来实现,Proteus 软件是一款强大的单片机仿真软件,它除了具有和其他工具一样的原理编辑、印制电路板(PCB)自动或人工布线及电路仿真外,最大的特色是其电路仿真是交互的、可视化的。对于单片机学习和开发帮助极大。Proteus ISIS 是英国Lab center 公
司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和数字集成电路,包括单片机。
通过Proteus可以绘制硬件原理图,并设置元件参数;为单片机及其程序以及外部接口电路的仿真提供可能,验证设计的可行性与合理性;还可以为连接实际的硬件电路做好准备;如有必要时,可以利用它来设计电路板。 5.1.1单片机最小系统仿真
在模拟软件上搭建好最小系统电路图后,导入程序进行最小系统仿真 最小系统的仿真实验如图5-1所示。
图5-1 最小系统的仿真图
5.1.2 数码管显示仿真
数码管动态显示仿真模拟实验如图5-2 所示。
图5-2 动态显示仿真图
5.2 主程序流程设计
5.2.1 主程序流程设计
主程序是控制单片机系统按照预定的操作方式运转,它完成人机对话和各种控制功能,是单片机系统程序的框架。主程序的主要任务是完成系统自检、初始化、处理键盘命令等功能。本设计未涉及到键盘命令。
直流测速系统的主程序流程如下图5-3 所示。
图5-3 主程序流程图 图5-4 外部中断0 中断程序流程图 在该测速系统的程序中,主程序执行的过程中共执行了3 个中断程序,即外部中断0 中断、外部脉冲计数0 中断和定时器1 中断。图5-4 所示为外部中断0 中断程序流程图。外部中断0 中断程序主要用于测速起始。当测速开始时,执行外部中断0 中断,外部脉冲计数加1,并判断T0、T1 是否开启,若没有开启则开启,再判断1S 定时到了没有,若1S 定时到计算转速,并关INT0、T0、T1 软件清零。
图5-5 为T0 中断程序流程图。T0 对内部时钟脉冲计数, T0 为8 位定时器,1S 定时的内部时钟脉冲超过了T0 上限,故采用软件延时计数。图5-6 为T1 中断程序流程图,T1 定时1S, 当一秒定时到,则置位标志位。
5.2.2 定时器的初始化 定时器初始化
图5-5 T0 中断程序流程图 图5-6 T1 中断程序流程图
AT89C51有两个定时器/计数器T0和T1,每个定时器/计数器均可设置成为16位,也可以设置成为13位进行定时或计数。计数器的功能是对T0或T1外来脉冲的进行计数,外部输入脉冲负跳变时,计数器进行加1。
定时功能是通过计数器的计数来实现的,每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数个数乘以机器周期。定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器溢出中断申请。当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值将不同,从而可以适应不同的定时或计数控制。
定时器有4种工作方式:方式0、方式2、方式2和方式3,在此对工作方式不做具体介绍。
工作方式寄存器TMOD的设定:
TMOD各位的含义如下:
◆ GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。
◆ C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。
M1、M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下表5-1:M1M0=00为方式0;M1M0=01为方式1;
表5-1 M1、M0工作方式
中断允许控制
MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。中断允许寄存器IE的字节地址为A8H,可以进行位寻址.
表5-2 中断位寻址表
◆ EA:中断允许总控位。EA=0,屏蔽所有的中断请求;EA=1,开放中断。 ◆ ET2:定时器/计数器T2的溢出中断允许位 ◆ ES:串行口中断允许位。
◆ ET1:定时器/计数器T1的溢出中断允许位。 ◆ EX1:外部中断INT1的中断允许位。 ◆ ET0:定时器/计数器T0的溢出中断允许位。 ◆ EX0:外部中断INT0的中断允许位。
5.3 实际电路实验
通过仿真软件的仿真实验可以得到设计达到要求,现在通过实际电路更加实际的来实验设计是否达到要求。
首先按照电路图焊接实际电路板,再通电测试。实际测试电路如5-7所示。 当输入测试信号为100Hz时,数码管显示转速为200转/分钟,符合设计要求。
图5-7 实际电路图
参考文献
[1]马西秦.自动检测技术[M].机械工业出版社,2001:210-230.
[2]雷思孝,冯育长.单片机系统设计及工程应用[M].西安电子科技大学出版社,2005:79-85.
[3]雷玉堂.光电检测技术(第2版)[M].中国计量出版社,2009: 254-259. [4]郭培源,付扬.光电检测技术与应用[M].北京航空航天大学出版,2006:221-224.
[5]张道德.单片机接口技术(C51版)[M].中国水利水电出版社,2007:112-115. [6]汪云.基于霍尔传感器的转速检测装置[J].传感器技术,2003:22(10):45-47. [7]杨路明.C语言程序设计[M].北京邮电大学出版社,2005:1-7.
[8]徐玮,徐富军,沈建良.C51单片机高效入门[M].机械工业出版社,2006.43-45. [9]王为青,程国钢.单片机Keil Cx51应用开发技术[M].人民邮电出版社,2007:31-38.
[10]林志琦,郎建军,李会杰,佟大鹏.基于Proteus的单片机可视化软硬件仿真[M].北京航空航天大学出版,2006:1-5.
[11]丁英丽. 智能光电计数系统的设计[J].计量与测试技术,2004:5(2): 31-32.
[12]陈照章,朱湘临.光电测速传感器及其信号调理电路[J].传感技术,2002:1(8);53-55.
[13]Car systems integrate more functions (1997, June). J Electronic Components, pp. 186-226.
[14]Burr-Brown Application Handbook (1994), USA.
[15]Data Transmission Design Seminar (1998), Reference Manual, Texas Instruments, USA.
致 谢
在此次毕业设计中,首先要感谢张奇志老师对我的细心指导,遇到困难能够及时给予帮助。张老师在工作中兢兢业业,辅导学生时极其认真耐心,让我深刻地体会到真正的为人师表的风范。在毕业设计中我不仅锻炼了自己的动手能力,更重要的是学习了应该怎样做事做人。我所取得的进步和张老师的谆谆教导和悉心指导是分不开的,在这里我真诚地感谢张奇志老师!毕业设计中我还得到了同学们的热情帮助,在这里一并表示感谢!
大学四年匆匆而过,在这四年里许多老师用他们的辛劳与汗水关心我、帮助我,将平凡而真诚的关怀涓涓而流。在他们的亲切关怀下,我不断丰富着自己,在知识上不断掌握新的理论与技能,在做人做事中充满信心与勇气,也逐渐形成了正确而成熟的人生观、价值观,这些对即将走出校园的我来说是一笔很好的财富。在此我感谢这引起关心帮助我的老师们。
此外我还要感谢和我一起学习生活的同学,感谢他们平常对我的帮助。
附录
文中仿真实验和直流电机测速系统主程序,由C汇编语言编写的单片机程序。 (1) 最小系统仿真程序源代码
#include
sbit LED=P1^0; //定义LED接P1.0口// void Delay () //延时函数// { unsigned char i,j; for(i=255;i>0;i--) for(j=255;j>0;j--); }
void main () { while(1)
{ LED=0; // LED灭//
Delay (); //返回延时函数// LED=1; //LED亮// Delay (); //返回延时函数// } }
(2) 数码显示管仿真源代码 #include
#define uchar unsigned char #define uint unsigned int
uint mm=1234; //显示1234// uchar jj; uchar
table[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};
delay(uint m) { uint i,j; for(i=m;i>0;i--) for(j=110;j>0;j--); }
xian_shi()
{ uchar qian,bei,shi,ge;
code
qian=mm/1000; bei=mm%1000/100; shi=mm%100/10; ge=mm%10; P0=table[qian]; delay(50); P2=0;
P0=table[bei]; delay(50); P2=0;
P0=table[shi]; delay(50); P2=0;
P0=table[ge]; delay(50); P2=0;}
(3) 主程序程序源代码
#include #define uint unsigned int uint temp,qian,bai,shi,ge,aa,n; sbit dula=P0; sbit wela=P1; sbit zd=P3^2; uint code
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7b,0x6f};
void display(uint qian,uint bai,uint shi,uint ge); void delay (uint z); void init();
void main() {
EA=1;//开总中断 EX0=1;//开外部中断0
}
init();//初始化子程序 while(1) {
display(qian,bai,shi,ge); }
void delay(uint z) { }
void display(uint qian,uint bai,uint shi,uint ge) { }
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
P0=table[qian]; P1=0xf7; delay(1);
P0=table[bai]; P1=0xfb; delay(1);
P0=table[shi]; P1=0xfd; delay(1);
P0=table[ge]; P1=0xfe; delay(1);
void exter0() interrupt 0 { n++; }
void init() { }
timer0() interrupt 1 { TH0=(65536-50000)/256;
TL0=(65536-50000)%256; aa++;
if(aa==20)//外部计数器输入计算 { aa=0; temp=20*n; n = 0;
qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; }} wela=0; dula=0; temp=0; TMOD=0x01; TCON|=0X04;
TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; while(zd==0);
基于C51单片机直流电机测速仪设计
摘 要:电机的转速是各类电机运行过程中的一个重要监测量,测速装置在电机调速系统中占有非常重要的地位,特别是数字式测速仪在工业电机测速方面有独到的优势。本文介绍了一种基于C51单片机的光电传感器转速测量系统的设计。系统采用对射式光电传感器产生与齿轮相对应的脉冲信号,使用AT89C51单片机采样脉冲信号并计算每分钟内脉冲信号的数目,即电机对应的转速值,最终系统通过LCD实时显示电机的转速值。经过软硬件系统的搭建,分别通过Protues软件系统仿真实验和实际电路搭建检查实验。仿真实验表明本系统满足设计要求,并且结构简单、实用。整个直流电机测速系统在降低测速仪成本,提高测速稳定性及可靠性等方面有一定的应用价值。
关键词:转速测量;光电传感器;单片机
Based On C51 SCM Single DC Motor Speedometer Design
ABSTRACT:Motor speed is all kinds of motor operation is an important process to monitor the amount of speed measuring device in the motor control system occupies a very important position, Especially the digital speedometer in the industrial motor speed has unique advantage. This paper describes a photoelectric sensor 51 SCM-based speed measurement system design. System uses a beam photoelectric sensor generates a pulse signal corresponding to the gear, the use of a sampling pulse signal AT89C51 SCM and calculating the pulse per minute, the number of signals that the speed of the motor corresponding to the value of the final system time through the LCD display the motor speed value.After a hardware and software system structures, respectively, through Protues software system to build the actual circuit simulation and experimental examination. Simulation results show that the system meets the design requirements, and the structure is simple and practical. DC Motor Speed entire system in reducing speedometer costs, improve reliability, speed stability and a certain application value.
Keywords: Speed measurement; Photoelectric; Single chip micyoco
目 录
1 绪论 ............................................................. 1
1.1 数字式转速测量系统的发展背景 ................................ 1
1.2 转速测量在国民经济中的应用 .................................. 1
1.3主要研究内容................................................. 2
1.4 设计的目的和意义 ............................................ 2
2 转速测量系统的原理 .............................................. 4
2.1 转速测量原理 ................................................ 4
2.2 转速测量计算方法 ............................................ 5
3转速测量系统设计方案 ............................................. 7
3.1 直流电机转速测量方法 ........................................ 7
3.2 设计任务及方案 .............................................. 8
4 直流电机测速系统设计 ............................................ 9
4.1 单片机AT89C51介绍 .......................................... 9
4.2 转速信号采集 ............................................... 14
4.2 转速信号处理电路设计 ....................................... 16
4.4 最小系统的设计 ............................................. 17
4.4.1复位电路............................................... 17
4.4.2 晶振电路 .............................................. 20
4.5 显示部分设计 ............................................... 20
5 直流测速系统仿真 ............................................... 24
5.1 直流测速系统仿真 ........................................... 24
5.1.1单片机最小系统仿真 .................................... 25
5.1.2 数码管显示仿真........................................ 25
5.2 主程序流程设计 ............................................. 26
5.2.1 主程序流程设计....................................... 26
5.2.2 定时器的初始化........................................ 27
5.3 实际电路实验 ............................................... 28
参考文献 .......................................................... 30
致 谢............................................................. 31
1 绪论
1.1 数字式转速测量系统的发展背景
在现代工业自动化高度发展的时期,几乎所有的工业设备都离不开旋转设备,形形色色的电机在不同领域发挥着很重要的作用。与之而来的问题是,如何更好地控制旋转设备,对于不同的场合,对电机的控制要求是不同的,但大部分都会涉及到旋转设备的转速测量,从而利用转速来实施对旋转设备的控制。而数字显示转速测量系统在工业电机转速测量方面有独到的优势。
目前国内外测量电机转速的方法很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号。其中应用最广的是光电式,光电式测速系统具有低惯性、低噪声、高分辨率和高精度的优点。加之激光光源、光栅、光学码盘、CCD 器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。而采用光电传感器的电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度与被测转速无关等优点,具有广阔的应用前景[1]。
1.2 转速测量在国民经济中的应用
转速测量的应用系统在工业生产、科技教育、民用电器等各领域的应用极为广泛,往往成为某一产品或控制系统的核心部分,其各种参数在不同的应用中有其侧重,但转速测量系统作为普遍的应用在国民经济发展中,有重要的意义。特别在调速系统中的应用。
直流电机具有良好的起、制动性能,易于在宽广范围内平滑调速,所以长期以来在要求调速指标较高的场合获得了广泛应用。随着电力电子技术和控制技术的发展,交流调速系统日趋完善,其性能可与直流调速系统相媲美,其变频调速的应用范围日益扩大,但它的控制技术相对复杂,整个控制系统造价较高,在某些领域短时间内还难以取直流调速系统,调速系统便应运而生了。调速系统主电路线路简单,所用的功率元件少;开关频率高,可达到1000~4000Hz,电流易连续,谐波少,脉动小,电机损耗和发热都较小;低速性能好,稳态精度高,因
而调速范围宽;调速系统频带宽,快速响应性能好,动态抗扰能力强;主电路元件工作在开关状态,导通损耗小,装置效率高[2];直流电源采用三相整流时,电网功率因数高,可广泛用于交通、工矿企业等电力传动系统中。
1.3主要研究内容
(1) 详细介绍电机转速的测量方法,对光电码盘直流电机测速法,其具体测量方法的转速计算,测量精度和误差进行阐述。在保持一定的测量精度情况下,应用光电码盘测速法,说明转速测量原理。
(2) 根据单片机系统的设计原则,提出测量方案,构建硬件系统,分别对硬件系统的配置予以估计,使其能够对转速进行测量。同时分析接口电路,显示转速。
(3) 对单片机定时/计数器进行设置,设计和说明定时/计数器在光电码盘法测量中的作用和使用方法,讨论测量精度的问题。
(4) 根据系统要求设置各控制字,用C汇编语言编制程序,包括主程序流程,显示中断程序流程。并用软件的方法对计数和定时进行同步,力求在不增加硬件的条件下,使同步达到满意的效果。
(5) 利用Keil软件和Protues集成环境对系统对工作软件进行编译、调试和仿真。
1.4 设计的目的和意义
转速是工程中应用非常广泛的一个参数,其测量方法较多,而模拟量的采集和模拟处理一直是转速测量的主要方法,这种测量方法已不能适应现代科技发展的要求,在测量范围和测量精度上,已不能满足大多数系统的使用。随着大规模及超大规模集成电路技术的发展,数字系统测量得到普遍应用,特别是单片机对脉冲数字信号的强大处理能力,使得全数字测量系统越来越普及,其转速测量系统也可以用全数字化处理。在测量范围和测量精度方面都有极大的提高。因此,本设计的目的是:对各种测量转速的基本方法予以分析,针对不同的应用环境,利用80C51系列单片机设计一种全数字化测速系统,从提高测量精度的角度出发,分析讨论其产生误差的可能原因,为今后的实际使用提供借鉴[3]。并从实际硬件电路出发,分析电路工作原理和软件流程,根据仿真情况提出修改方案和解决办法。
课题以单片机为中心,设计的全数字化测量转速系统,在工业控制和民用电器中都有较高使用价值。其可以应用于工业控制中的某一部分,如数控车床的电机转速检测和控制、水泵流量控制以及需要利用转速检测来进行控制的许多场
合。如车辆的里程表、车速表等。其次该转速测量系统由于采用全数字化结构,因而可以很方便的和工业控制计算机进行连接,实行远程管理和控制,进一步提高现代化水平。并且,几乎不需做很大改变直接就能作为单独的使用产品。总之,转速测量系统的研究是一件非常有意义的课题。
2 转速测量系统的原理
2.1 转速测量原理
一般的转速长期测量系统是预先在轴上安装一个有60 齿的测速齿盘,用变磁阻式或电涡流式传感器获得一转60 倍转速脉冲,再用测频的办法实现转速测量。而临时性转速测量系统,多采用光电传感器,从转轴上预先粘贴的一个标志上获得一转一个转速脉冲,随后利用电子倍频器和测频方法实现转速测量。不论长期或临时转速测量,都可以在微处理器的参与下,通过测量转轴上预留的一转一齿的鉴相信号或光电信号的周期,换算出转轴的频率或转速。即通过速度传感器,将转速信号变为电脉冲,利用微机在单位时间内对脉冲进行计数,再经过软件计算获得转速数据。即: n=
式中, n — 转速,转/分钟
N — 采样时间内所计脉冲个数
T — 采样时间,分钟
m — 每旋转一周所产生的脉冲个数(通常指测速码盘的齿数)。 如果m=60,那么1 秒钟内脉冲个数N就是转速n, 即: NN1=⨯ (2-2) n=mT6060
通常m为60。
在对转速波动较快系统或要求动态特性好而精度高的转速测控系统中,调节周期一般很短,相应的采样周期需取得很小,使得脉冲当量增高,从而导致整个系统测量精度降低,难以满足测控要求。提高采样速率通常就要减小采样时间T,而T 的减小会使采到的脉冲数值N下降,导致脉冲当量(每个脉冲所代表的转速) 增高,从而使得测量精度变得粗糙。通过增加测速码盘的齿数可以提高精度,但是码盘齿数的增加会受到加工工艺的限制,同时会使转速测量脉冲的频率增高,频率的提升又会受到传感器中光电器或磁敏器或磁电器件最高工作频率的限制。凡此种种因素限制了常规智能转速测量方法的使用范围。而采用本文所提出的定时分时双频率采样法,可在保证采样精度的同时,提高采样速率,充分发挥微机智能测速方法的优越性及灵活性[4]。 N (2-1) mT
图2-1 系统原理图
各部分模块的功能:
(1) 传感器:用来对信号的采样。
(2) 放大、整形电路:对传感器送过来的信号进行放大和整形,在送入单片机进行数据的处理转换。
(3) 单片机:对处理过的信号进行转换成转速的实际值,送入LED。
(4) LED显示:用来对所测量到的转速进行显示。
2.2 转速测量计算方法
转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否,因此,转速测量一直是工业领域的一个重要问题。按照不同的理论方法,先后产生过模拟测速法(如离心式转速表)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。本文介绍的采用单片机和光电传感器组成的高精度转速测量系统,其转速测量方法采用的就是电子式定时计数法。
对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。在频率的工程测量中,电子式定时计数测量频率的方法一般有三种:
① 测频率法:在一定时间间隔t 内,计数被测信号的重复变化次数N ,则被测信号的频率fx 可表示为: N (2-3) t fX=
② 测周期法:在被测信号的一个周期内,计数时钟脉冲数m0,则被测信号频率fX=fc,其中,fc 为时钟脉冲信号频率。 m0
③ 多周期测频法:在被测信号m1个周期内,计数时钟脉冲数m2,从而得到被测信号频率fx,则fx可以表示为fx=m1⨯fc⨯m2,m1 由测量准确度确定。
电子式定时计数法测量频率时,其测量准确度主要由两项误差来决定:一项是时基误差;另一项是量化±1误差。当时基误差小于量化±1 误差一个或两个
数量级时,这时测量准确度主要由量化±1 误差来确定。对于测频率法,测量相对误差为:
Er1 = 测量误差值/实际测量值×100 % = 1⨯100% (2-4) N⎛⎫ ⎪⎝t⎭
由此可见,被测信号频率越高,N 越大,Er1就越小,所以测频率法适用于高频信号(高转速信号)的测量。对于测周期法,测量相对误差为:
1⨯100%Er2= 测量误差值/实际测量值×100% = (fc⨯m0) (2-5)
对于给定的时钟脉冲fc,当被测信号频率越低时,m0越大,Er2就越小,所以测周期法适用于低频信号(低转速信号) 的测量。对于多周期测频法,测量相对误差为:
Er3 = 测量误差值/实际测量值×100% = 1⨯100% (2-6) m1⨯fc⨯m2从上式2-6 可知,被测脉冲信号周期数m1越大, m2就越大,则测量精度就越高。它适用于高、低频信号(高、低转速信号) 的测量。但随着精度和频率的提高, 采样周期将大大延长,并且判断m2也要延长采样周期,不适合实时测量。
根据以上的讨论,考虑到实际应用中需要测量的转速范围很宽,上述的转速测量方法难以满足要求。因此,研究高精度的转速测量方法,以同时适用于高、低转速信号的测量,不仅具有重要的理论意义,也是实际生产中的需要。
3转速测量系统设计方案
3.1 直流电机转速测量方法
直流电机转速测量的方案选择一般要考虑传感器的结构、安装以及测速范围与环境条件等方面的适用性;再就是二次仪表的要求,除了显示以外还有控制、通讯和远传方面的要求。经过查找资料,综合资料分析,从实现难度、熟悉程度、器件用量等方面综合考虑,我们才能最终选择一个最合适的方案。
目前国内外常用的转速测量方法有离心式转速表测速法、测速发电机测速法、闪光测速法、光电码盘测速法和霍尔元件测速法。
(1) 离心式转速表测速法
离心式转速表是利用离心原理制成的测速仪表,可以直接读出转速。测转速时,转速表的端头要插入电机转轴的中心孔内,插入前,应注意清除中心孔中的油污,并使转速表的轴与电机的轴保持同心,不可上下左右偏斜,否则易将表轴扭坏,并影响准确读数,而且转速表要间歇使用,以减少磨损和发热。如果要改变量程,还要将转速表取出停转后再改变量程。
(2) 测速发电机测速法
测速发电机测转速时,测速发电机连接到被测电机的轴端,将被测电机的机械转速变换为电压信号输出E=Cefn,在输出端接一个刻度以转速为单位的电压表,即可读出转速。
(3) 闪光测速法
闪光测速法是利用可调脉冲频率的专用电源施加于闪光灯上,将闪光灯的灯光照到电机转动部分(可在电机端轴上粘贴一张标记纸片),当调整脉冲频率使黑色扇形片静止不动时,此时脉冲的频率是与电机转动的转速是同步的。若脉冲频
r率为f,则电机的转速为n=60f⎛ ⎝min⎫ 。 ⎪⎭
(4) 光电码盘测速法
光电码盘测速法是通过测出转速信号的频率或周期来测量电机转速的一种无接触测速法。光电码盘安装在转子端轴上,随着电机的转动,光电码盘也跟着一起转动,如果有一个固定光源照射在码盘上,则可利用光敏元件来接收到的光的次数就是码盘的编码数。若编码数为60,测量时间为t,测量到的脉冲数为N,则n=N/t。
(5) 霍尔元件测速法
霍尔元件测速法是利用霍尔开关元件测转速的。霍尔开关元件内含稳压电路、霍尔电势发生器、放大器、施密特触发器和输出电路。输出电平与TTL电平兼容,在电机转轴上装一个圆盘,圆盘上装若干对小磁钢,小磁钢越多,分辨率越高,霍尔开关固定在小磁钢附近,当电机转动时,每当一个小磁钢转过霍尔开关,霍尔开关便输出一个脉冲,计算出单位时间的脉冲数,即可确定旋转体的转速。
在这五种测速方法中,离心式转速表测速法和测速发电机测速法所用的都是现成的测速仪表,容易得到。但转速表或测速机都要与电机同轴连接,一方面增加了电机机组安装难度,另一方面有些微电机功率很小,转速表或测速机消耗的功率占了微电机大部分,更有甚者微电机甚至拖不动这些仪表,所以对微特电机的测速,这二种方法不适用。霍尔元件测速法和光电码盘测速法的测速方法基本类似,都是在转轴上装一个很轻巧的传感器,将电机的转动信号通过磁(霍尔元件)或光(光电码盘)转换为电脉冲,从而通过计算电脉冲的个数来测速[5]。闪光测速法目前实际应用不广泛,主要是光源的问题。所以本课题设计采用光电码盘测速法。
3.2 设计任务及方案
本文针对电机的转速进行测量,以单片机为核心对光电开关产生的数字信号进行运算,从而测得电机的转速,然后用LCD把电机的转速显示出来。即通过光电开关将电机的转数转换成0,1的数字量,只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数和计算,就可获得转速的信息。
系统主要由AT89C51单片机处理系统、直流电机、光电转换、放大电路和单稳整形电路、显示系统等几个部分组成,如图3-1 所示。
图3-1 系统组成框图
4 直流电机测速系统设计
随着超大规模集成电路技术提高,尤其是单片机应用技术以及功能强大,价格低廉的显著特点,使全数字化测量转速系统得到广泛应用。出于单片机在测量转速方面具有体积小、性能强、成本低的特点,越来越受到企业用户的青睐。对测量转速系统的硬件和编程进行研究,设计出一种以单片机为主的转速测量系统,保证了测量精度。
整个直流测速系统由信号采集电路、信号处理电路、单片机及数字显示四部分组成,用一个红外发光二极管和一个接受红外光的二极管组成一套光电管外加一个测速齿盘。当发射端连续发射红外信号,通过测速齿盘的转动,在接受端收到的红外信号不连续,如开关的通断。通过比较器和放大电路,从而输出“0”“1”两种高低电平,并把两种信号传给单片机进行统计,然后利用设定算法进行计算,最后通过数码显示管显示计算结果。其直流电机系统方框图如4-1所示,直流电机系统电路图如图4-2所示。
图4-1 直流测速系统方框图
4.1 单片机AT89C51介绍
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[6]。
图4-2 直流电机测速系统电路图
图4-3 是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个芯片内部去了,就这么一个小小的芯片就能构成一台小型的电脑,因此叫做单片机。
图4-3 AT89C51芯片
它有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚„„第40脚。
在40个管脚中,其中有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。
AT89C51单片机的功能:
(1)主要特性
◆ 与MCS-51 兼容
◆ 4K字节可编程闪烁存储器
◆ 寿命:1000写/擦循环
◆ 数据保留时间:10年
◆ 全静态工作:0Hz-24Hz
◆ 三级程序存储器锁定
◆ 128*8位内部RAM
◆ 32位可编程I/O线
◆ 两个16位定时器/计数器
◆ 5个中断源
◆ 可编程串行通道
◆ 低功耗的闲置和掉电模式
◆ 片内振荡器和时钟电路
(2)管脚说明(图4-4)
图4-4 AT89C51管脚分布图
◆ VCC:供电电压,
◆ GND:接地。
◆ P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 ◆ P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
◆ P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
◆ P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘
故。
P3口也可作为AT89C51的一些特殊功能口。
P3口管脚备选功能
● P3.0 RXD(串行输入口)
● P3.1 TXD(串行输出口)
● P3.2 /INT0(外部中断0)
● P3.3 /INT1(外部中断1)
● P3.4 T0(记时器0外部输入)
● P3.5 T1(记时器1外部输入)
● P3.6 /WR(外部数据存储器写选通)
● P3.7 /RD(外部数据存储器读选通)
● P3口同时为闪烁编程和编程校验接收一些控制信号。
● RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
● ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
● PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
● EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
● XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
● XTAL2:来自反向振荡器的输出。
(3)振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外
部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
(4)芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
4.2 转速信号采集
在设计中采用光电传感器采集信号,这种传感器是把旋转轴的转速变为相应频率的脉冲,然后用测量电路测出频率,由频率值就可知道所测转速值。这种测量方法具有传感器结构简单、可靠、测量精度高的特点。是目前常用的一种测量转速的方法。
从光源发出的光通过测速齿盘上的齿槽照射到光电元件上,使光电元件感光。测速齿盘上有30个齿槽,当测速齿槽旋转一周,光敏元件就能感受与开孔数相等次数的光次数。对于被测电机的转速在90—1700r/min的来说,每转一周产生30个电脉冲信号,因此,传感器输出波形的频率的大小为: 45Hz≤f≤850Hz
测速齿盘装在发射光源(红外线发光二极管)与接收光源的装置(红外线接收二极管)之间,红外线发光二极管(规格IR3401)负责发出光信号,红外线接收三极管(规格3DU12)负责接收发出的光信号,产生电信号,每转过一个齿,光的明暗变化经历了一个正弦周期,即产生了正弦脉冲电信号。
图4-5 所示为转速传感器电路,由于红外光不可见,无法用肉眼识别发光信号是否在工作,故将红外线的输出回路串接了一个普通光电二极管作为判别光源发生回路是否为通路。所选用的红外二极管IR3401,在正向工作电流为20mA时,其导通电压为1.2-1.5V,所选用的发光二极管的正向压降一般为1.5-2.0V,电流为10-20mA。R的计算公式为:
R=U (4-1) I
计算得:Rmin=425Ω;Rmax=465Ω。设定中所选阻值430Ω(Rmin≤Rmax)。 转速传感器输出电压幅度在0~1.6mV呈正弦波变化,由此可见,红外线接收三极管的光信号转化为电信号的电压U0很微弱(一般为mV量级),需要进行信
号处理.
图4-5 转速传感器电路图
(1)光电传感器是应用非常广泛的一种器件,有各种各样的形式,如透射式、反射式等,基本的原理就是当发射管光照射到接收管时,接收管导通,反之关断。以透射式为例,如图4-6 所示,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。为此,可以制作一个遮光叶片如图4-7 所示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。
图4-6 光电传感器的原理图 图4-7 遮光叶片图
(2)选用的传感器型号为SZGB-3(单向)
SZGB-3型传感器特点介绍如下:
(1) 供单向计数器使用,测量转速和线速度;
(2) 采用密封结构性能稳定;
(3)光源用红外发光管,功耗小,寿命长;
(4) 20电源电压为12V DC ;
SZGB-3型传感器主要性能介绍如下:
SZGB-3型光电转速传感器,使用时通过连轴节与被测转轴连接,当转轴旋转时,将转角位移转换成电脉冲信号,供二次仪表计数使用。以下为其性能指标。
1)输出脉冲数:60脉冲(每一转);
2) 输出信号幅值:50r/min时300mV;
3) 测速范围:50—5000r/min;
4) 使用时间:可连续使用,使用中勿需加润滑油;
5) 工作环境:温度-10~40℃,相对湿度≤85%无腐蚀性气体 。
4.2 转速信号处理电路设计
转速信号处理电路包括信号放大电路、整形及三极管整形电路。由于产生的电压信号很小,所以要进行放大处理,一般要放大至少1000倍(≥60dB),然后在进行信号处理工作。所以选择了LM339增益放大器来作为放大电压的放大元件。
(1)LM339工作原理及管脚图
LM339类似于增益不可调的运算放大器。每个比较器有两个输入端和一个输出端。两个输入端中的一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。当用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM339输入共模范围的任何一点),另一端加一个待比较的信号电压,当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。当“-”端电压高于“+”端时,输出管饱和,相当于输出端接高电位。两个输入端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM339用在弱信号检测等场合是比较理想的。
LM339的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)。选不同阻值的上拉电阻会影响输出端高电位的值。因为当输出晶体三极管截止时,它的集电极电压基本上取决于上拉电阻与负载的值。
下图4-8(a) 给出了一个LM399的基本单限比较器。输入信号Uin为待比较电压,把它加到同相输入端,在反相输入端接一个参考电压(门限电平)Ur。当输入电压Uin Ur时,输出为高电平UOH。图4-8(b)为其传输特性。图4-8(c)
为LM339的管脚图。
(c)
图4-8 LM339工作原理图及管脚图
(2)信号采集信号处理整体连线如下图4-9 所示
图4-9 比较型光电传感器整体电路图
在图4-9 中,发光二极管相当于一个红外线发射管,JP1是红外线接收管,接收光强在上面转换成电流,在R上成为电压信号。当光线照射到白色面上时,光线反射强烈,光线照射到黑色面上时,光线反射较弱。因此当光照在不同颜色面上时,阻值会发生明显的变化。将阻值的变化值与RA1的标准值进行比较,就可以从LM339输出逻辑电平给单片机。
4.4 最小系统的设计
4.4.1复位电路
MCS-51单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。整体电路图如图4-10 所示。
图4-10 复位电路图
(1)复位功能
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。
单片机的复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位如图4-11(a)和按钮复位如图4-11(b)所示的两种方式。
图4-11 RC复位电路图
(2)单片机复位后的状态
单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器
PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见表4-1。
值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。
说明:表4-1中符号*为随机状态:
表4-1 寄存器复位后状态表
PSW=00H,表明选寄存器0组为工作寄存器组;SP=07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出。IP=×××00000B,表明各个中断源处于低优先级;IE=0××00000B,表明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。
C51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,C51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。C51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。
4.4.2 晶振电路
晶振如图4-12所示是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分,其中较低的频率是串联谐振,较高的频率是并联谐振。
AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。晶体振荡电路如图4-12。
晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。
图4-12 晶振电路图
4.5 显示部分设计
(1) 许多电子产品上都有跳动的数码来指示电器的工作状态,其实数码管显示的数码均是由八个发光二极管构成的。每段上加上合适的电压,该段就点亮。
LED数码有共阳极和共阴极两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳极的,相反的,就叫共阴极的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。实物如图4-13所示。
图4-13 数码管
共阳型如图4-13所示就是八个发光管的正极都连在一起,作为一条引线.A-G段用于显示数字,字符的笔画,(dp显示小数点),每一段控制A-G-dp的亮与灭。
共阳极数码管内部结构:
图4-13 共阳型LCD图
共阴型如图4-14 所示就是七个发光管的负极都连在一起 ,作为一条引线。A-G段用于显示数字,字符的笔画,(dp显示小数点),每一段控制A-G-dp的亮与灭。
共阴极数码管内部结构
:
图4-14 共阴型LCD图
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89C51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,由于热得视觉暂留现象及发光二极管的余辉效应,每位数码管的点亮时间可以为1~2ms,这样尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
(2)段码表
表4-2为LED段码表
表4-2 LED段码表
5 直流测速系统仿真
硬件电路完成以后,进行系统软件设计和仿真。首先要分析系统对软件的要求,然后进行软件的总体的设计,包括程序的总体设计和对程序的模块化设计。按整体功能分为多个不同的模块,单独设计、编程、调试,然后将各个模块装配联调,组成完整的软件。
根据设计的要求,单片机的任务是:内部进行计数,在计算出速度后显示。软件编程用C语言完成的,需要能掌握C语言,还要熟练AT89C51单片机。从程序流程图、编写程序、编译,到最后的调试,是很复杂的。下面作简单介绍:系统软件主程序的功能是完成系统的初始化、显示程序。
5.1 直流测速系统仿真
与以往的80C51单片机不同,AT89C51具有在线调试和下载功能,它由支持AT89C51的开发工具包Keil uVersion2.0开发系统来提供。也就是说,在用户系统保留AT89C51的情况下,通过开发系统与AT89C51的串行接口通信,直接对用户系统进行调试,并在调试完成后将调试好的程序下载到AT89C51中。Keil uVersion3.0开发系统提供四项功能:编译、下载、调试和模拟,分别由Keil uVersion2.0提供的编译器、在线串行下载器、调试器和模拟器来实现。Keil uVersion2.0编译器可在Windows操作系统下直接使用,编译C语言源程序,并生成16进制文件和列表文件。调试器采用Windows系统,允许用户使用AT89C51的UART串行接口在芯片上调试代码执行。在典型调试对话中,调试器提供对片内所有外围设备的访问、单步和设置断点的代码执行控制方式。模拟器采用Windows系统,能完全模拟AT89C51的所有功能。模拟器使用简单,结合了许多标准调试特征,包括多断点、单步以及代码执行跟踪等能力。
同样伟福仿真器是国内较好的仿真器之一,它能够仿真的CPU品种多、功能强。通过更换仿真头POD,可以对不同的CPU进行仿真。可仿真51系列,196系列,PIC系列,飞利蒲公司的552、LPC764、DALLAS320,华邦438等51增强型CPU。由于伟福编译过程没有Keil uVersion2.0那么繁琐,能对程序进行直接编译,省去了建立和设置工程等步骤,使用方便、快捷。所以本设计以Keil uVersion2.0为基础,运用C语言来编译程序。
当程序设计完以后,仿真部分运用Proteus仿真软件来实现,Proteus 软件是一款强大的单片机仿真软件,它除了具有和其他工具一样的原理编辑、印制电路板(PCB)自动或人工布线及电路仿真外,最大的特色是其电路仿真是交互的、可视化的。对于单片机学习和开发帮助极大。Proteus ISIS 是英国Lab center 公
司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和数字集成电路,包括单片机。
通过Proteus可以绘制硬件原理图,并设置元件参数;为单片机及其程序以及外部接口电路的仿真提供可能,验证设计的可行性与合理性;还可以为连接实际的硬件电路做好准备;如有必要时,可以利用它来设计电路板。 5.1.1单片机最小系统仿真
在模拟软件上搭建好最小系统电路图后,导入程序进行最小系统仿真 最小系统的仿真实验如图5-1所示。
图5-1 最小系统的仿真图
5.1.2 数码管显示仿真
数码管动态显示仿真模拟实验如图5-2 所示。
图5-2 动态显示仿真图
5.2 主程序流程设计
5.2.1 主程序流程设计
主程序是控制单片机系统按照预定的操作方式运转,它完成人机对话和各种控制功能,是单片机系统程序的框架。主程序的主要任务是完成系统自检、初始化、处理键盘命令等功能。本设计未涉及到键盘命令。
直流测速系统的主程序流程如下图5-3 所示。
图5-3 主程序流程图 图5-4 外部中断0 中断程序流程图 在该测速系统的程序中,主程序执行的过程中共执行了3 个中断程序,即外部中断0 中断、外部脉冲计数0 中断和定时器1 中断。图5-4 所示为外部中断0 中断程序流程图。外部中断0 中断程序主要用于测速起始。当测速开始时,执行外部中断0 中断,外部脉冲计数加1,并判断T0、T1 是否开启,若没有开启则开启,再判断1S 定时到了没有,若1S 定时到计算转速,并关INT0、T0、T1 软件清零。
图5-5 为T0 中断程序流程图。T0 对内部时钟脉冲计数, T0 为8 位定时器,1S 定时的内部时钟脉冲超过了T0 上限,故采用软件延时计数。图5-6 为T1 中断程序流程图,T1 定时1S, 当一秒定时到,则置位标志位。
5.2.2 定时器的初始化 定时器初始化
图5-5 T0 中断程序流程图 图5-6 T1 中断程序流程图
AT89C51有两个定时器/计数器T0和T1,每个定时器/计数器均可设置成为16位,也可以设置成为13位进行定时或计数。计数器的功能是对T0或T1外来脉冲的进行计数,外部输入脉冲负跳变时,计数器进行加1。
定时功能是通过计数器的计数来实现的,每个机器周期产生1个计数脉冲,即每个机器周期计数器加1,因此定时时间等于计数个数乘以机器周期。定时器工作时,每接收到1个计数脉冲(或机器周期)则在设定的初值基础上自动加1,当所有位都位1时,再加1就会产生溢出,将向CPU提出定时器溢出中断申请。当定时器采用不同的工作方式和设置不同的初值时,产生溢出中断的定时值和计数值将不同,从而可以适应不同的定时或计数控制。
定时器有4种工作方式:方式0、方式2、方式2和方式3,在此对工作方式不做具体介绍。
工作方式寄存器TMOD的设定:
TMOD各位的含义如下:
◆ GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号的影响。
◆ C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0时工作于定时方式。
M1、M0为工作方式选择位,用于对T0的四种工作方式,T1的三种工作方式进行选择,选择情况如下表5-1:M1M0=00为方式0;M1M0=01为方式1;
表5-1 M1、M0工作方式
中断允许控制
MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。中断允许寄存器IE的字节地址为A8H,可以进行位寻址.
表5-2 中断位寻址表
◆ EA:中断允许总控位。EA=0,屏蔽所有的中断请求;EA=1,开放中断。 ◆ ET2:定时器/计数器T2的溢出中断允许位 ◆ ES:串行口中断允许位。
◆ ET1:定时器/计数器T1的溢出中断允许位。 ◆ EX1:外部中断INT1的中断允许位。 ◆ ET0:定时器/计数器T0的溢出中断允许位。 ◆ EX0:外部中断INT0的中断允许位。
5.3 实际电路实验
通过仿真软件的仿真实验可以得到设计达到要求,现在通过实际电路更加实际的来实验设计是否达到要求。
首先按照电路图焊接实际电路板,再通电测试。实际测试电路如5-7所示。 当输入测试信号为100Hz时,数码管显示转速为200转/分钟,符合设计要求。
图5-7 实际电路图
参考文献
[1]马西秦.自动检测技术[M].机械工业出版社,2001:210-230.
[2]雷思孝,冯育长.单片机系统设计及工程应用[M].西安电子科技大学出版社,2005:79-85.
[3]雷玉堂.光电检测技术(第2版)[M].中国计量出版社,2009: 254-259. [4]郭培源,付扬.光电检测技术与应用[M].北京航空航天大学出版,2006:221-224.
[5]张道德.单片机接口技术(C51版)[M].中国水利水电出版社,2007:112-115. [6]汪云.基于霍尔传感器的转速检测装置[J].传感器技术,2003:22(10):45-47. [7]杨路明.C语言程序设计[M].北京邮电大学出版社,2005:1-7.
[8]徐玮,徐富军,沈建良.C51单片机高效入门[M].机械工业出版社,2006.43-45. [9]王为青,程国钢.单片机Keil Cx51应用开发技术[M].人民邮电出版社,2007:31-38.
[10]林志琦,郎建军,李会杰,佟大鹏.基于Proteus的单片机可视化软硬件仿真[M].北京航空航天大学出版,2006:1-5.
[11]丁英丽. 智能光电计数系统的设计[J].计量与测试技术,2004:5(2): 31-32.
[12]陈照章,朱湘临.光电测速传感器及其信号调理电路[J].传感技术,2002:1(8);53-55.
[13]Car systems integrate more functions (1997, June). J Electronic Components, pp. 186-226.
[14]Burr-Brown Application Handbook (1994), USA.
[15]Data Transmission Design Seminar (1998), Reference Manual, Texas Instruments, USA.
致 谢
在此次毕业设计中,首先要感谢张奇志老师对我的细心指导,遇到困难能够及时给予帮助。张老师在工作中兢兢业业,辅导学生时极其认真耐心,让我深刻地体会到真正的为人师表的风范。在毕业设计中我不仅锻炼了自己的动手能力,更重要的是学习了应该怎样做事做人。我所取得的进步和张老师的谆谆教导和悉心指导是分不开的,在这里我真诚地感谢张奇志老师!毕业设计中我还得到了同学们的热情帮助,在这里一并表示感谢!
大学四年匆匆而过,在这四年里许多老师用他们的辛劳与汗水关心我、帮助我,将平凡而真诚的关怀涓涓而流。在他们的亲切关怀下,我不断丰富着自己,在知识上不断掌握新的理论与技能,在做人做事中充满信心与勇气,也逐渐形成了正确而成熟的人生观、价值观,这些对即将走出校园的我来说是一笔很好的财富。在此我感谢这引起关心帮助我的老师们。
此外我还要感谢和我一起学习生活的同学,感谢他们平常对我的帮助。
附录
文中仿真实验和直流电机测速系统主程序,由C汇编语言编写的单片机程序。 (1) 最小系统仿真程序源代码
#include
sbit LED=P1^0; //定义LED接P1.0口// void Delay () //延时函数// { unsigned char i,j; for(i=255;i>0;i--) for(j=255;j>0;j--); }
void main () { while(1)
{ LED=0; // LED灭//
Delay (); //返回延时函数// LED=1; //LED亮// Delay (); //返回延时函数// } }
(2) 数码显示管仿真源代码 #include
#define uchar unsigned char #define uint unsigned int
uint mm=1234; //显示1234// uchar jj; uchar
table[]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};
delay(uint m) { uint i,j; for(i=m;i>0;i--) for(j=110;j>0;j--); }
xian_shi()
{ uchar qian,bei,shi,ge;
code
qian=mm/1000; bei=mm%1000/100; shi=mm%100/10; ge=mm%10; P0=table[qian]; delay(50); P2=0;
P0=table[bei]; delay(50); P2=0;
P0=table[shi]; delay(50); P2=0;
P0=table[ge]; delay(50); P2=0;}
(3) 主程序程序源代码
#include #define uint unsigned int uint temp,qian,bai,shi,ge,aa,n; sbit dula=P0; sbit wela=P1; sbit zd=P3^2; uint code
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7b,0x6f};
void display(uint qian,uint bai,uint shi,uint ge); void delay (uint z); void init();
void main() {
EA=1;//开总中断 EX0=1;//开外部中断0
}
init();//初始化子程序 while(1) {
display(qian,bai,shi,ge); }
void delay(uint z) { }
void display(uint qian,uint bai,uint shi,uint ge) { }
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
P0=table[qian]; P1=0xf7; delay(1);
P0=table[bai]; P1=0xfb; delay(1);
P0=table[shi]; P1=0xfd; delay(1);
P0=table[ge]; P1=0xfe; delay(1);
void exter0() interrupt 0 { n++; }
void init() { }
timer0() interrupt 1 { TH0=(65536-50000)/256;
TL0=(65536-50000)%256; aa++;
if(aa==20)//外部计数器输入计算 { aa=0; temp=20*n; n = 0;
qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; }} wela=0; dula=0; temp=0; TMOD=0x01; TCON|=0X04;
TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; while(zd==0);