《课程设计应用光电传感器测量转速.doc》由会员分享,可在线阅读,更多相关《课程设计应用光电传感器测量转速.doc(27页珍藏版)》请在三一办公上搜索。
1、装订线 应用光电传感器测量转速的电路设计简述:本次设计应用了AT89C51单片机,采用光电传感器测量电机转速的方法,其中硬件系统包括脉冲信号的产生模块、脉冲信号的处理模块和转速的显示模块三个模块,采用C语言编程,结果表明该方法具有简单、精度高、稳定性好的优点。关键词:转速测量 单片机 光电传感器 脉冲信号一、 概述在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。目前国内外测量电机转速的方法有很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势
2、计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。其中应用最广的是光电式,光电式测系统具有低惯性、低噪声、高分辨率和高精度的优点。加之激光光源、光栅、光学码盘、CCD器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。而采用光电传感器的电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度与被测转速无关等优点,具有广阔的应用前景。这次设计的内容包含了多个方面,从脉冲信号的产生模块、脉冲信号的处理模块和转速的显示模块三个模块入手,全面锻炼了我们信号采集,处理和分析的工作能力。二、 选
3、用器材AT89C51单片机,4位数码管,9013三极管4个,9014三极管一个,按钮一个,12M晶振1个,30pF电容3个,180、3.3K、4.7K、20K、10K欧电阻各1个,马达1个,光电门一个。三、转速测量系统的原理1、转速测量方法转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否,因此,转速测量一直是工业领域的一个重要问题。按照不同的理论方法,先后产生过模拟测速法(如离心式转速表)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。本文介绍的采用单片机和光电传感器组成的高精度转速测
4、量系统,其转速测量方法采用的就是电子式定时计数法。对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。在频率的工程测量中,电子式定时计数测量频率的方法一般有三种:(1)测频率法在一定时间间隔t内,计数被测信号的重复变化次数N,则被测信号的频率fx可表示为f x =Nt(2)测周期法在被测信号的一个周期内,计数时钟脉冲数m0,则被测信号频率fx = fc/ m0 其中,fc为时钟脉冲信号频率。(3)多周期测频法在被测信号m1个周期内,计数时钟脉冲数m2,从而得到被测信号频率fx,则fx可以表示为fx =m1 fcm2,m1由测量准确度确定。电子式定时计数法测量频率时,其测量准确度主要
5、由两项误差来决定:一项是时基误差;另一项是量化1误差。当时基误差小于量化1 误差一个或两个数量级时,这时测量准确度主要由量化1 误差来确定。对于测频率法,测量相对误差为:Er1 =测量误差值实际测量值100 % =1N100 %由此可见,被测信号频率越高,N越大,Er1就越小,所以测频率法适用于高频信号(高转速信号) 的测量。对于测周期法,测量相对误差为:Er2 =测量误差值实际测量值100 % =1m0100 %对于给定的时钟脉冲fc,当被测信号频率越低时,m0越大,Er2就越小,所以测周期法适用于低频信号(低转速信号)的测量。对于多周期测频法,测量相对误差为:Er3 =测量误差值实际测量值
6、100%=1m2100 %从上式可知,被测脉冲信号周期数m1越大,m2就越大,则测量精度就越高。它适用于高、低频信号(高、低转速信号)的测量。但随着精度和频率的提高,采样周期将大大延长,并且判断m1也要延长采样周期,不适合实时测量。根据以上的讨论,考虑到实际应用中需要测量的转速范围很宽,上述的转速测量方法难以满足要求,因此,研究高精度的转速测量方法,以同时适用于高、低转速信号的测量,不仅具有重要的理论意义,也是实际生产中的需要。2、转速测量原理一般的转速长期测量系统是预先在轴上安装一个有60齿的测速齿盘,用变磁阻式或电涡流式传感器获得一转60倍转速脉冲,再用测频的办法实现转速测量。而临时性转速
7、测量系统,多采用光电传感器,从转轴上预先粘贴的一个标志上获得一转一个转速脉冲,随后利用电子倍频器和测频方法实现转速测量。不论长期或临时转速测量,都可以在微处理器的参与下,通过测量转轴上预留的一转一齿的鉴相信号或光电信号的周期,换算出转轴的频率或转速。即通过速度传感器,将转速信号变为电脉冲,利用微机在单位时间内对脉冲进行计数,再经过软件计算获得转速数据。即:n=N/ (mT)其中n为转速、单位:转/分钟;N为采样时间内所计脉冲个数;T为采样时间、单位:分钟;m为每旋转一周所产生的脉冲个数(通常指测速码盘的齿数),通常m为60,如果m=60, 那么1秒钟内脉冲个数N就是转速n,即:n=N/ (mT
8、) =N/601/60=N在对转速波动较快系统或要求动态特性好而精度高的转速测控系统中,调节周期一般很短,相应的采样周期需取得很小,使得脉冲当量增高,从而导致整个系统测量精度降低,难以满足测控要求。提高采样速率通常就要减小采样时间T, 而T的减小会使采到的脉冲数值N下降,导致脉冲当量(每个脉冲所代表的转速)增高,从而使得测量精度变得粗糙。通过增加测速码盘的齿数可以提高精度,但是码盘齿数的增加会受到加工工艺的限制,同时会使转速测量脉冲的频率增高,频率的提升又会受到传感器中光电器或磁敏器或磁电器件最高工作频率的限制。凡此种种因素限制了常规智能转速测量方法的使用范围。而采用本文所提出的定时分时双频率
9、采样法,可在保证采样精度的同时,提高采样速率,充分发挥微机智能测速方法的优越性及灵活性。四、方案的设计与选择转速测量的方案选择,除了要考虑能否实现还有测速范围外,还要考虑价格还有测量精度问题,通过对转速测量资料的查阅还有我们的构思和设计,总体电路我们有三套设计方案,部分重要模块也尝试了多种实现方法,从而经过分析和比较,我们从方案的实现难度、对器材的熟悉程度、器件用量、价格等方面进行综合考虑,然后最终选择了一个方案。下面我们便介绍我们考虑的三种不同的设计方案。1、 光电门测量方案光电门是一个像门样的装置,一边安装发光装置,一边安装接收装置并与计时装置连接。当物体通过光电门时光被挡住,计时器开始计
10、时,当物体离开时停止计时,这样就可以根据物体大小与运动时间计算物体运动的速度;若计时装置具备运算功能,使用随机配置的挡光片(宽度一定),可以直接测量物体的瞬时速度。光电门是由一个小的聚光灯泡和一个光敏管组成的,聚光灯泡对准光敏管,光敏管前面有一个小孔可以接收光的照射。光敏门与计时仪是按以下方式联接的。即当两个光电门的任一个被挡住时,计时仪开始计时;当两个光电门中任一个被再次挡光时,计时终止。计时仪显示的是两次挡光之间的时间间隔。光电门主要应用于计数,计时,测速等方面。工作原理是光照度改变使光敏电阻阻值的改变,而引起光敏电阻两端电压的改变。电压变化信号通过传感器传到计数器上计数计时。光电门一端有
11、个线性光源,另一端有个光敏电阻,门中无物体阻挡时光照射到光敏电阻上。有光照时光敏电阻阻值减小,光敏电阻两端为低电压。当门中有物体阻挡时,光敏电阻受到光照度减小,电阻增大,光敏电阻两端为高电压。当光电门计数时,传感器将高低变化的信号传到计数器上,计数器进行计数。一次电压变化计数器计数一次。当计数器计时时,计数器获得高电压时计时开始,获得低电压时计时停止。测得时间为物体完全通过光电门的时间。光电门测速也是根据计时的原理。 光电门原理应用很广泛,现在已经不局限于门的形状,如点钞机,生产线计数器,光控路灯等。由于我们班另外一组选择了这个实验方案,于是我们便放弃了这个方案,以下为光电门传感器的图片。图1
12、 光电门传感器2、霍尔传感器测量方案霍尔传感器是利用霍尔效应进行工作的?其核心元件是根据霍尔效应原理制成的霍尔元件。本文介绍一种泵驱动轴的转速采用霍尔转速传感器测量。霍尔转速传感器的结构原理图如图2,霍尔转速传感器的接线图如图3。传感器的定子上有2个互相垂直的绕组A和B,在绕组的中心线上粘有霍尔片HA和HB,转子为永久磁钢,霍尔元件HA和HB的激励电机分别与绕组A和B相连,它们的霍尔电极串联后作为传感器的输出。图2 霍尔转速传感器的结构原理图图3 方案霍尔转速传感器的接线图缺点:采用霍尔传感器在信号采样的时候,会出现采样不精确,因为它是靠磁性感应才采集脉冲的,使用时间长了会出现磁性变小,影响脉
13、冲的采样精度。3、光电传感器测量方案整个测量系统的组成框图如图4所示。从图中可见,转子由一直流调速电机驱动,可实现大转速范围内的无级调速。转速信号由光电传感器拾取,使用时应先在转子上做好光电标记,具体办法可以是:将转子表面擦干净后用黑漆(或黑色胶布)全部涂黑,再将一块反光材料贴在其上作为光电标记,然后将光电传感器(光电头)固定在正对光电标记的某一适当距离处。光电头采用低功耗高亮度LED,光源为高可靠性可见红光,无论黑夜还是白天,或是背景光强有大范围改变都不影响接收效果。光电头包含有前置电路,输出05V的脉冲信号。接到单片机89C51的相应管脚上,通过89C51内部定时/计时器T0、T1及相应的
14、程序设计,组成一个数字式转速测量系统。图4 测量系统的组成框图优点:这种方案使用光电转速传感器具有采样精确,采样速度快,范围广的特点。综上所述,方案三使用光电传感器为本设计的最佳选择方案。五、硬件系统设计根据之前的分析,我们选择了光电传感器结合单片机的方案来设计测量转速的电路。以下为我们的系统总电路图:图5 系统总电路图我们把整个电路分成四大模块,模块一为脉冲信号的产生模块;模块二为脉冲信号的处理模块;模块三为转速的显示模块;模块四为其他模块,例如复位电路等。以下便是我们各大模块的设计。1、脉冲信号产生模块在设计中采用光电传感器采集信号,这种传感器是把旋转轴的转速变为相应频率的脉冲,然后用测量
15、电路测出频率,由频率值就可知道所侧转素值。这种测量方法具有传感器结构简单、可靠、测量精度高的特点。是目前常用的一种测量转速的方法。从光源发出的光通过测速齿盘上的齿槽照射到光电元件上,使光电元件感光。测速齿盘上有30个齿槽,当测速齿槽旋转一周,光敏元件就能感受与开孔数相等次数的光次数。对于被测电机的转速在901700r/min的来说,每转一周产生30个电脉冲信号,因此,传感器输出波形的频率的大小为: 45Hzf850Hz测速齿盘装在发射光源(红外线发光二极管)与接收光源的装置(红外线接收二极管)之间,红外线发光二极管(规格IR3401)负责发出光信号,红外线接收三极管(规格3DU12)负责接收发
16、出的光信号,产生电信号,每转过一个齿,光的明暗变化经历了一个正弦周期,即产生了正弦脉冲电信号。图6所示为转速传感器电路,由于红外光不可见,无法用肉眼识别发光信号是否在工作,故将红外线的输出回路串接了一个普通光电二极管作为判别光源发生回路是否为通路。所选用的红外二极管IR3401,在正向工作电流为20mA时,其导通电压为1.21.5V,所选用的发光二极管的正向压降一般为1.52.0V,电流为1020mA。转速传感器输出电压幅度在01.6mV呈正弦波变化,由此可见,红外线接收三极管的光信号转化为电信号的电压Uo很微弱(一般为mV量级),需要进行信号处理。图6 转速传感器电路图2、脉冲信号的处理模块
17、转速信号处理电路为一个放大电路,因为产生的电压信号很小,所以需要进行放大处理,一般至少要放大1000倍,然后再进行信号处理工作。信号放大装置选用运算放大器TL084作为放大电压放大原件,其电路图为下图所示: 图7 脉冲信号的放大电路图3、转速的显示模块许多电子产品上都有跳动的数码来指示电器的工作状态,其实数码管显示的数码均是由八个发光二极管构成的。每段上加上合适的电压,该段就点亮。我们应用了一个四位八段数码管,并使用了一些电阻,起到对数码管的保护作用。其电路图如下图所示:图8 显示模块4、其他模块(1)复位电路单片机复位电路是指单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CP
18、U和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。以下便是复位电路图:图9 复位电路(2)晶振电路晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。AT89S52单
19、片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为30F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。晶体振荡电路如图10:晶振有一个重
20、要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。图10 晶振电路六、相关器件的介绍1、光电传感器的介绍光电传感器是应用非常广泛的一种器件,有各种各样的形式,如透射式、反射式等,基本的原理就是当发射管光照射到接收管时,接收管导通,反之关断。图11 光电传感器的原理图以透射式为例,当不透光的物体挡住发射与接收之间的间隙时,开关管关断,否则打开。为此,可以制作一个遮光叶片如图12所示,安装在转轴上,当扇叶经过时,产生脉冲信号。当叶片数较多时,旋转一周可以获得多个脉冲信号。图12 遮光叶片于是我们选用的是SZGB-3型(单向)传感器,其工作电压为12V(DC)
21、,有以下特点:(1)供单向计数器使用,测量转速和线速;(2)采用密封结构性能稳定;(3)光源用红外发光管,功耗小,寿命长。SZGB-3型光电转速传感器,使用时通过连轴节与被测转轴连接,当转轴旋转时,将转角位移转换成电脉冲信号,供二次仪表计数使用。它的输出脉冲是每一转60脉冲,输出信号幅值在转速为50r/min时是300mV,它的测速范围为505000r/min,可持续使用,其工作环境为工作温度在-1040,相对湿度85%,无腐蚀性气体。 2、单片机的介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read
22、 Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图13是常用的一种单片机,型号为AT89C51,它将计算机的功能都集成到这个芯片内部去了,因此叫做单片机。图13 AT89C51芯片它有40个管脚,分成两排,每一排各有20个脚,其中左下角标有箭头的为第1脚,然后按逆时针方向依次为第2脚、第3脚第40脚。在40个管脚中,其中
23、有32个脚可用于各种控制,比如控制小灯的亮与灭、控制电机的正转与反转、控制电梯的升与降等,这32个脚叫做单片机的“端口”,在单片机技术中,每个端口都有一个特定的名字,比如第一脚的那个端口叫做“P1.0”。AT89C51单片机的功能:(1)主要特性:能与MCS-51 兼容;4K字节可编程闪烁存储器;寿命为1000写/擦循环;数据能保留10年;全静态工作在0Hz-24Hz之间;三级程序存储器锁定;有128*8位内部RAM;有32可编程I/O线;有两个16位定时器/计数器;有5个中断源; 可编程串行通道;有低功耗的闲置和掉电模式;有片内振荡器和时钟电路。 (2)管脚说明:图14 AT89C51管脚分
24、布VCC:供电电压。GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一
25、个内部上拉电阻的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”后,它们被内部上拉为高电
26、平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口: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:当访问外部存储器时,地
27、址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSE
28、N信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(3)振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部
29、时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(4)芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。(5)单片机的复位单片机的复位是由外部的复位电路来实现的。
30、片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位(如图15(a) )和按钮复位(如图15(b) )两种方式。图15 RC复位电路单片机复位后的状态:单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见表1。 值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少
31、应用程序中的初始化部分是十分必要的。 说明:表1中符号*为随机状态特殊功能寄存器初始状态特殊功能寄存器初始状态ABPSW00H00H00HTMODTCONTH000H00H00HSPDPLDPHP0P3IPIE07H00H00HFFH*00000B0*00000BTL0TH1TL1SBUFSCONPCON00H00H00H不定00H0*B表1 寄存器复位后状态表PSW00H,表明选寄存器0组为工作寄存器组;SP07H,表明堆栈指针指向片内RAM 07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3FFH,表明已向各端口线写入1,此时,各端口既可用于输入又
32、可用于输出。IP00000B,表明各个中断源处于低优先级; IE000000B,表明各个中断均被关断;系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。3、数码管的介绍LED数码有共阳和共阴两种,把这些LED发光
33、二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。实物如下图所示:图16 数码管共阳型(图17)就是八个发光管的正极都连在一起,作为一条引线AG段用于显示数字,字符的笔画,(dp显示小数点),每一段控制AGdp的亮与来。 内部结构:图17 共阳型LCD共阴型(图18)就是七个发光管的负极都连在一起 ,作为一条引线。AG段用于显示数字,字符的笔画,(dp显示小数点),每一段控制AGdp的亮与来.内部结构:图18 共阴型LCD数码管要正常显示,就要用驱动电路
34、来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显
35、示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象
36、就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。LED段码表如下表所示:显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码012343FH06H5BH4FH66HC0HF9HA4HB0H99H567896DH7DH07H7BH6FH92H82HF8H80H90H表2 LED段码表七、软件系统设计硬件电路完成以后,进行系统软件设计。首先要分析系统对软件的要求,然后进行软件的总体的设计,包括程序的总体设计和对程序的模块化设计。按整体功能分为多个不同的模块,单独设计、编程、调试,然后将各个模块装配联调,组成完整的软件。根据
37、设计的要求,单片机的任务是:内部进行计数,在计算出速度后显示。软件编程用C语言完成的。以下便为各程序流程图已经单片机程序。1、主程序流程图及各子程序流程图显示开始初始化定时器计时器刷新数码管延时2ms(1)主程序流程图 图19 主程序流程图(2)显示子程序流程图开始显示缓存初始化LED显示初始化数码显示图20 显示子程序流程图(3)定时计数子程序流程图开定时器开计数器定时0.5s计数0.5s读出计数器值并清零计数器定时重新装初始值并启动定时器开始图21 定时计数子程序流程图2、单片机程序见附件2。八、总结采用单片机技术来实现转速的测量,可以提高转速的测量,可以提高转速测量的精确度,并且加快了采
38、样的速率,具有较好的实时性。本文介绍的转速方法使用于高、低转速的测量,测量精确度与转速无关,因而具有较宽的应用范围和广阔的应用的前景。通过这次设计性实验,我们对单片机、光电传感器有了更深的了解,同时在查阅资料的过程中也学到了不少知识。九、参考文献1 陈伯时. 电力拖动自动控制系统-运动控制系统M. 机械工业出版社,2003.2 马全权,李庆辉,强盛. 一种高精度实时电机转速测量新方法M. 齐齐哈尔大学学报,2002.3 孙桂荣,班 莹,刘 鸣. 电机转速测量设计实验M. 实验室科学,2005. 4 王雪文,张志勇. 数字逻辑电路与系统设计M. 北京航空航天大学出版社,2004.5 王秀杰,张畴
39、先. 模拟集成电路应用M. 西北工业大学出版社,2003.附件1:电路设计实物图附件2:单片机总程序#include#define uchar unsigned char#define uint unsigned intuint mm=1234;uchar code table=0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,; delay(uint m) uint i,j; for(i=m;i0;i-) for(j=60;j0;j-);xian_shi() uchar qian,bei,shi,ge;uint jj; jj=mm; jj*=
40、20; /jj+=1; qian=jj/1000; bei=jj%1000/100; shi=jj%100/10; ge=jj%10; P2=0x10; P0=tableqian;delay(1);/P2=0; P2=0x20; P0=tablebei; delay(1); /P2=0; P2=0x40; P0=tableshi; delay(1); /P2=0; P2=0x80; P0=tablege; delay(1); /P2=0; timer_init() /定时器计数器初始化函数 EA=1; ET0=1; ET1=1; TMOD=0X51; TH0=(65535-50000)/256
41、; TL0=(65535-50000)%256; TH1=0; TL1=0; TR0=1; TR1=1;main() timer_init(); P0=0; /开始数码管不显示 while(1) xian_shi(); delay(2); /数码管刷新时间单位毫秒 void timer0() interrupt 1 TR0=0; TR1=0; TH0=(65535-50000)/256; TL0=(65535-50000)%256; mm=0; mm|=TH1; mm=(mm8)|TL1;/mm-=55536; TH1=0; TL1=0; TR0=1; TR1=1;void timer1() interrupt 3 /显示0000说明出错 TR1=0; TR0=0; mm=0; / TH1=0; / TL1=0; / TR1=1;