51单片机速度里程表.docx

上传人:b****5 文档编号:5042527 上传时间:2022-12-12 格式:DOCX 页数:34 大小:1,003.32KB
下载 相关 举报
51单片机速度里程表.docx_第1页
第1页 / 共34页
51单片机速度里程表.docx_第2页
第2页 / 共34页
51单片机速度里程表.docx_第3页
第3页 / 共34页
51单片机速度里程表.docx_第4页
第4页 / 共34页
51单片机速度里程表.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

51单片机速度里程表.docx

《51单片机速度里程表.docx》由会员分享,可在线阅读,更多相关《51单片机速度里程表.docx(34页珍藏版)》请在冰豆网上搜索。

51单片机速度里程表.docx

51单片机速度里程表

 

51单片机速度里程表(总30页)

 

防灾科技学院

毕业设计

题  目

基于单片机的智能速度里程表的设计

学生姓名

吴建胜

学  号

5

系别

防灾仪器系

专业

电气工程及其自动化

班  级

1050313

开题时间

2013年11月29日

答辩时间

2014年6月8日

指导教师

杨敬松

职称

副教授

 

基于单片机的智能速度里程表的设计

作者吴建胜

指导教师杨敬松

摘要行车里程表广泛应用于各类机车,虽然以前的机械里程表稳定可靠,然而功能单一,且易受磨损。

随着微电子技术的快速发展,数字行车里程表得到了广泛应用,现在不少轿车的仪表已经逐渐使用数字车速里程表。

本文介绍一种基于单片机的智能里程表,该里程表是一种数字式仪表,不但可以显示机车的车速和行驶的总里程,而且可以显示阶段里程,还能显示温度和时间,同时具有超速报警功能。

本设计采用A3144e霍尔传感器,通过单片机处理数据计算出机车的车速和里程,再由LCD显示器显示出来。

 

关键词:

里程表;单片机;霍尔传感器;测速

 

Abstract:

Odometeriswidelyappliedinallkindsofmotorcycle.Themechanicalodometerissimpleandreliable,but function of a singleandvulnerable to wear.Asthe evolution of electronic technology,electronic speedometerwidelyusedintheprivatecar.Thispaperintroducesamicro-controllerbased smart speedometer.The table is a digital meter,the total mileage of thevehicle speed and drivingcannotonlyreal-timedisplaycanalsodisplaythespeedalarmfunction.UsingtheHallsensorA3144E,bymicro-controllerrecordanddealwiththisleveltheamountofchangewecanknowthespeedandmileage,thesedatawilldisplaybyLCD.

Keywords:

speedometer;SCM;Hallsensor;tachometer

温度传感器DS18B20 ................................................................................................8

存储器AT24C02 .........................................................................................................9

键盘单元....................................................................................................................10

显示单元....................................................................................................................11

报警电路....................................................................................................................12

时钟芯片DS1302......................................................................................................12

引言

随着现代交通工具的普及,人们使用不同手段外出的机会逐渐增多,像单车,摩托,轿车,公共交通等。

然而这些各不相同的交通工具由于应用场合和自身结构设计的不同产生了各种各样的车速里程表,即使同一种类的交通工具也因测速方法和生产厂家的不同产生了不同型号的车速里程表。

种类繁多的行车里程表,不仅减小了里程表的适用范围,降低了器件的通用性,更给这些交通工具的维护更换带来不小困难,而且由于量产规模的减小增加了单个里程表的价格。

同时市场上销售的很多里程表功能单一,无法满足不同用户对单里程、总里程、超速报警等各种功能的需求。

在这种背景下,这次毕设希望通过设计出一种精度高、可靠性高、价格合适、功能丰富且应用范围广的里程表,以此改善这种局面。

在本毕设中,利用安装在汽车转轴上的磁铁,在汽车行驶中,磁铁随着车轮做圆周运动,从而使霍尔元件产生脉冲,这些脉冲可由单片机外中断INT0记录,再通过相关公式计算得到车速及里程信息,用一个LCD1602显示,从而得到车速和里程等信息。

在里程信息的存储功能上,采用了广泛使用的串行EEPROM芯片AT24C02,每隔将芯片内的里程信息更新一次,掉电情况下也不会丢失数据。

本作品可以安装于不同类型不同型号的交通工具上,通过按键调整周长值,就可以准确测量。

通过按下相应按键,就可以实现显示单里程、总里程、温度时间、报警时速、车轮周长等功能。

通过测试,本作品完全实现了设计要求,LCD1602显示出来的各值同理论值相比误差在1%以内。

由于结构简单,并采用低价芯片,因此成本较低。

如果合理开发使用该里程表,是有一定价值的。

1.系统概述

系统原理介绍

系统主要有七部分组成:

霍尔A3144E传感器、STC89C52RC单片机、独立键盘、LCD1602显示器、EEPROM芯片AT24C02、DS18B20温度传感器、DS1302时钟芯片。

系统图如图

图系统结构图

本毕设测量时速及里程的原理如(图)。

图测速原理图

如图所示,装在轮上的圆形磁铁在随车轮而做圆周运动,霍尔传感器便处于一个强弱变化的磁场中,当磁铁远离霍尔元件时,A3144第三脚输出5V电平,当磁铁南极靠近A3144时,输出0V电平,由此产生脉冲。

由上述分析可知,在车轮转动一圈中,霍尔电路只能导通一次,即输出一个脉冲。

如果知道车轮的周长,利用单片机记录若干时间内脉冲变化的次数,然后就可以算出汽车的车速和所行使的里程了,计算如下:

设汽车单位时间车轮转动圈数为num

汽车单位时间行驶路程为mile(m)

汽车车速为speed(km/h)

 汽车车轮周长为cricle(m)

 mile=num*cricle;(式

speed=num*cricle*3600/1000;(式

用外中断INT0做为计数器,定时器T0定时一秒钟,当一秒钟到了以后,在相应程序中计算出车速送到LCD显示并将行驶的里程送到存储器中存储。

系统和按键的功能

本设计可以实现如下功能:

1实时显示车速。

每两秒钟更新一次车速。

2显示自安装使用以来车辆行驶的总里程。

为车辆的定期保养维护和零部件更换提供依据。

3显示自系统上电到任意时刻的单个路程的里程。

用户可以了解单次行驶的里程。

4可以显示驾驶环境的温度。

5不同车速的报警。

可以通过相关按钮调整报警速度值,范围是:

0~250km/h。

6过相关按键改变车轮周长。

调节范围是:

0~250厘米

7显示时间,并且可以用按键调整时间值。

这些不同的显示值和各值的调整是通过七独立按键来实现的,现将其叙述如下:

Key1:

复位按钮。

Key2:

短按Key1键,单次里程清零;长按Key1键(约8秒),总里程清零。

Key3:

按一次Key2键,显示速度和单次里程;按两下Key2键,显示时间和温度;

按三次Key2键,显示车轮周长和报警速度值;按四下Key2键,返回初始

状态,显示速度和总里程,再按以此循环。

Key4:

显示时间和温度时,按一下Key3键,时间秒值可以调整,按两次Key3

键,时间分值可以调整,以此类推。

当显示车轮周长和报警速度值,按一下

Key3键,可以调整车轮周长,按两下Key3键,可以调整报警速度值,再按

以此循环。

Key5:

当时间、车轮周长和报警速度值可以调整时,按一次Key4键,相应值加一。

Key6:

当时间、车轮周长和报警速度值可以调整时,按一次Key5键,相应值减一。

Key7:

按一次背光亮,按两次循环显示,按三次背光灭,按四次停止循环显示,再按以此循环。

相关参数和应用范围

各参数和测量范围如下:

总里程:

0~999999km;

单里程:

0~999km;

温度:

-55~125摄氏度

车速:

~h

本产品对于不同对象需使用不同的安装方法,实际应用时,还需要进一步的开发。

考虑到本产品造价低,测速环境要求稍高,在健身设备、自行车、摩托车等震动小且系统结构简单的设备上安装较有前景。

2硬件设计

单片机及时钟复位电路

单片机介绍

在这次设计使用的单片机芯片是STC公司的STC89C52RC40I-PDIP40型单片机,其中字符表示的意义如下:

STC—前缀,表示STC公司的产品;

8—表示芯片是8051内核芯片;

9—表示内部含FlashEEPROM存储器;

C—表示器件是COMS产品;

5—固定不变值;

2—表示能存储8KB的程序。

RC—STC单片机内部RAM为512B;

40—表示支持最高为40MHz的晶振;

I—表示工业级产品,温度范围:

-40~+85℃;

PDIP—产品封装类型,双列直插,间距;

1412—表示芯片生产日期是14年第12周;

—此标号为芯片制造或处理工艺。

其芯片引脚和实际图像如图:

图芯片引脚图

STC89C52RC引脚(见图)主要分为三类:

1.电源和晶振引脚,如VCC、GND、XTAL1、XTAL2

2.功能控制引脚,如RST、PSEN、ALE/PROG、EA/Vpp

3.I/O口,如P0、P1、P2、P3,四组八位I/O口

XTAL1(19脚)、XTAL2(18脚)外接晶振引脚。

RST(9脚)复位引脚。

PSEN(29脚)默认即可,不需要接器件或电源。

EA/Vpp(31脚)一般接2K上拉电阻即可。

P0,P1,P2,P3为I/O口,功能各有其别。

STC89C52RC功能强大,价格低廉,可靠耐用,拥有很强的保密功能。

这为其应用于各行业设记带来方便。

图单片机引脚编号

时钟复位电路

复位电路由两个电阻一个电容和一个点动按钮构成,当按下该按钮时,STC89C52RC第九脚RST变为高电平,只要高电平持续两个时钟周期以上,即可使单片机复位。

构建复位电路时要合理选择电容电阻的大小。

时钟电路由一个12MHz的晶振和两个33PF的电容组成,晶振要尽可能靠近18、19引脚,并且连接线要尽可能短,详细接法(见图及)。

图复位电路

图晶振电路

测速传感器

传感器的选择

1.红外对管。

红外对管需要分别安装在车轮两侧,当车轮转动时,辐条会阻挡红外对管的光路,接收管输出低电平,单片机根据此信号可计算里程、速度等。

红外对管的优点是测量精度高,缺点是安装比较复杂和容易受外来光线、灰尘等的影响。

2.开关型霍尔传感器。

霍尔3144是利用霍尔效应把强弱交替的磁信号转换为电平脉冲信号的器件。

把霍尔3144安装在靠近车轮的固定支架上,磁铁安装在随车轮转动的地方,当磁铁靠近3144时,霍尔第三脚输出0V电平,单片机通过相关公式算出里程、速度等各值。

霍尔3144的优点是稳定可靠和安装简易,缺点不详。

3.干簧管。

干簧管相比霍尔元件来说是比较原始的,它利用磁铁的吸力使其闭合或断开。

因此存在机械接触,检测频率不能过高,且容易损坏。

干簧管的优点是安装简易,缺点是比较脆弱和不够稳定。

综合比较三种器件的性能和价格,本次设计选择价格适中、测量稳定且安装简易的霍尔传感器。

霍尔3144原理

霍尔3144属于开关型传感器,1脚接5V电平即电源VCC端,2脚接0V电平即电源GND端,3脚接STC89C52RC单片机的P3^2口,此外第三脚还需接一个5K左右的上拉电阻。

辨别霍尔管脚的方法是:

把霍尔元件印有文字的一面面对自己,从左到右为1、2、3脚。

霍尔3144工作电压为(—18V),范围很宽,方便不同场合应用。

输出的是TTL电平,不需要放大可以直接驱动单片机,而且可以检测高达1MHz频率。

霍尔3144传感器的内部结构和工作原理如(图),由模块A电源稳压器,模块B电势触发装置,模块C差分放大器,模块D施密特触发器,模块E输出装置。

当磁铁南极靠近霍尔3144时,施加的磁场强度达到工作点,模块D施密特触发器输出高电平,三极管导通,模块E输出低电平,此时为开状态。

反之霍尔3144为高电平5V。

施密特触发器整形之后就变成方波脉冲输出。

图霍尔3144E原理图

在本设计protues仿真中,用时钟激励源代替霍尔传感器,演示在不同车速情况下,里程表的车速测量、里程显示及报警情况。

将激励源接到P3^2口,定时器T0记录一秒钟脉冲次数,从而计算车速及里程信息。

(见图)

图模拟霍尔脉冲

温度传感器DS18B20

DS18B20是数字式温度传感器,该器件有GND、DQ、VDD三个引脚。

GND是信号地引脚,接0V电平,即电源GND引脚。

DQ为数据输入和输出引脚,接STC89C52RC单片机P3^6口,外加左右上拉电阻。

VDD为电源5V引脚。

DS18B20温度传感器只有一个数据接口,使用起来方便快捷,连接的线路也很简单,测量温度范围宽,从零下50度到125度的范围,测量误差很小,小于℃,而且该器件体积很小,不会影响整个电路的体积。

故用它来测温是很好的选择。

DS18B20引脚图及引脚功能介绍(如图)

图2.7DS18B20引脚编号

序号

名称

引脚功能描述

1

GND

地信号

2

DQ

数据输入/输出引脚。

3

VDD

可选择的VDD引脚。

接电源5V电平,电源VCC引脚

在本设计protues仿真中,与单片机的连接(如图)

图温度传感器接法

存储器AT24C02

AT24C02是断电不丢失数据的串行EEPROM芯片,该芯片的存储容量为2KB(256*8Bit)。

可以反复擦写十万次以上,芯片里的数据可保存100年。

AT24C02的引脚(如图)功能简绍如下:

A0~A2为可编程地址输入端,可在同一系统中接8块该芯片,芯片地址由A0~A2的值决定,即从000~111。

VSS为电源地引脚,接0V电平GND。

SDA串行数据输入/输出端。

里程表系统中接STC89C52RC单片机P3^1口。

SCL串行时钟输入端。

里程表系统中接STC89C52RC单片机P3^0口。

WP写保护端口。

作用是保护硬件数据。

该引脚接高电平表示只能对该芯片进行读操作而不能改变芯片里的数据,接低电平表示可以对该芯片进行读和写的操作。

本系统需要对该芯片进行读和写的操作,因此在里程表系统中接0V电平GND。

VCC电源正端。

接5V电平VCC引脚。

在里程表系统中,SDA和SCL两个引脚需要接一个5K左右的上拉电阻,以保证不会出现数据的错误读写。

A0~A2和WP引脚直接接GND引脚,即该芯片在本系统中的地址为000,而且可以对该芯片进行读和写操作。

图AT24C02引脚图

在本设计protues仿真中,与单片机的连接(如图)

图存储器接法

键盘单元

因为本系统中要调节的信息不多,故只设计了七个独立键盘。

(见图)单片机上电后各IO口为高电平,当键按下后,与按键相连的IO口电平被拉低。

各键的功能如中所述

图按键电路

显示单元

在本系统中所用的显示器为LCD1602,而非数码管。

因为如果用几个数码管显示速度和里程等信息,并用其它方式得内容和单位,例如数码管显示,并且指示速度的发光二极管亮,它表示当前的速度为千米/小时;但是用LCD1602显示该信息的话,在一屏上可以同时显示出数字、内容和单位等,例如显示:

Speed=h,它表示当前的时速为。

此外数码管所需供电电流比LCD1602大,这对使用电池提供电能的系统来说是很不利的,而由LCD1602显示器组成的显示单元具有显示内容多,人机界面友好、更省电,具有控制简单,使用单片机接口少等优点,因此本设计采用LCD1602液晶显示屏,能够实时的显示里程速度等信息。

其中LCD显示器的段选码都由单片机的P1口连接控制,与单片机的连接(如图)。

图显示器接法

报警电路

报警电路有有源蜂鸣器和LED灯构成,其中报警时速可通过按键调节,当时速大于报警值时,蜂鸣器长鸣,LED灯亮起。

此外P2^7引脚需接一个2K上拉电阻,才能使单片机输出高电平时导通NPN三极管,电路(如图)。

图报警电路

时钟芯片DS1302

DS1302是一种实时时钟芯片,引脚结构如图(),与单片机连接(如图)。

VCC1引脚是备用电源正引脚,VCC2是主电源正引脚,当备用电源大于主电源时使用VCC1供电。

X1和X2引脚外接晶振。

图时钟芯片引脚图

图时钟芯片电路

3软件设计

系统的主程序流程(如图)

本系统设计好硬件电路后,就需要设计系统程序了。

程序按不同的功能可以分为六部分,分别是:

显示程序、时钟程序、存储程序、温度程序、按键程序、数据处理程序。

首先在主程序部分对报警接口进行初始化,使其上电后不会报警,再打开外中断、定时器溢出中断等并给定时器赋初始值,之后进入循环,分别循环扫描显示程序、按键程序、温度程序、时钟程序、里程计算程序、速度计算程序等等。

系统程序的难点在于LCD1602读写字节程序,由于对延时时长要求很高,很容易出现不显示或不能正确显示。

其次是速度计算程序,虽然计算公式符合理论,但总是不能正确显示出速度值,只有加中间变量和一定延时时间才能解决该问题。

最后是总里程和单里程计算出的值要相一致,并且都要求很小的误差,该处程序容易忽略丢失小数位造成的误差。

Y

图系统流程图

键盘扫描程序

键盘采用循环扫描的方式,放在主程序无限循环中,当有检测到有按键按下的时,就执行相关程序。

在程序中设不同的标志位,使其显示不同的内容,相关按键可定义一个中间变量,用于记录按键按下的次数,之后再执行按下不同次数的程序,使按键尽可能少。

该处程序用到了许多的if嵌套,对逻辑能力稍有要求。

由于该处程序较繁杂,仿真时不能很好地体现出程序的功能。

流程如(图)所示。

图按键流程图

按键一为复位按键,按下可使单片机复位。

按键二为里程清零按钮,可对总里程和单次里程清零。

按键三为显示选择按钮,可选择显示速度/总里程,速度/单里程,时间/温度,车轮周长/报警速度。

按键四为数据修改选择按钮,可以选定需要修改的数值。

按键五为数值修改时的加按钮。

按键六为数值修改时的减按钮。

按键七为LCD背光和循环显示切换按钮。

这些按钮通过程序进行控制,相关程序见附录D。

数据处理程序

利用单片机的外中断INT0记录霍尔脉冲量Number1~Number3,速度计算为每两秒计算一次速度值,公式为:

Speed=L*Number1*,每计算一次速度值就对Number1清零。

单里程计算公式为:

Cur_dis=Number2*L,单里程每计满100米就对Number2清零。

总里程计算和单里程相差不大,只不过每计满100米就写入AT24C02,对EEPROM的数据进行更新。

流程图如(图)。

 

图数据处理流程

报警程序

报警程序比较简单,在超速时,只要在软件中使与二极管相连的单片机IO口置零就可以了。

当对与蜂鸣器相连的单片机IO口置高电平时,蜂鸣器发声。

在软件设计用if语句实现了报警功能。

显示程序

显示子程序的设计也比较重要了,之前的一些子程序的设计都是针对一些数据做处理,而这些经计算后得出的数据却需要通过显示子程序显示出来。

本设计采用的是LCD1602液晶显示屏,能分2行显示32个字符,共16个引脚,带背光。

LCD1602液晶模块内部的控制器共有11条控制指令,其读写操作、屏幕和光标的操作都是通过对这些指令来高低电平变化的控制来实现的。

液晶显示模块执行指令的时间较长,不能很快更随指令的变化,因此在执行指令前需要延时一定的时间,以确保指令能被执行,或者对其进行忙状态检测,忙状态下的其他指令时不能执行的。

要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,首行第一个字符的地址是00H,第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)+B(80H)=B(C0H)。

流程图如图所示:

 

图显示器流程

存储模块程序

AT24C02存储器用来保存总里程数据、车轮周长和报警速度值,因此要处理好该芯片的字节读写问题。

由于AT24C02的可擦写次数是有限的,所以不能太过频繁地对其进行擦写操作,要不然很可能会大大缩短里程表的使用寿命。

本系统每100米更新一次总里程数据,虽然这样做可能会丢失部分里程值,但相比于每转一圈就擦写一次能大大提高里程表的使用寿命。

存储程序含有开始读写操作和停止读写操作部分,因此能很好地控制什么时候进行读写操作。

对于总里程、车轮周长和报警速度值只需要开机时读出来即可,而不需要反复地进行读操作,这样做也能提高里程表的使用寿命。

AT24C02一次只能传输8位数据,第九位为数据认可位,即应答位,并采用I2C通信模式,而对于总的传送多少数据是没有任何限制的。

实际上对于该芯片的操作还是很容易实现的,只要时序正确,正常情况下都能正确传输数据。

AT24C02的开始信号,应答信号和结束信号都是通过STC89C52RC单片机模拟I2C通信产生的。

AT24C02芯片的读写子程序见附录D。

温度模块程序

本模块包含如下子程序:

(1)读\写一个字节程序;

(2)温度转换程序;

(3)显示温度值程序;

DS18B20是一种很常见的温度传感器,对于该器件的操作难点主要在于温度值的转换,要分别提取出温度值的百位、十位、个位和小数位。

此外还有区分温度是正值还是负值。

由于DS18B20存在一定的误差,所以还要适当地修正误差。

相关程序见附录D。

时钟程序

DS1302是一种实时时钟芯片,可以计算时分秒、日月年和星期,这种芯片使用起来简单方便。

该芯片单片机的控制程序分为读出时间值和按钮修改时间值,其中读出时间值较为简单,下面就修改时间的程序介绍一下。

修改DS1302芯片的时间值需要用到三个按键,第一个为选定修改选项按键,第二个为调整加键,第三个为调整减键。

当显示屏显示时间温度时,按下不同次数的选定按钮可以使年月日星期时分秒的值处于可调整状态。

该处程序主要用到了switch-case语句。

Switch用于记录第一个按钮按下的次数,case为从第一次到第八次的情况。

当按一下选定按钮时,

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

当前位置:首页 > 小学教育 > 小学作文

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

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