基于单片机速度测量系统的设计说明_第1页
基于单片机速度测量系统的设计说明_第2页
基于单片机速度测量系统的设计说明_第3页
基于单片机速度测量系统的设计说明_第4页
基于单片机速度测量系统的设计说明_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、. . . . 基于单片机计速器的设计摘 要:随着信息技术的不断发展,单片机在测量系统中得到了广泛的应用。速度是一个系统经常需要测量、控制和保持的量。速度的测量方法有许多种,但在不同的应用环境下,相应的测量方法有它自己的特点和误差。因此对单片机速度测量系统的研究有着重要的目的和意义。本设计采用AT89S51单片机作为主要控制核心,应用霍尔传感器采集信号,经过单片机定时计数并运用一个算法测量出汽水行驶速度,最终用4位LED数码管显示其测量结果,具有较高的实用价值。本文的优点是充分发挥了单片机的性能,硬件电路简单,软件功能完善,测量速度快、精度高,成本低等特点。关键词:单片机;速度测量;霍尔传感器

2、;LED目 录1总体设计11.1系统设计方案论证11.2本系统设计的主要容12单片机速度测量系统22.1单片机速度测量原理22.2单片机速度测量系统结构框图23系统硬件设计23.1传感器概述23.1.1霍尔传感器的基本工作原理33.1.2 CS3020霍尔传感器43.1.3霍尔传感器的硬件连接63.2 MCU控制系统的设计63.2.1 CPU的选用63.2.2 AT89S51主要特性和引脚说明73.2.3单片机最小系统93.3 LED数码管显示器103.4单片机测速系统总原理图114系统软件设计124.1程序流程图124.2 程序功能134.3 程序调试14参考文献15附录1517 / 191

3、总体设计1.1系统设计方案论证现在测量速度的方法有很多,可以采用不同的器件做出多种测速器。在这里讨论了两种方案。方案一:光电式脉冲发生器。主要由光源、光敏器件和遮光盘组成。水轮旋转带动遮光盘旋转,当遮光盘没有遮住光源时,光源的光射到光敏器件上,光敏器件中有电流流过,于是在输出端产生电压输出。其脉冲频率与水速成正比,经过单片机处理后,即可得出水的速度。这种光脉冲发生装置,在转换速度较高的情况下,由于水流动中的振动引起的光脉冲干扰等问题不好解决,现在采用的不多。方案二:磁电式脉冲发生器。将导磁材料的齿轮固定在转轴上,对着齿轮端面固定一块磁钢,霍尔元件贴在磁钢的一个端面上,随着齿轮转动,元件的输出呈

4、周期性变化,经整形和放大后输出方波脉冲。霍尔传感器输出频率与转速成正比,此信号经单片机处理后,即可得出水流的速度。本设计测量要求稳定性好,灵敏度高和精度高,而且对水流速度的测量要求传感器能够适应各种各样的环境。所以这里选择方案二。其原因还有三点:其一是霍尔传感器输出信号电压幅值不受转速的影响;其二是频率响应高,其响应频率高达20kHz,相当于水速为1000km/h时所检测的信号频率;其三是抗电磁波干扰能力强。根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和M/T法(频率周期法)。测频法一般用于高速测量,在转速较低时,测量误差较大;而测周期法一般用于低速测量,速度越低测量

5、精度越高,但在测量高转速时,误差较大;频率周期法结合了上面两种方法的优点,但是此种方法要求单片机有3个定时/计数器。考虑上面三种因素,该系统选择测频法。1.2本系统设计的主要容根据上面选择的方案,本设计主要容由以下三大部分组成:一、信号的采集。这部分主要是用霍尔转速传感器采集水轮转速的信号,并将采集的信号传给单片机。二、单片机数据处理。这部分主要是使用51系列单片机采用适当的算法来编程快速准确地对采集的数据进行相关运算并得出结果。此部分是本设计的重点和难点。三、LED数字显示。这部分主要是对测得的结果通过4位LED数码管显示给用户。用单片机AT89S51作为控制核心,通过霍尔传感器来检测汽水的

6、运转情况进而实现水速度的测量,最后用4位LED数码管直观的将速度显示给用户,保留一位小数位。该测量方法是数字式测量方法,代替了传统的机械式或模拟式结构,测量精度有了很大的提高,具有很大的实用价值。2单片机速度测量系统2.1单片机速度测量原理根据霍尔效应原理,将一块永久磁钢固定在水轮转轴上的转盘边沿(如果要提高测量精度,可以在转盘边沿多固定2到3个磁钢),转盘随着轴旋转,磁钢也将跟着同步旋转。在转盘附近安装一个霍尔器件,转盘随轴旋转一周时,受磁钢所产生的磁场的影响,霍尔器件输出一个脉冲信号,转盘转了多少转霍尔器件就输出多少个脉冲信号,将输出的脉冲信号送到单片机的计数口,利用单片机的定时/计数器进

7、行定时和计数,测出脉冲的周期或频率即可计算出水轮转速。通过单片机软件设计,把转速转换成线速度。转速即是角速度,线速度=角速度*周长。2.2单片机速度测量系统结构框图根据霍尔转速测量原理,可以画出单片机速度测量系统的结构框图。结构框图如图3-1所示。霍尔传感器单 片 机LED显示图3-1 单片机速度测量系统结构框图由霍尔传感器采集水轮转速的信号,并将采集的信号传给单片机,利用单片机的定时计数器功能和编写的程序将采集的信号转换成数据,通过数码管将数据显示出来。3系统硬件设计整个系统主要包括霍尔转速传感器、单片机和LED显示模块三大部分组成。各个硬件部分将在后面详细阐述。3.1.1霍尔传感器的基本工

8、作原理霍尔传感器是利用霍尔效应原理,通过磁场、电流对被测量的控制,使包含有被测量变化信息的霍尔电压发生变化,在利用后继的信号检索和信号放大电路,就可以得到被测量的信息。正因为霍尔传感器的基本原理霍尔效应只包含了磁场、电流、电压三个常用物理量,使得采用霍尔传感器对被测量的测量简单易行,而磁场强度、电流、电压是磁场、电场的基本物理量,所以霍尔传感器可以进行精确的非接触测量。 1霍尔效应 在一块半导体薄片上,当它被置于磁感应强度为B的磁场中,如果在它相对的两边通以控制电流I,且磁场方向与电流方向正交,则在半导体另外两边将产生一个大小与控制电流I和磁感应强度B乘积成正比的电势UH,即UH=KhIB,其

9、中Kh为霍尔元件的灵敏度,Kh值越大,灵敏度就越高,该电势称为霍尔电势。在片子上作四个电极,其中C1、C2间通以工作电流I,C1、C2称为电流电极,C3、C4间取出霍尔电压UH,C3、C4称为敏感电极。将各个电极焊上引线,并将片子用塑料封装起来,就形成了一个完整的霍尔元件。 图4-2霍尔效应2工作原理 霍尔开关集成电路由稳压器、霍尔元件、差分放大器、斯密特触发器和输出级组成。在外磁场的作用下,当磁感应强度超过导通阈值BOP时,霍尔电路输出管导通,输出低电平。之后,磁感应强度再增加,仍保持导通态。若外加磁场的磁感应强度值降低到BRP时,输出管截止,输出高电平。通常称BOP为工作点,BRP为释放点

10、,BOPBRP=BH称为回差。回差的存在使开关电路的抗干扰能力增强。集成电路中的信号放大器将霍尔元件产生的幅值随磁场强度变化的霍尔电压UH放大后再经过斯密特触发器进行整形、放大后输出脉冲方波信号。霍尔传感器部结构如图4-3所示。稳 压 器传感器放大器施密特触发 器Vcc集电极开路输出GND图4-3 霍尔传感器部结构方框图3.1.2 CS3020霍尔传感器霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路门输出,工作电压围宽,使用非常方便。考虑到用于汽水速度测量这种特殊环

11、境下,在本设计中选择了CS3020霍尔传感器,该系列霍尔开关电路传感器广泛用于汽水工业和军事工程中。如图4-4所示是CS3020的外形图。将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。图4-4 CS3020的外形图 CS3020是由电压调整器,霍尔电压发生器,差分放大器,史密特触发器和集电极开路的输出级组成的磁敏传感电路,它是一种单磁极工作的磁敏电路,适合于矩形或者柱形磁体下工作。当磁钢随水轮轴旋转时,霍尔传感器受磁场的影响,霍尔器件输出一个脉冲信号。感受到磁场的时候输出一个低电平,没感受到磁场的时候输出高电平。工作特点如下:l 电源电压围宽l 开关速度快,无瞬间抖动l 工作频率宽

12、l 寿命长、体积小、安装方便l 能直接和晶体管与TTL、MOS等逻辑电路接口极限参数见下表4-1参数符号量值单位电源电压VCC25V磁感应强度B不限mT输出电流IOL 25mA工作环境温度TA-40125贮存温度TS-55150电特性见下表4-2(TA=25)参数符号测试条件CS3020单 位最小典型最大电源电压VCCVcc=4.5244.524V输出低电平电压VOLVcc=4.5V,Vo=Vccmax,B=50mT, Io=25mA200400mV输出漏电流IOHVo=Vccmax, VCC开路0.0510A电源电流ICCVo=Vccmax, VCC开路812mA输出上升时间trVcc=12

13、V,RL=480CL=20pF0.121.2S输出下降时间tf0.141.4S 磁特性见表4-3(VCC=4.524V)参数符 号CS3020单位最小典型最大工作点BOP735mT释放点BRP533mT回差BH2mT3.1.3霍尔传感器的硬件连接霍尔传感器的标志面对着自己,从左至有右分别是接5V电压,接地,脉冲输出。如图4-5所示是霍尔传感器的硬件连接图。图中R1是限流电阻,C1、R2起滤高频的作用。当霍尔元件感受到磁场的时候引脚3输出低电平,三极管导通,单片机P3 .5口接收到高电平脉冲;当霍尔元件没有感受到磁场的时候引脚3输出高电平,三极管截止,单片机P3 .5口接收到低电平脉冲。图4-5

14、 霍尔传感器的硬件连接图3.2MCU控制系统设计3.2.1CPU的选用AT89S51是一个低功耗,高性能CMOS8位单片机,片含4k Bytes的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统与80C51引脚结构,芯片集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(

15、I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗电路,片时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。3.2.2 AT89S51主要特性和引脚说明AT89S51有PDIP、PLCC、TQFP三种封装方式,以适应不同产品的需求。其中最常见的就是采用40Pin封装的双列直接PDIP封装,其引脚排列见如图4-7所示。 图4-7 AT89S51芯片引脚排

16、列图1主要特性:l 与MCS-51产品指令系统完全兼容l 4K字节可编程FLASH存储器l 1000次擦写周期l 全静态工作:0Hz-24KHzl 128*8位部RAMl 32个可编程I/O口线l 两个16位定时/计数器l 6个中断源l 可编程串行通道l 低功耗的闲置和掉电模式l 片振荡器和时钟电路2管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,

17、P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,可用作输入,P2口的管脚被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。当P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用部上拉优势,当对外部八位地址

18、数据存储器进行读写时,P2口输出其特殊功能寄存器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被部上拉为高电平,并用作输入,P3口被外部下拉为低电平时,P3口将输出电流,这是由于部上拉的缘故。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(外部数

19、据存储器读选通)RST:复位输入。可以是单片机处于复位工作状态。通常有自动上电复位和人工按键复位两种。ALE/PROG:地址锁存允许信号。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在不访问外部存储器时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。该脉冲序列可作为外部时钟源或定时脉冲源使用。/PSEN:外部程序存储器读选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:程序存储器的外部选通信号。接低电平时,则

20、只使用片外ROM;如果接高电平,则只使用片ROM。XTAL1和XTAL2:片振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89S51片OSC的定时反馈回来。3.2.3 MCU最小系统设计单片机最小系统就是能使单片机工作的最少的器件构成的系统,是大多数控制系统所必不可少的部分。AT89S51部已经包含了一定数量的程序存储器,在外部只要增加时钟电路和复位电路就可以构成单片机最小系统。1.时钟电路所有单片机都需要时钟电路,时钟电路的作用是控制单片机的工作节奏。利用芯片部的振荡器然后在引脚XTAL1和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送

21、入部时钟电路。外接晶振时,C1和C2的值通常选择为30pF左右,C1、C2对频率有微调作用,为了减小寄生电容,更好地保证振荡器稳定、可靠的工作,振荡器和电容应尽可能安装得与单片机引脚XTAL1和XTAL2靠近。2.复位电路复位是单片机的初始化操作,所有单片机在启动运行时都需要复位,以使CPU和系统中的其他部件处于一个确定的初始状态,并从这个状态开始工作,因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部复位电路才能实现。单片机第40引脚正极接上5V电源,负极(地)接20引脚。单片机部已集成了振荡器,使用晶体振荡器时,接18、19脚,再接上电容。EA引脚接到正

22、电源端就可以了。如图4-8所示是由AT89S51构成的单片机最小系统,P0-P3口为32个通用I/O口,使用P0口需要通过10K电阻上拉Vcc。图4-8 部已包含ROM的单片机最小系统3.3 LED数码管显示器由于LED数码管具有亮度高、使用电压低、寿命长等特点,所以在工业测控系统中常用LED数码管作为显示输出。本系统也采用LED数码管作显示输出。LED显示器是由发光二极管显示字段的显示器件。单片机系统常使用8段LED数码显示器,其外形与引脚如图4-9(a)所示,由图可见8段LED显示器由8个发光二极管组成。其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作

23、为显示小数点用,通过不同的组合可用来显示各种数字,包括AF在的部分英文字母和小数点“.”等字样。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称为共阴极LED显示器。如图4-9(b)所示。图4-9 8段LED数码显示器 本设计采用LED动态扫描显示,这样能分时轮流选通数码管的公共端,使得数码管轮流导通,在选通相应LED后,即在显示字段上得到字形码。究竟是哪个数码管亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。这种方式不但能提高数码管的发光效率,而且由于各个数码管的字段

24、线是并联使用的,从而大大简化了硬件线路。在动态方式中,逐个地循环地点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。在单片机P0的8个输出口分别连接上一个150的电阻是为了保证数码管显示的时候每段亮度都一样。采用共阳极驱动,当位选口P2.0 P2.3输出一个低电平的时候三极管导通,这就决定了哪一位数码管被点亮。三极管前面的1K电阻起限流的作用,防止电流过大烧坏三极管。这样P2.0 P2.3分别控制百位,十位,个位和小数位。数码管显示硬件图如图4-10所示。图4-10 LED数码管显示硬件图3.4单片机测速系统总原理图图

25、4-11单片机测速系统总原理图从系统原来图中可以看到本设计结构和线路布局相对比较简单,也具有较强的实用性。将永久磁钢固定在转盘上,转盘随轴旋转一周,磁钢也旋转一周,霍尔传感器感受到一次磁场。当霍尔传感器感受永久磁钢产生的磁场时,传感器的引脚3输出低电平,此时三极管导通,单片机P3 .5口接收到高电平脉冲;当传感器没有感受到磁场的时候引脚3输出高电平,此时三极管截止,单片机P3 .5口接收到低电平脉冲。转盘转了多少转单片机就接收到多少个脉冲,利用单片机的定时/计数器进行定时和计数,测出脉冲的周期或频率即可计算出水轮转速。通过单片机软件设计,把转速转换成线速度。转速即是角速度,线速度=角速度*周长

26、。4系统软件设计在单片机软件编程时,应运用模块化编程思想,按照先粗后细的方法把整个系统的软件划分成多个功能独立、大小适当的模块。本设计软件可分为主程序、中断服务子程序、LED数码管显示子程序三个部分。软件功能是在Keil uVision2中编写C语言来实现的。4.1程序流程图 主程序流程图和中断服务程序流程图分别见图5-1和图5-2。开 始系 统 初 始 化定时/计数器初始化送数码管显示单片机数据处理结 束图5.1主程序流程图系统要开始工作就要对单片机进行初始化,系统初始化部分程序如下:#include<reg52.h>#include<stdio.h>#define

27、SYSCLK 11.059200 #define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define R 4 #define PI 314 接下来是定时/计数器初始化,设置工作方式控制寄存器TMOD。TMOD=0x51 TL1=0x00; TH1=0x00;TL0=0x00; TH0=0x4c; 单片机跳中断处理,处理后返回主程序,最后用数码管显示数据,1秒钟更新一次,结束程序。入栈保护定时器加1返回并清0是否满20出栈恢复是否重置定时计数初值图5.2中断服务程序流程图当单片机执行中断程序

28、的时候要重新设置定时计数器的初值,每次从传感器传来一个脉冲的时候,单片机计数器加“1”。如果每50ms中断一次,那么当k=20的时候(即定时器每到1秒钟),程序跳出中断返回到主程序,执行显示程序。4.2 程序功能该程序的功能是利用单片机将霍尔传感器采集到的信号进行处理,将处理后得到的数据通过P0口送到LED数码管显示出来。系统初始化:TMOD=0x51; /初始化,工作方式控制寄存器TMOD十六进制51转化成二进制为01010001。T1计数工作方式,工作在方式1;T0定时工作方式,工作在方式1。TL1=0x00; TH1=0x00; /T1计数初值为0。TL0=0x00; TH0=0x4c;

29、 /每50ms=50000us中断一次。由公式(5-1)(65536-x)*12/11.0592=50000得定时初值(65536-50000*11.0592/12)/256=76转换为16进制,得高位为4C (65536-50000*11.0592/12)%256=0得低位。IE=0x82; /中断控制IE,EA=1,CPU开放中断;ET0=1,允许定时器中断。TR0=1; /定时开始。中断函数程序如下:void timer0(void) interrupt 1 TR1=0;TR0=0; /启动计数/定时器 TF0=0; /中断标志位 TL0=0x00; TH0=0x4c; k+; if(k

30、>=20) /每50ms中断一次,那么当K>=20的 时 候 就 是1s,每1s钟计算一次转速js。 js=TH1*256+TL1;TH1=0;TL1=0;k=0; js=0;TR0=1;系统程序详见附录。4.3 程序调试该程序在Keil uVision2 中进行调试,可以看到调试结果如下图5-3所示:图5-3 程序在Keil 中的调试。参考文献1.齐等. 单片机应用系统设计技术基于c语言编程M. :电子工业,2004年.2.黄冰. 微机原理与应用M. :大学,2006年3.蔡萍. 现代检测技术与系统M. :高等教育,2005年4.黄智伟等. 全国大学生电子设计竞赛电路设计M. :

31、航空航天大学,20065.军等. 数字电路设计与制作M. :科学,2007年6.常建等. 传感器原理与工程应用M. :电子科技大学,2007年7.燕等. 单片机在电子电路设计中的应用M. :清华大学,2006年附 录单片机测速测量系统程序如下:#include<reg52.h>#include<stdio.h>#define SYSCLK 11.059200 / 时钟脉冲,单位MHz#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define R 5 /半径0.5m#define PI 314 /pi=3.14/段选定义sbit P0_0 = P00;sbit P0_1 = P01; sbit P0_2 = P02;sbit P0_3 = P03;sbit P0_4 = P04;sbit P0_

温馨提示

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

评论

0/150

提交评论