基于单片机的电动车里程表设计

上传人:kms****20 文档编号:40455749 上传时间:2018-05-26 格式:DOC 页数:20 大小:106.38KB
返回 下载 相关 举报
基于单片机的电动车里程表设计_第1页
第1页 / 共20页
基于单片机的电动车里程表设计_第2页
第2页 / 共20页
基于单片机的电动车里程表设计_第3页
第3页 / 共20页
基于单片机的电动车里程表设计_第4页
第4页 / 共20页
基于单片机的电动车里程表设计_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《基于单片机的电动车里程表设计》由会员分享,可在线阅读,更多相关《基于单片机的电动车里程表设计(20页珍藏版)》请在金锄头文库上搜索。

1、0基于单片机的电动车里程表设计基于单片机的电动车里程表设计目录目录引言引言111.1.总体设计总体设计222.2.设计任务及要求设计任务及要求223.3.电路原理电路原理224.4.硬件系统模块硬件系统模块334.14.1 芯片的选择芯片的选择664.24.2 结构框图结构框图775.5.软件系统设计软件系统设计775.15.1 控制系统源程序控制系统源程序11116.6.调试调试13137.7.参考文献参考文献13131引言引言里程表广泛应用于各类机车,传统的机械式里程表虽然稳定可靠,但功能单一、易受磨损。随着电子技术的迅猛发展,电子式里程表得以广泛应用,现在很多轿车仪表已经使用电子车速里程

2、表,从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。如果能用液晶显示屏直接显示出来里程数和速度值,就可节省用户的时间及精力处理自行车行进过程中的突发事件。 本设计介绍一种基于单片机的智能电子里程表。该电子式里程表是一种数字式仪表,主要由车速表和里程表两部分组成,其传感器采用无接触测量的光电传感器。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行控制与计算,再采用液晶显示器模块进行显示,使得电动自行车的速度与里程数据能直观的显示给使用者。它不仅可显示车辆行驶的总里程,还可显示当前车

3、速,以及实现超速报警等功能,并具有较强的再开发能力。它的实现方式是,通过安装在汽车转轴上的测量盘,用光电式转速传感器检测转速的脉冲信息,在脉冲状态下,将转速的变化转换成光通量的变化,再通过光电转换元件将光通量的变化转换成电量的变化,接着通过频率测量电路将脉冲信号输入到单片机中,然后依据电量与转速的函数关系实现转速测量,再通过计算,从而得出里程、车速的信息,并由液晶显示器显示出来。2一、设计任务及要求一、设计任务及要求以 AT89C51 单片机为核心,采用霍尔传感器,实现对自行车行驶里程、速度的测量,并能选择显示自行车行驶里程值和当前速度。可以实现对自行车车轮大小的设置等。自行车超过一定限速时可

4、以进行声光报警提示。关键词:AT89C51 单片机;光电传感器;液晶显示器;存储器二、电路原理二、电路原理T0 用于对轮子圈数的计数输入,轮子每转一个间隔(即假设的每个间隔 0.1米),霍尔传感器输出一个低电平脉冲。T0 就计数一次,如果计够 1000 次(即 0.1Km)就送液晶显示屏;T1 设置为独立的计数器,当 T1 定时 1 秒到来时进入中段程序,中断程序中关闭计数器 T0,读出它记脉冲的个数 n,用 n 乘以 0.1 即此时车的速度(以为是每一秒读一次),将此时的速度送至液晶并显示出当前的速度值,电路如图 1 所示。P0 口用于液晶的描输出。P2.0 口和 P2.1口用于控制液晶的写

5、命令与写数据操作,P2.2 和 P2.3 口分别用于显示当前车行驶速度是否超过设定值(当绿灯亮时表示车速正常,当绿灯灭,红灯一闪一闪时表示车速超过设定值),P3.4(即 T0)口用于接收由基尔霍夫传感器经信号处理电路处理后的脉冲个数。根据它每秒所计脉冲个数计算车当前速度和车行驶的里程。3三、硬件系统设计三、硬件系统设计以 AT89C51 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程、速度的测量统计,并将自行车的里程数及速度用液晶显示屏实时显示。利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理进行编程。1 1、芯片的选择、芯片的选择AT89C51 是

6、一个低电压,高性能 CMOS 8 位单片机,片内含 4k bytes的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容4标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 AT89C51 单片机可为您提 供许多较复杂系统控制应用场合。 AT89C51 有 40 个引脚,32 个外部双向输入 /输出(I/O)端口,同时内含 2 个外中断口,2 个 16 位可编程定时计数器 ,1 个全双工串行通信口,2 个读写口线, AT89C51 可以按照常规

7、方法进行编程 ,但不可以在线编程 (S系列的才支持在线编程 )。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。AT89C51 有 PDIP、PQFP/TQFP 及 PLCC 等三种封装形式,以适应不同产品的需求。功能特性功能特性AT89C51 提供以下标准功能:8 字节 FLASH 闪速存储器,256 字竹内部 RAM , 32 个 I/O 口线,2 个 16 位定时计数器,一个 6 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c51 可降至 OHz 的静态逻辑操作,并支持两种软件可选的节电上作模

8、式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器。串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。52、结构框图、结构框图89C51显示电路指示灯电路报警电路里程、速 度测量电 路结构框图指示灯部分功能:显示车速是否正常或超过设定值。里程、速度测量电路部分功能:速度及里程传感器采用霍尔传元件,实现对自行车里程及速度的计算。显示部分功能:速度、里程用液晶显示屏动态扫描显示,由 P0 口送出段码和位选信号。四、软件系统设计四、软件系统设计1、初始化程序:在本系统初始化程序中,主要完成以下工作:初始化液晶(即写 16

9、04 的驱动程序) ;将 T0 设置为计数器;将 T1 设置为定时器。开T0,T1。 62、主程序:主程序根据 1 秒钟 T0 所计的脉冲个数计算出车当前的速度与里程。3、里程计数程序(T0 计数程序):T0 计数器用于对输入的圈脉冲进行计数,为十六进制计数器。60H 为低位,62H 为高位。每秒钟读取它所计脉冲的个数,当它所计脉冲个数累计到 1000 次时,让液晶显示一次里程。4、T1 定时服务程序:T1 定时为 1 秒进一次中断程序,中断程序中执行关计数器 T0,读 T0 每秒中所计脉冲的个数,根据个数算出速度,并累加里程 5、显示子程序:当显示里程时, 先要对里程累计的数据进行判断,当计

10、够 1000 次时总里程加 1(km) 。当要显示速率时,每秒显示一次,即每秒读一次 T0 所计的脉冲个数,根据此个数乘以车轮每 2 个小孔的最小间距0.1 米,即得车当前的速度五、控制系统源程序:五、控制系统源程序:#include#include#define#define ucharuchar unsignedunsigned charchar#define#define uintuint unsignedunsigned intintucharuchar codecode cs=“SPEED:cs=“SPEED: 00.000.0 m/s“;m/s“;ucharuchar codeco

11、de lc=“TOTAL:lc=“TOTAL: 00000.0Km“;00000.0Km“;7ucharuchar codecode ts=“Pleasantts=“Pleasant Journey“;Journey“;sbitsbit RS=P20;RS=P20;sbitsbit E=P21;E=P21;sbitsbit D=P10;D=P10;sbitsbit LD=P22;LD=P22;sbitsbit HD=P23;HD=P23;ucharuchar num,count,timecount,T0count,miao,fen,shi;num,count,timecount,T0count

12、,miao,fen,shi;uintuint total,num1,num2,Gtotal,Ztotal,Dtotal=0,speed;total,num1,num2,Gtotal,Ztotal,Dtotal=0,speed;voidvoid delay(uintdelay(uint z)z) uintuint x,y;x,y;for(x=z;x0;x-)for(x=z;x0;x-)for(y=110;y0;y-);for(y=110;y0;y-); 8voidvoid write_com(ucharwrite_com(uchar _com)_com) RS=0;RS=0;P0=_com;P0

13、=_com;delay(1);delay(1);E=1;E=1;delay(2);delay(2);E=0;E=0; voidvoid write_data(ucharwrite_data(uchar _data)_data) RS=1;RS=1;P0=_data;P0=_data;delay(1);delay(1);9E=1;E=1;delay(2);delay(2);E=0;E=0; voidvoid init_LCD()/16*4init_LCD()/16*4 液晶液晶 E=0;E=0;write_com(0x38);/write_com(0x38);/设置显示模式设置显示模式write

14、_com(0x0c);/write_com(0x0c);/开显示,不显示光标,不闪烁开显示,不显示光标,不闪烁write_com(0x06);/write_com(0x06);/光标自动加光标自动加 1 1,整屏不移动,整屏不移动write_com(0x01);/write_com(0x01);/清屏清屏write_com(0x80);/write_com(0x80);/设置数据指针设置数据指针for(num=0;num=1000)/1000if(date1=1000)/1000 格即格即 100100 米米 Ztotal+;Ztotal+;14if(Ztotal=999)if(Ztotal=999) Ztotal=0;Ztotal=0;Gtotal+;Gtotal+;if(Gtotal=999)if(Gtotal=999) Gtotal=0;Gtotal=0; display_Gtotal(0x07,0x08,0x09,Gtotal);display_Gtotal(0x07,0x08,0x09,Gtotal); display_Dtotal(0x0a,0x0b,0x0d,Ztotal);display_Dtotal(0x0a,0x0b,0x0d,Ztotal); voidvoid i

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号