毕业论文-基于单片机的自行车健身系统的设计说明_第1页
毕业论文-基于单片机的自行车健身系统的设计说明_第2页
毕业论文-基于单片机的自行车健身系统的设计说明_第3页
毕业论文-基于单片机的自行车健身系统的设计说明_第4页
毕业论文-基于单片机的自行车健身系统的设计说明_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的自行车健身系统设计摘要随着人们生活水平的提高,自行车不仅是通用的交通工具和代步工具,而且成为娱乐和锻炼的首选。自行车里程/速度可以满足人们生活的基本需要,这样他们就可以了解自行车的速度和里程。本文阐述了基于霍尔元件的自行车里程/速度设计。以STC89C52为核心,利用A44E霍尔元件测量转速,实现测量和统计。里程信息由24C02保存,当电源关闭时,自行车速度可在LCD上显示。本文详细介绍了自行车里程/速度仪的硬件电路和软件设计。硬件方面,将自行车一个周期的脉冲数传入单片机系统。然后将单片机系统处理后的信号送到显示器上显示。软件方面,在汇编语言中,程序采用模块化设计。该系统硬件简单,子程序通用,满足设计要求。关键词:里程/速度霍尔元件单片机液晶显示器目录前言1第1章绪论1第1.1节选题背景2第1.2节研究目的与研究方法2第2章系统方案设计4第2.1节总体方案4第2.2节方案的确定6第2.3节自行车健身系统软件方案的设计6第3章硬件电路的设计8第3.1节概述8第3.2节单片机与电路的设计8第3.3节传感器与其测量系统19第3.4节其它器件的介绍21第4章软件程序的设计25第4.1节概述25第4.2节总体程序的设计25第4.3节中断子程序的设计26第4.4节数据处理子程序的设计28第4.5节显示子程序的设计29第5章系统仿真与调试31第5.1节自行车健身系统的仿真31第5.2节自行车健身系统的调试32第5.3节调试故障与原因分析34结论36附录一37附录二38附录三39附录四41参考文献46致47序自20世纪70年代单片机问世以来,作为微型计算机的一个非常重要的分支,得到了广泛的应用和迅速的发展,对人类社会产生了巨大的影响。目前,单片机的应用已经渗透到国民经济和人民生活的各个领域。各种导弹的导航装置,飞机上各种仪器的控制,计算机的网络通信和数据传输,工业自动化过程的实时控制和数据处理,广泛使用的手机、充电器、电风扇、录像机、照相机、全自动洗衣机以及遥控玩具、电子宠物等的控制。都离不开单片机。随着居民生活水平的不断提高,自行车不再只是普通的交通工具,而是人们娱乐、休闲、锻炼的首选。因此,人们希望自行车能更强大,给人们带来更多的便利。自行车测速仪作为自行车的辅助工具,正是在这种需求下迅速发展起来的。它的功能已经从单一的里程显示逐渐发展到速度和时间显示,有的甚至还有测量骑车人心跳和显示骑车人耗热量的功能。本设计采用STC89C52单片机设计了一种体积小、操作简单的便携式自行车健身系统,可以自动显示自行车当前的行走距离和运行速度。亮点在于可以计算并显示骑行者消耗的热量,单位为焦耳。本文主要介绍自行车健身系统的设计思路、电路原理和方案论证,整体分为硬件设计和软件设计。具体硬件电路包括STC89C52单片机外围电路和液晶显示电路等。软件设计包括:芯片初始化程序、定时中断采样子程序、显示子程序等。这个程序是用C语言写的。软件设计的思想主要是自顶向下和模块化设计。每个子模块都是一个一个设计出来的,然后分别调试。最后对程序进行调整,判断是否达到预期要求,得出结论。仿真是整个设计的重要组成部分,也是实现设计的关键。第一章引言第1.1节选题背景自行车已经被发明和使用了200多年了。在这200年间,人类在不断的尝试和发展过程中,将玩具般的木马改装成了各种新型的休闲运动自行车。自行车发展的目的也从最早的交通工具转变为休闲娱乐使用。中国也是自行车大国。791年,法国人韦斯特·弗拉克发明了最原始的自行车。它只有两个轮子,没有传动装置。骑在上面的人需要用两个踏板向前行驶。1801年,俄罗斯人阿尔塔马·诺夫设计了世界上第一辆脚踏自行车。1817年,德国德莱塞在自行车上安装了一个方向舵,使他能够改变运动的方向。1839年,花岗岩人麦克米伦制造出一种自行车,有木制车轮、实心橡胶轮胎、小前轮、大后轮、低坐垫、踏板和曲柄连杆装置,使骑车人双脚离地。同年,麦克米伦将木制自行车改为铁制自行车。1887年,德国Mans公司首次将无缝钢管用于自行车生产。1888年,英国人邓洛普用橡胶制成轮胎,用皮革制成外胎,用作自行车的充气轮胎。从此,现代自行车的雏形基本确立。如今,自行车已经成为全世界人们使用最多、最简单、最实用的交通工具。随着居民生活水平的不断提高,自行车不再只是普通的交通工具,而是人们娱乐、休闲、锻炼的首选。因此,人们希望自行车能更强大,给人们带来更多的便利。在这种要求下,自行车的辅助工具发展迅速,其功能也从单一的里程显示逐渐发展到速度和时间显示,有的甚至具有测量骑车人心跳和显示骑车人耗热量的功能。我的设计正好满足了这个需求。这种设计可以显示自行车的实时速度和里程,甚至还具有测量和显示骑自行车者耗热量的功能。第1.2节研究目的和研究方法1.2.1研究目的测量转速的方法有很多种,模拟采集和模拟处理一直是测量转速的主要方法。目前,这种测量方法已经不能满足现代科技发展的要求。随着超大规模集成电路和超大规模集成电路的发展,全数字测试仪越来越普及,其转速测试仪也可以全数字化。测量范围和精度大大提高。因此,本次设计的目的是:用STC89C52系列单片机设计一款全数字自行车里程测速仪,并从提高测量精度的角度分析和讨论其可能产生误差的原因,为今后的实际使用提供参考。本设计以单片机为核心,设计了一种全数字自行车车速里程表。该测试仪采用全数字化结构,易于操作和使用,能准确地为用户提供速度和行程值。本设计采用STC89C52单片机进行控制,利用霍尔元件等器件设计了一种自行车健身系统,可以用LED数码管显示自行车当前的距离和速度,并具有显示骑车人耗热量的功能,从而可以作为自行车的辅助工具,使自行车的功能更加强大,给人们带来更多的方便[1]。1.2.2研究方法该系统的总体思路是:假设轮辋周长为L,轮辋上安装M块永磁体,测得的里程值最大误差为L/M,综合分析,本设计采用m=1。车轮每转动一次,开关型霍尔元件传感器就采集一个脉冲信号,从P3.2脚的中断0端输入。传感器每获得一个脉冲信号,就会向系统提供一个计数中断。每次中断代表车轮旋转一周,中断次数N和轮辋周长L的乘积就是里程值。计数器T1计算每转的时间T,然后可以计算瞬时速度V。然后通过一定的计算公式就可以得出骑车人消耗的热量值。所需指标和实现方法如下:1.利用霍尔传感器产生里程脉冲信号。2.计数脉冲信号。 实现:利用单片机的计数器T1对霍尔传感器的脉冲信号进行计数。3.为了处理数据,需要用LCD显示骑车人的总里程、瞬时速度和消耗的卡路里值。实现:利用软件编程,对数据进行处理,得到所需的数值。第二章系统方案设计第2.1节总平面图设计的系统采用STC89C52芯片,利用霍尔元件将车轮的转速转换成电脉冲,经处理后送入单片机。里程和速度的测量是通过STC89C52的定时器/计数器测量总脉冲数和每转的时间,然后由单片机进行计算,计算结果显示在LCD1602显示器上。传感器是从自然或生产领域获取信息的关键器件,是现代信息系统和各种设备不可缺少的信息获取工具。磁传感器是将磁量信号转换成电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的快速发展。和计算机应用的普及,需要大量的传感器将测量或控制的非电信号转换成与计算机兼容的电信号。作为输入信号,这为磁传感器的快速发展提供了机会,形成了磁传感器产业。霍尔传感器是最具代表性的磁传感器之一。在自动检测系统中,利用霍尔传感器测量转数是最基本的测量工作。霍尔元件具有结构牢固、体积小、重量轻、寿命长、安装方便、功耗低、频率高(可达1MHz)、耐振动、不怕灰尘、油、水蒸气、烟尘的污染或腐蚀等优点。霍尔线性器件精度高,线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无反弹、位置重复精度高。采用各种补偿和保护措施的霍尔元件的工作温度范围可达-55℃~150℃[2]。速度测量是工农业生产中常见的问题。学习如何利用单片机技术设计测速仪器具有重要意义。要测量速度,首先要解决的是采样的问题。用模拟技术制作转速表时,常用测速发电机,即测速发电机的转轴与被测轴相连,测速发电机的电压反映转速。单片机可以用一种简单的脉冲计数法来测量速度。只要转轴旋转一周,产生一个或固定数量的脉冲,将脉冲送到单片机进行计算,就可以得到转速的信息。常用的测速元件有霍尔传感器、光电传感器和光电编码器[3]。(1)霍尔传感器霍尔传感器是一种磁敏传感器,常用于信号采集,如A44E、CS3020、CS3040等。这种传感器是3端器件,外观类似三极管。只要接电源和地就能工作,一般是集电极开路(OC门)输出。它的工作电压宽,使用非常方便。A44E的形状如图2.1所示:1-Vcc2-GND3-OUT图2.1A44E的外形图当霍尔传感器用于获取脉冲信号时,其机械结构也可以简单。只要在转轴的齿轮盘上贴一个磁钢,霍尔元件就固定在前叉上。小车旋转时,霍尔元件靠近磁钢,信号输出。当转轴转动时,脉冲信号将连续输出。如果在齿轮盘上粘上多粒磁钢,可以实现一次旋转,获得多次脉冲输出。贴磁钢的时候要注意,霍尔传感器对磁场的方向很敏感。贴之前可以手动接近传感器。如果没有信号输出,可以换个方向再试。这种传感器不怕灰尘和油,广泛应用于工业领域[4]。(2)光电传感器光电传感器是一种应用广泛的器件,有透射式和反射式等多种形式。基本原理是,当发射管发出的光照射到接收管时,接收管开启,反之亦然。以红外光电传感器为例。当红外光电LED和高灵敏度的光电晶体管之间有物体时,传感器会输出低电平,中间没有物体时,会输出高电平,从而形成脉冲。在该系统中,自行车后轮车轴处沿平行于车轮转动截面的方向延伸出一个铝盘,铝盘边缘挖有若干圆形通孔,传感器的检测部分放在圆孔的中心。每当铝板随后轮转动时,传感器就会向外输出几个脉冲。(3)光电编码器光电编码器的工作原理与光电传感器相同,但它集成了光电传感器、电子电路、码盘等。只要用联轴器装置将光电传感器的轴连接到旋转轴上,就可以获得多种输出信号。广泛应用于数控机床、转台、伺服驱动、机器人、雷达、军事目标测量等需要角度检测的装置和设备中。第2.2节方案的确定光敏电阻对光特别敏感,白天行驶时,外部光源会使光敏电阻发出错误信号;光敏电阻对环境的要求很高。如果光敏二极管或发光二极管被沙子或灰尘覆盖,光敏电阻将无法精确测量。编码器必须安装在轴上,所以安装很复杂。霍尔元件或干簧管不仅不受天气影响,即使被淤泥或灰尘覆盖也不会受到影响,安装方便。因此,本设计采用霍尔元件测量里程和速度,简单易行,经济适用。该系统的硬件系统原理框图如图2.2所示:STC89C52STC89C52单片机外部信号霍尔传感器外部存储器速度显示热显示图2.2硬件系统原理框图第2.3节自行车健身系统软件方案设计硬件是基础,软件是灵魂。用软件控制其功能是单片机的主要特点和优势,在程序设计中应考虑合理性和可读性。程序遵循模块化设计原则,采用自顶向下的设计方法。也就是说,先考虑总体目标,定义总体任务,然后把总体任务分成一个子任务,再把子任务分成子子任务,这样层层细分。同时,分析层级与同级任务的关系,最终制定出每项任务的细节。模块化设计使得程序可读性强,易于修改和完善。软件设计包括主程序、里程和速度计算子程序、延时子程序、中断服务子程序、显示子程序等。中断子程序是将传感器产生的信号接入外部中断0,将74LS74分频后的信号接入外部中断1,利用中断和定时器分别累加里程,测量每转的时间。数据处理子程序是根据进入单片机的脉冲信号与要显示的实际值之间的某种对应关系,通过软件编程来显示所需值。显示子程序是将数据处理的结果送到显示器上显示。系统软件的总体流程如图2.3所示::图2.3软件总体流程图第三章硬件电路设计第3.1节概述自行车车速表的硬件电路设计是本次毕业设计的基础部分,包括信号采集、放大整形、单片机计算处理、数码管实时显示和单片机外围基本电路设计。本章介绍的两个主要设备是传感器和单片机。传感器在人们对自然现象、规律和生产实践的研究中起着非常重要的作用。尤其是当前,随着科学技术的发展,人类已经进入了信息时代。在利用信息的过程中,首先要解决的是获取准确可靠的信息。传感器是从自然或生产领域获取信息的关键器件,是现代信息系统和各种设备不可缺少的信息获取工具。磁传感器是将磁量信号转换成电信号的器件或装置。随着信息产业、工业自动化、医疗仪器等的快速发展。和计算机应用的普及,需要大量的传感器将测量或控制的非电信号转换成与计算机兼容的电信号。作为输入信号,这为磁传感器的快速发展提供了机会,形成了磁传感器产业。霍尔传感器是最具代表性的磁传感器之一。在自动检测系统中,利用霍尔传感器测量转数是最基本的测量工作。自1971年微型计算机问世以来,随着大规模集成电路技术的不断进步,微型计算机主要向两个方向发展:一是高速高性能的高档微型计算机。一是朝着稳定、可靠、小巧、廉价的MCU方向发展。所谓单片机,就是将CPU、ROM、定时器/计数器、I/O接口电路集成在一块集成电路芯片上的微型计算机,可见其功能之强大。单片机是本设计的核心部件。它是信号采集到输出的桥梁,具有计算、计时和信息处理的功能。下面详细介绍一下硬件电路设计的过程。第3.2节单片机及电路设计3.2.1单片机介绍单片机是指集成在一个芯片上的微型计算机,即组成微型计算机的各种功能部件,包括CPU(中央处理器)、随机存取存储器(RAM)、只读存储器(ROM)和基本输入/输出接口电路。定时器/计数器等部件全部制作在一个集成芯片上,构成一个完整的微型计算机,从而实现微型计算机的基本功能。MCU结构示意图如图3.1所示:计时计时/计数器中断系统中央处理器仓库并行输入输出端口串行输入输出端口数据发送接收数据T(同Internationalorganizations)国际组织P0-P3图3.1单片机部门结构图1.中央处理器中央处理器是单片机的核心部分,主要完成运算和控制功能。2.记忆存储器包括数据存储器(RAM)和程序存储器。存储器由大量寄存器组成,每个寄存器称为一个存储单元。3.计时/计数器单片机的定时器和计数器结构相同,但计数器记录单片机外部的事件,单片机外部电路提供计数信号;定时器是由MCU提供的非常稳定的计数信号。4.中断系统中断系统在计算机中起着非常重要的作用,是现代计算机系统中广泛使用的一种实时控制技术。它能及时处理突发事件,从而大大提高了系统的实时性。串行输入输出接口串行I/O口数据位顺序传输,特点是需要一对传输线,成本低。但速度慢,效率低,适合静态显示。6.并行输入输出接口并行I/O接口的所有数据位同时传输。其特点是传输速度快,效率高;然而,需要许多传输线来传输许多位,因此传输成本高,并且适合于动态显示。STC89C52是一款低压高性能COMOS8微处理器,带有8K字节flash可编程可擦除只读存储器,俗称单片机。该器件采用ATMEL高密度非易失性存储器制造技术制造,兼容工业标准MCS-51指令集和输出引脚[5]。如图3.2所示:图3.2STC89c52引脚图STC89C52具体介绍如下:①主电源引脚(2)VCC(Pin40):电源输入,连接+5v电源GND(插脚20):接地线。②外部晶振引脚(2)XTAL1(Pin19):芯片振荡器电路的输入。XTAL2(Pin18):芯片振荡器电路的输出。③控制销(4)RST/VPP(引脚9):复位引脚,引脚上的2个机器周期的高电平将复位微控制器。ALE/PROG(引脚30):数据锁存使能信号PSEN(引脚29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的外部门控。低电平,从外部程序存储器读取指令,如果高电平,从本地程序存储器读取指令。④可编程输入/输出引脚(32个引脚)STC89C52单片机有四组8位可编程I/O端口,分别是P0、P1、P2和P3端口,每个端口8位(8个管脚),共32个端口。端口(pin39~pin32):8位双向I/O端口线,命名为P0.0~P0.7P1端口(pin1~pin8):8位准双向I/O端口线,命名为P1.0~P1.7P2端口(pin21~pin28):8位准双向I/O端口线,命名为P2.0~P2.7P3端口(pin10~pin17):8位准双向I/O端口线,命名为P3.0~P3.7电路设计(1)时钟电路的设计时钟是单片机的心脏。单片机各功能部分的运行都是基于时钟频率,有条不紊的工作。因此,时钟频率直接影响单片机的速度,时钟电路的好坏也直接影响单片机系统的稳定性。STC89C52是由反相放大器组成的振荡器,可以产生时钟。常见的时钟电路有两种,一种是部分时钟模式,另一种是外部时钟模式。本设计采用第一种方法。MCU有一个高增益反相放大器,用于构成振荡器。高增益反相放大器的输入是芯片引脚XTAL1,输出是引脚XTAL2。这两个引脚跨接在石英晶体振荡器和电容之间,形成一个稳定的自激振荡器。单片机时钟模式的振荡电路如图3.3所示:图3.3单片机振荡电路电路中的电容C1和C2通常选择在30pF左右。虽然对外接电容的值没有严格的要求,但是电容的大小会影响振荡器的高度,振荡器的稳定性,起振的速度,温度的稳定性。外部晶体的振荡频率主要取决于单片机的工作频率。每个单片机都有自己的最大工作频率,外部晶振的振荡频率不大于单片机的最大工作频率。此外,如果MCU具有串行通信,则应选择振荡频率可被串行通信频率分频的晶体。在本设计中,晶体振荡器为12MHz,因此计数周期为:(31)(2)复位电路的设计。STC89C52单片机的复位输入引脚RET为STC89C52提供了初始化手段。有了它,程序可以从指定的地方执行,也就是从程序存储器中的0000H地址单元执行。的时钟电路工作后,只要RET引脚有两个机器周期以上的高电平,单片机单元就会初始复位。只要RET保持高电平,它就会周期性复位。只有当RET由高电平变为低电平时,程序才会从0000H地址开始执行。本系统的复位电路是常用的复位电路之一,如图3.4所示。复位MCU通过按一个按钮产生高电平复位,称为手动复位。当电源接通时,电容C相当于瞬间短路,RET/VPD端立即施加+5V电压。这个高电平使整机自动复位,就是上电复位。如果程序在运行过程中需要从头执行,只需按下按钮即可。直接按下按钮给RET/VPD端子加+5V,复位叫手动复位。复位后,从P0到P3的所有并行I/O端口都处于高电平,并且除了状态不确定的SBUF寄存器之外,所有其它寄存器都被清零。图3.4钥匙复位电路工作原理:上电瞬间,RC电路充电,RST引脚出现高电平。只要RST端保持10ms以上的高电平,单片机就能有效复位[6]。(3)显示电路的设计。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已被用作许多电子产品的通用器件,如计算器、万用表、电子表和许多家用电子产品,它主要显示数字、特殊符号和图形。在单片机的人机通信界面中,一般的输出方式有:LED,LED,LCD。常用发光管和LED数码管,其软件相对简单,但硬件电路复杂。在单片机系统中应用LCD液晶显示器作为输出设备具有以下优点:①高显示质量因为液晶显示器的每一个点在接收到信号后都保持着那种颜色和亮度,不断发光,而不是像阴极射线管显示器(CRT)那样不断刷新新亮点。因此,LCD具有高图像质量并且不闪烁。②数字接口液晶显示器全数字化,与单片机系统的接口更简单可靠,操作更方便。③体积小,重量轻。液晶显示器是通过显示屏上的电极控制液晶分子的状态来达到显示的目的,在同等显示面积的情况下,重量比传统显示器轻得多。④低功耗。相对来说,液晶显示器的功耗主要消耗在它的电极和驱动IC上,所以功耗比其他显示器要少很多。本次设计使用的显示器为LCD1602,相关介绍如下:1.液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压来控制其显示区域。有电就会有显示,这样就可以显示图形。液晶显示器具有厚度薄、适合大规模集成电路直接驱动、易于实现全彩显示等特点。目前,它已广泛应用于便携式电脑、数码相机、PDA移动通讯工具等诸多领域。2.液晶显示器的分类液晶显示器的分类方法有很多种,通常可以分为段式、字符式、点阵式等。除了黑白显示,LCD显示器还有多灰度和彩色显示。按驱动方式可分为静态驱动、纯矩阵驱动和有源矩阵驱动。3.液晶显示器各种图形的显示原理。①线段的显示点阵液晶由M×N个显示单元组成。假设LCD显示屏为64行,每行128列,每8列对应1字节的8位,即每行16字节,共16×8=128个点。屏幕上的64×16显示单元对应显示RAM区的1024个字节,每个字节的容量对应显示屏上相应位置的明暗。例如,屏幕第一行的亮度是由RAM区的16字节容量000H——00FH决定的。当(000H)=FFH时,屏幕左上角会显示一条8点长的亮线。当(3FFH)=FFH时,屏幕右下角会显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H和(00FH)=00H时,由8条亮线和8条暗线组成的虚线显示在屏幕顶部。这是液晶显示器的基本原理[7]。②字符的显示用LCD显示一个字符很复杂,因为一个字符是由6×8或8×8的点阵组成的。需要在显示屏上的某些位置对应的显示RAM区中找到8个字节,使每个字节的不同位为“1”,其余为“0”,这样“1”亮,“0”不亮。这就构成了一个人物。但是对于带字符发生器的控制器来说,显示字符还是比较简单的。你可以让控制器工作在文本模式,根据LCD上开始显示的行数和列数,找出显示RAM对应的地址,设置光标,将字符对应的代码发送到这里。③汉字显示通常,汉字的显示是以图形的形式出现的。预先从微型计算机中提取出要显示的汉字的点阵码(通常是通过字体提取软件)。每个汉字占32B,分左右两半,各占16B。左边是1,3,5...右边是2,4,6...可以根据LCD上开始显示的行数和列数找到显示RAM对应的地址,并设置光标发送第一个要显示的汉字。4.主要技术参数见表3.1:表3.1LCD1602的主要技术参数显示容量16×2个字符芯片工作电压4.5~5.5工作电流2.0毫安(5.0伏)模块的最佳电压5.0v字符大小2.95×4.35(宽高)毫米5.引脚接口描述如表3.2所示:表3.2LCD1602引脚接口数字标志Pin描述数字标志Pin描述一个虚存系统地面电源九D2数据2电源电压电源阴极10D3数据三轻链可变区液晶显示器偏压11D4数据四标准英语数据/命令选择12D5数据五读写读/写选择13D6数据六E使能信号14D7数据七D0数据15BachelorofLiberalArts文(科)学士背光阳极八D1数据16良性苔癣样角化病背光源引脚1:VSS是地电源。针脚2:VDD接5V电源脚3:VL是LCD的对比度调节端子,接正电源时对比度最弱,接地时对比度最高。当对比度过高时,就会产生“鬼影”。使用时,可通过10K电位器调节对比度。脚4:RS是寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。脚5:R/W是寄存器选择,高电平读写,低电平写。当RS和R/W都为低时,可以写指令或显示地址,RS为低时读信号,R/W为高时写数据。引脚6:E端子是使能端子。当E端子从高电平跳到低电平时,LCD模块执行命令。脚7~14:D0~D7为8位双向数据线。第15脚:背光阳极。第16脚:背光的负极。LCD1602分为背光和背光两种。基本控制器大多是HD44780。背光的比背光的厚。无论是否背光,应用程序都没有区别。它们之间的尺寸差异如下图3.5所示:图3.5带背光和不带背光的LCD1602的尺寸差异6.6的选择。LCD寄存器如表3.3所示:表3.3LCD寄存器的选择E读写标准英语函数声明一个00写命令寄存器一个0一个写数据寄存器一个一个0读取繁忙标志和RAM地址一个一个一个读取RAM数据0X未能启动7.1602LCD指令描述和LCD时序602LCD模块的控制器中有11条控制指令。控制说明见表3.4:表3.41602控制指令序列号指令标准英语读写D7D6D5D4D3D2D1D0一个清除显示000000000一个2光标返回00000000一个*三设置输入模式0000000一个身份证S四开/关控制000000一个DCB五或者光标移动。00000一个S/CR/L**六集合函数0000一个分升普通F**七字符生成存储器的地址000一个字符生成存储器地址八数据存储器的地址00一个显示数据存储地址九读取繁忙标志或地址0一个男友计数器地址10写入CGRAM或DDRAM)一个0要写入的数据容量11从CGRAM或DDRAM读取一个一个读取数据容量602液晶模块的读写操作、屏幕和光标操作都是通过指令编程实现的。(注:1为高电平,0为低电平)1:清除显示,指示01H,并将光标重置到地址00H。2:光标复位,光标回到地址00H。3:光标和显示模式设置I/D:光标移动方向,高等级右移,低等级左移S:屏幕上的所有字符是左移还是右移。高水平表示有效,低水平表示无效。4:显示开关控制。d:控制整个显示的开和关,高电平表示开显示,低电平表示关显示C:控制光标的开和关,高电平表示有光标,低电平表示没有光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。5:光标或显示移位S/C:在高层次移动显示的文本,在低层次移动光标。6:功能设置命令DL:高电平4位总线,低电平8位总线N:低电平单线显示,高电平双线显示F,低电平5×7点阵字符,高电平5×10点阵字符。7:设置字符发生器的RAM地址。8:DDRAM地址设置。9:读取忙信号和光标地址BF:忙标志位,高电平表示忙,模块此时不能接收命令或数据,低电平表示不忙。指令10:写入数据。指令11:读取数据。8.显示电路的设计电路本设计中,LCD1602的数据总线接STC89C52的P0端口,控制引脚RS接P2.7端口,R/W接P2.6端口,E接P2.5端口,VL为对比控制引脚,电压在0~5V之间。布拉和BLK是背光电源的正极和负极。使用时需要连接限流电阻,电流可以控制背光亮度。LCD电路如图3.6所示:图3.6液晶显示电路第3.3节传感器和测量系统霍尔传感器用于捕捉设计信号,霍尔元件为磁性传感器。它们可用于检测磁场及其变化,并可用于各种与磁场有关的场合。霍尔元件霍尔效应是其工作的基础。霍尔元件具有结构牢固、体积小、重量轻、寿命长、安装方便、功耗低、频率高(可达1MHz)、耐振动、不怕灰尘、油、水蒸气、烟尘的污染或腐蚀等优点。霍尔线性器件精度高,线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无反弹、位置重复精度高(可达微米水平)。具有各种补偿和保护措施的霍尔元件的工作温度范围可达-55℃~150℃。根据霍尔元件的功能,可分为霍尔线性器件和霍尔开关器件,前者输出模拟量,后者输出数字量。根据检测对象的性质,其应用可分为直接应用和间接应用。前者是直接检测被检测物体的磁场或磁特性,后者是检测被检测物体上人为设置的磁场,并将这个磁场作为被检测信息的载体。通过它将力、力矩、压力、应力、位置、位移、速度、加速度、角度、角速度、转速以及转速随工作状态变化的时间等许多非电非磁的物理量转换成电量进行检测和控制。3.3.1霍尔传感器的测量原理霍尔传感器是一种利用霍尔效应制成的磁性传感器。置于磁场中的导体或半导体通过电流I,如果电流垂直于磁场B,则在垂直于磁场和电流的方向上都有电位差Uh。这种现象被称为霍尔效应。由霍尔效应制成的元件称为霍尔元件。由于其结构简单、频响宽、灵敏度高、测量线性度大、抗干扰能力强、体积小、寿命长等优点,被广泛应用于测量、自动控制和信息处理等领域。霍尔效应示意图如图3.7所示:图3.7霍尔效应示意图3.3.2集成开关霍尔传感器A44E集成霍尔开关由五个基本部分组成:稳压器A、霍尔电位发生器(即硅霍尔片)B、差分放大器C、施密特触发器D和OC门输出E,如图3.8(a)所示。(1)、(2)和(3)代表集成霍尔开关的三个引出端。电压Vcc被施加到电源,由稳压器稳定,然后施加到霍尔电位发生器的两端。根据霍尔效应原理,当霍尔片处于磁场中时,在垂直于磁场的方向上施加电流,在垂直于两者的方向上会产生霍尔电位差VH输出。VH信号经放大器放大后送到施密特触发器整形,使之成为方波送到OC门输出。当施加的磁场达到工作点时,触发器输出高电压(相对于地电位),三极管导通。此时,OC门输出低电压,通常称为on。当施加的磁场达到释放点时,触发器输出低电压,三极管关断,使得OC门输出高电压。此状态已关闭。这两次电压变换使霍尔开关完成一次开关动作。工作点和释放点之间的差异是一定的,这种差异称为滞后。在…里图3.8集成开关霍尔传感器这个差值V0保持不变,从而使开关输出稳定可靠,这是集热器霍尔开关传感器的优良特性之一。传感器的主要特性是其输出特性,即输入磁感应强度B与输出电压V0的关系。A44E集成霍尔开关为单稳态,由实测数据做出的输出特性曲线如图3.8(b)[8]所示。测量时,在1和2两端施加5VDC电压,在输出端子3和1之间连接一个2kW负载电阻,如图3.9所示:图3.9集成霍尔开关接线图第3.4节其他设备的介绍3.4.1内存介绍AT24C02是一款2K位串行CMOSE2PROM。它包含256个8位字节,ATMEL的先进CMOS技术大大降低了设备的功耗。AT24C02有一个16字节的页写缓冲区,通过I2C总线接口操作,并具有特殊的写保护功能。AT24C02支持I2C总线数据传输协议。数据传输由主机控制,主机产生串行时钟和所有启动和停止信号。主设备和从设备都可以用作发送器或接收器,但数据传输模式(发送或接收)由主设备控制。多达八个24C02设备可以通过设备地址输入A0、A1和A2连接到总线。引脚图如图3.10所示:图3.1024c02的引脚图SCL串行时钟:AT24C02串行时钟输入引脚用于产生设备所有数据发送或接收的时钟,是一个输入引脚。SDA串行数据/地址:CAT24WC02双向串行数据/地址引脚用于发送或接收器件的所有数据。SDA是一个开漏输出引脚,可以与其它开漏输出或集电极开路输出进行线或运算。WP写保护:如果WP引脚连接到Vcc,所有电容都被写保护,只能读取。当WP引脚连接到Vss或保持悬空时,器件可以执行正常的读/写操作。本设计采用24C02,防止断电时里程数据丢失。由于24C02的数据线和地址线是多路复用的,使用串口传输数据,所以只使用SCL和SDA两条线与单片机传输数据。在软件编程中,包用于控制24C02发送或接收数据[9]。3.4.2芯片74LS74的介绍74LS74是D触发器的一种。它是一种具有记忆功能的二进制信息存储器件,是构成各种时序电路的最基本的逻辑单元。触发器有两个稳定状态,即“0”和“1”。在某些外部信号的作用下,它可以从一种稳定状态翻转到另一种稳定状态。因为其状态的更新发生在CP脉冲的边沿,所以也称为上升沿触发的边沿触发器。D触发器的状态只取决于时针到来之前D端的状态。d触发器应用广泛,如数字信号寄存器、移位寄存器、分频器、波形发生器等。引脚如图3.11所示:图3.1174LS74引脚图本文中74LS74芯片起到分频的作用。当车轮旋转一周时,霍尔传感器输出一个低电平脉冲,该脉冲被74LS74除以2。计时器T1的开始时间是车轮旋转一周的时间,从而可以计算自行车的速度。分频前后的对比图如图3.12所示:图3.12分频前后对比从图中可以看出,分频波形的高电平或地电平的时间正好是霍尔传感器开关的一个周期,霍尔传感器向输出脉冲,也就是接收到计数圈数的脉冲。被74LS74分频的信号输入,定时计数器测量每转的时间,通过计算可以得到里程值和瞬时速度。逻辑图如图3.13所示。可以看出,74LS244由两组组成,每组由四个输入和输出组成。每组有一个控制端,其高电平或低电平决定该组的数据是开启还是关闭[10]。图3.1374LS244逻辑图第四章软件程序设计第4.1节概述硬件设计完成后,接下来就是软件的核心和最重要的部分的设计。所谓软件设计,就是将软件需求转化为具体的软件设计方案(即模块结构)的过程。模块化设计是根据需求和硬件设计的结构,将整个系统的功能划分成许多小的功能模块,然后根据这些小的功能模块进行编程的过程。这种设计方法使系统的整体功能及各部分的功能清晰。当系统出现问题时,可以根据功能设置找到问题的根源,从而更快的解决问题。因此,在整个设计过程中,软件设计必须与硬件设计紧密结合。基于霍尔传感器的自行车里程/速度计软件设计包括上电初始化程序、中断子程序、速度调用子程序、里程调用子程序、LED显示子程序、延时子程序等。由于要实现很多功能,所以采用模块化设计,下面分别对主要部分进行分析。第4.2节总体方案设计在主程序模块中,需要完成各个接口芯片的初始化、自行车里程和速度的初始化、中断向量的设计以切换中断的开启和关闭、循环等待等。此外,需要在主程序模块中设置和初始化启动/清除标志寄存器、里程寄存器和速度寄存器。然后主程序会根据每个标志寄存器的容量完成启动、清零、计量、测速等不同的操作。P1.0和P1.1端口分别用于显示里程状态和速度状态。端口P1.2、P1.3、P1.6、P1.7分别用于设置轮圈大小,低电平有效。P3.0用于里程和速度切换。低等级是显示速度,高等级是显示里程。0中断用于计数车轮转数,每次车轮转动时霍尔传感器输出一个低电平脉冲。根据里程登记簿上的容量计算判断里程。1个中断用于控制定时器T1的启动/停止。当输入为0时,定时器关闭。该控制信号是通过将车轮转数除以2而形成的。这样,定时器T1每开启一次,正好是转一圈的时间,就可以根据车轮的周长计算出自行车的速度[11]。程序流程如图4.1所示:图4.1程序流程图4.3中断子程序的设计设置定时中断是为了满足定时或计数的需要。为此单片机中有两个定时计数器,计数结构计数实现定时或计数功能。当结构中发生计数溢出时,意味着计时时间或计数值已满。此时,计数溢出信号被用作中断请求,并且溢出标志被设置为MCU接受中断请求的标志。这种中断发生在单片机的芯片部分,不需要在芯片上设置引入端。关闭中断开始现场保护开放中断中断处理关闭中断现场修复开放中断中断返回定时器/计数器控制寄存器TCON是一个8位寄存器,地址为88H,可按位寻址。高4关闭中断开始现场保护开放中断中断处理关闭中断现场修复开放中断中断返回图4.2中断子程序流程图4.4节数据处理子程序的设计4.4.1里程计算子程序外部中断0服务程序用于对单片机P3.2口输入的循环脉冲进行计数,为十六进制计数器。60H低,62H高。每次计数后,里程数据都会存储一次。车轮每转一圈,脉冲数通过霍尔元件输入单片机,通过计数器计算出脉冲数,再通过乘法子程序计算出里程。里程处理子程序流程图如图4.3所示:点亮里程指示器。点亮里程指示器。开始把圈数换算成里程。显示里程值返回图4.3里程处理子程序流程图速度计算子程序外部中断1服务程序用于在车轮旋转一周后处理计时数据。当标志位(00H)为1时,表示计数溢出,放入最大时间值(#0ffh);当标志位为0时,将计数单元(TL1,TH1,6CH,6DH)的值放入68H~6BH单元。计时器计算每转一圈所用的时间,自行车的速度是用自行车车轮的周长除以时间得到的。速度处理的子流程图如图4.4所示:图4.4速度处理子流程图第4.5节显示子程序设计本设计采用动态扫描显示接口电路。动态显示接口电路连接所有同名显示器的八个笔画段a-h,每个显示器的公共极COM由I/O线独立控制。当字体代码发送到CPU的字段输出端口时,所有的显示器都接收到相同的字体代码,但具体在哪个显示器上取决于COM端。也就是说,我们可以用分时的方法依次控制各个显示器的COM端,让各个显示器依次亮起。在交替点亮和扫描的过程中,每个显示屏的点亮时间极短(约1ms)。因为人类视觉的暂留性和LED的余辉效应,虽然实际上各个显示器不是同时点亮的,但是只要扫描速度够快,给人的感觉就是一组稳定的显示数据,不会有闪烁。在本设计中,P2.0、P2.1、P2.2、P2.3信号共同构成位选通信号,P0.0~P0.7信号共同构成段选通信号。通过软件编程,先把要显示的数据放入存储单元,然后把数据送到段选通的对应地址,再选通某个LED,逐步完成4个LED的显示[12]。图4.5显示了子程序流程图。第五章系统模拟和调试第5.1节自行车健身系统的模拟电路原理图构思好,程序编好之后,就要进行系统仿真了。这里使用PROTEUS仿真软件进行仿真。首先新建一个文件,选择需要的元件并排列好,按照电路原理图走线。原理图布线后,使用PROTEUSISIS编辑环境提供的电气规则检查命令检查设计,根据系统提供的错误检查报告修改原理图。直到电器规则检查完毕。然后生成。KEIL中的HEX文件,双击STC89C52芯片,将完整的程序倒入芯片,点击左下角的开始箭头开始仿真。图5.1示意设计流程图对单片机系统的仿真是PROTEUSVSM的一大特色。同时,这个仿真系统将源代码的编辑和编译集成到同一个设计环境中,用户可以在设计中直接编辑代码,很容易看到用户对源程序的修改对仿真结果的影响。源代码编译正确后,就可以模拟了。在仿真的过程中,不断完善电路和程序的功能,最终达到了本设计的目的[13]。原理图的详细设计过程如上图5.1所示。第5.2节自行车健身系统的调试本设计采用KeiluVsion4软件进行调试。它是由Keil软件开发的集成开发环境(IDE),可用于多种8051MCU。IDE也是PK51和其他开发工具包的重要组成部分。该软件除了添加源代码、函数导航器、模板编辑和改进的搜索功能外,还提供了配置向导功能,加速了启动代码和配置文件的生成。此外,外部仿真器可以模拟目标MCU,包括指令集、片内外设和外部信号。UVision4提供了逻辑分析器,可以根据MCUI/O引脚和外设状态变化来监控程序变量。下面我来介绍一下调试方法:首先打开软件,点击Project新建一个项目,输入文件名比如test1,保存。然后选择相应的MCU型号,并单击确定。然后右键单击左边的SourceGroup1,选择Addfilesto…AddFiles,并添加准备好的。c文件。在这个时候。c文件将出现在源组1下。双击这个文件,然后点击左上角的编译按钮,左下角就会出现编译后的结果,然后进行一些调整和修改。此外。十六进制文件被刻录到MCU中。我来说说怎么生成。十六进制文件。首先右键单击目标1,选择第一项,然后在新打开的页面中选择输出选项,只需在创建十六进制文件选项前打勾,然后重新编译即可,而。十六进制文件会出现在相应的文件夹中,可以烧录到MCU中[14]。部分截图如下:图5.2选择单片机的型号图5.3添加.c文件图5.4生成一个.HEX文件第5.3节调试故障及原因分析在这个软件仿真和硬件搭建的过程中,出现了一些问题,具体故障和解决方法如下:1.MCU不算当磁铁来回接近霍尔传感器时,单片机总是显示四个零。经检查,传感器工作正常,指示灯电路也正常。换了一个单片机后,电路工作正常,判断原来的单片机已经烧坏了。2.端口2.P0显示高阻抗状态。正常情况下,端口P0的输出应该在高(红色)和低(蓝色)之间切换,但实际情况下,端口P0出现高阻态(灰色)。读取数据后,发现端口P0应与I/O端口的上拉电阻相连。增加上拉电阻后,端口P0的输出正常。3.传感器的输出电压太小。在焊接五金件的过程中,测得传感器输出端的高电压在0.2V-0.3V之间,但达不到4V。经分析,传感器输出端的上拉电阻为2K,传感器输出电压变化在正常范围内[15]。4.液晶屏显示不清晰调节电位器改变LCD的对比度,当显示的数字和字母清晰时停止调节。调整时,慢慢转动螺丝;如果太快,就不能适当调整。结论本设计的主要任务是开发一个以单片机为核心的自行车健身系统。本设计主要分为硬件部分和软件部分。硬件部分注重硬件电路的简单性,所以可以尽可能的简化硬件电路,节省电路板空间,实现硬件电路的优化设计。程序用C语言编写,采用模块化设计思想,程序可读性强。通过仿真和实验,验证了该系统是可行的,能够满足设计要求,达到设计指标,实现了自行车里程/速度的计算功能,并在LCD1602上显示。里程和速度分别根据以下公式获得:里程=总脉冲数×车轮周长速度=车轮的周长÷车轮转一圈所需的时间。按照这个公式,最终会显示里程和速度。当车轮转动,小磁片滑过霍尔元件时,霍尔元件输出一个脉冲,根据车轮的周长就可以计算出里程。轮周选择不同,里程变化也不同。当按下开关显示速度时,LCD将根据速度显示不同的数字。通过这次设计,我学到了很多老师课堂上没有教的知识,比如霍尔元件的引脚和作用,液晶显示器等。,并了解了它们的用法、原理、接口电路和应用程序,进一步强化了我的专业基础知识和相关专业课程知识,提高了我的动手能力。焊接元件时一定要焊接到位,否则会接触不良,带来不必要的麻烦。想在现实生活中学以致用;培养独立综合的分析思维和创新能力。这次毕业设计使我能够总结大学四年所学的知识。在收集资料和确定方案的过程中,我学到了很多知识,明白了很多以前不太清楚的问题。在毕业设计的过程中,是对所学知识的一次升华,将理论知识运用到实践中。这也给了我锻炼的机会。在以后的学习中,我想多看课外书,而不仅仅是书本,拓展自己的思维,积累更多的知识,努力做出更好的作品。附录1电路图附录二部件清单序列号名字代号模型量一个电阻R251Ω一个2电阻R111.2K一个三smd电阻器R110KΩ一个四smd电阻器R61kω一个五排除R54.7kω*8一个六片状电容器C3C222Pf2七磁片电容器溴化五烃季胺104一个八电解质电容器补体第四成份缺乏0.1微法/25伏一个九电解质电容器C14.7uF/25V一个10按钮S1、S2、S3、S4、S5开关五11液晶显示1602液晶显示一个12PNP型半导体管雌三醇环戊醚9012一个13霍尔传感器R3A3144E一个14单片微型计算机U2STC89C52一个15晶体振荡器Y112兆赫一个附录三实物照片图1最小电路图2焊接图图3整体实物图附录4源程序#defineset_timerTH0=0xd8TL0=0xef#defineset_bpsTH1=0xffTL1=0xff#include<reg51.h>#include<string.h>#包含“systimer.h”#包含“lcd.h”#包含“math.h”#包含"keytask.h"uchartimer_100ms=0;/////////////////////////////////////////////////////////////////////////////uintint_meter,int_speed_max,int_speed_ave/**************************************/ucharr=26//轮胎的半径ucharspeed_max_int,speed_max_dec//最大速度的整数部分和小数部分ucharspeed_int,speed_dec//瞬时速度的整数部分和小数部分ucharspeed_ave_int,speed_ave_dec//平均速度的整数部分和小数部分uintmeter_int,meter_dec//里程的整数部分和小数部分uchar米计_单向_int,米计_单向_dec//里程的整数部分和小数部分uchartimer_work_2;//外部输入标志floatwork_time_t1//从外部输入时间(轮胎跑一圈的时间)uchartemp3,temp4ucharshuru_flag/**************************************/void任务_shuru(void){if(shuru==0){shuru_flag=1;}}Voiddisplay_one(void)//第一个接口{/******************显示速度**********speed_int=(int)速度;speed_dec=(int)((speed-(float)speed_int)*100);如果(speed_int/100>0){DisplaySinglByte(1,0,speed_int/100+0x30);}if(speed_int/100==0){DisplaySinglByte(1,0,'');}if(speed_int/10>0){DisplaySinglByte(1,1,speed_int/10%10+0x30);}if(speed_int/10==0){DisplaySinglByte(1,1,'');}DisplaySinglByte(1,2,speed_int%10+0x30);DisplaySinglByte(1,3,'.');DisplaySinglByte(1,4,speed_dec/10+0x30);DisplaySinglByte(1,5,speed_dec%10+0x30);DisplaySinglByte(1,6,'k');DisplaySinglByte(1,7,'m');DisplaySinglByte(1,8,'/');DisplaySinglByte(1,9,'h');/********************显示里程************meter_int=(int)meter;meter_dec=(int)((meter-(float)meter_int)*100);如果(公里==0){DisplaySinglByte(2,0,公里%100/10+0x30);DisplaySinglByte(2,1,公里%10+0x30);DisplaySinglByte(2,2,'.');DisplaySinglByte(2,3,meter_int/100+0x30);DisplaySinglByte(2,4,meter_int%100/10+0x30);}If(米>=1000)//里程进位{千米++;米=米-1000;}如果(公里>0){如果(公里/100>0){DisplaySinglByte(2,0,公里/100+0x30);}如果(公里/10>0){DisplaySinglByte(2,1,千米%100/10+0x30);}DisplaySinglByte(2,2,公里%10+0x30);DisplaySinglByte(2,3,'.');DisplaySinglByte(2,4,meter_int/100+0x30);DisplaySinglByte(2,5,meter_int%100/10+0x30);}DisplaySinglByte(2,6,'c');DisplaySinglByte(2,7,'a');DisplaySinglByte(2,8,'l');DisplaySinglByte(2,9,'');/***********************************************/}/*****************************

温馨提示

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

评论

0/150

提交评论