基于单片机控制的电动自行车里程表的毕业设计.docx
- 文档编号:27153757
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:79
- 大小:1.73MB
基于单片机控制的电动自行车里程表的毕业设计.docx
《基于单片机控制的电动自行车里程表的毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的电动自行车里程表的毕业设计.docx(79页珍藏版)》请在冰豆网上搜索。
基于单片机控制的电动自行车里程表的毕业设计
序言
本文介绍里程表设计以单片机和霍尔传感器为核心。
霍尔传感器将到来的低电平脉冲信号输入到单片机进行控制与计算,再采用LED模块进行显示,使得电动自行车的里程数据能直观的显示给使用者。
自行车里程表是用于远距离连续测量自行车行驶距离的仪表。
它分为电源、霍尔传感器和显示器3部分。
目前,里程表普遍使用在汽车和摩扦车上,是一种机械测量装置,测试精度相对低,自行车上使用里程表的还很少见。
针对这种情况,研制新型的数字化里程表用于自行车上是非常必要的。
本文介绍的自行车里程表是由电源稳压系统供电,AT89C52单片机为中央处理器,结合高精度的控制电路,方便地实现了智能化、高精度、高可靠性、高效率的自行车里程表的设计,并且使用方便。
里程表广泛应用于各类机车,包括厂矿企业所使用的电机车和汽车、摩托车等。
传统的机械式里程表虽然稳定可靠,但功能单一,随着电子技术的迅猛发展,电子式里程表得以广泛应用。
一种以单片机为核心的里程表,它不仅可以显示车辆行驶的总里程,也可显示一段时间的阶段里程,并且具有较强的再开发能力。
这一切都是因为利用了单片机系统强大的数据存储和处理控制功能。
里程表以单片机AT89C52为核心,由系统输入、单片机部分和系统输出组成。
第1章绪论
单片机自从推出以来,以其超小型化、结构紧凑、可靠性高、成本低等优点被人们广泛接受,从而应用于工业、电讯、数据处理、仪器仪表等多方面。
电动自行车里程表是电动自行车的重要配件,在电动自行车仪表中占重要位置,但几十年来其发展变化并不大,现在国外很多车中使用了数字里程表,但在国内还并不多见。
1.1课题背景
里程表的原理很简单,因为汽车车轮的直径已知,车轮的圆周长便是恒定不变的。
由此可以计算出每走一里路车轮要转多少圈,这个数也是恒定不变的。
因此只要能够自动把车轮的转数积累下来,然后除以每一里路对应的转数就可以得到行驶的里程了。
这样简单的原理古人就已经发现,并且开始使用了。
“记里鼓车”就是这样的装置,它是利用上述原理,再加上巧妙的机构使得车轮每转一定圈数就自动敲一下鼓,此时只要有专人把它记下了,就可以得到所走里程。
此装置十分巧妙无论白天、黑夜均可使用,而且盲人也可使用,体现出了我国古代劳动人民的聪明才智。
不过,如果车上没有人默记鼓声数目的话,单靠记里鼓车本身还不能累计一共走了多少里。
而且车停下来之后谁也不知道这车曾经走过多少里路,这是美中不足之处。
从保护环境和经济条件许可等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。
目前市面上电动自行车的速度表和里程表都是机械的,看起来不够直观与方便。
如果能用LED直接显示出来里程数或速度值,就可节省用户的时间及精力处理自行车行进过程中的突发事件。
1.2里程表的发展
现在汽车上的里程表可就不一样了,它克服了“记里鼓车”的不足之处,既能告诉
你这次走了多少公里,也能记忆自从出厂以来一共走了多少公里,于是,车辆是否需要大修,发动机比例关系是否应该报废,全都有记录可依。
汽车发动机的轴把动力传给变速箱,从变速箱的输出轴到车轮的传动比是不变的。
在变速箱的输出轴上装有一根“软轴”,一直通到驾驶员面前的里程表里去。
所谓“软轴”就是像自行车线闸用的拉线那样有钢丝芯的螺旋管,管壁和内芯之间有润滑油,外管固定而内芯可以转动,这个内芯的转速与车轮的转速有着恒定的比例关系。
软轴通到车速表,使得指针能把车的行驶速度指示出来。
同时,软轴旋转还经过蜗轮蜗杆传到车速表中间的滚轮计数器上,把车轮的转数所代表的里程数累计了下来,因为车速和里程都是靠同一根软轴传来的旋转动作驱动的,所以这两个表在一起,前者用指针指示,后者由滚轮计数器累计。
新型小汽车的里程表里包括由同一软轴带动的两个滚轮计数器,分别累计本次里程和总里程。
本次里程通常有四位数,供短期计数,这是可以清零的;总里程则有六位数,不能清零。
本次里程的单独指示和清零对于出租车的计费十分不方便。
最近电子式车速里程表逐步推广,它不用软轴,而是在变速箱输出轴上安装脉冲发生器,用导线把电脉冲传到仪表里,用脉冲频率指示速度,用脉冲计数器累计里程。
看起来电子式车速里程表比先前的机械电磁式的更合理,因为它不用软轴传动。
但是因为机械电磁式的价格比较便宜,在目前汽车里用得仍然比较多。
汽车里程表主要分为机械式和电子式两种,目前市场上的大部分新车型都采用电子式里程表,而配备机械式里程表的大都属于较老车型,在二手车市场上比较多见,像老款的捷达、普桑和富康,这些热销车型都是机械式里程表。
回调里程表其实很简单,尤其是机械式里程表,几分钟就可以了。
而调整电子式里程表的成本较高,需要专门的设备。
现在市面上就有一种专门针对电子式里程表的调表仪器。
早期的机械软轴的里程表几乎已经消失了,取而代之的是电子式的里程表和液晶显示屏,过去可以通过拨数码齿轮的方式调整里程表,现在这些方法都行不通,不过调表的需求并不随调整难度的增加而减少,如卖车和新车的都需要减小里程数掩盖车子真实行驶里程。
公家车的司机又需要增加里程数。
如果减小液晶表的公里数只能通过编程器调整存储片数据来实现,这需要专门的设备和知识,普通人要调整的确不易。
但如果要增加公里数实现起来就要容易很多了,我们只要给车速传感器提供一个符合要求的信号就可以了。
1.3设计的主要内容及技术指标
单片机软件设计程序主要包括里程设计模块;存储历史里程数据设计模块;里程的显示设计模块;里程公里数的累计设计模块;里程公里数的清0设计模块。
里程计数时有一盏指示灯闪烁;用AT24C01进行对历史里程数据存储;用共阴7段动态显示的数码管进行显示公里数;用个开关实现对里程公里数的清0功能;用霍尔传感器实现对里程车轮圈数的累计功能。
主要技术指标:
一.完成里程的显示功能
二.能存贮历史里程数据
三.能够清除历史数据
四.有一盏指示灯
第2章硬件的设计
2.1单片机简介
单片机是单片微型计算机(Singlc-ChipMicrocomputer)的简称。
单片机是将中央处理器(CPU),程序存贮器(ROM或EPROM),随机存贮器(RAM),定时器/计数器,并行及串行I/O口等电路集成在一块芯片上做成的计算机
。
单片机的典型结构如图2-1-1所示。
定时计数器
时钟
CPU
串行口
并行口
ROM
RAM
单片机的典型结构(图2-1-1)
单片机与一般的非单片型微型机相比,具有以下特点
:
Ø具有较强的通用性又有相当的专用性,尤其适合于各种控制系统。
Ø片内带有定时器/计数器。
Ø片内设有多个I/O接口,便于系统扩展及信息交换。
Ø使用汇编语言,指令系统的指令字节数较少,程序执行速度快,节省存贮器。
Ø多品种,多系列。
2.2AT89系列单片机简介
AT89系列单片机是以8051为内核,结合自己的技术优势构成的,所以它和8051是兼容的系列。
因此,AT89系列对于以8051为基础的应用系统而言,是十分容易进行取代和构成的。
而且对于熟悉8051的用户来说,选用AT89系列单片机进行系统设计也是轻而易举的。
AT89系列单片机具有下列很明显的优点
:
1.和AT8051接插相兼容
AT89系列单片机的引脚和8051是一样的,因此,当选用AT89系列单片机取代8051时,可以直接替换。
这时不管是采用40引脚还是44引脚产品,只要选用相同的AT89系列单片机取代8051单片机即可。
2.以EEPROM电可檫除和Flash技术为主导的存储器
ATMEL公司把EEPROM和Flash技术巧妙相结合形成特殊的集成电路,从而使应用领域扩大。
由于AT89系列内部含有Flash存储器,因此在系列的开发过程中可以十分容易地进行程序的修改,从而大大缩短了系统的开发周期。
同时,在系统的工作过程中,能有效地保存部分重要数据,不受外界因素而遭到破坏(如电源故障等),这给便携类产品的应用提供了极大方便。
含有EEPROM和Flash存储器是AT产品的明显特色之一。
3.静态时钟方式
AT89系列单片机采用静态时钟方式,可以节省电能。
这对于降低便携类产品的应用提供了极大方便。
含有EEPROM和Flash存储器是AT产品的明显特色之一。
2.3AT89C52系列单片机的介绍
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8Kbytes
的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合
。
主要性能参数:
1.与MCS-51产品指令和引脚完全兼容
2.18K字节可重擦写Flash闪速存储器
3.1000次擦写周期
4.全静态操作:
0Hz-24MHz
5.三级加密程序存储器
6.256*8字节内部RAM
7.32个可编程I/O口线
8.3个16位定时/计数器
9.8个中断源
10.可编程串行UART通道
11.低功耗空闲和掉电模式
功能特性概述:
AT89C52提供以下标准功能:
8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
引脚如图3.3-1所示。
振荡器反相放大器如图3.3-2所示。
图3.3-1
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
XTAL2
NC
XTAL1
外部振荡信号输入
GND
图3.3-2
中断:
AT89C52共有6个中断向量:
两个外中断(INT0和INT1),3个定时器中断(定时器0,1,2)和串行口中断。
所有这些中断源可通过分别设置专用寄存器IE的置位或清0来控制每一个中断的允许或禁止。
IE也有一个总禁止位EA,它能控制所有中断的允许或禁止。
AT89C52编程方法:
1.在地址线上加上要编程单元的地址信号。
2.在数据线上加上要写入的数据字节。
3.激活相应的控制信号。
4.在高电压编程方式时,将
/Vpp端加上+12V编程电压。
5.每对Flash存储阵列写入一个字节或每写入一个程序加密位,加入一个ALE/
编程脉冲。
每个字节写入周期是自身定时的,通常约为1.5ms。
重复1-5步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。
AT89C52的极限参数:
工作温度:
-55℃to+125℃
储藏温度:
-65℃to+150℃
任一引脚对地电压:
-1.0Vto+7.0V
最高工作电压:
6.6V
直流输出电流:
15.0mA
2.4里程表各部分电路介绍
本次里程表的设计,硬件电路主要由霍尔传感器电路,里程指示电路,里程数据存储电路,时钟电路,LED显示模块及74LS07驱动器构成。
2.4.1霍尔传感器电路
霍尔传感器电路图如下图3.4.1-1所示。
图3.4.1-1
2.4.2里程指示电路
霍尔传感器发出一个低电平脉冲,里程显示时四个数码管点亮后开始计数,表明电动自行车正在行驶中,一盏指示灯一直闪烁着。
电路如图3.4.2-1所示。
图3.4.2-1
2.4.3里程数据存储电路
里程数据的存储电路是本次设计的关键电路,单片机首先向AT24C01发送写信号,当确认后从单片机内部的数据储存单元提取数据然后向AT24C01的内部地址传送数据。
当显示里程时,单片机首先向AT24C01发送读信号,然后确认后,单片机从AT24C01内部的地址向单片机的读出单元字节读出数据,供显示所用。
因此,最终可保证掉电时数据不丢失。
I
C总线的的介绍:
I
C总线是双线串行总线。
I
C总线采用二线传输,即SDA串行数据线和SCL串行时钟线。
总线和器件之间的数据传送均由SDA数据线完成。
一个I
C总线系统里的所有外围器件均采用器件地址和引脚地址的编址方式。
系统中主CPU对任何节点的寻址没有
采用传统的片选线方式,而是采用纯软件的寻址方式。
为了能使总线上的所有节点器件输出实现“线”与逻辑功能,I
C器件输出端必须是漏极或集电极开路结构,即SDA和
SCL接口线上必须加上拉电阻
。
里程数据存储电路,如图3.4.3-1:
图3.4.3-1
2.4.4时钟电路
图3.4.4-1
在图3.4.4-1的电路中,电容器C1和C2对振荡频率有微调作用,通常的范围:
30±10PF;石英晶体选择6MHZ或12MHZ都可以。
其结果只是机器周期时间不同,影响计数器的计数初值
。
2.4.5LED显示模块电路及74LS07驱动器
LED显示器采用动态显示,用74LS07驱动共阴极LED数码管。
LED显示模块电路图,
如图3.4.5-1所示。
LED数码管结构图,如图3.4.5-2(a),(b)为共阴极型,(c)为共阳极型。
图3.4.5-1
图3.4.5-2
OC门驱动器用7407,7407即TTL集电极开路六正相高压驱动器.当7407输出低电平时,没有电流流过LED,当7407输出为开路状态时,电流经100
限流电阻流入LED显示器,每个七段LED的公共端都接一个7407驱动器。
7407模型如图3.4.5-3:
图3.4.5-3
7407引脚如图3.4.5-4:
图3.4.5-4
第3章软件的设计
3.1系统的总体设计
一个完整的单片机系统,包括软硬件两个方面。
硬件是系统可靠运行的“载体”,是基础,而软件则是使“载体”产生动力的发电机,二者相辅相成,缺一不可。
从设计者的角度出发,一个硬件电路的设计过程往往就是设计者的经验不断积累的过程。
总体设计流程:
在设计硬件电路时:
一般的流程是:
(1)器件选择(包括单片机和外围芯片的选择)
(2)电路图绘制
(3)PCB制板
(4)硬件检查和排错
(5)硬件电路调试完毕
只有在硬件平台建立之后才能更好进入软件系统的调试。
在进行软件系统的设计时,设计者首先要建立完整,总体的概念,一个完整的软件系统是由各个功能模块组成的。
程序设计者要时刻牢记如何将那些独立,分散的子程序模块通过主程序连接起来,并最终实现系统的目标功能。
3.2单片机应用软件设计
应用软件应在硬件电路的支持下能可靠地实现应用系统的各种功能。
它应具有下列特点
:
(1)结构清晰,简捷,流程合理。
(2)各功能程序模块化,子程序化,既便于调试,链接,也便于移植,修改。
(3)程序存储区,数据存储区规划合理,既节约内存容量,又便于操作。
(4)各功能程序的运行状态,运行结果以及运行要求尽量设置状态标志,以便查询,控制与程序判转。
(5)调试修改后,还应规范化,以利于交流,借鉴,为模块化,标准化打下基础。
(6)做好抗干扰设计,这是计算机应用系统提高可靠性的有力措施。
(7)设置自诊断程序,系统工作前先运行自诊断程序,检查系统各特征状态参数是否正常,以提高运行的可靠性。
开发步骤:
(1)确定任务:
a)确定系统的功能,指标,成本
b)完成期限
(2)总体设计:
a)调研
b)机型选择
c)软硬件任务划分
I.硬件开发
一.绘出线路图
二.选购元器件
三.组装
四.调试硬件
II.软件开发
一.建立数学模型,确定算法,安排数据结构
二.设计,编制各子程序模块
三.各子程序进行调试
四.各子程序连接起来调试
(3)样机联调:
a)软,硬件结合起来调试
b)找出错误,修改软,硬件
c)实时仿真,直至满足设计要求
(4)产品定型:
a)形成工艺
b)编写技术文件
3.3中断控制
和
的中断请求信号由外部产生并输入,称外部中断,其余的中断请求信号均由主机内部产生,故称为内部中断。
本次里程表的设计只用到外部中断
:
外部中断0请求中断输入端口(P3.2引脚),低电平或负跳变(从高到低)有效。
中断屏蔽:
AT89C52的中断均属可屏蔽中断,即通过软件对特殊功能寄存器IE的设置,实现对各中断源的中断请求开放(允许)或屏蔽(禁止)的控制。
中断响应的过程:
AT89C52的指令系统中设有两条返回指令:
RET和RETI。
调用子程序中应选用RET返回指令,中断服务程序中应选用RETI返回指令,如采用的是RET返回指令,虽然也能使中断服务程序返回原断点处继续往下执行原程序,但它不会告知中断控制系统,现行中断服务程序已执行完毕,致使中断控制系统误认为仍在执行中断服务程序而屏蔽新的中断请求。
因此,中断服务程序的返回必须用RETI指令,而不能用RET返回指令代替
。
中断响应时间:
从中断源发生中断请求到主机响应中断,转去执行中断服务程序需要3-8个机器周期。
外部中断0矢量地址:
0003H。
3.4I/O口的控制方式
在单片机中,为了实现数据的输入输出传送,通常使用三种控制方式。
即:
无条件传送方式,查询方式和中断方式
。
无条件传送方式适用于以下器件或设备的输入输出:
例如,机械或电子开关,指示灯,发光二极管,数码管等。
它们随时处于“准备好”
状态方便数据的传输。
查询方式:
为了实现查询方式的数据输入输出传送,需要由接口电路提供部,器件或设备的状态,并以软件方法进行状态测试。
因此,这是一种软,硬件方法结合的数据传送方式。
程序查询流程如图4.4-1所示。
读入状态信息
N
准备好了吗?
数据传送
Y
图4.4-1
中断方式:
中断方式与查询方式的主要区别在于如何知道,器件或外设是否为数据传输作好了准备。
查询方式是主机主动查询。
而中断方式则为部,器件或外设主动请求。
采用中断方式进行数据传输时,当部,器件或外设为数据传输已作好准备之后,就向主机发出中断请求(相当于通知主机),主机在接收到中断请求之后,在允许中断的情况下,响应中断请求,暂停正在执行的原程序,转而去为部,器件或外设的数据提供传输服务。
待服务完成之后,程序返回,主机再从断点处继续执行原程序。
3.5里程表的软件设计
3.5.1总体设计思路
将各英寸的电动自行车轮胎车轴内置一个小车轮,设小车轮周长约为150毫米(直径为47.7毫米),以10毫米为单位分15等份,即15个脉冲,小车轮的转动,方便大车轮的周长计算,更便于行驶公里数的计算,就不需要将圈数转换成公里数,避开了除法算法,降低了软件程序的复杂度。
假设小车轮周长约为150毫米(直径为47.7毫米),不是毫无根据的。
由22英寸到28英寸电动自行车的规格见下表4.5.1-1所示。
大车轮与小车轮的模拟图如图4.5.1-2所示。
表4.5.1-1
规格(英寸)
直径(毫米)
周长(毫米)
22
558.8
1752
24
609.6
1912
26
660.4
2072
28
771.2
2233
大车轮
小车轮
●
图4.5.1-2
最小的电动自行车尺寸的车轮周长为1752毫米,小车轮的周长要略小于大车轮的
周长,假设为1500毫米,在将其值缩小10倍,因此得到小车轮的周长值。
主程序流程图如图4.5.1-3所示。
初始化
读AT24C01
判内部数据处理
P1和P3规定作为电平拉高输入口
开总中断和外部中断,设堆栈指针SP
开P0和P2口
按下P1.1接的开关
按下P3.6接的开关
END
图4.5.1-3
判内部数据处理:
AT24C01出厂时原有数据BM单元是否为0FFH,等于0FFH时,BM
单元清0,写到AT24C01中,不等于时再次判断AT24C01出厂时原有数据KM单元是否为0FFH,等于0FFH时,KM单元清0,写到AT24C01中,以此类推,判断到BKM单元为止。
当AT24C01出厂时原有数据BKM单元不为0FFH,调用显示处理子程序。
按下P3.6接的开关:
调用计数处理子程序,计数时P1.0口接的指示灯会闪烁点亮。
BMM,M,SM,BM,KM,SKM,BKM单元加处理时,判断是否到10进1,BMM,M,SM单元每加一次都不需要存人AT24C01和显示,BM加处理后储存AT24C01,并显示。
按下P1.1接的开关:
调用清除数据子程序。
3.5.2里程的设计
里程数据存放单元见如下表4.5.2-1所示。
表4.5.2-1
BKM
SKM
KM
BM
SM
M
BMM
SMM
MM
50H
55H
54H
53H
52H
51H
56H
因为电动自行车里程表的硬件设计里程的显示部分是采用四个共阴极的数码管,所以只能显示BM(0.1公里),KM(公里),SKM(十公里),BKM(百公里)。
但设计时从BMM(分米)开始置存放单元并显示,每按一下P3.6开关,存放单元数据进行累加一,而BMM(分米),M(米),SM(十米)置存储单元,虽然没显示但骑电动自行车时BMM(分米),M(米),SM(十米)累加的。
因此BMM(分米),M(米),SM(十米)加处理后不存储AT24C01,而BM(0.1公里),KM(公里),SKM(十公里),BKM(百公里)加处理后存储AT24C01后再在数码管上显示。
3.5.3存贮历史里程数据的设计
存贮历史里程数据要用到I
C总线,I
C(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。
I
C总线
产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。
I
C总线协议定义如下:
只有在总线非忙时才被允许进行数据传送。
在数据传送时,当时钟线为高电平时,数据线必须为固定状态,不允许有跳变;当时钟线为高电平时,数据线的任何电平变化将被当作总线的启动或停止条件。
I
C总线的数据传输和器件寻址:
1.总线数据传送的起始和停止标志
I
C总线每一次数据传送,都由主器件发送起始信号开始,发送停止信号结束,当SCL时钟线为高电平,SDA数据线出现高电平向低电平的下降沿信号时即为总线的起始信号;相反,当SDA数据线出现由低电平向高电平的上升沿信号时即为总线的停止信号。
2.I
C总线上的数据传输格式
主CPU发生起始信号表明一次数据传送的开始,其后为寻址字节,寻址字节由高7位地址和1位方向位组成,方向位表明CPU与从器件之间的数据传送方向,当该位为“0”时表明CPU对从器件进行写操作,为“1”时是读操作。
寻址字节后是按指定地址读,写操作的数据字节与应答位。
主CPU发出寻址信号后,地址与自己相符的从器件便会产生一个应答信号。
数据字节的后面也跟随一个应答信号,应答信号在第9个时钟位上出现
。
3.本设计常用I
C总线芯片的器件和引脚地址。
见表4.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 电动自行车 里程表 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)