基于单片机里程速度测试表设计

来源:医学教育网 发布时间:2021-01-05 点击:

 目

 录

 摘

  要 ...................................................................................................................... I Abstract ...................................................................................................................... II 1 系统方案设计 ........................................................................................................ 4 1.1 硬件方案的选择 ......................................................................................... 4 1.2 总体设计方案选择 ..................................................................................... 7 2 系统硬件电路设计 ................................................................................................ 8 2.1ST89C52 单片机系统设计 ......................................................................... 8 2.2 LCD1602 液晶显示电路设计 .................................................................... 9 2.3DS1302 时钟电路设计 .............................................................................. 10 2.4LM393 芯片的介绍 ................................................................................... 10 2.5 霍尔测速电路的设计 ............................................................................... 11 2.6 独立按键电路的设计 ............................................................................... 12 3 系统软件部分设计 .............................................................................................. 13 3.1 软件开发环境的介绍 ............................................................................... 13 3.2 系统重要函数的介绍 ............................................................................... 13 4 系统整体调试 ...................................................................................................... 16 4.1 系统硬件测试 ........................................................................................... 17 4.2 系统软件测试 ........................................................................................... 19 结

 论 ..................................................................................................................... 20 参考文献 ................................................................................................................. 20 附录 源程序代码 ................................................................................................... 23 致

  谢 ................................................................................................................... 41

 摘

  要

 为了能够有效的应用霍尔传感器实现转速直接转化成为数字脉冲信号,就能够将该信息传输给单片机进行处理,并且通过规定程序能够计算出数字脉冲的频率,然后再实现计数数值能够在显示器中展示出来。同时该装置内安装有蜂鸣器装置,在速度达到规定要求后就会发生声响,使得操作者可以按照要求减速,考虑到信号的衰减、干扰等影响,利用单片机在信号输入前应对其进行放大整形[ 1 ] 。

 本文所设计的系统中,将 STC89C52 单片机作为主控核心,霍尔传感器能够直接获取转速信息,就能够确定自行车速度/里程等信号,并且通过其内部处理器 EEPROM 能够保存所有信息,然后将速度、里程等信息通过 LED 显示,同时还能够应用 DS1302 来显示日期和时间。本文主要目的就是设计自行车速度里程表硬件与软件部分。硬件有传感器、单片机等部件设计,还有各个部分的电路设计;软件采用的是 C 语言完成各个系统的变成,达到模块化设计标准。整个系统结构简单,性能优越,符合正常的使用标准要求。

 结果表明,测量脉冲频率的方式来确定速度数据,精度较高,且稳定性好,可以满足多种条件的使用要求。该系统硬件电路简单,子程序具有通用性,完全符合设计要求。

  关键词:单片机;霍尔传感器;液晶显示;脉冲信号

 Abstract

 In order to convert the measured speed into digital pulse signal with hall sensor,and then transmit the digital pulse signal data to the core microcontroller for processing,he microcontroller will calculate the frequency of digital pulse in a certain time according to the design program,and finally get the mileage from the count value and display it through the terminal display device. And additional alarm function,after the speed exceeds a certain fixed value,the buzzer sounds,indicating the need to slow down, considering the attenuation of the signal,interference and other effects,the use of single chip microcomputer before the signal input should be amplified shaping. This design by STC89C52 single-chip microcomputer as the design core,A3144E hall sensor to measure revolutions,implementation of bicycle mileage/speed real-time measurement and statistics,block internal processor EEPROM by single chip microcomputer to realize the information when the system is powered off automatically save mileage,and can use the bicycle mileage and speed LED real-time display and join DS1302 to real-time display time date. The hardware circuit and software design of bicycle speed odometer are introduced in detail. The hardware circuit of the system is simple and the subroutine is universal. The results show that the velocity can be calculated by measuring the pulse frequency with high accuracy,and the whole system has good stability in operation. The hardware circuit of the system is simple and the subroutine is universal.

  Keywords: Single chip microcomputer; Hall sensor;LED; The pulse signal.

 本科论文

  引

  言 自行车最早是从木马车转化而来的,到现代社会已经研发出很多新型样式,并且功能也更加的齐全,已经从最初的交通工具演化成为娱乐运动的工具,并且深受人民的喜爱。

 随着生活水平的日渐提升,骑行最为一种休闲健身运动受到更多人的关注和喜爱。自行车作为一种身体锻炼的方式,其效果是非常好的,还不会给人以剧烈运动的不适感,属于有氧运动的范畴,可以锻炼心脏功能。在运动的过程中,大脑能够吸入大量的新鲜空气,让人整个身体都非常的舒适,心情也会比较开朗。如果在自行车中安装里程速度表,汽车者就能够明确了解自己的骑行速度、里程以及其他各项数据的实时变化,从而很好的对运动量进行控制。

 自行车速度里程表作为自行车附件,功能的多样化已成必然趋势。从单一里程显示逐步发展到实时速度、平均速度、最大速度和单次里程显示,并且具有超速报警功能。一款设计科学、合理的自行车速度里程表对科学且安全的骑行具有重大意义[ 2 ] 。

 从当前实际情况分析,霍尔传感器被使用到工业领域的方方面面,电脑、手机等都有该装置的影子,并且随着时代的发展,应用范围逐步扩大,对于人类的影响也更加的明显。该装置在全世界范围内应用到比较广泛,每年增长率都在 5%-10%之间,对于电机、阀门、节气门等装置中的检测有着非常高的实践应用价值 [2] 。由于中国市场在近年来对于霍尔传感器需求量逐步增大,这也导致该厂家将很多部件都转移到中国开展生产,以便于拓展中国市场。电子消费领域在逐步的扩张,降低功耗与成本是各个生产厂家的共同目标,同时也会有生产测试技术方面的不足还需要解决,以便于从总体上提升技术水平,也能够提高自身的竞争力。

 霍尔传感器技术在汽车工业中也有着广泛的应用,包括动力、车身控制、牵引力控制以及防抱死制动系统。为了满足不同系统的需要,霍尔传感器有开关式、模拟式和数字式传感器三种形式。

 霍尔传感器可以采用金属和半导体等制成,效应质量的改变取决于导体的材料,材料会直接影响流过传感器的正离子和电子。制造霍尔元件时,

 本科论文

 汽车工业通常使用三种半导体材料,即砷化镓、锑化铟以及砷化铟。最常用的半导体材料当属砷化铟。

 霍尔传感器的形式决定了放大电路的不同,其输出要适应所控制的装置。这个输出可能是模拟式,如加速位置传感器或节气门位置传感器,也可能是数字式。如曲轴或凸轮轴位置传感器。

 当霍尔元件用于数字信号时,例如曲轴位置传感器、凸轮轴位置传感器或车速传感器,必须首先改变电路。霍尔元件与微分放大器连接,微分放大器与施密特触发器连接。在这种配置中。传感器输出一个开或关的信号。在多数汽车电路中,霍尔传感器是电流吸收器或者使信号电路接地。要完成这项工作,需要一个 NPN 晶体管与施密特触发器的输出连接。磁场穿过霍尔元件,一个触发器轮上的叶片在磁场和霍尔元件之间通过。

 综合分析经济、环境等方面的因素,自行车在未来的消费市场中必然会越来越火爆,发展前景是非常广阔的。国外很多自行车的生产厂家都开始逐步的研发自行车里程表的相关技术,但是很多都是只能进行测速或者里程的功能,相对简单。而一些技术水平高且比较复杂的设备,则加入 GPS全球定位技术,还能够测量平均素质、显示时钟等。在未来应用和发展中,还有可能加入 mp3、短信收发等等很多现代化的功能,可以使得其运行更加的人性化,也会被人们所接受和喜爱。从市场方面了解可以发现,近年来中国大陆消费额在逐步的增加,台湾和北美市场却在逐步的减小,这是因为很多零部件生产都已经转移到大陆来进行。MCU 引入中国后,翻译为单片微型计算机,销售量已经是比较大的,这些产品主要是应用电话、Caller ID、玩具与 LCD 等相关领域中,未来必然会有更加广阔的发展空间,同时也会逐步的应用到自行车领域内,必然会给自行车领域带来革命性的改变[ 3 ] 。

 本次论文研究的主要任务是利用霍尔传感器、蜂鸣器等技术的结构部件研发出一种能够使用 LED 实时显示里程和速度自行车里程表。在论文的前几个部分中,会详细的介绍本次设计的原理、思路,并且进行方案的论证分析,选择合适的元件,具体就是按照硬件、软件来进行的。

 本文首先进行课题任务的分析,同时进行了硬件与软件设计方案的确定,然后是分析硬件设计分析,主要是从霍尔传感器、单片机等各个关键部分的选择出发,确定最为合适的硬件组成部件。再然后具体的分析速度

 本科论文

 里程表的软件,其中包含了数据处理、显示等等各个程序,能够达到系统的运行标准要求。在文章的最后进行整个系统的仿真与模拟分析包括硬件软件的调试,然后是总结本次系统设计的具体情况,为改进和完善提供基础。

 本科论文

 1 系统方案设计 1.1 硬件方案的选择 硬件设计是非常关键的,就是进行各个结构部件的分配和组合,并且按照特定的原理进行连接,使得整个系统可以稳定的运行,达到人们所需要的性能标准要求。因此,在硬件搭建之前,首先要进行方案的确定,明确各个模块选择最佳的方案,以达到最佳的使用效果。

 1.1.1 主控芯片的选择 方案一:

 STC89C52RC 这是一款低耗高能的芯片,为 STC 公司生产,主要的优势就是功耗低、性能高,为 CMOS8 位微控制器。其内部采用的是最为经典的 MCS-51 内核,但是对其进行了必要的改进和完善,较之传统 51 单片机来说,性能更加的优越,兼容性也比较好,可以满足多种条件使用要求。对于单芯片来说,其内部具备相对比较灵活的 8 位 CPU 和可编程 Flash,能够保证在系统运行中更加的高效和灵活。该单片机最为主要的功能如下所示:

 8k 字节 Flash,512 字节 RAM,32 位 I/O 口线,内置 EEPROM,MAX810 复位电路以及 3 个 16 位定时器/计数器。在系统切换到空闲模式的条件之下运行,此时的 CPU 不工作,RAM、定时器/计数器等能够继续工作,也具备一定的功能。在突然断电的情况下,由于掉电保护 RAM 并不会丢失,而是能够被保存到系统内,但此时的单片机任何工作都不能进行[ 4 ]。

 方案二:

 选择使用 MSP430 单片机为系统中的主控芯片。该装置通常也被叫做是混合信号处理器的装置,能够根据不同的要求应用到不同功能电路中,使用范围也比较多,是一款美国生产的单片机部件,最为重要的优势就是其功耗非常低、指令集比较简单,信号处理的精度非常高。

 方案三:

 选择使用 PIC16F877A 单片机作为系统的主控芯片。这是一款新研发和投入使用的芯片部件,并且是 8 位单片机微机,主要的作用就是能够实现程序内存,并且可以根据使用者的需要进行程序擦写,以满足不同使用的需求。

 方案二中的单片机一般都是使用到有电池作为供电装置的便携式设备

 本科论文

 中,并且系统开发难度是比较高的,成本比较高。因此,很多简单系统设计都不会选择这种方式。方案三的部件价格是比较高的,设计难度也比较大,所以很多情况也不会选择该方案。

 经过综合对比分析,考虑到设计开发的成本、资源利用等方面,最终确定是用方案一作为本次设计的依据,应用 STC89C52 单片机为主控芯片。

 1.1.2 显示器件的选择 方案一:

 使用 LED 进行数码管动态显示。该部件的价格相对比较适中,现实数字、字母都比较好,但是要进行动态扫描法应用时,会需要占用 CPU 的 I/O口较多,而此时的电路中电流是明显不足的,还需要配置驱动电路才能满足该装置的电流运行要求。

 方案二:

 采用 LCD1602 液晶显示屏。该装置的功能是非常高的,能够按照使用者的需求显示出 16*2 即 32 个字符,可任何形式的字符都能够显示出来,准确、清晰都是非常好的。该显示器中所显示的字符全部都是通过 5*7 点阵来形成,并且能够通过串行数据传输的方式,系统控制操作也比较简单,与应用最为普遍的 HD44780 原理是相同的,所以操作非常简单。

 方案三:

 采用 LCD12864 液晶显示屏,这种显示装置的分辨率是比较高的,通常可以达到 128*64。主要的优势就是连接比较方便,接口设置非常的灵活,操作指令也比较简单,可以根据系统的设置来形成人机交互图形,并且功耗非常低。

 虽然在方案三中所选择的部件形式功能性是最强的,但是显示内容较大,所以就是其内部空间浪费相对严重,且成本是非常高的。方案一虽然其成本比较低,操作也简单,但是要进行焊接连接,所以容易导致焊接操作中存在错误的情况。

 经过上述对比分析,最终该系统设计中选择使用方案二 LCD1602 液晶显示器来作为本次系统显示装置,应用比较合理。

 1.1.3 时钟器件的选择 方案一:

 选择使用单片机中的内部定时器来进行定时处理,此时如果系统因为

 本科论文

 外力作用中断运行,就会导致所有的数据都会被清零,无法继续及时,并且精度也是比较差的,在短时间内精度还行,如果时间长了误差累计的越来越多时间也就偏差多了。

 方案二:

 选择使用 DS1302 时钟芯片作为系统设计的显示时钟部分,该装置是美国生产的,功耗较低,充电性能也比较优越,还能够按照闰年补偿,同时能够准确的记录各个时间,系统的工作电压为 2.0V~5.5V。与主控部件的接口部分采用的是三线接口。这是一款新型的产品,较之以往的产品,具备更高的兼容性,还有主、备用电源引脚,充电能力比较强,可以达到多方面使用功能的要求。

 虽然采用方案一可以节省电路的搭建也节省了成本,但是不能在系统掉电的情况下也正常的工作。方案二中设置有主、备用电源引脚,所以能够达到涓流充电的效果,其主要的优势就是在于串行数据传输,可以根据需要关闭充电功能,达到系统连续控制的效果。经过多方面的对比分析,考虑到功能优劣、产品成本等因素,最终选择使用 DS130 时钟芯片作为本次时钟部件。

 1.1.4 测速器件的选择 方案一:

 选择使用光电速度传感器,光电的速度传感器是基于光电子的速度传感器。转换原理基本可以分为透明速度传感器和反射式。如果光电池被照射,其反电阻低。因此,是电脉冲信号。如果光源被板覆盖着。光伏的逆电阻相对较大,且没有信号输出[ 5 ] 。这样,可以根据盘上的孔和凹陷的数量来测定研究对象的速度。通常盘上的孔或凹进去的数量是静态的,每次光电转换器旋转时会出现 60 个脉冲信号。电子计数器的时间信号 1s,可以直接读取测量的波速。这个反射式速度传感器的原理与上述的类型原理较为接近。类似感测到的光也被光学元件转换成电信号,但不同于光信号。对光的反射脉冲信号中将测量轴的测量部分施加反射材料,得到反射面。这个普通的反射材料是特殊的速度反射纸,也被铝箔和其他的反射材料代替。有时可以作为反射面涂在测定部件上[ 6 ] 。该投影仪与反射面的距离为5-15m,当测定波旋转时,接收脉冲,为了测定测定对象的速度,将对应的电信号发送到电子计数器。

 本科论文

 方案二:

 霍尔传感器用于测量速度。在待测旋转体的轴上安装有一个磁盘,磁盘上安装有几对小磁钢。小磁钢对数越多,能展现出的分辨力越高。霍尔开关将被装配在小磁钢周围。当旋转体通过某一个角速度 m 发生旋转的时候,小磁钢每次转动霍尔开关,霍尔开关都会输出对应的脉冲数量值,并可以得到在单位时间内所输出的对应脉冲数,从而来获得旋转体的实时速度。

 综上所述,光电式速度传感器受外部光源影响的波动很高,不适用于运动物体的速度测量;集成霍尔开关传感器具有灵敏度高、可靠性好、体积小、无接触、无磨损、使用年限久等优势,消耗低,对外界环境依赖性小,基于此,霍尔传感器被选用来对速度进行监测。

 1.2 总体设计方案选择 经过上述的对本设计中涉及到的每一个模块进行了分析,最后的方案为:以 STC89C52 单片机为控制核心、DS1302 做计时任务、LCD1602 发挥显示数字的作用、通过霍尔传感器感应进行测速记录里程、数据存储部分通过 STC89C52 单片机内部的 EEPROM 进行存储。系统还会通过设定的超速限值与实测值进行对比当超过限值系统会发出鸣叫提示超速。整体的硬件设计框图如图 1.1 所示。

 STC89C52主控芯片复位电路晶振电路DS1302时钟电路LM393整形电路EEPROM存储霍尔传感器按键电路LCD1602显示电路蜂鸣器电路电源电路 图 1.1

 系统硬件框图

 本科论文

 2.系统硬件电路设计

 2.1ST89C52 单片机系统设计

 2.1.1ST89C52 的概述 STC89C52共有32个I/O口,其中LCD1602液晶显示屏模块需要11个,蜂鸣器报警模块需要1个,按键模块需要1个,RFID模块需要5个,下载口需要2个。该单片机采用经典的MCS-51内核,但由于受到了很多的改造的影响,使该芯片与传统51单片机所具备的功能有很大的区别。STC89C52为许多定制的微型计算机应用、智能8位处理器和闪存编程系统,并且可以提供多样、自由、高效的具体实施例[ 7 ] 。相应的单片机功能性引脚见图2.1。

 图 2.1STC89C52 单片机引脚 2.1.2 单片机的最小系统 单片机的最小系统简单来说就是通过最小的元件与模块的搭建,使单片微机具有和普通单片机一样的功能,即被视为最小系统。其基本的原理见图 2.2。

 复位按键C210UFVCCR110KC130PFC330PFY112MHZVCCVCCTXD1RXD2U2下载口P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40U3STC89C52 图 2.2 单片机最小系统原理图

 本科论文

 接下来开始介绍单片机最小系统必备的器件及其作用。

 在本项目中,5V电源是整个系统的主要电源。周边环境简单稳定。电源插座是否直接连接到USB线?是的,一端连接到电源插座,另一端是5V电源,如USB电脑,它可以连接到电源站,充电器连接到手机等。

 复位电路,单片机的RST脚为复位输入脚,当复位器件时,要保持RST脚两个机器周期的高电平时间,复位后单片机就从头开始执行程序。如果单片机执行程序的过程中触发复位,则单片机立即放弃当前操作而被强行从头开始执行程序[ 8 ] 。STC89C52的复位是通过外接复位电路的方式来完成其功能的,具体的电路见图2.3。

 图 2.3 复位电路原理图

 2.2 LCD1602 液晶显示电路设计 2.2.1LCD1602 的概述 LCD1602 液晶,又被称为 LCD1602 字符型液晶。它是一种点阵液晶模块,专门用于显示字母、数字、符号等,由多个 5×7 或 5×11 点阵字符位构成。每个点阵字符位可以进行一个字符的显示。每一个点阵字符位之间有一个点空间,每一行之间有一个空间。它起着字符空间和行空间的作用。基于此,它无法对图形起到很好的显示效果[ 9 ] 。

 2.2.2 LCD1602 的工作原理 LCD1602 共有 11 条指令,可由单片机发送到 LCD1602,完成屏幕清除、开关显示等特定功能。LCD1602 有自己的字体库。显示时可直接调用字体库进行显示。当然,如果字体库中没有字符,也可以根据需要将自己的自定义字符写入,但自定义字符的数量有限。你需要合理地安排和使用它们。您可以自定义多达 8 个字符,并将自定义字符字体写入 LCD 中,它可以像普通显示字符一样随意调用[ 10 ] 。

 当可调电位器的位置改变时,与 VL 相连的电压也随之改变,显示的清晰度也随之改变。所以,在实际应用中,用电位器代替固定电阻只是为了

 本科论文

 更加便捷地去调节和运用不同电压场合的电阻。相关的机理图见图 2.4。

 图 2.4LCD1602 液晶显示电路原理图

 2.3DS1302 时钟电路设计 单片机在处理任何事件都需要时序,时钟晶振电路为系统稳定运行提供保障。时钟电路主要是由两个部分构成,一个晶振以及两个电容,其中晶振 11.0592MHZ,电容 30pF,电容起到了帮助晶振进行起振的作用,满足了数字控制器上电以后可以正常工作[ 11 ] 。时钟电路原理图如图 2.5 所示。

 图 2.5 时钟电路原理图

 2.4LM393 芯片的介绍 LM393 是一个集成电路,由两个独立的高精度电压比较器组成,具有低偏置电压和最大 2.0MV 电压。适用于宽电压范围、单电源供电,也可采用双电源供电。然而,无论电源电压如何,电源消耗的电流都非常低。它还具有一个特点,即比较器的共模输入电压范围接近低电平,即使它是由一个电源供电[ 12 ] 。

 本科论文

 2.5 霍尔测速电路的设计 2.5.1 霍尔传感器的概述 霍尔传感器用于捕获设计信号。霍尔传感器是一种基于霍尔效应的磁场传感器。霍尔效应是 1879 年霍尔研究金属导电机理时发现的一种磁电效应。后来发现半导体和导电液体也存在这样的效应,半导体的霍尔效应与金属明显不处于同一层次。由这种现象制成的各种霍尔元件在诸多领域普内普及化程度相当高,如工业自动化技术、检测技术和信息处理等领域。霍尔效应是研究半导体材料性能的基本方法。霍尔效应实验测量的霍尔系数可以用来对半导体材料的重要参数进行准确地判断与分析,这些参数如载流子浓度和载流子迁移率等[ 13 ] 。

 2.5.2 霍尔传感器测量原理 在磁场中有一个霍尔半导体芯片存在,恒定电流 I 从 a 流向 B,在洛伦兹力的影响下,I 的电子流在通过霍尔半导体时向一侧移动,CD 方向产生了一定数量的电位差,称为霍尔电压。

  霍尔电压随磁场强度的变化而产生一系列改变。磁场与电压呈现正相关的关系。霍尔电压很小,一般来说仅仅几毫伏,但通过放大集成电路中的放大器,电压可以放大到所能输出的正常范围值。如果用霍尔集成电路作为传感器,就一定要采用机械的方式区改变磁感应强度。霍尔效应传感器归类于无源传感器,需要通过外接的电源可能够进行正常地运行。此功能使其能够检测低速操作[ 14 ] 。工作机理见图 2.6

 23148--+U5LM393R610KR710KC40.47UFVCCVCC1GND2OUT3Q2A3144OUT 图 2.6 霍尔测速原理图

 本科论文

 2.6 独立按键电路的设计 按键是按键产品下的一个分类产品,实际上相当于一个电子开关。只要你轻轻地按键,就可以打开开关。当你释放钥匙时,你可以关掉开关。其原理是通过触摸钥匙内的金属弹簧来打开和关闭。

 在本设计中,有一个按键电路,通过几个独立的按键进行人机交互。钥匙通过单片机的 I/O 口接地。这种设计是因为单片机在不输出空气的情况下,其 I/O 默认为高电平。如果未按下该键,则相当于 I/O 处于空气状态。按下后,I/O 端口的电平将被拉低。这样,单片机只需循环检查 I/O 口是否有低电平就可以判断是否有按键。当然,这个关键是金属释放的方式,所以会有抖动纹波,所以有必要在程序中加入一个短延时来消除抖动[ 15 ] 。详细地电路接线图见 2.7。

  KEY2设置键KEY3加值键P10KEY4减值键KEY5退出键P11P12P13 图 2.7 独立按键电路

 四个按键的功能分别为:

 第一个按键:在正常显示时,按下进入设置,依次按可以选择所设置项,依次可以设置日期、时间、轮子周长、总里程复位等。

 第二个按键:在设置模式下,按下对应的设置项加一;在复位总里程时,按下切换 Y/N。

 第三个按键:在设置模式下,按下对应的设置项减一;在复位总里程时,按下确定所选的操作。

 第四个按键:在设置模式下按下退出设置并保存数据;在正常显示模式下按下,进入查看总里程。

 本科论文

 3.系统软件部分设计 3.1 软件开发环境的介绍 软件流程设计采用模块化设计的方法,即在程序编写之前,首先结合基于单片机的自动搅料系统硬件电路以及系统需求对程序进行功能模块化,再编写各个模块的程序,使程序易于编写、调试和修改。程序设计过程中的软件开发环境选用 Keil 软件,Keil 是美国 Keil 软件公司生产的一种兼容性较高单片机的 C 语言软件开发系统。它提供了完备的数据库数据和功能强大的集成开发调试工具,全 windows 界面。

 3.2 系统重要函数的介绍 3.2.1 主函数的设计 对于程序来说,void main()主函数是其一个入口函数,而且在程序当中一定要有这一函数。这函数一开始的时候需要对一些器件作出相应的初始化处理,因此才可以对器件进行使用,对其进行初始化并赋予一定的变量,当初始化过程结束以后,会到达死循环当中,否则的话程序在一次运行完成以后便会退出,倘若其中存在一定的死循环,那么程序就可以一直的进行相应的工作,实现检测的目标。对主程序进行设计的过程当中不能在其中加入太多的一些代码,通常代码是通过函数做出相应的封装工作,之后进行一定的调用[ 17 ] 。因此能够很好的进行阅读以及修改,下图所示内容是其具体的流程。

 本科论文

 开始LCD1602初始化正常显示set_f==0&&look_f==0?读取存储在EEPROM的数据外部中断0初始化定时器0初始化显示正常界面display();读取DS1302数据查看总里程set_f==0&&look_f==1?显示总里程界面display3();调节轮子周长set_f==7?显示调节轮子周长界面display4();选择复位总里程set_f==9?显示选择复位总里程界面display5();显示调节日期、时间界面display2();否是是否否否是是按键检测并处理设置超速报警值set_f==8?否显示设置超速报警值界面display6();是 图 3.1 主函数流程图

 3.2.2

 LCD1602 显示函数的设计 在 LCD1602 方面,要根据厂家所要求的时序来做出相应的编程,以此能够进行显示。在 LCD1602 液晶显示方面,要把显示位置所具有的地址按照命令的方式写入其中,之后把相应的一些数据也写入其中。地址再写入其中以后,通过显示内容其地址会加 1。

 在这一子程序当中主要是通过 LCD 动态扫描来实现显示的目的。在单片机所具有的连接口方面,把 P2.2 口和端口 E 结合在一起,P2.0 口和选择

 本科论文

 端 RS 结合在一起,P0 口和 D0~D7 端连接在一起,向 P0 口输入定的数字。之后使用延时,把以上的一些端口数据分别写入到指令以及数据当中,当所有的数字都显示完成即可[ 16 ] 。具体的流程见图 3.2。

 开始根据在第几列显示计算地址Add=0x80+x;根据在第几列显示计算地址Add=0xc0+x;写入显示地址Add判断是否显示未完成*s!="\0"?返回写入显示内容*s显示内容指针加1s++;是否判断是否在第1行显示y=1?是否 图 3.2 显示函数流程图 3.2.3DS1302 读时函数的设计 在 DS1302 当中存在的 RAM 寄存器有 31 个,当秒寄存处当中设置相应的数值以后,DS1302 便能够做出相应的秒累加,然后进行自动进位。在进行读取数据的过程当中,需要先对寄存器的地址进行输送,然后再对 8位数据进行一定的读取:在对数据进行读取以及发送的过程当中,都要按照先低位后高位的原则来进行。在对数据进行写入的过程当中主要是下降沿有效,而在对数据进行读取的过程当中则是上升沿有效[ 17 ] 。在 DS1302进行操作时需要根据数据手册当中的相关要求来进行。具体的流程见图3.3。

 本科论文

 开始使能DS1302芯片判断地址是否未发送完成i>0?拉低DS1302时钟信号temp = addr;数据口DIO = (bit)(temp&0x01);拉高DS1302时钟信号,完成数据传输地址 addr右移一位是判断数据是否未读取完成i>0?读取数据口DIO电平拉高时钟信号将数据右移一位剩余数据位数减1i--;拉低时钟信号是设置发送八位地址i=8;剩余地址位数减1i--;设置读取八位数据i=8;否否拉高时钟信号关闭DS1302使能将BCD码转换成十进制时钟数据返回数据 图 3.3 DS1302 读时函数流程图

 本科论文

 4.系统整体调试 4.1 系统硬件测试

 对硬件电路进行检测的过程当中,一般检查有没有一些漏焊、断路等情况,同时检查原件有没有出现方向错误以及设计错误等一些问题。

 在漏焊以及元件方向错误方面,主要是把相应的电路板和 PCB 图当中存在的一些线路进行对照,查看在实物当中有没有出现相应的元件,他说没有的话,那么就需要进行重新对照,并作出补焊等一些工作。

 在短路以及断路方面,主要利用数字万能表来进行解决,在二极管档位当中加入所需的数字万能表,利用红表笔以其黑表笔能够使其出现警示信号,以此来对这些问题进行相应的检测。在对元件以及导线进行检测时,使用两根表笔来进行相应的操作,倘若能够导通的话,那么蜂鸣器就会发出一定的声音。因此能够按照相应的一些情况,以及检测时所产生的一些现象检查线路有没有出现一定的问题。

 在进行焊接方面,一般主要使用的是手工焊接,如今有很多的工厂在进行焊接时摒弃了传统的一些方法,不过在一些普通器件方面还是会通过手工焊接的方式来进行相应的操作。焊接的成功时项目是否成功的关键要素之一,如果焊接本质上出现问题,则会影响到整个控制系统的。所以在焊接的过程中一定要十分的小心。焊接的步骤如下:

 (1)检查元器件:在进行焊接时要对所要利用的元器件进行相应的检查,确保没有出现一定的损坏,之后才能够安装和焊件,以防出现在焊接完成后因某个元件有损坏而使系统无法正常运行。

 (2)放置、焊接各元件:检查好元器件之后,要根据原理图排好各元件位置,优先放置或焊接较低的元件,然后再对位置相对比较高的一些元件进行放置,特别是一些容易产生损坏问题的元件应该在结束的时候进行焊接,而且时间要小于 10 秒。进行焊接时如果焊锡不充足的话,那么就要补焊锡,而且也需要严格把控焊锡的量,防止和另外的一些器件进行连接[ 19 ] 。另外也存在焊锡太多的现象,此时需要通过电烙铁来对剩余的一些焊锡进行处理,也可以使用吸锡器除焊锡。焊接完成如图 4.1、4.2 所示。

 本科论文

  图 4.1 焊接实物图

 图 4.2 电路板图片 焊接好的电路板在上电之前必须得经过调试,以免发生短路烧毁元器件或者因为断路导致的元器件无法工作的情况。

 (1)单片机电路调试 单片机是整个系统核心部件。在最初的调试中,出现了调节按键失灵,经过多次调试实验后发现是由于单片机的P1.1引脚脱焊导致的,进再次焊接后故障问题便消除了。

 (2)系统电源供电路调试 在供电接口VCC与GND两端接上电源后[ 18 ] ,闭合开关,发现系统无供电,用万用表检测USB供电口的引脚发现无电压。将引脚重新焊接后再检测发现电压正常,可以为系统可以正常供电。

 (3)LCD1602液晶显示模块电路的调试 在调试上电后发现LCD1602液晶屏幕虽然亮起来,但是发现没有显示

 本科论文

 出任何字符,后来用螺丝刀调节电位器,发现电位器旋钮位于最左端,此时灰度值最低因此无法显示字符,经过调试向右旋转后发现屏幕可以清晰地显示出字符来。

 4.2 系统软件测试 在进行测试时要使用的工具主要有:KEIL 软件、系统硬件以及 PL2303下载器等。软件上主要利用 KEIL 软件来做出相应的编写,然后将其变为HEX 文件,然后利用 PL2303 下载器来进行下载。根据系统工作时的具体情况做出相应的修改以及调试,然后形成相对比较完善的程序。

 进行软件调试时,要按下编译的按钮,然后文件会做出正常的运行工作,运行的提示信息会自动输出到编译窗口。如果提示信息中显示“error”字样,说明程序有错误,需要根据提示信息找到错误并及时改正[ 20 ] ,否则说明程序运行成功。无错误信息提示,如图 4.3 所示。

 图 4.3 无错误信息提示图 软件调试的过程当中容易出现以下的一些问题:

 (1)对清屏指令进行发送的过程当中,LCD1602 还没有完成屏幕的清除工作。

 针对这一问题需要查看其使用手册,而获得的清屏指令和程序当中的是一致的,在显示屏当中能够对相应的内容进行一定的显示,以此能够说明指令并不存在错误,不过并没有进行清屏。然后需要注意有没有发送相应的清屏指令。因为 LCD1602 在处理的过程当中,速度相对比较慢,因此还没有对清屏指令进行执行。加入 40ms 的延时以后对其进行重新的下载,到达程序当中以后能够看到已经执行了清屏指令。根据阅读手册能够了解到,在 LCD1602 清屏方面,要有 1.64ms 的时间来进行执行操作,最后使用了 4ms 的延时。

 (2)时间可以读取出来并可以走,但是进入校准时间的时候无法调节时间。

 解决方法:通过分析程序发现在使用 DS1302 时候未进行初始化,可能是 DS1302 被禁止写入数据,通过编写正确的初始化程序打开禁止写入数据后重新下载后按键可以正常的校准时间。

 本科论文

  结

 论

 本设计主要采用 STC89C52 单片机作为核心控制器,包括霍尔元件模块,液晶显示采集模块,蜂鸣器报警等模块,多模块的配合最终实现了里程速度测试表系统。本文主要完成了系统设计方案论证和总体框架的设计,设计了系统整体和各模块工作的程序框图;控制模块采用 STC89C52 单片机作为系统核心控制器。

 本课题主要任务是以单片机为核心利用霍尔传感器测速来设计一个可用 LED 显示里程和速度的自行车速度里程表。本文主要介绍了自行车的速度里程表的设计思路、电路原理和元件的选择等各个方面的内容,整体上大致可分为硬件部分设计和软件部分设计。目的是能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率 (传感器将不同车速转变成不同频率的脉冲信号) 实时地测量出来, 考虑到信号的衰减、干扰等影响, 在信号送入单片机前应对其进行放大整形,然后通过单片机计算出速度和里程, 再将所得的数据存储到串口数据存储器,并由 LED 显示模块交替显示所测速度与里程。

 本科论文

  参考文献

 [1]黄天辰,李楠,陶炳坤.自行车多功能里程表的设计与实现[J].自动化技术与应用,2017,36(6):124-127 [2]丁敏.电动自行车里程速度计的设计[J].电动自行车,2018(2) [3]卢芷君,谭穗妍.智能自行车数字里程表的设计[J].科技创新与应用,2016(8):50-52 [4]王丽芳,宋仁旺.高集成度的电源管理电路[J].太原科技大学学报,2014,35(4):26 [5]孙士达.蓄电池光伏充电控制装置设计[D].哈尔滨:东北农业大学,2019. [6]沈梦甜.便携式光伏多功能交直流电源[J].湖南电力,2018,38(1):31-34. [7]南京新捷中旭微电子有限公司.CS3013、3020、3040 系列霍尔开关电路[EB/OL].[2010-03-25] [8]韩全立,余华.单片机原理及应用[M].北京:北京希望电子出版社, 2006:1-2. [9]王锁弘.电子车速里程表的单片机实现方案[J].国外电子元器件,2004 (5) :7-8. [10]汤向恒.电子式车用里程表[M].汽车电器, 2004 (1) :10-11. [11]杨阳.自行车速度里程表的设计[J].信息通信,2015,(3):58-59 [12]丁敏.电动自行车里程速度计的设计[J].机械管理开发,2012,(6):55-56 [13]徐丽萍.基于 AT89S51 单片机自行车里程/速度计的设计[J].南京工业职业技术学院学报,2010,10(2):28-29 [14]耿子庆.浅谈自行车里程计/速度计的设计[J].科教导刊,2011,(15):104-105 [15]栾丽,李忠相.关于自行车测速计的问题[J].物理通报,2013,(11):35-36 [16]李朝青.单片机原理及接口技术[J].. 北京航空航天大学出版社, 1994 [17]松井邦彦,梁瑞林.传感器应用技术[J]..科学出版社,2006. [18]张毅刚,刘杰. MCS-51 单片机原理及应用[J]..哈尔滨工业大学出版社,2004

 本科论文

 [19]谢自美.电子线路设计.实验.测试[M].武汉:华中科技大学出版社,2000:212-230 [20]楼然苗,李光飞. 51 系列单片机设计实例[J]..北京航空航天大学出版社, 2006

 本科论文

  附录 源程序代码

 #include <reg52.h>

  //调用单片机头文件 #define uchar unsigned char

 //无符号字符型 宏定义变量范围 0~255 #define uint

 unsigned int //无符号整型 宏定义变量范围 0~65535

 sbit clk = P1^3;

  //ds1302 时钟线定义 sbit io =

 P1^4;

 //数据线 sbit rst = P1^5;

 //复位线 //秒

 分

  时

  日

  月

 年

  星期

  uchar code write_add[]={0x80,0x82,0x84,0x86,0x88,0x8c,0x8a};

  //写地址 uchar code read_add[] ={0x81,0x83,0x85,0x87,0x89,0x8d,0x8b};

  //读地址 uchar miao,fen,shi,ri,yue,week,nian; uchar i;

 unsigned long speed1,juli,time2; float f_hz,speed_km,speed_m;

 uchar TH11,TL11; uchar flag_en;

  //开始计算速度使能

 uint juli_s;

  //每秒走的距离 uint juli_z;

  //总路程 float zhijing = 0.55;

 //直径 0.55M uint s_zhijing = 55;

 bit flag_1s = 1;

  //1s uchar menu_1;

 //菜单设置变量 uchar menu_2;

 //菜单设置变量

 long zong_lc;

 //总量程

 uchar flag_200ms; uint shudu;

  //定义速度的变量 uint bj_shudu = 50;

 //报警速度

 uchar f_pwm_l

  = 20;

 //

 //f_pwm_l sbit pwm

 = P2^0;

 //这三个引脚参考资料 sbit rs=P1^0; //寄存器选择信号 H:数据寄存器

 L:指令寄存器 sbit rw=P1^1; //寄存器选择信号 H:数据寄存器

 L:指令寄存器

 本科论文

 sbit e =P1^2; //片选信号

  下降沿触发

 uchar code table_num[]="0123456789abcdefg"; uchar i;

 sbit beep = P3^7;

  //蜂鸣器 IO 口定义

 /******************1ms 延时函数*******************/ void delay_1ms(uint q) { uint i,j; for(i=0;i<q;i++) for(j=0;j<120;j++); }

  /******************************************************************** * 名称 : delay_uint() * 功能 : 小延时。

 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void delay_uint(uint q) { while(q--); }

 /******************************************************************** * 名称 : write_com(uchar com) * 功能 : 1602 命令函数 * 输入 : 输入的命令值 * 输出 : 无 ***********************************************************************/ void write_com(uchar com) { i =0; e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1; delay_uint(25);

 本科论文

 e=0; }

 /******************************************************************** * 名称 : write_data(uchar dat) * 功能 : 1602 写数据函数 * 输入 : 需要写入 1602 的数据 * 输出 : 无 ***********************************************************************/ void write_data(uchar dat) { i =0; e=0; rs=1; rw=0; P0=dat; delay_uint(3); e=1; delay_uint(25); e=0;

 }

 /******************************************************************** * 名称 : write_sfm2(uchar hang,uchar add,uchar date) * 功能 : 显示 2 位十进制数,如果要让第一行,第五个字符开始显示"23" ,调用该函数如下

 write_sfm1(1,5,23) * 输入 : 行,列,需要输入 1602 的数据 * 输出 : 无 ***********************************************************************/ void write_sfm2(uchar hang,uchar add,uint date) { if(hang==1)

 write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/10%10); write_data(0x30+date%10); }

 /******************************************************************** * 名称 : write_sfm4(uchar hang,uchar add,uchar date) * 功能 : 显示 2 位十进制数,如果要让第一行,第五个字符开始显示"23" ,调用该函数如下

 write_sfm1(1,5,23) * 输入 : 行,列,需要输入 1602 的数据

 本科论文

 * 输出 : 无 ***********************************************************************/ void write_sfm4(uchar hang,uchar add,uint date) { if(hang==1)

 write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/10000%10); write_data(0x30+date/1000%10); write_data(".");

 write_data(0x30+date/100%10); write_data(0x30+date/10%10); write_data(0x30+date%10); write_data("k"); write_data("m"); }

 void write_sfm7(uchar hang,uchar add,uint date) { if(hang==1)

 write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/100000%10); write_data(0x30+date/100000%10); write_data(0x30+date/10000%10); write_data(0x30+date/1000%10); write_data(".");

 write_data(0x30+date/100%10); write_data(0x30+date/10%10); write_data("k"); write_data("m"); }

 /***********************lcd1602 上显示两位十进制数************************/ void write_sfm1(uchar hang,uchar add,uchar date) { if(hang==1)

 write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date % 10); }

 本科论文

  /******************************************************************** * 名称 : write_string(uchar hang,uchar add,uchar *p) * 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下

 write_string(1,5,"ab cd ef;") * 输入 : 行,列,需要输入 1602 的数据 * 输出 : 无 ***********************************************************************/ void write_s...

推荐访问:里程 单片机 速度
上一篇:【演说稿】力补“四短”,“下一步工作思路及措施”经典写法
下一篇:论公司转投资额限制

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有