基于单片机自行车的里程测速仪

合集下载

基于单片机的自行车里程表设计

基于单片机的自行车里程表设计

基于单片机的自行车里程表设计一、引言二、系统总体设计方案(一)功能需求分析自行车里程表需要实现以下主要功能:1、准确测量自行车行驶的里程。

2、实时显示里程数据。

3、具备低功耗特性,以保证长时间使用。

(二)系统组成本系统主要由传感器模块、单片机控制模块、显示模块和电源模块组成。

1、传感器模块用于采集车轮转动的信息。

2、单片机控制模块负责对采集到的数据进行处理和计算。

3、显示模块用于向用户展示里程等相关信息。

4、电源模块为整个系统提供稳定的工作电压。

三、硬件设计(一)传感器选择常见的用于测量自行车车轮转动的传感器有霍尔传感器和光电传感器。

霍尔传感器通过感应磁场变化来检测车轮转动,具有精度高、稳定性好的优点;光电传感器则通过检测光的遮挡来判断车轮转动,成本相对较低。

综合考虑,本设计选用霍尔传感器。

(二)单片机选型单片机作为系统的控制核心,需要具备一定的运算能力和接口资源。

考虑到成本和性能要求,选用 STC89C52 单片机。

(三)显示模块为了使里程表的显示清晰直观,选用液晶显示屏(LCD)。

LCD 具有低功耗、显示内容丰富等优点。

(四)电源模块由于自行车在行驶过程中震动较大,选用可充电的锂电池作为电源,并通过稳压芯片将电压稳定在系统所需的工作电压范围内。

四、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机内部资源的初始化、传感器的初始化和显示模块的初始化。

然后进入主循环,不断采集传感器的数据,并进行计算和处理,将里程数据实时显示在显示屏上。

(二)里程计算算法根据传感器检测到的车轮转动信号,结合车轮的周长,通过累积计算得出行驶里程。

(三)显示程序设计合理的显示界面,将里程数据以清晰易读的方式呈现给用户。

五、系统调试与测试(一)硬件调试在焊接完成后,首先检查电路是否存在短路、断路等问题。

然后使用万用表等工具对各个模块的电源电压、信号电平进行测量,确保硬件工作正常。

(二)软件调试通过单片机的在线调试功能,逐步调试各个功能模块的程序,查看变量的值和程序的执行流程,排除软件中的错误。

基于单片机设计的自行车测速计系统

基于单片机设计的自行车测速计系统

届.别. 2013届学号毕业设计基于单片机设计的自行车测速系统姓名系别、专业导师姓名、职称完成时间1目录摘要 .............................................................. 3矚慫润厲钐瘗睞枥庑赖。

Abstract............................................................ 3聞創沟燴鐺險爱氇谴净。

1 绪论 ........................................................... 4残骛楼諍锩瀨濟溆塹籟。

1.1 课题背景 ................................................. 5酽锕极額閉镇桧猪訣锥。

1.2 课题主要任务及内容........................................ 5彈贸摄尔霁毙攬砖卤庑。

1.3 任务分析与实现............................................ 5謀荞抟箧飆鐸怼类蒋薔。

2 系统设计 ....................................................... 6厦礴恳蹒骈時盡继價骚。

2.1 硬件方案设计.............................................. 6茕桢广鳓鯡选块网羈泪。

2.2 软件方案设计.............................................. 7鹅娅尽損鹌惨歷茏鴛賴。

2.3 硬件电路设计.............................................. 8籟丛妈羥为贍偾蛏练淨。

2.3.1 概述................................................ 8預頌圣鉉儐歲龈讶骅籴。

基于单片机的多功能自行车里程速度仪设计

基于单片机的多功能自行车里程速度仪设计

毕业设计报告(论文) 基于单片机的多功能自行车里程速度仪设计所属系电子工程系专业自动化学号01212117姓名陆奕喆指导教师辛海燕起讫日期2016.02 ---2016.05设计地点东南大学成贤学院实验大楼502东南大学成贤学院毕业设计报告(论文)诚信承诺本人承诺所呈交的毕业设计报告(论文)及取得的成果是在导师指导下完成,引用他人成果的部分均已列出参考文献。

如论文涉及任何知识产权纠纷,本人将承担一切责任。

学生签名:日期:基于单片机的多功能自行车里程速度仪设计摘要当今社会,能源资源越来越紧缺,全世界,包括中国都在倡导绿色出行,骑车出行越来越成为一种时尚,风格,甚至一种生活态度,随着自行车的不断普及与发展,与之相关的一些配套设备也将蓬勃发展,码表就是其中之一。

一个好的码表集美观、实用、功能多样于一身,码表应该在能够正常稳定的基础上尽可能多的显示骑行者所需信息,方便骑行者调整自身。

本次设计将UBLOX- GPS芯片接收到的信息与霍尔元件接收的脉冲通过单片机处理以后传输到一块LCD12864显示芯片中,从而将定位速度信息显示出来。

本文主要介绍所用芯片的特点,并将这些芯片按照一定方式组合起来,再通过软件的编程使每个芯片发挥应有的作用。

单片机有体积小,能耗低,稳定性好的特点,可以获得理想的效果,从而产生一个优秀的自行车码表。

关键词:UBLOX- GPS;单片机;霍尔元件Design of Multifunctional Bicycle Speedmeter Based on MCUAbstractIn today's society , more and more scarce energy resources leads the world , including China,Advocating green trave . Cycling is becoming more and more fashionable, style, and even a kind of life attitude. With the popularization and development of bicycle, some related equipment will also be developed,which contains Cycle Computers. A good Cycle Computer must Contain beautiful, practical, functional diversity. Cycle Computers should be based on the stability as much as possible, and they also should display the riders the necessary information they need, to make riders adjust themselves simply.This design makes the GPS UBLOX- chip receiving the information and Holzer components receiving the pulse and then transmitted through the MCU to a LCD12864 display chip,which will display the location and speed information.This paper mainly introduces the characteristics of the used chips,and the chips are combined in a certain way. Programming through the software to play the role of each chip.MCU has a small size, low energy consumption, good stability characteristics.We can obtain ideal results,so that a great bike computer is going to be created.Keywords:UBLOX- GPS;MCU;Hall element目录摘要 (I)Abstract (II)第一章绪论 (1)1.1研究背景 (1)1.2国外现状 (1)1.3国内现状 (1)1.4发展前景 (1)1.5 功能介绍 (2)1.6设计内容与预期结果 (2)第二章系统方案设计 (3)2.1系统总体设计 (3)2.2系统设计原则 (3)2.3单片机选择 (3)2.4显示模块的选择 (4)第三章系统硬件电路 (5)3.1 主控模块 (5)3.1.1 STC89C52 (5)3.1.2 STC89C52的主要特点 (5)3.2 时钟电路 (6)3.3 复位电路 (7)3.4 GPS模块 (7)3.5 霍尔测速模块 (8)3.6 LCD 12864显示模块 (9)3.7 接口转换电路 (10)第四章系统软件 (11)4.1主程序 (11)4.2 GPS数据解析程序 (12)4.3霍尔元件处理程序 (12)4.4 LCD 12864显示模块程序 (13)4.5 小结 (13)第五章心得与体会 (15)致谢 (16)参考文献(References) (17)附录:系统总体程序 (18)第一章绪论1.1研究背景随着人们生活水平提高,越来越多的人更加注重生活质量,与世界他国的接触越来越多,文化的交融,政策的变化致使一些曾经不被人们重视的东西也越来越被人重视。

基于单片机设计的自行车测速计系统设计说明

基于单片机设计的自行车测速计系统设计说明

届.别. 2013届学号毕业设计基于单片机设计的自行车测速系统姓名系别、专业导师姓名、职称完成时间word格式.目录摘要 (3)Abstract (4)1 绪论 (5)1.1 课题背景 (5)1.2 课题主要任务及容 (5)1.3 任务分析与实现 (5)2 系统设计 (6)2.1 硬件方案设计 (6)2.2 软件方案设计 (7)2.3 硬件电路设计 (8)2.3.1 概述 (8)2.3.2 系统总电路图 (9)2.3.3 单片机简介 (9)2.3.4 单片机的引脚功能介绍 (10)2.3.5 单片机中断系统介绍 (10)2.3.6 传感器及其测量系统 (11)2.3.7 霍尔传感器的测温原理 (11)2.3.8 集成开关型霍尔传感器 (12)2.4 单片机外围电路的设计 (13)2.4.1 时钟电路的设计 (13)2.4.2 复位电路的设计 (14)2.4.3 显示电路的设计 (15)3 软件程序设计 (16)3.1 概述 (16)3.2 总体程序设计 (16)3.3 中断子程序设计 (18)结论 (19)参考文献 (20)致 (20)附件一:总体原理图设计 (21)摘要随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。

自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。

本论文主要阐述一种基于霍尔元件的自行车的速度里程表的设计。

以 STC89C52 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,并能将自行车的里程数及速度用LED实时显示。

文章详细介绍了自行车的速度里程表的硬件电路和软件设计。

硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。

软件部分用汇编语言进行编程,采用模块化设计思想。

该系统硬件电路简单,子程序具有通用性,完全符合设计要求。

基于单片机的自行车测速系统设计与实现论文

基于单片机的自行车测速系统设计与实现论文

桂林电子科技大学毕业设计(论文)报告用纸第1 页摘要随着社会的进步发展和环保意识的增强,能够锻炼身体,且能环保出行的自行车成了大众的宠儿。

随自行车的快速发展,人们对自行车的功能要求也越来越高。

自行车测速仪通过测量并显示出行时的日期、时间、温度、速度和里程数,能够较好的满足人们对自行车的基本需求。

本设计通过分析自行车测速仪的原理,基于STC89C52单片机和C语言,设计和实现了一种自行车测速系统。

该系统主要包括单片机数据处理、电机测速、温度测量、时钟计时、显示数据、按键控制七大功能模块。

在系统实现中,硬件部分以STC89C52单片机为处理核心,用红外对管传感器将车轮的转数转换为电脉冲,进行处理后送入单片机,通过测量电机转的圈数,经过数据处理得到速度和路程数。

软件部分采用C语言进行编程,实现系统的控制与显示。

本系统的实现达到了预期的设计目标。

关键词:自行车测速;STC89C52单片机;红外对管传感器;C语言AbstractWith the development of social progress and environmental protection consciousness, can physical exercise, andgreen travl bicycle ,became the darling of the public. With the rapid development of bicycle, the bicycle features people are increasingly high requirements. Bicycle speedometer can display the travel date, time, temperature, speed and mileage by measuring,to better me people's basic needs for bicycle.This design through the analysis of principles of bicycle speedometer, based on STC89C52 singlechip and C language,design and implementation of a bicycle speed system.The system includes a SCM data processing, motor speed, temperature measurement, timing, data shows,key control that seven major function module.In the system realization, The hardware part with STC89C52 SCM as core processor. Using the infrared tube sensor will wheel speed is converted into electrical pulses, processed into the microcontroller.By measuring the motor cycles,after data processing, we can know the speed and distance. The software using C language programming ,to realize the system control and display. The realization of this system reaches the expected design goal.Key words:Bicycle Tachometer ;STC89C52 single chip microcomputer; Infrared tube sensor; C language目录引言 (2)1 设计要求 (2)1.1 毕业设计题目 (2)1.2 设计的主要功能 (2)2 工作原理和系统结构 (3)3 硬件设计 (4)3.1 系统总电路图 (4)3.2 单片机控制处理模块 (4)3.3红外对管测速模块 (8)3.4 DS1302时钟芯片模块 (10)3.5 DS1302温度采集模块 (12)3.6 LCD显示模块 (14)3.7 电机驱动模块 (15)3.8 按键功能、供电和串口下载模块 (15)4 软件设计 (18)4.1 Keil uVision 4软件介绍 (18)4.2 程序设计思想与开发环境 (18)4.3 主程序设计 (19)4.4 各个模块程序设计 (19)4.4.1 红外对管测速模块程序设计 (19)4.4.2 DS18B20温度测量模块程序设计 (21)4.4.3 DS1302时钟芯片模块程序设计 (24)4.4.4 LCD12864显示模块程序设计 (27)5 系统测试 (28)5.1 硬件调试 (28)5.2 软件调试 (29)5.3 对实际电路进行测试 (29)6 总结 (31)致谢 (32)参考文献: (33)附录 (34)引言自行车是传统产业,具有100多年的历史,由于环保以及交通的问题,自行车再度成为世界各国特别是发达国家居民喜爱的交通、健身工具。

基于单片机的自行车速度及里程表设计资料

基于单片机的自行车速度及里程表设计资料

毕业论文(设计)题目:基于单片机的自行车速度及里程表设计系部名称:信息工程系专业班级:电气102 学生姓名:曹康学号: 201007084218 指导教师:姜宏伟教师职称:副教授201 年月日摘要随着自行车行业和电子技术的发展,自行车里程速度计技术也在不断进步和提高,用户对自行车里程速度计的要求也越来越高,因此设计了自行车里程速度计。

本文主要研究了以单片机为基础的自行车里程速度器的设计。

采用STC89C52单片机为主要控制芯片,运用自行车车轮上的传感器进行计数,通过一定时间间隔对信号的采集,结合自行车本身车轮参数,经过单片机对采集信号进行分析计算,最终在液晶显示器LCD上显示车辆行驶的里程和速度,同时运用其他按键分别自行车单里程计数,瞬时速度、最大速度和平均速度显示以及超速报警。

该设计重点阐述了系统的工作原理、硬件构成、各部分的主要功能以及软件的结构和实现。

自行车里程速度计的设计本着安全、方便、节能、人性化的原则进行,可使现代生活显著提高。

关键词:自行车,STC89C52, LCD1602,霍尔传感器Bicycle mileage velocity meter based on MCUABSTRACTAlong with the development of the bicycle industry and electronic technology, bicycle speedometer technology is also in constant progress and improve, user demand for bicycle mileage is more and more is also high, so I chose bicycle mileage speedometerThis article mainly introduced take the monolithic integrated circuit as the foundation rental car fare register design. Uses the 89C52 monolithic integrated circuit for the primary control chip, using the pressed key signal imitation rental car wheel counting signal, simultaneously utilizes other pressed keys to control the rental car movement to carry passengers separately/the spatial vehicle condition, the kilometer idea regulation/waiting time and the traveling schedule expense amount to the demonstration. The system used three groups of nixietubes, the utilization dynamic display technology has demonstrated the distance in kilometer, the standby period and the expense separately. Meanwhile carries on the design using the software programming to the monolithic integrated circuit timer, produces the waiting timed pulse signal.this article elaborated with emphasis system's principle of work, the hardware constitution, various part of major functions as well as software's structure and realizes.The mileage log system with STC89C52 as control core, using sensors to detect signals, by a certain time interval signal collection, in combination with itself, bicycle wheel parameters through single chip microcomputer for the analysis of the collected signal, finally displayed on the LCD screen LCD vehicle mileage and speed, overspeed alarm。

基于单片机设计的自行车测速计系统_毕业设计

基于单片机设计的自行车测速计系统_毕业设计

毕业设计基于单片机设计的自行车测速系统1目录摘要 (2)Abstract (2)1 绪论 (4)1.1 课题背景 (4)1.2 课题主要任务及内容 (4)1.3 任务分析与实现 (4)2 系统设计 (5)2.1 硬件方案设计 (5)2.2 软件方案设计 (7)2.3 硬件电路设计 (7)2.3.1 概述 (7)2.3.2 系统总电路图 (8)2.3.3 单片机简介 (8)2.3.4 单片机的引脚功能介绍 (9)2.3.5 单片机中断系统介绍 (10)2.3.6 传感器及其测量系统 (10)2.3.7 霍尔传感器的测温原理 (11)2.3.8 集成开关型霍尔传感器 (11)2.4 单片机外围电路的设计 (12)2.4.1 时钟电路的设计 (12)2.4.2 复位电路的设计 (13)2.4.3 显示电路的设计 (14)3 软件程序设计 (15)3.1 概述 (15)3.2 总体程序设计 (15)3.3 中断子程序设计 (17)结论 (18)参考文献 (19)致谢 (19)附件一:总体原理图设计 (20)摘要随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。

自行车的速度里程表能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程等物理量。

本论文主要阐述一种基于霍尔元件的自行车的速度里程表的设计。

以 STC89C52 单片机为核心,A44E 霍尔传感器测转数,实现对自行车里程/速度的测量统计,并能将自行车的里程数及速度用LED实时显示。

文章详细介绍了自行车的速度里程表的硬件电路和软件设计。

硬件部分利用霍尔元件将自行车每转一圈的脉冲数传入单片机系统,然后单片机系统将信号经过处理送显示。

软件部分用汇编语言进行编程,采用模块化设计思想。

该系统硬件电路简单,子程序具有通用性,完全符合设计要求。

关键字:里程/速度;霍尔元件;单片机;LED显示AbstractWith the improvement of people's living standard, the bicycle is not only the common transport, transport tool, but as people entertainment, leisure, exercise of choice.The speed of the bicycle speedometer can satisfy people's most basic needs, so that people can clearly know the current speed, mileage.This paper mainly expounds the design of a Holzer element based on the speed of the bicycle odometer.The STC89C52 microcontroller as the core, measuring speed A44E Holzer sensor, the measurement of bicycle mileage / speed, and can be bicycle mileage and speed with the LED real-time display.This paper introduces the hardware circuit and software design of bicycle speed odometer.The hardware part using Holzer element will bike every pulse number of incoming MCU system in a circle, and then the signal processed by SCM system is sent to display.The software is programmed with assembly language, uses the modular design thought.The system hardware circuit is simple, with a generic subprogram, fully meet the design requirements.Key words:Mileage / speed; Holzer element; MCU; LED display1 绪论1.1 课题背景自行车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动自行车,自行车发展的目的也从最早的交通代步的工具转换成休闲娱乐运动的用途。

基于单片机自行车测速仪的设计毕业设计

基于单片机自行车测速仪的设计毕业设计

基于单片机自行车测速仪的设计摘要本设计主要阐述一种基于单片机与霍尔传感器等元件的测速仪设计。

以AT89C51单片机为核心,实现对自行车里程、速度、时间、温度等参数的测量,并能简单的将里程及速度用LCD实时显示。

在本文中详细介绍了测速仪的硬件电路和软件设计。

硬件部分利用霍尔传感器将每秒内的脉冲数传入单片机系统,然后经单片机系统计算处理并将过处理结果送LCD显示。

软件的设计采用模块化结构,使程序的逻辑关系更加简洁。

使硬件在软件的控制下协调运作。

仿真,所设计的硬件电路及软件程序是正确的,实际的硬件电路中也基本上能够满足设计要求。

关键词:里程/速度,时间,温度,霍尔元件,单片机,LCDAbstractThis design mainly elaborated based on MCU and Hall element of speed instrument design. Take STC MCU as the core, Hall element speed, realizes to the bicycle mileage, speed, time, temperature measurement, and a simple bicycle mileage and speed with the LCD real time display. The hardware part using the Hall element will bike per second pulse number of incoming MCU system, and then by the single chip microcomputer system calculation processing and processing result to the LCD display. Program design in order to facilitate the expansion and the change, the software design uses the modular structure, make the logic relations more concise. Make hardware tocoordinatethe operation under the software control. Simulation experiments show that the designed hardware circuit and software program are correct, practical hardware circuit also basically can satisfy the design requirement, but due to the knowledge, in practice there are still some problems in the hardware circuit.Keywords: Mileage / speed,time, temperature, Hall element, MCU,LCD毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《基于单片机的自行车里程表、测速仪》单片机大作业09电子2班薛强学号:423目录摘要第一章系统设计1.1 设计任务和要求1.1.1设计任务1.1.2 基本要求1.2 总体设计方案1.2.1系统总体设计思路1.2.2方案设计与讨论1.3功能描述1.4操作说明1.5结构框图1.6原理说明第二章硬件设计2.1 硬件电路2.2 主要元件介绍第三章软件设计3.1 系统主程序流程图3.2 仿真截图3.3 源程序代码基于80C51单片机的自行车里程表、测速仪摘要:本文介绍了一种基于单片机控制的简易自动自行车速度以及里程计算系统,包括自行车里程表的硬件构成,软件逻辑以及程序代码。

该里程测速系统以AT89C51作为系统控制核心,采用光电传感器来检测信号,通过一定时间间隔内对信号的采集,结合自行车本身车轮参数,经过单片机对采集信号进行分析计算,最终在LCD以及LED上显示车辆行驶里程、平均速度和瞬时速度,并且具有超速报警功能。

关键词:自行车测速;单片机;光电传感器,LCD/LED显示一、系统设计1.1 设计任务和要求1.1.1设计任务设计一个自行车里程表、测速仪,可以将自行车一段时间内的行驶里程,瞬时速度,平均速度在LCD上显示出来,有一个能用LCD显示的腕式自行车里程显示器,传感器采用霍尔元器件,安装在自行车的车轮上;1.1.2 基本要求能实时显示当前的车速和行驶里程;能去除或保留原先的里程数;电池供电。

1.2 总体设计方案1.2.1系统总体设计思路本系统实现自行车运行过程中对行驶里程、当前瞬时速度、平均速度进行测量和显示。

总体设计思路如图1所示。

系统包括控制器模块、信号检测采集模块、显示模块、电源模块四部分。

号输入)传输给单片机,单片机计数器统计脉冲个数,定时器记录相应时间长度,经过运算,将行驶里程、平均速度送给LCD显示,当前(瞬时)速度送给7段数码管显示。

1.2.2方案设计与讨论速度测量原理测量自行车的速度的原理有两种:测量一定时间间隔t里自行车车轮转过的圈数q。

假设车轮周长为c,则速度V=c*q/t测量自行车车轮转过一圈的时间t,则速度V=c/t本里程表是根据第一个原理计算速度的。

传感器的选择红外光电传感器。

把红外对管分别安装在自行车车轮的两侧,当车轮转动时,辐条会阻挡红外对管的光路,接收管输出低电平,单片机根据此信号可计算里程、速度等。

红外对管的优点是测量精度高,缺点是安装比较复杂和容易受外来光线、灰尘等的影响。

开关型霍尔传感器。

霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。

把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖动的低电平,单片机根据此信号可计算里程、速度等。

霍尔传感器的优点是稳定和安装简易,缺点是成本较高。

干簧管。

干簧管是一种磁敏的有触点无源电子开关元件,应用在里程表上的原理与开关型霍尔传感器类似,把干簧管安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,干簧管闭合,单片机根据此信号可计算里程、速度等。

干簧管的优点是成本低廉和安装简易,缺点是比较脆弱和不够稳定。

本里程表选用开关型霍尔传感器,稳定、安装简易。

显示模块的选择动态扫描LED数码管显示。

里程表的显示内容以数字为主,利用LED数码管可基本满足使用要求,且成本较低。

但是用动态扫描的方式驱动数码管,亮度太低,在阳光下几乎看不见显示内容,失去使用价值。

串行静态LED数码管显示。

把单片机的串行口设置为方式0(同步移位寄存器),输出显示信息,可实现LED数码管的静态显示,其亮度令人满意。

但由于要使用74HC164/74LS164串并转换芯片驱动LED数码管,因此会带来体积大、成本高、功耗高等的缺点。

LCD液晶显示模块。

液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。

本里程表使用1602 LCD作为显示模块。

外加四个七段管LED用来显示5秒内的当前速度(近似瞬时速度)【功能描述】以AT89C51型单片机为核心,实时测量并显示自行车行驶过程中的各项参数,包括当前行驶累计时间、当前行驶累计里程(m)、当前速度(m/s)、平均速度(m/s)、当前行驶时间等,各参数分屏显示。

本里程表具有时钟功能,不安装在自行车上时也可作为时钟使用,实用性高。

【操作说明】本例子所采用的是27#比赛公路自行车,换算成公制,外径700mm,半径为350mm,探测器安装在距离轴心200mm处,探测到一次,车轮转动2.15m,轮胎具体规格700*28C,28是指车胎的横断面的宽度为28mm,则周长2150mm。

【结构框图】系统由霍尔元件传感器、显示模块、LED报警模块、供电模块和单片机小系统构。

【工作原理】里程、速度等都是由霍尔元器件测量。

通过频率计或者按钮输出脉冲,代表车轮转动圈数,已知自行车轮胎的周长为2.15m,轮子每转动一圈,安装在车轮辐条上的磁钢接近霍尔传感器一次,传感器送一个脉冲信号给单片机的外部中断计数器T1,产生一次中断,圈数加一。

圈数*2.15即为车前进距离,而通过单片机T0定时器记录时间,间隔5秒,5秒内的前进距离除以时间5秒,得到5秒内的当前速度。

而总里程L除以总时间t得到平均速度。

处理速度数据时同时刷新平均速度、当前速度、运行里程。

若速度大于25km/h(6.95m/s)则P3.7输出低电平,LED警示灯亮,提示速度过大。

单片机定时器0定时时间为50ms,每20次刷新系统时钟及计算累计行驶时间。

【具体电路图】【相关元器件及其简介】(1)AT89C51单片机简介AT89C51是一种低功耗、高性能CMOS 8位微控制器,具有2K 在系统可编程Flash 存储器。

使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89C51具有以下标准功能:4k字节Flash,128字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,2个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89C51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

(2)1602LCD液晶显示模块液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。

本里程表使用常见的1602字符型LCD模块。

1602可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、E三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。

(3)霍尔元件霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。

把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖动的低电平,单片机根据此信号可计算里程、速度等。

霍尔传感器的优点是稳定和安装简易,缺点是成本较高。

附录程序流程图及程序代码主程序流程图:中断服务子程序流程图:仿真截图:用频率计输入频率为5HZ的信号,得到速度10.75m/s手动按钮,得到当前速度7.74m/s全部运行结果(含超速报警)全部运行结果(未超速,报警灯未亮)程序代码:#include<reg52.h>#include<intrins.h> //包含_nop_();函数定义的头文件void timer0_int();sbit LED=P3^7;sbit E=P3^2; //1602使能引脚sbit RW=P3^1; //1602读写引脚sbit RS=P3^0; //1602数据/命令选择引脚unsigned char hour,minute,second;unsigned char n,count;unsigned long lengthbuf,lengthvalue;unsigned char code Table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0~9的共阴极七段管代码unsigned char code Table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//0~9的共阴极七段管代码,带小数点void Delay0(int Times);void Display();void delay() //延时5US{_nop_();_nop_();_nop_();_nop_();_nop_();}bit Busy(void) //读状态函数,判断液晶模块的忙碌状态{bit busy_flag = 0;RS = 0;RW = 1;E = 1;delay();busy_flag = (bit)(P0 & 0x80);E = 0;return busy_flag;}void wcmd(unsigned char del) //将模式设置指令或显示地址写入液晶模块{while(Busy());RS = 0;RW = 0;E = 0;delay();P0 = del;delay();E = 1;delay();E = 0;}void wdata(unsigned char del) ///将数据(字符ASCII码)写入液晶模块{while(Busy());RS = 1;RW = 0;E = 0;delay();P0 = del;delay();E = 1;delay();E = 0;}void L1602_init(void) //初始化液晶模块{wcmd(0x38); //功能设置,8位字长,2行,5*7点阵wcmd(0x0c); //显示设置,显示屏右移wcmd(0x06); //显示设置,光标右移,字符不移wcmd(0x01); //清屏命令}void L1602_string(unsigned char hang,unsigned char lie,unsigned char p) //将数据写入液晶模块{unsigned char a;if(hang == 1) a = 0x80; //显示在第一行if(hang == 2) a = 0xc0; //显示在第一行a = a + lie -1;wcmd(a);wdata(p);}void timer0_int() interrupt 1 using 3 //中断,用于构成时钟{n++;if(n==100){n=0;count++;second++;if(second>=60){second=0;minute++;if(minute>=60){minute=0;hour++;if(hour>=24) hour=0;}}}if(count==5){count=0;lengthvalue=(TL1+TH1*256)*215-lengthbuf;lengthbuf=(TL1+TH1*256)*215;}TH0=0xd8;TL0=0xf0;}int timer() //以秒为单位计算运行总时间{unsigned char a=100;unsigned char b;b=second+minute*60+hour*60*60;return b;}void Delay0(int Time) //延时子程序{int i;unsigned char j;for(i=0;i<Time;i++){for(j=0;j<150;j++){}}}void Display(unsigned int x) //在LED七段管中显示最高速度{unsigned char slc;unsigned char a,b,c,d;slc=0xef; //LED七段管选通a= x/1000;b=( x-a*1000)/100;c=( x-a*1000-b*100)/10;d= x%10;{P2=slc; //分别将最大速度的各个位扫描显示slc=slc<<1;P1=Table[a];Delay0(10);P2=slc;slc=slc<<1;P1=Table1[b];Delay0(10);P2=slc;slc=slc<<1;P1=Table[c];Delay0(10);P2=slc;slc=slc<<1;P1=Table[d];Delay0(10);}return;}void main(){unsigned char i=0 ;unsigned int v=0; //运行速度unsigned int vnow; //当前速度unsigned int a,b,c,d; //分别显示速度的十位,个位,十分位,百分位unsigned long quanshu; //定义车轮转动圈数unsigned long length,length1,length2,length3,length4,length5,length6; //定义运行长度以及长度的各个进位,unsigned int second1,second2,minute1,minute2,hour1,hour2;L1602_init();TMOD=0x51; //定时器T0,计数器T1,允许外部中断,T1工作方式01,T0工作方式01TH1=0x00; //计数器T1高位装初值TL1=0x00; //计数器T1低位装初值ET1=1; //计数器0开中断TR1=1; //计数器0开始工作TH0=0XD8; //T0设置时间常数TL0=0XF0;ET0=1;EA=1;TR0=1;IT1=1; //外部中断1请求触发方式EX1=1;P1=0X00; //P1、P2口装初值,用于LED七段管显示用P2=0xff;while(1){quanshu=TL1+TH1*256; //计算车轮旋转圈数length=quanshu*215; //骑行距离//计算里程各个进位length1=length/100000;length2=(length-length1*100000)/10000;length3=(length-length1*100000-length2*10000)/1000;length4=(length-length1*100000-length2*10000-length3*1000)/100;length5=(length-length1*100000-length2*10000-length3*1000-length4 *100)/10;length6=length%10;if(timer()>0)v=length/timer(); //计算速度vnow=lengthvalue/5; //计算当前速度(5秒内)if(vnow>=695) LED=0;else LED=1; //速度超过 6.95m/s(即25km/h),则报警灯亮Display(vnow); //在LED七段管上显示当前速度(5秒内)速度Delay0(20);a=(v/1000); //计算速度的各个进位b=(v-a*1000)/100;c=(v-a*1000-b*100)/10;d=v%10;second1=second/10; //计算分秒时的十位与个位second2=second%10;minute1=minute/10;minute2=minute%10;hour1=hour/10;hour2=hour%10;L1602_string(1,1,'s'); //在LCD相应位置显示变量或者常量L1602_string(1,2,'p');L1602_string(1,3,'e');L1602_string(1,4,'e');L1602_string(1,5,'d');L1602_string(1,6,' ');L1602_string(1,7,'L');L1602_string(1,8,'=');L1602_string(1,9,length1+48);L1602_string(1,10,length2+48);L1602_string(1,11,length3+48);L1602_string(1,12,length4+48);L1602_string(1,13,'.');L1602_string(1,14,length5+48);L1602_string(1,15,length6+48);L1602_string(1,16,'m');L1602_string(2,1,a+48);L1602_string(2,2,b+48);L1602_string(2,3,'.');L1602_string(2,4,c+48);L1602_string(2,5,d+48);L1602_string(2,6,'m');L1602_string(2,7,'/');L1602_string(2,8,'s');L1602_string(2,9,hour1+48);L1602_string(2,10,hour2+48);L1602_string(2,11,':');L1602_string(2,12,minute1+48);L1602_string(2,13,minute2+48);L1602_string(2,14,':');L1602_string(2,15,second1+48);L1602_string(2,16,second2+48);while(i<2) //LCD显示延迟{delay();i++; }i=0;}}。

相关文档
最新文档