1、基于89c51单片机的电动车里程表毕业设计 1 绪 言1.1 课题背景电动自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动电动自行车,电动自行车发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的用途。随着居民生活水平的不断提高,电动自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。因此,人们希望电动自行车的功用更强大,能给人们带来更多的方便。电动自行车里程速度表作为电动自行车的一大辅助工具也正是随着这个要求而迅速发展的,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量
2、骑车人的心跳、显示骑车人热量消耗等功能。本设计采用了MCS-51系列单片机设计一种体积小、操作简单的便携式电动自行车的速度里程表,它能自动地显示当前电动自行车行走的距离及运行的速度。 1.2 课题的主要任务及内容本课题主要任务是利用霍尔元件、单片机等部件设计一个可用LED数码管实时显示里程和速度的电动自行车的速度里程表。本文主要介绍了电动自行车的速度里程表的设计思想、电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。本文首先扼要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继而具体介绍了电动自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显
3、示电路的设计;然后阐述了该电动自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后针对仿真过程遇到的问题进行了具体说明与分析,对本次设计进行了系统的总结。 具体的硬件电路包括AT89C52单片机的外围电路以及LED显示电路等。软件设计包括:芯片的初始化程序、定时中断采样子程序、显示子程序等,软件采用汇编语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。 2电动自行车的速度里程表总体方案设计2.1总体设计方案 采用AT89C51芯片,用霍尔元件将车轮的转速转换成电脉冲,经过处理后送入单片机。里程及速度的测量,是经过AT89C51的定时/计数器测出总
4、的脉冲数和每转一圈的时间,再经过单片机的计算得出,计算结果通过LED显示器显示出来。传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各种设备不可缺少的信息采集工具。磁传感器是一种将磁学量信号转变为电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的飞速发展和计算机应用的普及,需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号。作为输入信号,这就给磁传感器的快速发展提供了机遇,形成了磁传感器的产业。其中最具代表的磁传感器就是霍尔传感器,在自动检测系统中,利用霍尔传感器测转数是一种最基本的测量工作。单片机是本次设计的核心部件,它是信号从采集到输出的桥梁,而且包括计
5、算、定时、信息处理等功能当轮子每转一圈,通过开关型霍尔元件传感器采集到一个脉冲信号,并从引脚12即P3.2外部中断0端输入,传感器每获取一个脉冲信号即对系统提供一次计数中断。每次中断代表车轮转动一圈,中断数n轮圈的周长为L的乘积为里程值。计数器T1计算每转一圈所用的时间t,就可以计算出即时速度v。当里程键按下时,里程指示灯亮,LED切换显示当前里程,与当速度键按下时,速度指示灯亮,LED切换显示当前速度,若电动自行车超速,系统发出报警信号,指示灯闪烁。里程数据自动记忆,也可用于电动电动自行车、摩托车、汽车等机动车仪表上。2.2 电动自行车的速度里程表硬件方案设计测速,首先要解决是采样的问题。使
6、用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,将脉冲送入单片机中进行计算,即可获得转速的信息。常用的测速元件有霍尔传感器、光电传感器和光电编码器。里程测量传感器的选择也有以下几种方案:使用光敏电阻对里程进行测量、利用编码器对车轮的圈数进行测量、利用霍尔传感器对里程进行测量、利用干簧管型传感器测量里程。光敏电阻对光特别敏感,当白天行驶时,外界光源将导致光敏电阻发出错误信号;光敏电阻对环境的要求相当高,如果光敏或发光二极管被泥沙或灰尘所覆盖,光敏电阻就不能再进行准确测量;而编码器必须安装在车轴上,安装较为复杂;霍尔元件或干簧管不但不受天气的影响,即使被泥
7、沙或灰尘覆盖也不会有影响,而且安装方便。所以本设计采用霍尔元件对里程与速度进行测量,既简单易行,又经济适用。单片机由于将CPU、内存和一些必要的接口集成到一个芯片上,并且面向控制功能将结构作了一定的优化,所以它有一般芯片不具有的特点:1. 体积小、重量轻;2. 电源单一、功耗低;3. 功能强、价格低;4. 全部集成在一块芯片上,布线短、合理;5. 数据大部分在单片机内传送,运行速度快、抗干扰能力强、可靠性高。目前,单片机被广泛的应用于测控系统、工业自动化、智能仪表、集成智能传感器、机电一体化产品、家用电器领域、办公自动化领域、汽车电子与航空航天器电子系统以及单片机的多机系统等领域。在设计中选用
8、的是AT89C52单片机。2.3 电动自行车的速度里程表软件方案设计通过软件控制单片机的功能是单片机的主要特点和优点,程序的设计要考虑合理性和可读性,遵循模块化设计的原则,采用自顶向下的设计方法。模块化设计使程序的可读性好、修改及完善方便。软件设计包括主程序、行车过程中里程和速度计算子程序、延时子程序、中断服务子程序、显示子程序等等。中断子程序是将传感器产生的信号接入外部中断0,将经过74LS74分频后的信号接入外部中断1,利用中断和定时器对分别对里程进行累加、每转一周的时间进行测量。数据处理子程序是将进入单片机的脉冲信号与实际要显示值之间有一定的对应关系,经过软件编程显示所需要的值。显示子程
9、序是将数据处理的结果送显示器显示。系统软件总体流程图如图2.3所示。 3 电动自行车的速度里程表硬件电路设计3.1 概述电动自行车的速度里程表的硬件电路设计是基础部分,它包括信号的捕获、放大、整形,单片机的计算处理,数码管的实时显示和单片机外围基本电路的设计,两大主要器件就是传感器和单片机。传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各种设备不可缺少的信息采集工具。磁传感器是一种将磁学量信号转变为电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的飞速发展和计算机应用的普及,需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号。作为输入信号,这就给磁传感器的
10、快速发展提供了机遇,形成了磁传感器的产业。其中最具代表的磁传感器就是霍尔传感器,在自动检测系统中,利用霍尔传感器测转数是一种最基本的测量工作。单片机是本次设计的核心部件,它是信号从采集到输出的桥梁,而且包括计算、定时、信息处理等功能。3.2 传感器及其测量系统本次设计信号的捕获采用的是霍尔传感器。霍尔器件具有许多优点,它们的结构牢固、体积小、重量轻、寿命长、安装方便、功耗小、频率高(可达1MHz)、耐震动、不怕灰尘、油污、水汽及烟雾等的污染或腐蚀。霍尔线性器件的精度高、线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、位置重复精度高。取用各种补偿和保护措施的霍尔器件工作温度范
11、围宽,可达55150。按照霍尔器件的功能可将它们分为:霍尔线性器件和霍尔开关器件,前者输出模拟量,后者输出数字量。 按被检测对象的性质可将它们的应用分为:直接应用和间接应用。前者是直接检测出受检测对象本身的磁场或磁特性,后者是检测受检对象上人为设置的磁场,用这个磁场来作被检测的信息的载体。通过它,将许多非电、非磁的物理量例如力、力矩、位置、位移、速度、加速度、角度、角速度、转数、转速以及工作状态发生变化的时间等,转变成电量来进行检测和控制。 3.2.1 霍尔传感器的测量原理霍耳效应:1879年E.H. 霍尔发现,如果对位于磁场(B)中的导体(d)施加一个电压(v),该磁场的方向垂直于所施加电压
12、的方向,那么则在既与磁场垂直又和所施加电流方向垂直的方向上会产生另一个电压(UH),人们将这个电压叫做霍尔电压,产生这种现象被称为霍尔效应。霍尔效应从本质上讲是运动的带电粒子在磁场中受洛仑兹力作用而引起的偏转。当带电粒子(电子或空穴)被约束在固体材料中,这种偏转就导致在垂直电流和磁场的方向上产生正负电荷的积累,从而形成附加的横向电场。 通有电流 I 的金属或半导体板置于磁感强度为 B 的均匀磁场中,磁场的方向和电流方向垂直,在金属板的第三对表面间就显示出横向电势差 U H 的现象称为霍耳效应。U H 就称为霍耳电势差。 实验测定,霍耳电势差的大小,和电流 I 及磁感强度B成正比,而与板的厚度d
13、 成反比。即霍耳电势差 UH = RHIB/d , 霍尔转速传感器:霍尔转速传感器的外形图和与磁场的作用关系如2图所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。霍尔传感器检测转速示意图如图3。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲。通过单片机测量产生脉冲的频率就可以得出圆盘的转速。霍尔电流传感器本身已经存在滤波电路,输出无须再加装滤波,可直接供单片机的05V的 AD采集或直接送到单片机的中断输入引脚,信号非常稳定,而且抗干扰能力很强。 霍尔电流传感器反应速度一般在7微妙,不用考虑单片机循环判断的时间.若在圆盘上贴上多块
14、磁钢,则圆盘每转一圈,输出的脉冲信号将相应增加,单位时间内测到的脉冲数将增多,测出的转速也将更加精细。本设计建模时采用一个圆盘上贴一个磁钢进行模拟。实际制作中可以贴上多块磁钢,即可以克服因车轮转速太慢而在设定时间内测不到脉冲的问题。 3.3.2 单片机的引脚功能介绍AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8K Bytes的可反复擦写的只读程序存储器(EPROM)和256 字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flas
15、h存储单元,功能强大,AT89C52单片机适合于许多较为复杂控制场合应用。图3.5 AT89C52引脚图AT89C52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,5个中断源,一个全双工串行通信口,片内具有振荡器及时钟电路。AT89C52管脚图如图3.5所示。AT89C52的主要管脚功能如下:P0.0P0.7:P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。P1.0P1.7:P1是一个带内部上拉电阻的8位双向I/O口。P2.0P2.7:P2是一个带内部上拉电阻的8位双向I/O口。 P3.0P3.7:P3是一个带
16、内部上拉电阻的8位双向I/O口。ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的分时传送。此外,由于ALE是以晶振16的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。:外部程序存储器读选通信号。在读外部ROM时,有效(低电平),以实现外部ROM单元的读操作。:访问程序存储控制信号。当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操
17、作。XTALl和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。 VCC:+5V电源。如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。P3的8条口线都定义有第二功能,如表3.1所示对于有内部EPROM的单片机芯片(例如87C51),为写入程序须提供专门的编程脉冲和编程电源。它们也由引脚以第二功能的形式提供的,即:编程脉冲:30脚()编程电压(25V):31脚()表3.1 P3口引脚与第二功能引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据接收P3.
18、2外部中断0申请P3.3外部中断1申请P3.4T0定时/计数器0的外部输入P3.5T1定时/计数器1的外部输入P3.6外部RAM写选通P3.7外部RAM读选通3.3.3 单片机中断系统介绍中断是指当计算机执行正常程序时,系统中出现某些急需处理的事件,CPU暂时中止当前的程序,转去执行服务程序,以对发生的更紧迫的事件进行处理,待处理结束后,CPU自动返回原来的程序执行AT89C52系列单片机的系统有5个中断源,2个优先级,可实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各优中断源的优先级;同一优先级内各终端同时提出中断请求时
19、,由内部的查询逻辑确定其响应次序。采用的外部中断方式包括外部中断0和外部中断1,它们的中断请求信号分别由单片机引脚/P3.2和/P3.3输入。外部中断请求有两种信号方式:电平触发方式和脉冲触发方式。电平触发方式的中断请求是低电平有效。只要在和引脚上出现有效低电平时,就激活外部中断方式。脉冲触发方式的中断请求则是脉冲的负跳变有效。在这种方式下,在两个相邻机器周期内,和 引脚电平发生变化,即在第一个机器周期内为高电平,第二个机器周期内为低电平,就激活外部中断。由此可见,在脉冲方式下,中断请求信号的高电平和低电平状态都应至少维持一个机器周期,以使CPU采样到电平状态的变化,本次设计所采用的触发方式为
20、脉冲触发方式。1.中断允许控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。IE的状态可通过程序由软件设定,某位设定为1,相应的中断源中断允许;某位设定为0,相应的中断源中断屏蔽。CPU复位时,IE各位为0,禁止所有中断。IE寄存器各位的定义如下。EX0(IE.0)外部中断允许位;ET0(IE.1)定时/计数器T0中断允许位;EX1(IE.2)外部中断允许位;ET1(IE.3)定时/计数器T1中断允许位;ES(IE.4)串行口中断允许位;EA(IE.7)CPU中断允许位。2.中断优先级控制AT89C52单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断
21、源的中断优先级都是由中断优先级寄存器IP中的相应的状态来规定的。IP的状态由软件设定,某位设定为1,则相应的中断源为高优先级中断;某位设定为0.则相应的中断源为低优先级中断。单片机复位时,IP各位清0,各中断源同为低优先级中断。IP寄存器各位的定义如下。PX0(IP.0)外部中断优先级设定位;PT0(IP.1)定时/计数器T0中断优先级设定位;PX1(IP.2)外部中断中断优先级设定位;PT1(IP.3)定时/计数器T1中断优先级设定位;PS(IP.4)串行口中断优先级设定位。3.3.4 单片机定时/计数功能介绍AT89C52单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其
22、工作方式;TCON用于控制其启动和中断请求。1.工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式。GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATE=1时,要用软件TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。:定时/计数模式选择位。=0为定时模式; =1为计数模式。M1M2:工作方式设置位。定时/计数器有4种工作方式,由M1M2进行设置。本次设计TMOD为90H,即选通定时/计数器1、定时功能、工作方式1。工作方式16位定时/计数器。2.控制寄存器TCONTF1(TCON
23、.7)定时/计数器T1溢出中断请求标志位。定时/计数器T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清零。T1工作时,CPU可随时查询TF的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清零,同硬件置1或清零的效果一样。TR1(TCON.6)定时/计数器T1运行控制位。TR1置1时时,定时/ 计数器T1开始工作;TR1置0时,定时/计数器T1停止工作。TR1由软件置1或清0。TF0(TCON.5):定时/计数器T0溢出中断请求标志位。TR0(TCON.4)。:定时/计数器T0运行控制位3.4 其他器件的介绍3.4.1 存储器的介绍AT24C02是一个2
24、K位串行CMOSE2PROM。内部含有256个8 位字节,ATMEL公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16 字节页写缓冲器,该器件通过I2C总线接口进行操作有一个专门的写保护功能。AT24C02支持I2C总线数据传送协议。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端 A0、A1和A2可以实现将最多8个24C02器件连接到总线上。管脚图如3.6所示。 图3.6 24C02管脚图SCL串行时钟:AT24C02串行时钟输入管脚用于产生器件所有数据发送或接
25、收的时钟。SDA串行数据/地址:CAT24WC02双向串行数据/地址管脚用于器件所有数据的发送或接收,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或(wire-OR)。WP写保护:如果WP管脚连接到Vcc所有的内容都被写保护,只能读。当WP管脚连接到Vss或悬空,允许器件进行正常的读/写操作。本次设计采用的24C02是为了防止掉电时里程数据的丢失,由于24C02的数据线和地址线是复用的,采用串口的方式传输数据,所以只用两根线SCL和SDA与单片机传输数据。在软件编程时采用程序包来控制24C02发送或接受数据。3.4.2 74LS74芯片的介绍74LS74是D触发器的一种,它是一个具
26、有记忆功能的二进制信息存储器件,是构成多种时序电路的最基本逻辑单元。触发器具有两个稳定状态,即“0”和“1”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。由于其状态的更新发生在CP脉冲的边沿故又称之为上升沿触发的边沿触发器,D触发器的状态只取决于时针到来前D端的状态。引脚图如图3.7所示。图3.7 74LS74引脚图在本题目中74LS74芯片起分频的作用。当车轮每转一圈,霍尔传感器输出一个低电平脉冲,通过74LS74进行二分频后,定时器T1的开启时间为车轮转1圈的时间,这样就可以算出电动自行车的速度。分频前后对比图如图3.8所示。 图3.8 分频前后对比图由图可见,二分频后
27、的波形的高或地电平的时间正好是霍尔传感器开关的一个周期,霍尔传感器输出脉冲到,即P3.2口接收到对圈数计数的脉冲。经74LS74二分频后的信号输入到,内部定时计数器测得每转一圈所用的时间,通过计算即可得里程值和即时速度。3.4.3 74LS244芯片的介绍本次设计中的采用驱动数码管的芯片为74LS244,74LS244为三态输出的八位缓冲器和线驱动器,若单片机输出口直接接显示部分电路,则电流太小,会导致显示部分不能正常工作。所以在单片机输出口先接入驱动芯片74LS244,增大电流,使LED能够正常工作。其逻辑图如图3.9所示,可以看出74LS244由2组组成、每组由四路输入、输出构成。每组有一
28、个控制端高或低电平决定该组数据被接通还是断开。图3.9 74LS244逻辑图3.5 单片机外围电路的设计3.5.1 时钟电路的设计时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C52片内由一个反相放大器构成振荡器,可以由它产生时钟。常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。本设计采用前者。单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和电
29、容,就构成一个稳定的自激振荡器。单片机内部时钟方式的振荡电路如图3.10所示。图3.10 单片机片内振荡电路电路中的电容C1和C2常选择为30P左右。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器的高低、振荡器的稳定性、起振的快速性和温度的稳定性。而外接晶体的振荡频率的大小,主要取决于单片机的工作频率范围,每一种单片机都有自己的最大工作频率,外接的晶体振荡频率不大于单片机的最大工作频率即可。此外,如果单片机有串行通信,则应该选择振荡频率除以串行通信频率可以除尽的晶体。本设计晶振采用12MHz,则计数周期为S3.5.2 复位电路的设计AT89C52单片机的复位输入引脚RET为AT89
30、C52提供了初始化的手段。有了它可以使程序从指定处开始执行,即从程序存储器中的0000H地址单元开始执行程序。在89C52的时钟电路工作后,只要在RET引脚上出现两个机器周期以上的高电平时,单片机内部则初始复位。只要RET保持高电平,则89C52循环复位。只有当RET由高电平变成低电平以后,89C52才从0000H地址开始执行程序。本系统的复位电路是采用按键复位的电路,如图3.11所示,是常用复位电路之一。单片机复位通过按动按钮产生高电平复位称手动复位。上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RET/VPD端,该高电平使89C52全机自动复位,这就是上电复位;若运行过程中需要程
31、序从头执行,只需按动按钮即可。按下按钮,则直接把+5V加到了RET/VPD端从而复位称为手动复位。复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定。图3.11 按键复位电路工作原理:通电瞬间,RC电路充电,RST引脚出现高电平,只要RST端保持10ms以上高电平,就能使单片机有效地复位。3.5.3 显示电路的设计本设计中采用LED数码管显示。在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。八段LED显示器由8个发光二极管组成。其中7个发光二极管构成字型“8”的各个笔画段,另一个小数点为dp发光二极管。LED显示器有两种不同的形式:一种是发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是发光二极管的阴极都连在一起的,称之为共阴极LED显示器。如图3.12所示。本次设计采用共阴极接法。LED显示方式有动态显示和静态显示两种方式。本系统采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端。也就是说我