基于单片机的电动自行车速度与里程表设计

发布者:会哭的蓝精灵最新更新时间:2012-07-09 来源: END电子设计技术 关键字:单片机  电动自行车  里程表 手机看文章 扫描二维码
随时随地手机看文章

系统概述

本系统由信号预处理电路、单片机AT89C2051、系统化LED显示模块、串口数据存储电路和系统软件组成。其中信号预处理电路包含信号放大、波形变换和波形整形。对待测信号进行放大的目的是降低对待测信号的幅度要求;波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的TTL信号;通过单片机的设置可使内部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间内检测到的脉冲数;设计中速度显示采用LED模块,通过速度换算得来的里程数采用I2C总线并通过E2PROM来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示部分的软件编程。系统的原理框图如图1所示。


图1 系统的原理框图
工作原理

该设计能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由LED显示模块交替显示所测速度与里程。本设计的里程数的算法是一种大概的算法(假设在一定时间内自行车是匀速行进,平均速度与时间的乘积即为里程数)。

设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。为了保证系统的实时性,系统的速度转换模块和显示数据转BCD码模块都采用快速算法。另外,还应尽量保证其他子模块在编程时的通用性和高效性。本设计的速度和里程值采用6位显示,并包含两个小数位。

系统的硬件设计

1、脉冲发生源

本设计采用了ST1101红外光电传感器,进行非接触式检测。当有物体挡在红外光电发光二极管和高灵敏度的光电晶体管之间时,传感器将会输出一个低电平,而当没有物体挡在中间时则输出为高电平,从而形成一个脉冲。 该系统在自行车后轮的轴处保持着与轮子旋转切面平行的方向延伸附加一个铝盘,在这个铝盘的边沿处挖出若干个圆形过孔,把传感器的检测部分放在圆孔的圆心位置。每当铝盘随着后轮旋转的时候,传感器将向外输出若干个脉冲。把这些脉冲通过一系列的波形整形成单片机可以识别的TTL电平,即可算出轮子即时的转速。

铝盘的圆孔的个数决定了测量的精度,个数越多,精度越高。这样就可以在单位时间内尽可能多地得到脉冲数,从而避免了因为两个过孔之间的距离过大,而车子正好在过孔之间或者是在下个过孔之前停止了,造成较大的误差。

本设计在铝盘过孔的设计上采用11个过孔,从而留下了10个同等的间距。这样在以后的软件设计中能够较为方便的计算出速度里程。脉冲发生源的硬件结构图如图2所示。

点击在新窗口中浏览产品
图2 脉冲发生源硬件结构图(左为正视图,右为侧视图)

2、信号预处理电路

如图3所示,系统的信号预处理电路由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于0.5V的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反相器DM74LS14来把放大器生成的单相脉冲转换成与COMS电平相兼容的方波信号(如图4所示),同时将输出信号加到单片机的P3.4口上。

点击在新窗口中浏览产品
图3 信号预处理电路图
点击在新窗口中浏览产品
图4 施密特触发器对脉冲的整形


利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于VT+,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号。[page]

从传感器得到的矩形脉冲经传输后往往发生波形畸变。当传输线上的电容较大时,波形的上升沿将明显变坏;当传输线较长,而且接受端的阻抗与传输线的阻抗不匹配时,在波形的上升沿和下降沿将产生振荡现象;当其他脉冲信号通过导线间的分布电容或公共电源线叠加到矩形脉冲信号时,信号上将出现附加的噪声。无论出现上述的那一种情况,都可以通过用施密特反相触发器整形而得到比较理想的矩形脉冲波形。只要施密特触发器的VT+和VT-设置得合适,均能受到满意的整形效果。

3、E2PROM AT24C02的应用

AT24C02是CMOS 2048位串行E2PROM,在内部组织成256×8位。AT24C02的特点是具有允许在简单的二线总线上工作的串行接口和软件协议。

如图5所示,在本设计中用芯片AT24C02的SDA端与单片机的P3.7口相连,SCL端与单片机的P3.5口相连。因为在这个I2C总线上只有一个器件,所以把AT24C02的地址设为000,即把A0、A1、A2都接地。单片机计算出来的里程数据通过SDA、SCL向AT24C02输送数据。单片机首先向AT24C02发送写信号,当确认后从单片机内部的数据储存单元提取数据然后向AT24C02的内部地址传送数据。当显示里程时,单片机首先向AT24C02发送读信号,然后确认后,单片机从AT24C02内部的地址向单片机的读出单元字节读出数据,供显示所用。

点击在新窗口中浏览产品
图5 AT24C02与单片机的接口电路图

4、显示部分

本设计的显示模块包括MC14511BCP、CD4076、74LS138和6个LED显示管等器件。

MC14511是将锁存、译码、驱动三种功能集于一身的“三合一”器件。锁存器的作用是避免在计数过程中出现跳数现象,便于观察和记录。用译码器将BCD码转换成7段码,再经过大电流反相器,驱动共阴极LED数码管。译码器属于非时序电路,其输出状态与时钟无关,仅取决于输入的BCD码。

74LS138的作用相当于位选的功能,当C,B,A的输入分别为“000、001、010、011、100、101”时分别选择不同的MC14511,从而在不同位上显示不同的数字和小数点。CD4076是CMOS 4位三态输出D寄存器,通过74LS138的Y6,Y7来控制其CP的工作,从而使CD4076来控制小数点显示。图6是显示模块框图。

点击在新窗口中浏览产品
图6 显示模块框图

图7为系统显示部分的电路。系统中用74LS138的Y0~Y5选择MC14511以驱动LED显示,Y6、Y7来控制CD40756的CP,从而达到以CD4076的Q1~Q4控制小数点的显示,另一个CD4076只用到其Q1和Q2,图中字符相对应的地方表示其引脚相连。

点击在新窗口中浏览产品
图7 系统显示部分的电路

系统的软件设计

1、系统软件框图

如图8所示,本系统软件采用模块化设计方法。整个系统由初始化模块、频率测量模块、速度,里程计算模块、数据转BCD码模块、速度显示模块、里程显示模块、数据存储,读取模块、定时器中断服务模块以及其他功能模块组成。[page]

点击在新窗口中浏览产品
图8 系统软件框图

2、数据处理

待测信号经预处理电路后加至单片机的P3.4(T0)引脚可为单片机测量信号频率提供有效的输入信号。单片机通过检测P3.4引脚电平来决定是否启动测量频率程序。当该引脚为高电平时,系统处于等待状态,要一直到该引脚出现低电平时才开始测频率。

我们可从硬件的铝盘上知道两个过孔之间在圆周上的距离。而这个距离M正好为计算速度和距离起到了基本的数据储备作用。同时可以从TL0寄存器知道在两秒内单片机检测到的N个脉冲。而M×N所得到的正是这两秒内铝盘在圆周上所走得距离S。(此时假设在这个两秒内车子是匀速前进的),距离S除以2s的时间,就可以大概的算出这2s内铝盘的线速度。再根据铝盘与自行车的轮子保持着一样的角速度,得到铝盘的线速度与轮子线速度的关系,从而算出自行车在这2s的平均速度。

至于里程的计算,根据速度计算的分析,在得到2s内铝盘在其圆周上走过的距离后。根据它与自行车轮子的圆周走过的距离有一定比例关系(通过两者角速度一样的算法)可以通过单片机的算出自行车在这两秒内走过的路程S1。把这个路程S1与存储器原来的里程数相加即可得到目前的总里程数。通过单片机计算出来的速度和里程的数据,必须通过BCD码的转换才能输出给显示模块。总里程数的显示是设定出现在电动自行车开动,单片机开机经过初始化后显示出来,这样以来用户可以清楚的知道自己的车子已经运行了多少公里了。而速度的显示则是在计算出速度里程后立刻显示出来,体现实时性。

结论

本设计以AT89C2051为核心,通过光电传感器来检测自行车的运转情况进而实现电动自行车的速度,里程的计算及里程的累计,存储,最后用6位的LED能直观的将速度与里程显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表.

关键字:单片机  电动自行车  里程表 引用地址:基于单片机的电动自行车速度与里程表设计

上一篇:AT89C52的智能无线安防报警器
下一篇:串行实时时钟芯片DS1302程序设计中的问题与对策

推荐阅读最新更新时间:2024-03-16 13:03

PIC单片机的BCD码加法程序
;******************* Unsigned BCD AddiTIon *************** ; ; This rouTIne performs a 2 Digit Unsigned BCD AddiTIon ; It is assumed that the two BCD numbers to be added are in ; locaTIons Num_1 & Num_2. The result is the sum of Num_1+Num_2 ; and is stored in location Num_2 and the overflow carry is returned ; in
[单片机]
为什么推荐数字电源和电机控制项目要选择第三代C2000 MCU
德州仪器C2000实时控制系列产品即将新添F28003X成员,F28003X比F28002X/F28004X提供更高的运算性能以及更大的FLASH空间。日前,德州仪器嵌入式现场应用工程师Dean在EEWORLD直播间,详细介绍了F28003X的特性及其应用。 从第三代C2000说起 C2000微控制器是专为实时控制而设计的微控制器,主要应用领域有两大方面,包括数字电源控制(比如太阳能风能的电源控制,通信和服务器电源),以及电机类控制(家电类的电子产品:空调、冰箱、洗衣机、无人机、电动车、水泵等等,工业类伺服驱动器:如工业机器人、伺服驱动器、变频器等等。)此外,由于其具有车规级认证要求,因此也适合诸多汽车上的应用,包括电源
[单片机]
为什么推荐数字电源和电机控制项目要选择第三代C2000 <font color='red'>MCU</font>?
如何学习单片机的问题探讨
电工论坛今天就如何学习单片机的问题,在此与您作一些探讨。欢迎拍砖! 1、要学好单片机最好是有一些数字电路知识。单片机的基础是数字电路,从本质上讲,单片机就是一个可编程的数字逻辑阵列。所谓数字逻辑阵列,可以理解为一个有序存放且可以迅速、准确取出的数字器件仓库;而可编程,则可理解为根据不同的需要将这些数字器件作不同的连接,形成一个完整的电路去完成一个指定的任务。比如汇编指令中的MOV P1,A(将累加器A中的数据传送到P1口)和指令MOV A,P1(将P1中的状态传送到累加器A)中,所用的数字器件完全一样(都是P1和A),但扮演的角色和实现的功能却不同。因此,有一点数字电路基础,有助于理解单片机中的一些俄概念和单片机工作原理,这
[单片机]
基于51单片机控温程序及电路原理图
/*-------------------------------------------------------------------------------------------------------------------------------------------- * * * 该程序为一个完整的温度控制器程序 * * 最小系统温控板(后附图) * * 实现功能: * * 1 、 2X2 的矩阵按键:分别实现 ( 温度 +, 温度 - ,温度 * * 确认, 回 到初始化状态) * * 2 、先按键设定你要的温度值,然后按下确认键, * * 此时,水泥电阻开始加热,数码管动态显示电阻 * * 此
[单片机]
基于51<font color='red'>单片机</font>控温程序及电路原理图
关Atmega16单片机进入“编程模式失败”问题的解决办法之一
最近在搞ATmega16单片机,自己做了一个PCB板子,一开始还能下程序,可是下了几次后,就突然间下不进去了,每次都提示“进入编程模式失败”,如下图 又有如下的提示,大致是说下载速率过快,下载频率应该小于单片机晶振的四分之一 网上查了好多资料,但是一直不知道怎么弄,怀疑自己的单片机熔丝位被改了,或者被锁了,或者自己画的电路板有问题,为此换了好几块单片机都是这样的,搞得自己焦头烂额。搞了一个多星期,被自己无意间操作了如下步骤,就是如下图 再找到如下区域 就是这个ISP一项。我用的是STK500 下载器, USBISP下载方式下载的。一开始这个图中的“ISP”右边的下拉框是没有数据的,我点开它,给它设定为57.6kHz
[单片机]
关Atmega16<font color='red'>单片机</font>进入“编程模式失败”问题的解决办法之一
单片机红外对射传感器实验详解
实验2 红外对射传感器实验-V20160908 1.实验目的 学习红外对射传感器工作原理; 2.实验设备 硬件:红外对射传感器节点,串口线; 软件:Keil u Vision4编译软件,STC下载软件STC_ISP; 芯片手册:配套光盘附件芯片手册红外对射传感器; 电路原理图路径:配套光盘附件电路原理图; 源码路径:配套光盘源代码传感器原理与应用实验2 红外对射传感器实验-V20161122; hex文件路径:配套光盘源代码传感器原理与应用实验2 红外对射传感器实验-V20161122out; 3.实验原理 3.1 红外对射传感器介绍 红外对射传感器使用的是槽型红外光电开关。红外光电传感器是捕捉红外线这种不可见光,采用专用的红外发
[单片机]
<font color='red'>单片机</font>红外对射传感器实验详解
51单片机引脚介绍
AT89C2051是精简版的51单片机,精简掉了P0口和P2口,只有20引脚,但其内部集成了一个很实用的模拟比较器,特别适合开发精简的51应用系统,毕竟很多时候我们开发简单的产品时用不了全部32个I/O口,用AT89C2051更合适,芯片体积更小,而且AT89C2051的工作电压最低为2.7V,因此可以用来开发两节5号电池供电的便携式产品。 本文以ATMEL公司生产的51系列家族的AT89S51和AT89C2051两种单片机来讲解,两种单片机是目前最常用的单片机,其中AT89S51为标准51单片机,当然其功能比早期的51单片机更强大,支持ISP在系统编程技术,内置硬件看门狗。。。 一、AT89S51单片机引脚介绍 AT89S51有
[单片机]
STM32单片机半主机模式的应用
在keil中编程时常会遇到__use_no_semihosting_swi的警告,这时你就是进入了半主机模式。 在嵌入式的编程中你是避免不了使用printf、fopen、fclose等函数的但是因为嵌入式的程序中并没有对这些函数的底层实现,使得设备运行时会进入软件中断BAEB处,这时就需要__use_no_semihosting_swi这 个声明,使程序遇到这些文件操作函数时不停在此中断处,具体操作如下,将下列程序加入你的工程中: #pragmaimport(__use_no_semihosting_swi)#pragmaimport(_main_redirection)constchar__stdin_name[150]
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved