#基于单片机的电动车里程表设计_第1页
#基于单片机的电动车里程表设计_第2页
#基于单片机的电动车里程表设计_第3页
#基于单片机的电动车里程表设计_第4页
#基于单片机的电动车里程表设计_第5页
免费预览已结束,剩余25页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的电动车里程表设计目录引言 11 .总体设计 22 .设计任务及要求 23 .电路原理 24 .硬件系统模块 34.1 芯片的选择 64.2 结构框图 75 .软件系统设计 75.1 控制系统源程序116 .调试137 .参考文献13引言里程表广泛使用于各类机车,传统的机械式里程表虽然稳定可靠,但功能单一、易受磨损。随着电子技术的迅猛发展,电子式里程表得以广泛使用,现 在很多轿车仪表已经使用电子车速里程表,从保护环境和经济条件许可等因素 综合来看,电动自行车目前乃至今后都有着广阔的发展空间。目前市面上电动 自行车的速度表和里程表都是机械的,看起来不够直观和方便。如果能用液晶 显示屏直

2、接显示出来里程数和速度值,就可节省用户的时间及精力处理自行车 行进过程中的突发事件。本设计介绍一种基于单片机的智能电子里程表。该电子式里程表是一种数 字式仪表,主要由车速表和里程表两部分组成,其传感器采用无接触测量的光 电传感器。传感器将不同车速转变成的不同频率的脉冲信号输入到单片机进行 控制和计算,再采用液晶显示器模块进行显示,使得电动自行车的速度和里程 数据能直观的显示给使用者。它不仅可显示车辆行驶的总里程,还可显示当前 车速,以及实现超速报警等功能,并具有较强的再开发能力。它的实现方式是, 通过安装在汽车转轴上的测量盘,用光电式转速传感器检测转速的脉冲信息, 在脉冲状态下,将转速的变化转

3、换成光通量的变化,再通过光电转换元件将光 通量的变化转换成电量的变化,接着通过频率测量电路将脉冲信号输入到单片 机中,然后依据电量和转速的函数关系实现转速测量,再通过计算,从而得出 里程、车速的信息,并由液晶显示器显示出来。一、设计任务及要求以AT89C51单片机为核心,采用霍尔传感器,实现对自行车行驶里程、速 度的测量,并能选择显示自行车行驶里程值和当前速度。可以实现对自行车车 轮大小的设置等。自行车超过一定限速时可以进行声光报警提示。i关键词:AT89C51单片机;光电传感器;液晶显示器;存储器二、电路原理T0用于对轮子圈数的计数输入,轮子每转一个间隔(即假设的每个间隔0.1 米),霍尔传

4、感器输出一个低电平脉冲。T0就计数一次,如果计够1000次(即 0.1Km)就送液晶显示屏;T1设置为独立的计数器,当T1定时1秒到来时进入 中段程序,中断程序中关闭计数器 T0,读出它记月冲的个数n,用n乘以0.1 即此时车的速度(以为是每一秒读一次),将此时的速度送至液晶并显示出当 前的速度值,电路如图1所示。P0 口用于液晶的描输出。P2.0 口和P2.1 口用 于控制液晶的写命令和写数据操作,P2.2和P2.3 口分别用于显示当前车行驶 速度是否超过设定值(当绿灯亮时表示车速正常,当绿灯灭,红灯一闪一闪时 表示车速超过设定值),P3.4 (即T0) 口用于接收由基尔霍夫传感器经信号处

5、理电路处理后的脉冲个数。根据它每秒所计脉冲个数计算车当前速度和车行驶 的里程。rzjjk-a FTJTJili. TLMEK建;:-胃X打 锵紫S黑 PUMRPM n三、硬件系统设计以AT89C51单片机为核心,A44E霍尔传感器测转数,实现对自行车里程、速度的测量统计,并将自行车的里程数及速度用液晶显示屏实时显示。利用霍 尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经 过处理进行编程。1、芯片的选择AT89C51是一个低电压,高性能 CMOS啦单片机,片内含 4k bytes的可反复擦写的 Flash只读程序存储器和 256 bytes的随机存取数据存储器(RAM ,器

6、彳采用ATME公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用 8位中央处理器和 Flash存储单元,功能强大的AT89C51单片机可为您提供许多较复杂系统控制使用场合。AT89C51有40个弓I脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口, 2个16位可编程定时计数器,1个全双工串行通信口,2个读写口线,AT89C51可以按照常规方法进行编程 ,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。AT89C51有PDIP、PQFP/TQFP及PLC

7、C等三种封装形式,以适应不同产品的需求。功能特性3一“,3 嘘二.AT89C51提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O 口线,2个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c51可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停止CPU的 工作,但允许RAM,定时/计数器。串行通信口及中断系统继续工作。掉电方 式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一 个硬件复位。2、结构框图结构框图指示灯部分功能:显示车速是否正常或超过设定值。里程、速度测

8、量电路部分功能:速度及里程传感器采用霍尔传元件,实现对自行车里程及速度的计算。显示部分功能:速度、里程用液晶显示屏动态扫描显示,由 P0 口送出段码和4位选信号。四、软件系统设计1、初始化程序:在本系统初始化程序中,主要完成以下工作:初始化液晶(即写1604的驱动程序);将T0设置为计数器;将T1设置为定时器。开T0, T1。2、主程序:主程序根据1秒钟T0所计的脉冲个数计算出车当前的速度和 里程。3、里程计数程序(T0计数程序):T0计数器用于对输入的圈脉冲进行计 数,为十六进制计数器。60H为低位,62H为高位。每秒钟读取它所计脉冲 的个数,当它所计脉冲个数累计到 1000次时,让液晶显示

9、一次里程。4、T1定时服务程序:T1定时为1秒进一次中断程序,中断程序中执行关 计数器T0, tII T0每秒中所计脉冲的个数,根据个数算出速度,并累加里程5、显示子程序:当显示里程时, 先要对里程累计的数据进行判断,当计 够1000次时总里程加1 (km)。当要显示速率时,每秒显示一次,即每秒读 一次T0所计的脉冲个数,根据此个数乘以车轮每 2个小孔的最小间距0.1 米,即得车当前的速度五、控制系统源程序:#include#define uchar unsigned char#define uint unsigned int uchar code cs尸SPEED: 00.0 m/s”;uc

10、har code lc=TOTAL: 00000.0Km;uchar code ts尸Pleasant Journey;sbit RS=P2八0;sbit E=P2A1;sbit D=P1A0;sbit LD=P2A2;sbit HD=P2A3;uchar num,count,timecount,T0count,miao,fen,shi;uint total,num1,num2,Gtotal,Ztotal,Dtotal=0,speed;void delay(uint z)uint x,y;for(x=z;x0;x-)5for(y=110;y0;y-);void write_com(uchar

11、_com)RS=0;P0=_com;delay(1);E=1;delay(2);E=0;void write_data(uchar _data)RS=1;P0=_data;7,zdiuhii也,阖delay(1);E=1;delay(2);E=0;void init_LCD()16*4液晶E=0;write_com(0x38);/设置显示模式write_com(0x0c);/开显示,不显示光标,不闪烁write_com(0x06);/光标自动加1,整屏不移动write_com(0x01);/清屏write_com(0x80);/设置数据指针for(num=0;num16;num+)write_

12、data(csnum);write_com(0x80+0x40);for(num=0;num16;num+)write_data(lcnum);write_com(0x80+0x10);for(num=0;num=1000)1000格即 100 米Ztotal+;if(Ztotal=999)12TH0=0;Ztotal=0;Gtotal+;if(Gtotal=999)Gtotal=0;display_Gtotal(0x07,0x08,0x09,Gtotal);display_Dtotal(0x0a,0x0b,0x0d,Ztotal);void init_timer()TMOD=0x15;/ (

13、00010101)设置T1为16位定时器,T0为16位计数器TL0=0;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1 = 1;TR0=1;TR1 = 1;void main()init_LCD();init_timer();while(1)#void count0() interrupt 1T0count+;void timer1() interrupt 3TH1=(65536-50000)/256;TL1=(65536-50000)%256;timecount+;num2=T0count*65536+TH0*256+TL

14、0;if(timecount=20)15:TR0=0;num1=T0count*65536+TH0*256+TL0;speed=num1; 假设车轮周长为1米,均匀开11个孔,则每个孔0.1 if(speed130)HD=0;delay(30);HD=1;HD=0;delay(30);HD=1;elseHD=1;#MB .2LD=0;Dtotal=Dtotal+speed;write_speed(speed);if(Dtotal=1000)judge_total(Dtotal);Dtotal=0;timecount=0;TH0=0;TL0=0;TR0=1;TR1=1;17五、仿真结果口 =巴Aik.KTESi:S1 =Hexts TEKT.In-kXTNU叩回弁而 PD.VAD1XTAL2PnADZ PDJADl PD.AD4 POLADS PD-SAESRSTPD.TAD?PNH继P工W腾PHHM口F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论