基于51单片机的速度检测系统解析.docx

上传人:b****0 文档编号:25888565 上传时间:2023-06-16 格式:DOCX 页数:35 大小:1.49MB
下载 相关 举报
基于51单片机的速度检测系统解析.docx_第1页
第1页 / 共35页
基于51单片机的速度检测系统解析.docx_第2页
第2页 / 共35页
基于51单片机的速度检测系统解析.docx_第3页
第3页 / 共35页
基于51单片机的速度检测系统解析.docx_第4页
第4页 / 共35页
基于51单片机的速度检测系统解析.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

基于51单片机的速度检测系统解析.docx

《基于51单片机的速度检测系统解析.docx》由会员分享,可在线阅读,更多相关《基于51单片机的速度检测系统解析.docx(35页珍藏版)》请在冰豆网上搜索。

基于51单片机的速度检测系统解析.docx

基于51单片机的速度检测系统解析

基于51单片机的速度检测系统

摘要

在工程实践中,经常会遇到各种需要测量转速的场合,测量转速的方法分为模拟式和数字式两种。

模拟式采用测速发电机为检测元件,得到的信号是模拟量。

数字式通常采用光电编码器,霍尔元件等为检测元件,得到的信号是脉冲信号。

随着微型计算机的广泛应用,特别是高性能价格比的单片机的出现,转速测量普遍采用以单片机为核心的数字式测量方法。

本文便是运用单片机控制的智能化测量自行车转速。

自行车在运行过程中,需要对其进行监控,转速是一个必不可少的一个参数。

本系统就是对自行车转速进行测量,并显示转速,了解自行车运行的基本状况。

本设计主要用AT89C51作为控制核心,由霍尔传感器、LED数码显像管、及24C02构成。

详细介绍了单片机的测量转速系统及串行通讯。

充分发挥了单片机的性能。

本文重点是测量速度并显示在4位LED数码管上。

其优点硬件是电路简单,软件功能完善,测量速度快、精度高、控制系统可靠,性价比较高等特点。

关键字:

MSC-51(单片机);计算机;传感器自动化测量

 

Speedtestbriefintroduction

Abstract:

Inthebikepractice,wewillmeeteachkindtoneedfrequentlytosurveytherotationalspeedthesituation,thesurveyrotationalspeedmethoddividesintothesimulationtypeandthedigitaltwokinds.Thesimulationtypeusesmeasuredthatthefastgeneratoristhedetectingelement,obtainsthesignalsimulatesthethedegraduatedfromthedesignoftheissueiscontroloftheintelligentuseofspeedmeasuringinstrument.

Theaticleisthemotorspeedmeasurement,andbasicsituation.Thistopicdescribesthedesignstepsandmethodofhumiditymeasurementsystemwhichbasedonchipdesignasystemwhichcanmeasuretemperatureandhumidity,showthemeasurementresultsandwarming.

ThissystemusesAT89C51asthemainchip,useanewintegrateddigitaltemperatureandhumiditysensorDHT11gatherthetemperatureandhumiditydata.ItusesClanguagetodesignsystemprogrammingondevelopmentplatform.Themaindesignisdivided.

Keywords:

singlechip;intelligence;computer;transimiter;test.

 

第1章引言

自行车被发明及使用到现在已有两百多年的历史,在这两百年间人类在不断的尝试与研发过程中,自行车发展的目的也从最早的代步工具转换成休闲娱乐的用途,随着生活水平的提高,人们希望自行车的功能更强大,比如说对行车信息的掌握,而里程计/速度计正满足了这个需求。

现在先进的里程/速度计能够显示实时的速度和里程,是人们实时掌握相关信息,更好的安全行车。

我国是自行车大国,据统计,平均每个家庭拥有2.6两自行车,自行车在人们的日常生活中扮演者越来越重要的角色,上班,旅行,等等。

很多行为都能看到它的身影。

它已成为了我们生活中不可或缺的一员了。

常常听说汽车摩托超速行驶造成交通事故,但很少说自行车超速。

其实是我们太小看这一问题了,在网上有一份调查报告说,全国和自行车有关的交通事故,相当大比例是由自行车速度过快引起的,自信车的超速造成交通事故而把其他机动车当成替罪的羔羊,是一件很冤枉的,因此说行车过程中对速度的把握是一件很重要的事情。

智能化转速测量可以对自行车的转速进行测量,车在运行的过程中,适时对转速的测量有效地可以反映车的状况。

目前国内外测量电机转速的方法很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。

计数测速法又可分为机械式定时计数法和电子式定时计数法。

传统的电机转速检测多采用测速发电机或光电数字脉冲编码器,也有采用电磁式(利用电磁感应原理或可变磁阻的霍尔元件等)、电容式(对高频振荡进行幅值调制或频率调制)等,还有一些特殊的测速器是利用置于旋转体内的放射性材料来发生脉冲信号.其中应用最广的是光电式,光电式测系统具有低惯性、低噪声、高分辨率和高精度的优点.加之激光光源、光栅、光学码盘、CCD器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用本系统主要由传感器,单片机AT89C51构成。

可以对大范围转速进行测量,测量的转速精度高。

第2章系统介绍

2.1系统结构

本文首先介绍了此系统的结构要求、技术指标以及主要内容等;再论述了总体设计过程,确定了技术指标及器件的选择;接着重描述了系统硬件电路设计、硬件设计框图及所使用的各种芯片功能与特性;接着重点剖析了软件设计的过程,最后通过调试达到目标。

转速测量的方案选择,一般要考虑传感器的结构、安装以及测速范围与环境条件等方面的适用性;本论文中给出的速度测量方案,经过我查资料、构思和自己的分析,从实现难度、熟悉程度、器件用量等方面综合考虑,总体电路为以下方案。

下面就看一下我对设计方案的简要说明。

系统主要实现的功能是AT89C51单片机接收霍尔传感器传来的脉冲信号,由于霍尔器件直接输出高低电平信号已完成对速度信号的处理,所以可以直接送到单片机的相关接口,单片机根据外部中断,以及内部定时器进行记数计算出自行车速度和里程送到LED显示,该处LED显示管采用4位共阳型,同时数据传给24C02,实现数据掉电后保存。

同时在运行过程中交替显示速度与里程信息。

达到对行车信息的掌握。

系统组成框图如下2-1:

 

图2-1系统框图

2.2系统要求

将霍尔传感器产生的脉冲信号输出入到单片机的外部中断端口,单片机工作在内部定时器工作方式0,对周期信号进行内部记数,调用计算公式算出转速,调用显示程序显示在LED上,同时通过串口向存储单元发送转速数据。

主要内容:

(1) 单片机部分主要完成自行车速度的测量。

(2) LED部分主要是把速度显示出来。

  (3)24C02实现系统在掉电时的信息保存。

根据系统要实现的功能以及要求,要实现单片机的转速测量主要是各个模块的设计,定时器记数功能、以及LED驱动。

单片机可通过编程控制外围部件,能实现较高的自动化程度。

以它为系统核心的控制模块可实现主从控制,完成预定的任务。

硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。

89C51单片机通过INT0输入传感器的脉冲信号,P0口P2口接LED动态显示和信息存储。

软件需要解决的是定时器0的记数和外部中断0的设定、由于测量的转速范围大,所以低速和高速都要考虑在内,关键在于一个四字节除三字节程序的实现。

显示部分、需要有一个二进制到十进制的转化程序,以及转换成非压缩BCD的程序后、才能进行调用查表程序送到显示。

PC机串口和单片机串行口的工作方式,包括串行口的通讯速率、奇偶校验位、停止位等均由通信部分的软件部分实现。

转速部分软件设计思路:

AT89C51单片机的P3.2口接收传感器的信号。

主要编写一个外部中断服务程序INT_0,读取记数值的三个字节,并再次清0记数初值以便下次的记数和计算。

调用两字节二进制-三字节十进制(BCD)转换子程序BCD,再调用十进制转换成非压缩BCD程序CBCD、最后调用查表程序送显示,系统要求单片机晶振12MHZ。

软件的具体设计将在后面介绍。

 

第3章硬件电路设计

硬件的功能由总体设计所规定,硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的电路原理图,必要时做一些部件实验,以确定电路图的正确性,以及工艺结构的设计加工、印制板的制作、样机的组装等。

设计单片机模块,考虑到单片机本身的外围电路较多,所以在单片机模块方面需要极为小心。

在整个电路设计时要考虑电平转换电路.

3.1单片机模块

根据系统功能要求以及单片机硬件电路设计思路对单片机模块进行设计,要使单片机准确的测量电机转速,并且使测出的数据能显示出来,所以整个单片机部分分为传感器电路、时钟电路、复位电路、执行元件以及显示电路五个部分。

单片机我们采用AT89C51,其引脚图如图3-1,相较于INTEL公司的8051它本身带有一定的优点。

AT89C51是一种带4K字节闪烁可编程可擦除只读存贮器,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

图3-1AT89C51引脚图

主要特性:

·与MCS-51兼容

·4K字节可编程闪烁存储器寿命:

1000写/擦循环

·数据保留时间:

10年

·全静态工作:

0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

管脚说明:

1.VCC:

供电电压;

2.GND:

接地;

3.P0口:

P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

4.P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

5.P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

6.P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表3-1所示:

7.RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

8.ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

表3-1P3口引脚

引脚

第二功能

信号名称

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

 

RXD

TXD

INT0

INT1

T0

T1

WR

RD

串行数据接收

串行数据发送

外部中断0请求

外部中断1请求

定时器/计数器0计数输入

定时器/计数器1计数输入

外部RAM写选通

外部RAM读选通

9./PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

10./EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-

FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

11.XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

12.XTAL2:

来自反向振荡器的输出。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石英振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

时钟电路是计算机的心脏,如图3-2,它控制着计算机的工作节奏。

MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZ

图3-2时钟电路

MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。

AT89C51是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。

单片机内部(如AT89C51)有一个可控的负反馈反相放大器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图4-2为CMOS型单片机时钟电路框图。

振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON.1)使/PD=0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。

清“0”PD,使振荡器工作产生时钟,单片机便正常运行。

图中SYS为晶振或陶瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定(晶振上标明的频率)。

电容C1和C2的作用有两个:

其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小),其典型值为30pF。

计算机在启动运行时都需要复位,如图3-3,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。

图3-3复位电路

单片机采用的复位方式是自动复位方式。

对于MOS(AT89C51)单片机只要接一个电容至VCC即可。

在加电瞬间,电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使MCS-51有效的复位。

RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,Vss上升时间若为10ms,振荡器起振的时间和频率有关。

10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电应保持20ms以上的高电平。

RC时间常数越大,上电RST端保持高电平的时间越长。

若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运转。

3.2霍尔传感器模块

CS3020

霍尔开关电路最适于响应变化斜率陡峭的磁场并在磁通密度较弱的场合使用,适用于单极或多对磁环工作,它由反向电压保护器、电压调整器、霍尔电压发生器、信号放大器、史密特触发器和集电极开路的输出级组成。

工作温度范围为-40~150℃(存储温度为150℃),可适用于各种机及机电一体化领域。

霍尔传感器是对磁敏感的传感元件,常用于开关信号采集的有CS3020(如图3-4)、CS3040等,这种传感器是一个3端器件,外形与三极管相似,只要接上电源、地,即可工作,输出通常是集电极开路(OC)门输出,工作电压范围宽,使用非常方便。

将有字面对准自己,三根引脚从左向右分别是Vcc,地,输出。

图3-4CS3020外形图

图3-5CS3020传感器连接方式

使用霍尔传感器获得脉冲信号,只要在转轴的圆周上粘上一粒磁钢,让霍尔开关靠近磁钢,就有信号输出,转轴旋转时,就会不断地产生脉冲信号输出。

如果在圆周上粘上多粒磁钢,可以实现旋转一周,获得多个脉冲输出。

原理电路如图3-5,在粘磁钢时要注意,霍尔传感器对磁场方向敏感,粘之前可以先手动接近一下传感器,如果没有信号输出,可以换一个方向再试。

3.3显示模块

显示电路采用LED数码管动态显示,LED是一种外加电压从而渡过电流并发出可见光的器件。

LED是属于电流控制器件,使用时必须加限流电阻。

LED有单个LED和八段LED之分,也有共阴和共阳两种。

常用的七段显示器的结构如图所示。

发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。

1位显示器由八个发光二极管组成,其中七个发光二极管a~g控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少。

此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。

才能显示出正确的数字来,如图3-6所示,为七段数码管的管脚图。

图3-6七段发光显示器管

为了节省I/O口线,我们采用的动态显示方式。

所谓动态显示,就一位一位地轮流点亮各位显示器(扫描),对于每一位显示器来说,每隔一段时间点亮一次。

显示器的亮度既与导通电流有关,也与点亮时间和。

5位共阴极显示器和AT89C51的接口逻辑如图所示。

AT89C51的P0口作为段数据口,接上拉电阻到显示器的各个段;P2口作为扫描口,连接电路如图3-7。

图3-7显示管电路

在AT89C51RAM存贮器中设置4个显示缓冲器单元30H-35H,分别存放4位显示器的显示数据,AT89C51的P2口扫描输出总是只在一位为低电平,即4位显示器中仅有一位公共阴极为低电平,其它位为高电平,AT89C51的P0口相应位(阴极为低)的显示数据的段数据,使该位显示出一个字符,其它们为暗,依次地改变P2口输出为高的位,P0口输出对应的段数据,4位显示器就显示出由缓冲器中显示数据所确定的字符。

以上介绍的是一位的显示管,在本次设计中,为方便连线,采用4位共阳极型。

3.4 24C02存储器简介

24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。

AT24C02有一个16字节页写缓冲器。

该器件通过IC总线接口进行操作,有一个专门的写保护功能。

管脚封装如图3-8所示。

DIP:

双列直插式封装,是最简单的一种封装技术。

图3-824c02外形

24C02支持I2C,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。

数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。

主器件和从器件都可以作为发送器或接收器,其9个动作控制着读愈写的各项操作,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个24C02器件连接到总线上。

管脚描述如表

表3-224C02管脚功能

SCL串行时钟

AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。

SDA串行数据/地址

AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。

A0、A1、A2器件地址输入端

这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。

当使用AT24C02时最大可级联8个器件。

如果只有一个24C02被总线寻址,这三个地址输入脚(A0、A1、A2)可悬空或连接到Vss,如果只有一个24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到Vss。

WP写保护:

如果WP管脚连接到Vcc,所有的内容都被写保护只能读。

当WP管脚连接到Vss或悬空允许器件进行正常的读/写操作。

 以前通过简单的器件之间替换比较,发现不同牌号的24C02其抗干扰性能是不一样的,于是就认定24C02器件存在"质量"好坏的问题。

后来在一次偶然的机会里,发现有些24C02的WP引脚并不起到保护作用,也就是说将WP引脚与CPU输出引脚断开并保持高电平的情况下,CPU仍然能够对24C02中的数据进行修改写入!

在惊讶之余,笔者收集了许多不同牌号的24C02进行试验,除了基本的读写功能外,还对地址功能以及WP引脚保护功能进行了全面的检测,发现一种ATMEL(激光印字)以及XICOR牌号的24C02具有全面的符合I2C总线协议的功能,而有些牌号24C02要么没有WP引脚保护功能,要么没有器件地址功能(即2片24C02不能共用一个I2C总线),有些甚至两种功能均无。

所以说一些同样功能型号的电子器件在兼容性上往往会带来意想不到的问题,值得引起注意。

  

 在此数据以十进制BCD码方式存入24C02,这样可以提高有效数据的冗余度,即24C02中其有效数据为0-9,大于9则为无效数据。

这样,在数据写入24C02之前就可以插入校验子程序,对预备写入的数据进行检查,若该RAM数据已经受到干扰,其值大多数应落在大于9的范围内(可能性百分比系数为246/256),故此当数据大于9时就禁止执行写入24C02的子程序,以免错误数据写入24C02,而对正常需要修改的参数无影响。

24C02中数据保持冗余度后,还可以对读出数据进行检查,若为大于9的非正常数据,说明24C02中数据已经受到干扰,此干扰值是绝对不能用的.24C02连接方式如图3-9所示。

  

图3-924C02电路

        第4章软件设计 

4.1编译语言的选择

  对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。

汇编语言的可控性较高级语言来说更具优越性。

程序编写语言比较常见的有C语言、汇编语言。

汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。

C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。

还有很多处理器都支持C编译器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1