首页 自行车里程测速仪设计本科毕业论文

自行车里程测速仪设计本科毕业论文

举报
开通vip

自行车里程测速仪设计本科毕业论文自行车里程测速仪设计本科毕业论文 编号:201234140123 本科毕业论文 基于单片机的自行车里程测速仪设计 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计,论文,~是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知~除文中特别加以标注和致谢的地方外~不包含其他人或组织已经发表或公布过的研究成果~也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体~均已在文中作了明确的说明并表示了谢意。 作 者 签...

自行车里程测速仪设计本科毕业论文
自行车里程测速仪设计本科毕业论文 编号:201234140123 本科毕业论文 基于单片机的自行车里程测速仪设计 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计,论文,~是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知~除文中特别加以标注和致谢的地方外~不包含其他人或组织已经发表或公布过的研究成果~也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体~均已在文中作了明确的说明并表示了谢意。 作 者 签 名: 日 期: 指导教师签名: 日 期: 使用授权说明 本人完全了解XX大学关于收集、保存、使用毕业设计,论文,的规定~即:按照学校要求提交毕业设计,论文,的印刷本和电子版本,学校有权保存毕业设计,论文,的印刷本和电子版~并提供目录检索与阅览服务,学校可以采用影印、缩印、数字化或其它复制手段保存论文,在不以赢利为目的前提下~学校可以公布论文的部分或全部内容。 作者签名: 日 期: I 摘 要 随着居民生活水平的不断提高,自行车不再仅仅是普通的运输、代步的工具,而是成为人们娱乐、休闲、锻炼的首选。自行车测速仪能够满足人们最基本的需求,让人们能清楚地知道当前的速度、里程、时间等物理量。 本文介绍了一种基于单片机控制的简易自动自行车速度以及里程计算系统,包括自行车里程表的硬件构成,软件逻辑以及程序代码。该里程测速系统以AT89C51作为系统控制核心,采用霍尔传感器来检测信号,通过一定时间间隔内对信号的采集,结合自行车本身车轮参数,经过单片机对采集信号进行分析计算,最终在LCD上显示车辆行驶里程、平均速度和瞬时速度,并且具有超速报警功能。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。 为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。正文中首先简单描述系统硬件工作原理,且附以系统硬件设计框图,论述了本次毕业设计所应用的各硬件接口技术和各个接口模块的功能及工作过程, 并具体描述了AT89C51接口的软、硬件调试;其次阐述了程序的流程和实现过程。仿真实验表明所设计的硬件电路及软件程序是正确的,满足设计要求。 关键词:里程/速度;霍尔元件;单片机;LCD II Abstract With the development of people’s life, the bicycle is not only the universal tool of transportation and substitute for walking, but becomes the first choice of entertainment and exercising. The bicycle speedometer can fulfill the basic need of people’s life, so that they can learn the speed, the mileage, time of the bicycle. This article describes a simple microcontroller-based control automatically bike speed and mileage calculation system, including bicycle odometer hardware structure, software logic, and program code. Velocity system of the mileage uses AT89C51 as the control core, uses the hall sensors to detect the signal within a certain time interval the signal acquisition, combined with a bicycle wheel parameters after a single-chip signal acquisition, analysis and calculation, the mileage, average speed and instantaneous speed will finally display on the LCD, and the system has speed alarm function. The system hardware circuit is simple, the subroutine is versatile, which fully meets the design requirements. For the sake of easy to expand with the design adoption mold a logic for turning construction, making procedure designing relation that change, software more shorter and more easier to understand. Make hardware control in software descended to moderate the operation. The text inside describes the system hardware work principle in brief first, and attach with the system hardware design frame diagram, discuss this graduate design a function for applied each hardware connecting a people the technique connects with each one a mold piece and work processes, combine to describe in a specific way the AT89C51 electric circuit connects oscular and soft, the hardware adjusts to try. Expatiated the process of the procedure the next in order with realizes process. The simulation results have proved that the hardware circuits design and software program is correct, and the system can meet the designing requirement completely. Keywords: Mileage / speed; Hall element; MCU; LCD III 目 录 1 绪论?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 1.1 课题研究的目的和意义??????????????????????????????????????????????????????????????????????????????????????????????? 1 1.2 国内外的发展现状分析??????????????????????????????????????????????????????????????????????????????????????????????? 1 1.3 研究的主要内容??????????????????????????????????????????????????????????????????????????????????????????????????????????? 2 2 系统总体设计?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 2.1 系统总体设计思路??????????????????????????????????????????????????????????????????????????????????????????????????????? 3 2.2 结构框图??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 3 2.3 速度测量原理??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 4 2.4 传感器的选择??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 4 2.5 显示模块的选择??????????????????????????????????????????????????????????????????????????????????????????????????????????? 4 2.6 操作说明??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 5 2.7 工作原理??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 5 3 硬件电路设计?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 6 3.1 系统总电路图??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 6 3.2 AT89C51单片机简介 ??????????????????????????????????????????????????????????????????????????????????????????????????? 7 3.3 1602LCD液晶显示模块??????????????????????????????????????????????????????????????????????????????????????????????? 9 3.4 霍尔元件??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????11 3.4.1 霍尔元件简介???????????????????????????????????????????????????????????????????????????????????????????????????????11 3.4.2 霍尔传感器测量原理?????????????????????????????????????????????????????????????????????????????????????????? 12 3.4.3 转速测量方法?????????????????????????????????????????????????????????????????????????????????????????????????????? 13 3.5 晶振复位电路????????????????????????????????????????????????????????????????????????????????????????????????????????????? 13 3.6 报警电路????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 14 4 软件程序设计???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 15 4.1 测量算法概述????????????????????????????????????????????????????????????????????????????????????????????????????????????? 15 4.2 主程序设计????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 15 4.3 中断子程序设计????????????????????????????????????????????????????????????????????????????????????????????????????????? 17 5 调试与仿真???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 18 IV 5.1 Proteus及Keil软件简介???????????????????????????????????????????????????????????????????????????????????????????? 18 5.1.1 Proteus软件?????????????????????????????????????????????????????????????????????????????????????????????????????????? 18 5.1.2 Keil软件??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 18 5.2 应用Keil软件进行程序调试???????????????????????????????????????????????????????????????????????????????????? 19 5.3 Proteus软件仿真????????????????????????????????????????????????????????????????????????????????????????????????????????? 19 5.4 仿真结果????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 19 6 结论???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 23 参考文献???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 24 致谢???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 25 附录???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 26 V 绪论 1 绪论 1.1 课题研究的目的和意义 中国人口众多,还是发展中国家,经济不发达制约了大多数人的消费水平,人们使用的交通工具主要还是自行车,它轻巧便捷,使用简单,很受人们的喜爱,同时也可以作为休闲运动工具,是人们锻炼身体的好工具。但随着时间的推移,人们追求的是具有更多功能的自行车,它能显示当前车子行驶的速度、里程、行车时间、最高行驶速度,甚至还有GPS全球定位系统。本文就是以这个作为出发点,尝试设计一款低成本多功能的测速仪,旨在让自行车驾驶者在驾驶时能够准确的知道车子的行驶状态,根据周围环境,做出正确的判断和操作,提高了驾驶的安全性。 另外自行车运动需一款测速装置,以了解运动情况,特别是对于运动员,他们需要一种能对实时运动情况进行测量并记录的仪器,通过记录的数据,运动员可以分析自己的训练成绩及训练过程,根据分析结果,可以调整自己的训练步骤。测速装置是对运动中各种参数进行测定。现测速表的设计已很多,多数由机械式或模拟数字电路来实现的,都存在体积大、精度低、不直观、功耗大、功能少等缺点。本文所述测速系统是以单片机为核心实现的,具有功能多、功耗小、直观准确以及可显示时间、总里程、速度等优点。 1.2 国内外的发展现状分析 随着微型计算机可靠性提高和价格的下降,用单片机测量转速已日趋普遍。我们知道,欲提高测量精度,必须先测出准确的转速,而原先在可控硅调速电路中采用的测速发电机方式已不能满足要求,必须采用数字测速的方法。转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法),该系统采用了M法(测频法)。本文采用频率法,检测的是输入脉冲数,这种方式又称频率法,它测出一定时间内输入的脉冲的个数,在控制系统中占有非常重要的地位。对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。所设计的基于霍尔元件的脉冲发生器要求成本低,构造简单,性能好。在电气控制系统中存在着较为恶劣的电磁环境,因此要求产品本身要具有较强的抗干扰能力。由于需要采用霍尔传感器的应用领域,如汽车、电机、手机和电脑都已经采用了该器件,而且这些市场在未来几年的增长较为稳定,而其他一些新的应用市场又不足以与上述几个市场相比,因此霍尔传感器在全球总的市场容量是较为稳定的,每年的增长率保 1 绪论 持在5%到10%之间。因为各种应用电机的部件、节气门位置的检测、各种阀体位置的检测都会用到霍尔传感器。而且,在中国市场中,国外厂商为了降低成本,陆续将零部件拿到中国进行设计和生产,这也进一步提升了中国市场霍尔传感器的应用量。随着它在消费电子市场上的应用越来越广,如何控制功耗和成本将是厂商面临的挑战,而且,它还面临生产测试技术方面的挑战。 国内外现在都有生产销售类似的自行车测速仪里程表,有些简单的产品就是单单只有测速或里程的功能,比较复杂的产品除了测速和里程功能外,还加入了GPS全球定位、单次行车里程、平均速度、时钟、行车时间、车轮转数。未来的发展趋势可能还加入MP3和短信收发功能,使得自行车测速仪更加的人性化,相信会受到更多人的青睐。 1.3 研究的主要内容 本课题主要任务是利用单片机等部件设计的一个可用LCD显示时间、行驶里程及平均速度,七段数码管显示瞬时速度的自行车测速仪。本文主要介绍了自行车测速仪的设计思想、电路原理、 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论证以及元件的选择等内容,整体上分为硬件部分和软件部分设计。本文首先简要的对该课题的自行车测速仪设计进行总体的介绍;继而具体介绍了自行车测速仪的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计、传输电路的设计等;然后阐述了该自行车测速仪的软件设计,包括主程序设计和子程序的设计;最后对本次设计进行了系统的仿真和 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf 。本设计要求对自行车进行实时速度的测量,显示出速度值、行车里程、行车时间以及行车的平均速度。 2 系统总体设计 2 系统总体设计 2.1 系统总体设计思路 本系统实现自行车运行过程中对行驶里程、当前瞬时速度、平均速度进行测量和显示。总体设计思路如图2-1所示。系统包括控制器模块、信号检测采集模块、显示模块、电源模块四部分。 电源模块 信号输入模块 控制器模块 显示模块 图2-1总体设计思路 系统工作时,采用9V的电池供电,进行稳压处理,将9V稳降到5V以供单片机以及各芯片使用,传感器采集到信号(用按键代表脉冲或者用频率输入代表信号输入)传输给单片机,单片机计数器统计脉冲个数,定时器记录相应时间长度,经过运算,将行驶里程、平均速度送给LCD显示,当前(瞬时)速度送给7段数码管显示,根据设定的报警值决定报警灯的点亮情况。 2.2 结构框图 系统总体设计的结构框图如图2-2所示。 复位清零 数码管显示 89C51电池供电 LCD显示 单频率计模拟 片LED警报 机 传感器 按钮模拟 图2-2 系统结构框图 系统由霍尔元件传感器、显示模块、LED报警模块、供电模块和单片机小系统构成。 3 系统总体设计 2.3 速度测量原理 测量自行车的速度的原理有两种: 测量一定时间间隔t里自行车车轮转过的圈数q,假设车轮周长为c,则速度V=c*q/t;测量自行车车轮转过一圈的时间t,则速度V=c/t。本里程表是根据第一个原理计算速度的。 2.4 传感器的选择 红外光电传感器。把红外对管分别安装在自行车车轮的两侧,当车轮转动时,辐条会阻挡红外对管的光路,接收管输出低电平,单片机根据此信号可计算里程、速度等。红外对管的优点是测量精度高,缺点是安装比较复杂和容易受外来光线、灰尘等的影响。 开关型霍尔传感器。霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖动的低电平,单片机根据此信号可计算里程、速度等。霍尔传感器的优点是稳定和安装简易,缺点是成本较高。 干簧管。干簧管是一种磁敏的有触点无源电子开关元件,应用在里程表上的原理与开关型霍尔传感器类似,把干簧管安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,干簧管闭合,单片机根据此信号可计算里程、速度等。干簧管的优点是成本低廉和安装简易,缺点是比较脆弱和不够稳定。 本里程表选用开关型霍尔传感器。 2.5 显示模块的选择 动态扫描LED数码管显示。里程表的显示内容以数字为主,利用LED数码管可基本满足使用要求,且成本较低。但是用动态扫描的方式驱动数码管,亮度太低,在阳光下几乎看不见显示内容,失去使用价值。 串行静态LED数码管显示。把单片机的串行口设置为方式0(同步移位寄存器),输出显示信息,可实现LED数码管的静态显示,其亮度令人满意。但由于要使用74HC164/74LS164串并转换芯片驱动LED数码管,因此会带来体积大、成本高、功耗高等的缺点。 LCD液晶显示模块。液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。 本里程表使用1602 LCD作为显示模块。外加四个七段管LED用来显示5秒内的 4 系统总体设计 当前速度(近似瞬时速度)。 2.6 操作说明 本例子所采用的是27#比赛公路自行车,换算成公制,外径700mm,半径为350mm,探测器安装在距离轴心200mm处,探测到一次,车轮转动2.15m,轮胎具体规格700*28C,28是指车胎的横断面的宽度为28mm,则周长2150mm。 而在实际运用中则可以根据具体的情况来通过程序来设定具体的参数,以达到对各参数更精确的测量与显示。 2.7 工作原理 里程、速度等都是由霍尔元器件测量。通过频率计或者按钮输出脉冲,代表车轮转动圈数,已知自行车轮胎的周长为2.15m,轮子每转动一圈,安装在车轮辐条上的磁钢接近霍尔传感器一次,传感器送一个脉冲信号给单片机的外部中断计数器T1,产生一次中断,圈数加一。圈数*2.15即为车前进距离,而通过单片机T0定时器记录时间,间隔5秒,5秒内的前进距离除以时间5秒,得到5秒内的当前速度。而总里程L除以总时间t得到平均速度。 系统处理速度数据时同时刷新平均速度、当前速度及运行里程。 若速度大于25.2km/h(7m/s)则P3.7输出低电平,LED警示灯亮,提示速度过大。 单片机定时器0定时时间为50ms,每20次刷新系统时钟及计算累计行驶时间。 5 硬件电路设计 3 硬件电路设计 自行车的速度里程表的硬件电路设计是基础部分,它包括信号的捕获、放大、整形,单片机的计算处理,数码管的实时显示和单片机外围基本电路的设计,两大主要器件就是传感器和单片机。 传感器是获取自然或生产领域中信息的关键器件,是现代信息系统和各种设备不可缺少的信息采集工具。磁传感器是一种将磁学量信号转变为电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的飞速发展和计算机应用的普及,需要大量的传感器将被测或被控的非电信号转换成可与计算机兼容的电信号。其中最具代表的磁传感器就是霍尔传感器,在自动检测系统中,利用霍尔传感器测转数是一种最基本的测量工作。 单片机是本次设计的核心部件,它是信号从采集到输出的桥梁,而且包括计算、定时、信息处理等功能。 3.1 系统总电路图 系统设计的总电路图如图3-1所示,包括信号输入、显示、控制和复位等模块。 LCD1GNDRP11VSS2VCCVDD3GNDVCCVCC123456789PABCDEFGD1234RS4RSP2.4P2.5P2.6P2.7RP2WR5RWE69E1408P1.0VCC23977P1.1P0.0D033886P1.2P0.1D143795P1.3P0.2D2536104P1.4P0.3D3635113P1.5P0.4D47AT89C5134122P1.6P0.5D5833131P1.7P0.6D693214RESP0.7D7VCCRS1031C9RXD/P3.0EA/VPPWR1130TXD/P3.1ALEE1229S1INT0/P3.2PSENS322UF13283INT1/P3.3P2.0R614272T0/P3.4P2.1P3.5152615Hz10KT1/P3.5P2.21625SW-SPDTS2WR/P3.6P2.3R2GNDC11P3.71724P2.4P3.5RD/P3.7P2.4VCC1823P2.51KXLAT1P2.5D51922P2.62XLAT2P2.6R130pFY12021P2.7P3.7VSSP2.7VCCXTALGNDC122001GNDLED1 30pFGND D11000pF/25V7805470pF/25VVCCTRAN1VinVout图3-1 系统总电路图 220V/9V/5WGNDD2C16 AC1C2104C3C4D321 D4 GND 硬件电路设计 3.2 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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 AT89C51系列单片机的系统有5个中断源,2个优先级,可实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各优中断源的优先级;同一优先级内各终端同时提出中断请求时,由内部的查询逻辑确定其响应次序。 140P1.0VCC239P1.1P0.0338下面按引脚功能分为4个部分叙述个引脚的功能,P1.2P0.1437P1.3P0.2536P1.4P0.3635其引脚图如图3-2所示。 P1.5P0.4780C5134P1.6P0.5833P1.7P0.6932(1)电源引脚VCC和VSS RESP0.71031RXD/P3.0EA/VPP1130TXD/P3.1ALE1229INT0/P3.2PSEN? VCC(40脚):接+5V电源正端; 1328INT1/P3.3P2.01427T0/P3.4P2.11526T1/P3.5P2.2? VSS(20脚):接+5V电源正端。 1625WR/P3.6P2.31724RD/P3.7P2.41823XLAT1P2.5(2)外接晶振引脚XTAL1和XTAL2 1922XLAT2P2.62021VSSP2.7? XTAL1(18脚):接外部石英晶体的一端。在单 片机内部,它是一个反相放大器的输入端。用外部时钟图3-2 89C51引脚图 时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。 ? XTAL2(19脚):接外部晶体的另一端。在单片机内部,接至片内振荡反相放大器的输出端。当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。 (3)控制信号或与其它电源复用引脚 控制信号或与其它电源复用引脚有RES/VPD、ALE、PSEN和VPP等4种形式。 7 硬件电路设计 ? RES/VPD(9脚):RES即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。 ? ALE(30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低8位地址。 ? PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。 ? VPP(31脚):该端为访问外部程序储器控制信号,低电平有效。当该端保持高电平时,单片机访问片内程序存储器4KB(MS-52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当该端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在EPROM编程期间,该引脚用于接21V的编程电源VPP。 (4)输入/输出(I/O)引脚P0口、P1口、P2口及P3口 ? P0口(39脚-22脚):P0.0-P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。 ? P1口(1脚-8脚):P1.0-P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。 ? P2口(21脚-28脚):P2.0-P2.7统称为P2口,一般可作为准双向I/O接口。当接有外部程序存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。 ? P3口(10脚-17脚):P3.0-P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立 8 硬件电路设计 定义为第1功能的输入输出或第2功能。P3口的第2功能见表3-1。 表3-1 P3管脚含义 引脚 第2功能 P3.0 RXD(串行口输入端) P3.1 TXD(串行口输出端) P3.2 (中断0请求输入端,低电平有效) INT0 P3.3 (中断1请求输入端,低电平有效) INT1 T0(时器/计数器0计数脉冲端) P3.4 P3.5 T1(时器/计数器1计数脉冲端) P3.6 (部数据存储器写选通信号输出端,低电平有效) WR P3.7 (部数据存储器读选通信号输出端,低电平有效) RD 综上所述,该系列单片机的引脚作用可归纳为以下两点: (1)单片机功能多,引脚数少,因而许多引脚具有第2功能。 (2)单片机对外呈3总线形式,由P2、P0口组成16位地址总线;由P0口分时复用作为数据总线。 3.3 1602LCD液晶显示模块 本里程表使用常见的1602字符型LCD模块。1602可以显示2行16个字符,有8 位数据总线D0-D7,和RS、R/W、E三个控制端口,工作电压为5V,并且带有字符 对比度调节。 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,本设计采用14 脚LCD,引脚图如图3-3所示,各引脚接口说明如表3-2所示: DCLDDDNSW01234567VSSVGRREDDDDDDDD 1234567890123411111 图3-3 LCD1602引脚图 9 硬件电路设计 表3-2 引脚接口说明表 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 8 D1 电源地 数据 2 VDD 9 D2 电源正极 数据 3 VL 10 D3 液晶显示偏压 数据 4 RS 11 D4 数据/命令选择 数据 5 R/W 12 D5 读/写选择 数据 6 E 13 D6 使能信号 数据 7 D0 14 D7 数据 数据 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度 最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS 和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时 可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7,14脚:D0,D7为8位双向数据线。 1602 LCD相应的控制命令如表3-3所示: 表3-3 控制命令表 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 序号 指令 1 0 0 0 0 0 0 0 0 0 1 清显示 2 0 0 0 0 0 0 0 0 1 * 光标返回 3 0 0 0 0 0 0 0 1 I/D S 置输入模式 4 0 0 0 0 0 0 1 D C B 显示开/关控制 5 0 0 0 0 0 1 S/C R/L * * 光标或字符移位 6 0 0 0 0 1 DL N F * * 置功能 7 0 0 0 1 置字符发生存贮器地字符发生存贮器地址 址 8 0 0 1 置数据存贮器地址 显示数据存贮器地址 9 0 1 BF 读忙标志或地址 计数器地址 10 1 0 写数到CGRAM或要写的数据内容 DDRAM 11 1 1 从CGRAM或读出的数据内容 DDRAM读数 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说 明:1为高电平、0为低电平) 指令 1:清显示。指令码01H,光标复位到地址00H位置。 10 硬件电路设计 指令 2:光标复位。光标返回到地址00H。 指令3:光标和显示模式设置。I/D:光标移动方向,高电平右移,低电平左移;S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。 指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示;C:控制光标的开与关,高电平表示有光标,低电平表示无光标;B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令5:光标或显示移位。S/C:高电平时移动显示的文字,低电平时移动光标。 指令6:功能设置命令。DL:高电平时为4位总线,低电平时为8位总线;N:低电平时为单行显示,高电平时双行显示;F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。 指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。 指令9:读忙信号和光标地址。BF:忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据。 指令11:读数据。 该液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。 3.4 霍尔元件 霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖动的低电平,单片机根据此信号可计算里程、速度等。霍尔传感器的优点是稳定和安装简易,缺点是成本较高。 3.4.1 霍尔元件简介 根据霍尔效应,人们用半导体材料制成的元件叫霍尔元件。它具有对磁场敏感、结构简单、体积小、频率响应宽、输出电压变化大和使用寿命长等优点,因此,在测量、自动化、计算机和信息技术等领域得到广泛的应用。霍尔传感器A3144是宽温、开关型霍尔效应传感器,其工作温度范围可达-40?,150?。它由电压调整电路、反相电源保护电路、霍尔元件、温度补偿电路、微信号放大器、施密特触发器和OC门输出极构成,通过使用上拉电阻可以将其输出接入CMOS逻辑电路。该芯片具有尺寸 11 硬件电路设计 小、稳定性好、灵敏度高等特点。A3144E系列单极高温霍尔效应集成传感器是由稳压电源,霍尔电压发生器,差分放大器,施密特触发器和输出放大器组成的磁敏传感电路,其输入为磁感应强度,输出是一个数字电压讯号。它是一种单磁极工作的磁敏电路,适用于矩形或者柱形磁体下工作。霍尔传感器的外形图和与引脚图如图3-4所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。 ?霍尔元件和磁钢 ?管脚图 图3-4 霍尔传感器的外形图 该霍尔传感器的接线图如图3-5所示。 图3-5 霍尔传感器的接线图 3.4.2 霍尔传感器测量原理 测量转速的第一步就是要将车轮的转速表示为单片机可以识别的脉冲信号,从而进行脉冲计数。霍尔器件作为一种转速测量系统的传感器,它有结构牢固、体积小、重量轻、寿命长、安装方便等优点,因此选用霍尔传感器检测脉冲信号,其基本的测量原理如图3-6所示,当车轮转动时,带动传感器运动,产生对应频率的脉冲信号,经过信号处理后输出到计数器或其他的脉冲计数装置,进行转速的测量。 霍尔传感器 磁钢 图3-6 霍尔传感器测量原理 12 硬件电路设计 3.4.3 转速测量方法 转速的测量方法很多,根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和MPT法(频率周期法),该系统采用了M法(测频法)。由于转速是以单位时间内转数来衡量,在变换过程中多数是有规律的重复运动。根据霍尔效应原理,将一块永久磁钢固定在电机转轴上的转盘边沿,转盘随侧轴旋转,磁钢也将跟着同步旋转,在转盘下方安装一个霍尔器件,转盘随轴旋转时,受磁钢所产生的磁场的影响,霍尔器件输出脉冲信号,其频率和转速成正比。脉冲信号的周期与电机的转速有以下关系: 60n= PT 式中:n为电机转速;P为电机转一圈的脉冲数;T为输出方波信号周期。根据上式即可计算出直流电机的转速。 霍尔器件是由半导体材料制成的一种薄片,在垂直于平面方向上施加外磁场B,在沿平面方向两端加外电场,则使电子在磁场中运动,结果在器件的两个侧面之间产生霍尔电势。其大小和外磁场及电流大小成比例。霍尔开关传感器由于其体积小,无触点,动态特性好,使用寿命长等特点,故在测量转动物体旋转速度领域得到了广泛应用。 在本设计的仿真中,因缺少霍尔元件,所以用按键代表脉冲或者用频率输入代表信号输入,以达到系统的仿真。 3.5 晶振复位电路 晶振电路为单片机89C51工作提供时钟信号,芯片中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。电路中的外接石英晶体及电容C11、C12接在放大器的反馈回路中构成并联振荡电路,系统的晶振电路如图3-7所示。由于外接电容C11、C12的容量大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,电容的容量大小范围为10pF-30pF;如果使用陶瓷谐振,则电容容量范围大小为10pF-40pF。本设计中使用石英晶体,电容的容值设定为30pF。 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分合过程中引起的抖动而影响复位。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89C51的复位信 13 硬件电路设计 号是从RES引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RES引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位,本设计采用的是手动按钮复位。 手动按钮复位需要人为在复位输入端RES上加入高电平,采用的办法是在REST端和正电源VCC之间接一个按钮。当人为按下按钮时,则VCC的+5V电平就会直接加到RES端,系统复位。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,设计完全能够满足复位的时间要求。复位电路中开关为手动复位开关,电容C9可避免高频谐波对电路的干扰。89C51的复位电路如图3-7所示。 VCC 140P1.0VCC239P1.1P0.0C9338P1.2P0.122UF437P1.3P0.25RS36S1P1.4P0.36WR35P1.5P0.4R67AT89C5134EP1.6P0.583310KP1.7P0.6932RESP0.71031P3.5RXD/P3.0EA/VPP1130TXD/P3.1ALEGNDC1112P3.729INT0/P3.2PSEN1328INT1/P3.3P2.0142730pFT0/P3.4P2.1Y130pF1526T1/P3.5P2.2XTAL1625C12WR/P3.6P2.3121724RD/P3.7P2.4GND1823XLAT1P2.51922XLAT2P2.6 GND2021VSSP2.7图3-7 晶振复位电路 3.6 报警电路 本次报警电路采用LED报警灯报警,当即时速度超过预定值是灯亮报警,指示灯亮,提示应该减速。报警电路图如图3-8所示。 R1 VCCP3.7 图3-8 报警电路 14 软件程序设计 4 软件程序设计 4.1 测量算法概述 速度测量是工控系统中最基本的需求之一,最常用的是用数字脉冲测量某根轴的转速,再根据机械比、直径换算成线速度。脉冲测速最典型的方法有测频率(M法)和测周期(T法)。 M法是测量单位时间内的脉数换算成频率,因存在测量时间内首尾的半个脉冲问题,可能会有2个脉的误差。速度较低时,因测量时间内的脉冲数变少,误差所占的比例会变大,所以M法宜测量高速。如要降低测量的速度下限,可以提高编码器线数或加大测量的单位时间,使用一次采集的脉冲数尽可能多。 T法是测量两个脉冲之间的时间换算成周期,从而得到频率。因存在半个时间单位的问题,可能会有1个时间单位的误差。速度较高时,测得的周期较小,误差所占的比例变大,所以T法宜测量低速。如要增加速度测量的上限,可以减小编码器的脉冲数,或使用更小更精确的计时单位,使一次测量的时间值尽可能大。 设计中综合考虑测速精度和系统反应时间,本设计用测量脉冲频率来计算历程,因而具有较高的测距精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之内,相对于整个里程来说不是很大。另外,还应尽量保证其他子模块在编程时的通用性和高效性。 4.2 主程序设计 在硬件设计完毕之后就是设计中最核心和最为主要的软件部分设计。所谓软件设计就是把软件需求变换成软件的具体设计方案(即模块结构)的过程。模块化结构设计即是根据要求和硬件设计的结构,将整个系统的功能分成许多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法使得系统的整个功能和各部分的功能趋于明朗化。当系统出现问题就可以根据功能设置找出问题的根源,从而更快地解决问题。所以在整个设计过程中软件设计必须与硬件设计结合在一起。 在主程序模块中,需要完成对各接口芯片的初始化、自行车里程和速度的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器、速度寄存器,并对它们进行初始化。然后主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计速等不同的操作。 15 软件程序设计 P1.0和P1.1口分别用于显示里程状态和速度状态。P1.2、P1.3、P1.6和P1.7口分别用于设置轮圈的大小,低电平有效。P3.0是用于里程和速度切换的,低电平为显示速度,高电平为显示里程。中断0用于对轮子圈数的计数输入,轮子每转一圈,霍尔传感器输出一个低电平脉冲。将根据里程寄存器中的内容计算和判断出行驶里程数。中断1用于控制定时器T1的启/停,当输入为0时关闭定时器。此控制信号是将轮子圈数的计数经二分频后形成。这样,每次定时器T1的开启时间刚好为转一圈的时间,根据轮子的周长就可以计算出自行车的速度。其程序流程如图4-1所示。 开始 LCD初始 化 初始化并启动T0和T1 计算圈数和行 驶距离 是 计算速度判点亮led警示灯 断是否超速 否 送数据到数码管 计算平均速度 显示时间、速度及里程 图4-1 程序流程图 16 软件程序设计 4.3 中断子程序设计 定时中断是为满足定时或计数的需要而设置的。在单片机内部有两个定时/计数器,以对其中的计数结构进行计数的方法,来实现定时或计数功能。当结构发生计数溢出时,即表明定时时间或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志,作为单片机接受中断请求的标志。这种中断请求是在单片机芯片内部发生的,因此无须在芯片上设置引入端。 定时/计数器控制寄存器TCON是8位寄存器,地址为88H,可以位寻址。其高4位用于定时/计数器中断控制,低4位借给外部中断,用做中断标志和触发方式选择位。本设计采用定时中断,对自行车的里程和速度进行计数。中断子程序流程图如图4-2。 开始 初始化 中断开始 T0定时器自动加1 设置特殊寄存器 设置定时常数 否 是否到1秒 设置计数器 是 位 依次秒、分、时进 开中断 中断返回 等待中断 INT0 刷新时间、里程、 时间等 图4-2 中断子程序流程图 17 调试与仿真 5 调试与仿真 5.1 Proteus及Keil软件简介 5.1.1 Proteus软件 Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。Proteus软件提供多种现实存在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供Schematic Drawing、SPICE仿真与PCB设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、AVR、PIC等常用的MCU,并提供周边设备的仿真,例如LED、示波器等。Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持Keil和MPLAB等编译器。一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础、模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等工作。 5.1.2 Keil软件 KeilC51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Uvision与Ishell分别是C51 for Windows和For Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件,然后分别由C51及A51编译器编译生成目标文件(OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器DScope51或TScope51使用进行源代码级调试,也可由仿真器 18 调试与仿真 使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 5.2 应用Keil软件进行程序调试 软件的调试必须在开发系统的支持下进行。先分别调试通过各个模块程序,然后调试中断服务程序,最后调试主程序,将各部分连接进行调试。调试的范围可以由小到大,逐步增加,必要的中间信号可以先做设定。通常交叉使用单步运行,断点运行,连续运行等多种方式,每次执行完毕后,检查CPU执行现场,RAM的有关内容,I/O接口的状态等,发现一个问题,解决一个问题,直至全部通过。 首先新建一个 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 项目文件;其次为工程选择目标器件;再次为工程项目设置软硬件调试环境;并创建源程序文件并输入程序代码,及保存创建的源程序项目文件;最后把源程序文件添加到项目中。 5.3 Proteus软件仿真 原理图是在原理图编辑窗口中的蓝色方框内绘制完成的,通过文件中的新建设计选项,可以调整原理图设计页面大小。绘制原理图时首先应根据需要选取元器件,Proteus库中提供了大量元器件原理图符号,利用Proteus的搜索功能能很方便地查找需要的元器件。 首先根据需要选择器件。单击元器件列表窗口上边的按钮P,弹出元器件选择窗口。在该窗口左上方的关键字栏内键入AT89C51,窗口中间的结果栏将显示出元器件库中所有AT89C51单片机芯片,选择其中的AT89C51,窗口右上方将显示出AT89C51图形符号,同时显示该器件的虚拟仿真模型,单击确定按钮后,AT89C51将出现在器件列表窗口,照此方法选择所有需要的元器件。 器件选择完毕后,就可以开始绘制原理图了。先用鼠标从器件选择窗口选中需要的器件,预览窗口将出现该器件的图标。再将鼠标指向编辑窗口并单击左键,将选中的器件放置到原理图中。 放置电源和地线端时,要从终端按钮栏中选取。在两个元器件之间进行连线的方式很简单,先将鼠标指向第一个器件的连接点并单击左键,再将鼠标移到另一个器件的连接点并单击左键,这两个点就连接到一起了。对于相隔较远,直接连线不方便的器件,可以用标号的方式进行连接。 5.4 仿真结果 (1)频率计输入 19 调试与仿真 用频率计输入频率为5HZ和1HZ的信号时,仿真结果分别如图5-1、5-2所示。 图5-1 频率计输入5HZ的信号所得值 用频率计输入频率为5HZ的信号,得到速度10.75m/s,其中LCD显示的分别为历程L、全程平均速度、运行时间,LED显示的伟瞬时速度。 图5-2频率计输入1HZ的信号所得值 用频率计输入频率为1HZ的信号,得到速度2.15m/s,其中LCD显示的分别为历程L、全程平均速度、运行时间,LED显示的伟瞬时速度。 (2)手动按钮 手动按钮,得到当前速度3.44m/s,按钮按得越快,速度越高,相反,不按按钮的 20 调试与仿真 话,速度回慢慢降为0。这是因为按钮按一下相当于一个脉冲信号,按的越快,脉冲的频率越高,则所得的速度越高。仿真结果如图5-3所示。 图5-3手动按钮得到的值 (3)全部运行结果(超速报警) 当行驶速度超过7m/s时,系统红灯点亮以报警,仿真结果如图5-4所示。 图5-4 全部运行结果1(报警) (4)全部运行结果(未超速,报警灯未亮) 当行驶速度小于7m/s时,系统不报警,报警灯未亮,仿真结果如图5-5所示。 21 调试与仿真 图5-5 全部运行结果2(未报警) (5)复位清零 当按下复位按钮时,LCD所有数据将清零,重新统计,仿真结果如图5-6所示。 图5-6 按复位键清零 22 结论 6 结论 该课题的主要任务是开发一个以AT89C51单片机为核心的自行车的速度里程表。本设计主要分为硬件部分和软件部分,硬件部分着重考虑硬件电路的简单性,故尽可能简化硬件电路,节省线路板的空间,达到硬件电路最优化设计。软件采用汇编语言编写,采用模块化设计思想,程序可读性强。通过仿真、实验验证了系统的可行,能满足设计要求,达到设计的指标,实现对自行车里程/速度的计算功能,并用LCD显示,里程与速度分别根据以下公式求得: 里程=脉冲总数×车轮周长; 速度=车轮周长?车轮转一圈所用的时间; 根据此公式将最终显示出里程和速度。当车轮转动,小磁片滑过霍尔元件时,霍尔元件输出一脉冲,可根据车轮周长计算里程,选择不同的车轮周长,里程数的变化有所不同;当按下开关,显示速度时,LCD会根据转速的不同显示不同的数字。 本次设计电路简单、低成本,而且能够满足人们对高性能、多功能自行车的要求,可在很多里程/速度测量场合使用,具有广泛的应用前景。 本系统的设计与制作工作已经全部完成,基本达到了预期的目的与要求。系统的调试与仿真结果让人满意。动态显示、显示内容的实时更新、数据的准确度等方面做得比较好,但是由于时间仓促、条件有限,设计结果并不是很好,还存在诸如:显示内容的单一,数据波动、抗干扰能力差等问题,所以此设计还存在诸多需要改进的地方。 从选题到现在已经有几个月的时间了,这个设计主要经历了以下几个过程:广泛查阅资料、文献综述、总体思路的确定、方案的具体化及论证、方案的确定、设计制板及硬件电路的完成、软件的调试、系统的调试,还包括论文的定搞,我认为整个过程是一个联系非常紧密的过程,前一过程的结果为后一过程奠定了基础。在整个过程中,本人不仅对单片机控制系统的每一个细节有了比较深入的掌握,而且对关于系统扩展的相关知识有了感性的认识,不仅掌握了大量的专业知识,更学会了系统模块设计的基本思想。 23 参考文献 参考文献 [1]张友德.单片微型机原理、应用与实验[M].上海:复旦大学出版社,2003. [2]何立民.单片机高级教程-应用与设计[M].北京:北京航空航天大学出版社,2007. [3]李刚,林凌.新概念单片机教程[M].天津:天津大学出版社,2007. 机电产品开发与创新,2006. [4]宋受俊.基于单片机的电机运动控制系统设计[J]. [5]高峰.单片微型计算机原理与接口技术[M].北京:北京科学出版社,2009. [6]樊尚春.传感器技术及应用[M].北京:北京航空航天大学出版社,2004. [7]潘永雄.新编单片机原理与应用[M].西安:西安电子科技大学出版社,2003. [8]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2003. [9]李学礼.基于Proteus的8051单片机实例教程[M].北京:电子工业出版社,2008. [10]沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出版社,2008. [11]徐爱钧.单片机原理实用教程基于Proteus虚拟仿真[M].北京:电子工业出版社,2009. [12]陈兴文,刘燕.单片机应用系统硬件调试技巧[J].中国测控网,2009. [13]陈享成,耿长青.基于单片机的LCD显示终端设计[J].电力自动化设备,2007年09期. [14]代启化.基于Proteus的电路设计与仿真[J].现代电子技术.2006年19期. [15]侯玉宝.基于Proteus的51系列单片机设计与仿真[M].北京:电子工业出版社,2008. [16]蔡希彪,曹洪奎.单片机电子时钟系统的设计与仿真[J].中国科技信息,2007年04期. [17]李光飞.单片机设计实例指导[M].北京:北京航空航天大学出版社,2004. [18]王为青,程国钢.单片机Keil Cx51应用开发技术[M].北京:人民邮电出版社,2007. [19]雷玉堂.光电检测技术(第二版)[M].北京:中国计量出版社,2009. [20]刘畅生,寇宝明,钟龙.霍尔传感器实用手册[M].北京:中国电力出版社,2009. 24 致谢 致谢 时间飞逝,四年的大学生活即将结束,同时也预示着我的学生时代即将结束,步入人生的另一个阶段。在论文工作即将结束之际,回顾四年来的求学历程,深刻感受到自己取得的每一点进步都离不开老师和同学们的关怀和帮助。 首先要感谢我的指导导师—老师,我在做毕业设计的时候遇到许多问题,老师总是很热情、积极的帮我解决,并提出自己的建议。还有老师一直在督促我的论文进展,使我为论文的完成赢得了时间。在资料的准备中,网络资源给了我许多论文相关的信息量,同时学院图书馆的书籍也发挥了重要作用。在设计时,老师给予了很好的指点。我要深深地感谢老师。 其次,我要衷心感谢所有信息工程学院的授课老师以及工作人员,他们广博的知识和学术方面高深的造诣使我能够掌握许多新的知识和技能;他们认真敬业的工作态度和孜孜不倦的教诲帮助我得以顺利完成学业。 我还要感谢平时关心和帮助过我的同学,特别是几位室友。他们在我的大学阶段的学习和生活中,也给予了极大的关心和帮助的指导,使我能够顺利的完成实验和论文工作。 最后,我要感谢我的父母,这么年来他们一直给我鼓励和支持。他们无私的奉献是我在人生道路上克服困难,勇往直前的最大动力。 25 附录 附录 程序源代码: #include #include //包含_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) //读状态函数,判断液晶模块的忙碌状态 { 26 附录 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(); 27 附录 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++; 28 附录 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) //延时子程序 29 附录 { int i; unsigned char j; for(i=0;i0) 32 附录 v=length/timer(); //计算速度 vnow=lengthvalue/5; //计算当前速度(5秒内) if(vnow>=700) LED=0;else LED=1; //速度超过7m/s(即25.2km/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); 33 附录 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; } } 内 34 附录 部资料 仅 供参考 内 部资料 仅 供参考 35
本文档为【自行车里程测速仪设计本科毕业论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_037433
暂无简介~
格式:doc
大小:224KB
软件:Word
页数:49
分类:企业经营
上传时间:2017-10-13
浏览量:146