ImageVerifierCode 换一换
格式:DOCX , 页数:63 ,大小:412.21KB ,
资源ID:3705464      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3705464.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(自行车里程表的设计概要.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

自行车里程表的设计概要.docx

1、自行车里程表的设计概要学 号:1434060103毕业设计说明书GRADUATE DESIGN设计题目:基于单片机的自行车里程速度表设计与实现学生姓名:程晓锋专业班级:2014自升本1班学 院:继续教育学院指导教师:邸志刚 副教授2016年11月30日摘 要随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。本论文主要阐述一种基于霍尔元件的自行车的速度里程表的设计。以 AT89C52 单片机为核心,霍尔传感器测转数,实现对自行车里程/速度的测量统计,采用

2、1302 实现在系统掉电的时候保存里程信息,并能将自行车的里程数及速度用LCD实时显示。文章详细介绍了自行车的速度里程表的硬件电路和软件设计。硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。软件部分用C语言进行编程,采用模块化设计思想。该系统硬件电路简单,子程序具有通用性。关键词:里程/速度;霍尔元件;单片机;LCD显示AbstractWith the developing of peoples life, the bicycle is not only the universal tool of transportation and subst

3、itute for walking, but becomes the first choice of entertainment and exercising. The bicycle mileage/speed can fulfill the basic need of peoples life, so that they can learn the speed and the mileage of the bicycle. In this paper, the bicycle mileage/speed design based on the Hall element is elabora

4、ted. By AT89C52 as kernel, using Hall element to measure revolution, the measure and statistic are achieved. The range information is saved by when the power is off, the bicycle speed can be displayed on LCD. In this article, the hardware circuit and software design of bicycle mileage/speed instrume

5、nt are introduced in detail. About the hardware, the pulse number is transmitted of one cycle of the bicycle into Single Chip Microcomputer system. Then the signal processed by Single Chip Microcomputer system is sent to display scream. About the software, in assemble language; the program is design

6、ed in the mode of modules. The system has simple hardware, common sub-program.KEY WORDS: Mileage / speed; Hall element; Single chip microcomputer; LCD display . 前 言本文介绍里程表设计以单片机和霍尔传感器为核心。霍尔传感器将到来的低电平脉冲信号输入到单片机进行控制与计算,再采用LCD模块进行显示,使得自行车的里程数据能直观的显示给使用者。自行车里程表是用于远距离连续测量自行车行驶距离的仪表。它分为电源、霍尔传感器和显示器3部分。随着居

7、民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。因此,人们希望自行车的功用更强大,能给人们带来更多的方便。自行车里程速度表作为自行车的一大辅助工具也正是随着这个要求而迅速发展的,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能。本文介绍的自行车里程表是由电源稳压系统供电,AT89C52单片机为中央处理器,结合高精度的控制电路,方便地实现了智能化、高精度、高可靠性、高效率的自行车里程表的设计,并且使用方便。里程表以单片机AT89C52为核心,由系统输入、单片机部分和系统输出组成。第1章 绪

8、论单片机自从推出以来,以其超小型化、结构紧凑、可靠性高、成本低等优点被人们广泛接受,从而应用于工业、电讯、数据处理、仪器仪表等多方面。自行车里程表是自行车的重要配件,在自行车仪表中占重要位置,但几十年来其发展变化并不大,现在国外很多车中使用了数字里程表,但在国内还并不多见。1.1 课题背景里程表的原理很简单,车轮的圆周长是恒定不变的。由此可以计算出每走一里路车轮要转多少圈,这个数也是恒定不变的。因此只要能够自动把车轮的转数积累下来,然后除以每一里路对应的转数就可以得到行驶的里程了。这样简单的原理古人就已经发现,并且开始使用了。“记里鼓车”就是这样的装置,它是利用上述原理,再加上巧妙的机构使得车

9、轮每转一定圈数就自动敲一下鼓,此时只要有专人把它记下了,就可以得到所走里程。此装置十分巧妙无论白天、黑夜均可使用,而且盲人也可使用,体现出了我国古代劳动人民的聪明才智。不过,如果车上没有人默记鼓声数目的话,单靠记里鼓车本身还不能累计一共走了多少里。而且车停下来之后谁也不知道这车曾经走过多少里路,这是美中不足之处。从保护环境和经济条件许可等因素综合来看,自行车目前乃至今后都有着广阔的发展空间。目前市面上自行车的速度表和里程表都是机械的,看起来不够直观与方便。如果能用LCD直接显示出来里程数或速度值,就可节省用户的时间及精力处理自行车行进过程中的突发事件。1.2 设计的主要内容及技术指标单片机软件

10、设计程序主要包括里程设计模块;存储历史里程数据设计模块;里程的显示设计模块;里程公里数的累计设计模块;里程公里数的清0设计模块。里程计数时有一盏指示灯闪烁;用LCD1602进行显示公里数;用个开关实现对里程公里数的清0功能;用霍尔传感器实现对里程车轮圈数的累计功能。主要技术指标:一. 完成里程的显示功能二能存贮历史里程数据三能够清除历史数据四有一盏指示灯第2章自行车里程表总体方案设计2.1任务分析与实现本设计的任务是:以STC89C52单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。里程及速度的测量,是经过STC89C52测出总的脉冲数和每一秒所转的圈数,再经过单片机

11、的计算得出,其结果通过1602LCD显示屏显示出来。本系统总体思路如下:假定车轮的周长为L,在车轮上安装m个磁钢,则测得的里程值最大误差为L/m。经综合分析,本设计中取m=1。车轮每转一圈,开关型霍尔传感器就会采集到一个脉冲信号,并从引脚端输入,传感器每获取一个脉冲信号代表车轮转动一圈,即圈数qs加1,圈数qs与设置的自行车车轮的周长L的乘积即为当前所走里程。同时可以从定时器TI知道在1秒内单片机收到的脉冲个数,即车轮所转的圈数,而自行车车轮周长与车轮所转圈数的乘积即为这1秒内自行车所走的距离,距离除以1秒的时间,即为瞬时速度。平均速度的计算大体上与瞬时速度一样,从计数器T1知道在t秒内车轮所

12、转的圈数后,与自行车车轮周长相乘得到t秒内自行车所走的距离,距离除以t即为平均速度。另一个定时器T0则可以用来实现秒表的计时。最后LCD显示屏显示内容的切换可以由键盘的输入来实现,而秒表计时的开始、暂停、清零及里程的清零也可以用键盘的输入来实现。设计时,应综合考虑测速精度和系统反应时间。本设计采用的脉冲计数方法,用来计算速度具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。另外,还应尽量保证其他子模块在编程时的通用性和高效性。最终实现目标:采用单片机作控制,自行车里程表具有里程、速度与秒表计时显示功能。通过不同按键的按下切换里程、速度

13、、秒表三者之间的显示,也可以实现秒表计时的开始、暂停、清零及里程清零的功能,方便地实现了智能化、高精度、高可靠性、高效率的自行车里程表的设计,并且使用方便。2.2自行车里程表硬件方案设计根据本设计的要求,经研究和分析,硬件部分主要分为信息采集、信息处理、键盘输入和信息显示四大模块,其中的核心是信息处理,所用芯片为STC89C52单片机。系统硬件框图如图2-1所示:图2-1系统硬件框图2.3自行车里程表软件方案设计通过软件控制单片机的功能是单片机的主要特点和优点,程序的设计要考虑合理性和可读性,遵循模块化设计的原则,采用自顶向下的设计方法。模块化设计使程序的可读性好、修改及完善方便。软件设计包括

14、显示子程序、数据处理子程序(分为里程子程序、速度子程序)、秒表计时子程序、脉冲接收子程序等等。显示子程序是通过编程将数据处理的结果送给显示器显示。数据处理子程序是将得到的车轮所转的圈数与实际要显示值之间有一定的对应关系,经过软件编程显示所需要的值。秒表计时子程序是采用计数器T0通过编程实现秒表计时工作。脉冲接收子程序是通过编程实现脉冲的计数,即对车轮所转的圈数计数。系统软件框图如图2-2所示:图2-2系统软件框图第3章 自行车里程表硬件模块设计3.1 里程表的硬件设计本次里程表的设计,硬件电路主要由霍尔传感器电路,按键电路,电源电路,时钟电路,LCD显示电路,串口下载电路,复位电路,晶振电路构

15、成。3.1.1 霍尔传感器电路模块设计A44E集成霍尔开关由稳压器A、霍尔电势发生器(即硅霍尔片)B、差分放大器 C、施密特触发器D和OC门输出E五个基本部分组成,如图3-1所示。(1)、(2)、(3)代表集成霍尔开关的三个引出端点。在电源端加电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称

16、这种状态为开 。当施加的磁场达到释放点时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关 。这样两次电压变换,使霍尔开关完成了一次开关动作。工作点与释放点的差值一定,此差值称为磁滞,在此差值内,V0保持不变,因而使开关输出稳定可靠,这也就是集电成霍尔开关传感器优良特性之一。传感器主要特性是它的输出特性,即输入磁感应强度B与输出电压V0之间的关系。测量时,在1、2两端加5V直流电压,在输出端3与1之间接一个负载电阻,输出端3接单片机INT0/P3.2,如图3-2所示。图3-1 集成开关型霍尔传感器图3-2 霍尔传感电路3.1.2 按键电路模块设计键盘在单片机应用系统中,实现输入数

17、据、传送命令的功能,是人工干预的主要手段。键盘是单片机系统设计中一种主要的信息输入接口,合理的设计,不仅可以节省系统的设计成本,更可使仪器设备的操作变得更为简单、方便,很大程度上提高系统综合性能。本次设计中通过按键来更改自行车车轮半径,并控制显示自行的车里程和平均速度,s3刷屏,s1加数据,s2减数据。 图3-3 按键电路3.1.3 电源电路模块设计 为整个电路提供电源。电路由7805三端稳压集成电路、电容、LED灯、1千欧姆的电阻、开关和直流电源组成。7805三端稳压集成电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。注意事项:电源不要超过20V,3A,防止意外。

18、 图3-4 电源电路 3.1.4 时钟电路模块设计 DS1302与单片机的连接也仅需要3条线:RST引脚(高电平时启动数据传送)、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。图3-5 时钟电路3.1.5 LCD显示模块电路模块设计 LCD1602引脚介绍:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时

19、进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。图3-6 显示电路3.1.6 串口下载电路模块设计串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。单片机的串行通信可用于与计算机之间传送数据,一般采用RS232接口,但是由于TTL电平和RS232电平不兼容,所以两者对接时,必须进行电平转换,其原理图如图2-9

20、。RS232与电平转换最常用的芯片有MC1488、MC1489和MAX232,各厂家生产的此类芯片虽然不同,但原理都一样。在本次设计选用的是美国MAXIM公司的MAX232芯片,由此构成程序下载电路,以便调试烧写程序。它是RS232双工发送器/接收器接口电路芯片,由于芯片内部有自升压的电平倍增电路,将+5V转换成-10+10V,满足RS232标准对逻辑1和逻辑0的电平要求,工作时仅需要单一的+5V电源。图3-7 串口下载电路3.1.7 复位电路模块设计上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RET/VPD端,该高电平使89C52全机自动复位,这就是上电复位;若运行过程中需要程序

21、从头执行,只需按动按钮即可。按下按钮,则直接把+5V加到了RET/VPD端从而复位称为手动复位。电路图如图3-8所示。图3-8 复位电路3.1.8 晶振电路模块设计晶振电路用于产生单片机工作时所需的时钟控制信号。通过单片机的引脚XTAL1,XTAL2跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。时钟频率直接影响单片机的速度,晶振电路的质量也直接影响单片机系统的稳定性。晶振电路电路图如图3-9所示。图3-9 晶振电路第4章 软件的设计4.1 里程表的软件设计 本自行车里程表软件采用模块化设计方法。整个系统由初始化模块、频率测量模块、LCD显示模块、速度计算与显示模块、里程计算与与显示模

22、块、数据存储、读取模块、定时器中断服务模块、时钟模块以及其他功能模块组成。本设计的主要内容是自行车里程速度表,日历时钟为附加功能,在此进行简单介绍。4.1.1 里程速度功能模块实现里程速度功能程序流程图如图4-1所示。 图4-1 里程速度功能程序流程图程序代码如下:void main()EEPROM_LXRD(0x43,0,3,number);qs=number0;as=number1;bs=number2;init_LCD(); 初始化dispmore(1,1,-Digital Meter-,16);for(i=0;i25000;i+);dispmore(2,1, Welcome ,16);

23、显示欢迎信息for(i=0;i25000;i+);dispmore(2,1, Welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, Welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, Welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, Welcome. ,16);for(i=0;i25000;i+);dispmore(2,1, Welcome. ,16);for(i=0;i30000;i+);W1302(0x90,0xa5);/打开充电二级管 一个二级管串联一个2K电阻

24、W1302(0x8e,0x80);/写保护,禁止写操作 wrcom(0x01);MODE=0;P2=0xff;qs2=0;tr1=5;tr2=5;wrcom(0x01);dispmore(1,1,Set Bike Tire L=,16);wrcom(0xc9);dispone(c);wrcom(0xca);dispone(m);P2=0xff;wrcom(0xc6);dispone(tr1+0x30);wrcom(0xc7);dispone(tr2+0x30);while(1)if(K1=0)for(i=0;i9)tr1=0;wrcom(0xc6);dispone(tr1+0x30);for(

25、i=0;i32000;i+);if(K2=0)for(i=0;i9)tr2=0;wrcom(0xc7);dispone(tr2+0x30);for(i=0;i32000;i+);if(K3=0)for(i=0;i7) id=0;while(K3=0);switch(id)case 0:sec=0;Disp_line1();Disp_line2();break;case 1:/年year=1;Disp_line1(); Disp_line2(); id_case1_key();break;case 2:/月year=0;mon=1;Disp_line1(); Disp_line2(); id_c

26、ase1_key();break;case 3:/日mon=0;day=1;Disp_line1(); Disp_line2();id_case1_key();break; case 4:/星期day=0;weekk=1;Disp_line1(); Disp_line2(); id_case1_key();4.1.3 LCD1602液晶显示模块 LCD1602液晶显示器属于字符型液晶显示器,其内部自带有字符库,所以只要向显示器输送字符的ASCII码,就可以显示该字符了。对于1602显示程序的编写最主要的是掌握好1602的读写操作的时序。1602显示器的控制端分别为RS、RW和E,当写指令时RS

27、为低电平,RW为低电平,E首先为高电平,然后将数据送出,在延时一定时间后E变为低电平。这样就把命令写到了1602中。当写数据时RS为高电平,RW为低电平,E首先为高电平,然后将数据送出,在延时一定的时间后E变为低电平。这样就把数据写到了1602中。在实际应用1602时,要先将显示器初始化,初始化的内容包括清屏、设置显示模式,首字符的位置、光标的有无和闪烁等,然后才能显示具体内容。 图4-3 LCD显示程序流程图该函数的作用是对LCD进行检测,看LCD是否处于忙的状态.当bflag=1时表示忙,此时不可以向LCD进行读写操作.而当busy=0时,表示可以向它读写数据.程序代码:void wait

28、()P2=0xff;RW=1; RS=0; doE=0;E=1;while(busy=1);void dispone(dat)写数据,并显示出来P2=dat;RW=0; RS=1; E=0; E=1; wait();void wrcom(com)向LCD写入控制字P2=com;RW=0; RS=0; E=0; E=1; wait();void init_LCD() 初始化LCDwrcom(0x01); 显示清零,数据指针清零wrcom(0x06); 写一个字后指针加一wrcom(0x38); 设置16*2显示,5*7点阵,8位数据接口wrcom(0x0c); 设置开显示,不显示光标void dispmore(line,row,uchar dat,i) /格式为dispmore(第几行,第几列,开始要显示的字符地址,显示几个字符);uchar com;s=dat;if(line=1) com=0x80+row-1; / 第一行第一列对应的RAM的地址位为0x80H wrcom(com);while(i-)!=0&com=0x8f) dispone(*s);com+;s+;else com=0xc0+row-1; wrcom(com);while(i-)!=0&com=0xcf) dispone(*s);com+;s+;第5章 软件调试5.1 程序的检测与调

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1