毕业设计(论文)-感应式自行车速度里程表设计

上传人:na****u 文档编号:61037600 上传时间:2022-03-10 格式:DOC 页数:44 大小:1.30MB
收藏 版权申诉 举报 下载
毕业设计(论文)-感应式自行车速度里程表设计_第1页
第1页 / 共44页
毕业设计(论文)-感应式自行车速度里程表设计_第2页
第2页 / 共44页
毕业设计(论文)-感应式自行车速度里程表设计_第3页
第3页 / 共44页
资源描述:

《毕业设计(论文)-感应式自行车速度里程表设计》由会员分享,可在线阅读,更多相关《毕业设计(论文)-感应式自行车速度里程表设计(44页珍藏版)》请在装配图网上搜索。

1、河北经贸大学毕业论文感应式自行车速度里程表设计专业名称: 电子信息工程 班 级: 电子11-2班 学生姓名: 指导教师: 完成时间: 2015年5月 河北经贸大学毕业论文摘 要 随着我国人民生活水平的日益提高,自行车的应用在我们的日常生活中越来越广泛,不仅仅扮演着交通工具的角色,而且也是人们日常生活中娱乐、休闲、锻炼的首选。随着自行车成为一大时尚运动的趋势,伴随而来的自行车速度里程表当然也就变成了我们在使用过程中最关心的工具。因此自行车速度里程表的设计具有现实意义,能够很好地满足人们对于自行车运动的要求。此次设计的感应式自行车速度里程表的核心是单片机和霍尔传感器。不同的车速会被霍尔传感器检测到

2、并将其转变为不同频率的脉冲信号,进而输入到单片机中进行计算,再采用1602液晶屏和四位八段数码管分别进行显示,可以方便、简洁的将速度和里程呈现给使用者。本系统由单片机STC89C52、霍尔传感器、液晶显示屏1602、四位八段数码管、键盘矩阵、芯片LM393、38译码器组成。我们首先对感应式自行车速度里程表设计中所需要的硬件器件作了详细的介绍,而后又认真分析了硬件和软件部分的融合设计和功能实现,在此基础条件上对系统进行了仿真与调试,最后进行实物的操作。关键词 霍尔传感器;液晶显示1602;键盘矩阵;速度里程表Abstract Along with the increasing of people

3、s living standard, the application of bicycle is becoming more and more widely in our daily life, not only play the role of the transport now. The bicycle in todays social life has become a big sports fashion, accompanied by bike speed odometer, of course, also becomes our indispensable auxiliary to

4、ol in the process of movement. So the design of the bicycle speed odometer has practical significance, can well meet the requirements of people for cycling. The core of this design is single chip microcomputer and hall sensor. Hall-effect sensor detects the speed will be different and turned them in

5、to different frequency pulse signal, and then input to the single chip microcomputer to calculate, then use 1602 LCD screen and LED display, respectively, speed and mileage can be convenient and concisely presented to the user. This system consists of micro controller STC89C52, hall sensors, liquid

6、crystal display 1602, LED, keyboard matrix,LM393, 38 decoder chip. The first thing we need in the design of induction bicycle speed odometer hardware device has made the detailed introduction, then carefully analyses the hardware and software design and function realization, part of the fusion syste

7、m on the basic conditions for the simulation and debugging, finally carries on the physical operation. Keywords Hall Sensor;LCD1602;Keyboard Matrix;Speed odometer II目 录1 绪论11.1 设计背景11.2 设计的意义及前景21.3 设计研究的主要内容22 总体方案设计32.1 系统功能分析及实现32.2 硬件部分方案设计32.3 软件部分方案设计43 硬件电路设计63.1 概述63.2 数据采集模块63.2.1 霍尔传感器工作原理

8、及其介绍63.2.2 LM393比较器73.3 单片机模块83.3.1 单片机原理83.3.2 单片机引脚介绍93.3.3 单片机中断系统103.3.4 单片机定时/计数功能介绍113.4 显示模块123.4.1 显示模块之液晶屏123.4.2 显示模块之四位八段数码管153.4.3 38译码器173.5 键盘矩阵模块173.6 步进电机193.6.1 步进电机简介193.6.2 步进电机驱动芯片ULN2003194 系统软件实现214.1 概述214.2 总程序设计214.3.1 中断子模块程序实现224.3.2 显示子模块程序实现244.3.3 键盘矩阵子模块程序实现284.3.4 步进电

9、机驱动子模块程序实现315 系统仿真与调试325.1 仿真325.2 调试34结束语37致谢38参考文献39II感应式自行车速度里程表设计1 绪论1.1 设计背景自行车传入到中国已是19世纪末,那时正是清朝末期,自然而然的首先进入到皇家贵族中,成为他们的玩具,民间将其称为“洋马儿”,也就是说这是从洋人那里传过来的、能代替马的一种交通工具。新中国成立后,也就是上世纪50年代,人们生活逐渐富裕,每个中国人都梦想着能拥有一辆自行车当作自己的交通工具。再往后到了60年代,由于时代的发展,自行车成为年轻人结婚必备的“三大件”,另外两件是缝纫机和手表,这些成为了一个家庭辛福的象征,在此期间,中国的自行车盛

10、行一时,中国被外国人称为自行车王国。转眼到了90年代,受到了其他交通工具的影响,自行车逐渐退出历史舞台,从此,其不再被人所崇拜。到了21世纪,自行车又一次迎来了春天,但不再是以前的简单的自行车,出现了许多种改装后的自行车,包括山地自行车、公路自行车、折叠自行车等许多新的种类。由此可见自行车在我国的发展历程顺应着时代的变化,随着我国经济文化的不断前进,自行车的各方面用途也在日新月异。 我国因人口众多,所以是使用自行车数量较多的国家,同时随着我国经济的蓬勃发展,人们生活水平也在逐渐提高。现在自行车已经不仅只用来运输和代步,其辅助功能也变得越来越多。因此,自行车其他功能也被开发的越来越多,比如用来我

11、们娱乐、休闲。在这种潮流下,自行车当然也需要更多的辅助性工具,其中速度里程表就是很重要的一种。它能准确为使用者提供速度与里程显示,进而可以大致的判断出自己的运动状态,使运动者能直观决定自己的运动量,达到代步与健康运动的完美结合。1.2 设计的意义及前景由于自行车速度里程表现已广泛应用于家庭和比赛等众多场合,所以也逐渐成为了人们运动生活中的一部分。自行车速度里程表优点很多,这一切都得益于数字集成电路的发展。目前,市场上已经有现成的自行车速度里程表集成芯片,其价格低廉,使用方便。但出于对由单片机及自动检测等主要组成部分的考虑,研究感应式自行车速度里程表及扩大其功能,有着非常现实的意义,其发展前景明

12、朗,在这个人们越来越注重生活质量的社会中其会受到广泛欢迎,而科技的发展也会促进自行车速度里程表的改进与精良。1.3 设计研究的主要内容本设计的主要目的就是利用霍尔传感器、单片机等部件设计一个可以在液晶显示屏上显示平均速度和里程,同时在四位八段数码管上面显示瞬时速度的自行车速度里程表。在开始时我们可以利用键盘矩阵选择所要进行测试的自行车的规格,以此来满足各种车型。在测试过程中,霍尔传感器对单片机提供脉冲信号,1602液晶屏显示平均速度,但出于人性化设计,使用者可以通过按键切换模式,使得液晶屏上面显示目前行进的里程。为了灵活,键盘矩阵上设有暂停和开始键,以满足我们随时可以开始或者暂停自行车速度里程

13、表的使用。在此系统设计中,为了模拟速度里程表的真实使用情况,在系统基础上增加了步进电机等设备,从而在键盘矩阵上相应的设置了电机停、电机正转、电机来回转三个按键。2 总体方案设计2.1 系统功能分析及实现 本设计要实现的是在自行车行驶过程中显示速度及里程。此设计中处理核心为STC89C52单片机,车轮的转数经霍尔传感器转换为电脉冲,然后送入处理核心单片机。STC89C52的计数器和定时器分别测出总的脉冲数和总的时间,再经过处理器的计算,这样便可以得到里程及平均速度,其结果送到液晶显示屏中并显示出来。瞬时速度的测量则是通过在单位时间内记录到的脉冲数来计算的。本设计包含单片机控制系统,数据采集系统,

14、键盘矩阵,液晶显示,数码管显示5部分。其五部分的功能和联系是:数据采集由霍尔传感器及其它芯片完成,然后将输出的脉冲送入到单片机中进行最关键的处理,经过单片机处理的数据由液晶显示屏和四位八段数码管显示,其中键盘矩阵是用来选择车型以及进行模式转换,这就是整个系统的各个部分设计及整体思想。本设计的程序计算思路为:假设轮胎的周长为L,在轮胎上我们可以安装n个小磁片作为标志,由于速度以及里程数不需要很高的精确度,因此在本设计中设n为1。在此基础上,车轮每转过一周,单片机也就会收到一个脉冲,里程数也就会增加一个周长,里程数除以从开始到目前的时间长度就是平均速度。对于瞬时速度的计算是通过测量单位时间内的脉冲

15、数,然后用脉冲数乘以车轮周长得出瞬时速度。整个系统的功能以及实现大概就是以上所述,但在实际应用中,误差是不可避免的。2.2 硬件部分方案设计 对于速度和里程的测量,首先摆在我们面前的问题就是如何进行采样。因为这次设计的题目是感应式自行车速度里程表,所以经过考虑选择霍尔传感器来进行采样。在现实中使用霍尔传感器获得脉冲信号是一件比较简单的事情,因为其机械结构简单,我们只需要在车轮的一根辐条上安装一个小磁片,检测器固定在自行车的前叉上。这里一定要注意,必须使小磁片和检测器能够在同一水平位置,否则是检测不到脉冲的。当车子运动的时候,小磁片转到检测器的位置后,检测器就会输出脉冲信号,不断地运动就会输出不

16、断的脉冲信号。只要车轮每转一圈,就会产生一个脉冲,脉冲会送到单片机中进行计算,这样便可得到转速的信息。在本次设计中使用一个步进电机模拟车轮,在电机轴上安装一个带有小磁片的横轴,使用程序来控制电机的转动情况。矩阵键盘和显示模块部分。键盘矩阵根据此次设计要求设计的是4*4的矩阵键盘,整个键盘的完成是先通过电路设计,然后安装小按键,最后进行连线。显示部分为了实现能够显示里程,平均速度和瞬时速度,分别选择了1602液晶屏和四位八段数码管。硬件电路系统框图如图2-1所示。STC89C52单片机按键模块(用来切换显示和复位) 步进电机显示模块(显示即时里程数或者是平均速度和瞬时速度)数据采集模块(接收外部

17、信号产生脉冲信号) 电源模块图2-1 系统结构框图2.3 软件部分方案设计 单片机的最大特点和优点就是我们可以通过设计程序来控制单片机的所有引脚,程序最重要的两大特性就是合理性与可读性,本系统遵循的设计原则是模块化原则。采用自顶向下的设计方法加上模块化设计思想,不仅可以优化程序的可读性而且也方便后续的修改及完善。本设计采用C语言来进行程序编写。软件程序部分包括主程序、行车过程中用到的里程和速度计算子程序、延时子程序、显示子程序、中断服务子程序等等。中断子程序指的是将霍尔传感器产生的信号接入单片机的外部中断,利用中断和定时器分别对单位时间里行走的路程进行加和以及测量轮子每转一周的时间。数据处理子

18、程序是单片机处理外部中断送来的数据,同时在定时器的帮助下运用一定的关系计算速度与里程值。显示子程序的作用是将单片机处理好的数据送到显示模块显示。3 硬件电路设计3.1 概述自行车速度里程表的基础也是最重要的部分就是硬件电路设计,它包括信号的采集部分霍尔传感器,处理核心单片机,矩阵键盘,起显示功能的液晶屏与数码管,同时还有其他基本电路。传感器和单片机是最核心最重要的两大电子元件,其中单片机是整个系统的大脑。3.2 数据采集模块3.2.1 霍尔传感器工作原理及其介绍本次设计利用霍尔传感器来获取车轮所转圈数并向单片机发送脉冲信号。霍尔传感器的制作原理是霍尔效应,从而它属于磁敏传感器。霍尔传感器因功能

19、不同我们可以把它们分为线性器件和开关器件,线性器件输出的是模拟量,而开关器件输出的是数字量。在使用时我们要考虑到检测对象的性质,从而我们有两种使用方法:直接应用和间接应用。检测对象本身具有磁场或磁特性的可以用直接应用方法,如果是人为设置的磁场我们就用间接检测,人为磁场充当信息载体,通过它,许多非电、非磁的物理量就可以转变成电量以方便我们检测。本次设计中采用的就是Y3144霍尔开关型器件,接线如图3-1所示。霍尔效应:是磁场中垂直放置半导体薄片或有电流的金属时,薄片两端会产生电位差。霍尔电势U指的就是两端具有的电位差,其表达式为 U=KIB/d,其中B为外加磁场的磁感应强度,I为薄片中通过的电流

20、,K为霍尔系数,d是薄片的厚度,由此可见,外加磁场的磁感应强度是直接影响霍尔效应的灵敏度的。霍尔元件就是利用霍尔效应制成的。图3-1 霍尔元件接线图Y3144采用双极技术制造,采用霍尔板、电压调节器、反电压保护器、信号放大器组成的施密特触发电路。驱动器输出由晶体管的集电极开路完成。Y3144的工作范围和操作温度范围宽,十分适合应用在此次设计中,如图3-2为此次设计的实物图。图3-2 霍尔传感器实物图3.2.2 LM393比较器 LM393 是双电压比较器。输出电压是不受VCC端电压值的限制,这也就是为什么其可以连接在任何电源上,当然前提条件是在电源电压范围内。 优势。 (1)高精度比较器; (

21、2)可以单电源供电; (3)减少由于温漂引起的失调电压; (4)兼容分逻辑电路; (5)输入共模电压范围接近地电平。LM393比较器在此系统中的作用是比较霍尔传感器输出的电压值和提前设定好的电压值。当提前设定的电压值小于霍尔传感器输出的时,比较器输出1。反之,当提前设定好的电压值大于霍尔传感器输出的电压值时,比较器输出0。而提前设定好的电压值的设定是当磁片转到霍尔传感器上方时,通过指示灯的亮灭来调试设定值,设定根据是比较器输出1时指示灯亮,0时则灭,如图3-3为此次设计的实物图。图3-3 LM393实物图3.3 单片机模块3.3.1 单片机原理单片机也叫做微型计算机,顾名思义就是将计算机的各功

22、能部件集成化放在一个小芯片上,包括CPU(Central Processing Unit)、只读存储器ROM(Read-only Memory)、随机存储器RAM(Random Access Memory)、定时器/计数器、基本输入/输出(Input/Output)接口电路等部件,可以通过编程来实现一定的控制功能。单片机内部结构如图3-4所示。INTTP0-P3定时/计数器中断系统CPU存储器并行I/O口串口I/O口TXDTXDRXDP0-P3图3-4 单片机内部结构示意图3.3.2 单片机引脚介绍表3.1 单片机管脚功能表/PSEN外部程序存储器读选通信号。在读外部ROM时,/PSEN有效(

23、低电平),以实现外部ROM单元的读操作/EN访问程序存储控制信号。对ROM的读操作是在当/EN信号为低电平时,操作限定在外部程序存储器;反之当/EN信号为高电平时,对ROM的读操作开始于内部程序存储器,延至外部程序存储器RST复位信号。当两个机器周期以上的输入复位信号都是高电平时即为有效,用以完成单片机的复位初始化操作XTAL l和XTAL2外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号VSS地线VCC+5V电源ALE地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的分时传

24、送P0.0P0.7P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口P1.0P1.7P1是一个带内部上拉电阻的8位双向I/O口P2.0P2.7P2是一个带内部上拉电阻的8位双向I/O口P3.0P3.7P3是一个带内部上拉电阻的8位双向I/O口我们通常将以上所定义的引脚功能称之为引脚第一功能,如果再定义的话就称之为引脚的第二功能。P3口的8条引脚有第二功能定义,如表3.2所示,其他口没有第二功能。表3.2 P3口引脚与第二功能引脚第二功能信号名称P3.0RXD串行数据接收P3.1TXD串行数据接收P3.2/INT0外部中断0申请P3.3/INT1外部中断1申请P3.4T0定时/计数

25、器0的外部写入P3.5T1定时/计数器1的外部写入P3.6/WR外部RAM写选通P3.7/RD外部RAM读选通3.3.3 单片机中断系统 假如在计算机正常程序运行过程中,系统中出现了急需要处理的事件,我们就要进行中断,也就是CPU要对更加紧迫的事件进行处理,所以要暂时停止运行当前的程序。等到紧急事件处理完成后,CPU会重新返回到原来程序的地方,继续向下运行。STC89C52系列单片机具有5个中断源,因为其有2个优先级,故可实现二级中断嵌套。CPU是否响应中断请求是受一个特殊功能寄存器控制。在进行终端服务时,我们还要安排各中断源的优先级,此项任务由中断优先级寄存器IP完成。如果是属于同一优先级的

26、各终端中断请求同时提出,必须要经过内部的逻辑查询确定其响应先后顺序。外部中断方式有两个,它们的中断请求信号分别由单片机引脚/P3.2和/P3.3输入。在外部中断的请求中包含两种信号方式:电平触发方式和脉冲触发方式。拿低电平触发来说,当出现电平由高掉到低的情况,也就是低电平只要出现在和引脚上,外部中断方式就会被激活,这种称为电平触发。当原来情况下都是高电平,突然出现了负跳变时,也就是在两个相邻机器周期内,引脚电平发生了变化,简单地可以理解为在第一个机器周期内为一直为高电平,第二个机器周期内为变为低电平,单片机检测的是下降沿,而不是单纯的电平,这种触发方式称为脉冲触发。由此我们可以知道,要使用脉冲

27、触发,就必须让中断请求信号的高低电平都至少维持一个机器周期,不然就会检测不到,无法正常工作。脉冲触发方式是应用于此次设计的触发方式。中断允许控制:中断系统中包括五种中断源,具体如下所列。同时这五个中断分别由IE的各个位控制,假如某一位为1,则其中断为允许,若某位为0则中断为屏蔽。并且IE的最高位为中断允许位,也就是说此位只有在为1的情况下中断系统才能正常运行,否则中端系统无法正常工作。IE寄存器各位的定义如下。EX0(IE.0):外部中断允许位;ET0(IE.1):定时 / 计数器T0中断允许位;EX1(IE.2):外部 中断允许位;ET1(IE.3):定时 / 计数器T1中断允许位;ES(I

28、E.4) :串行口中断允许位;EA(IE.7) :CPU中断允许位。3.3.4 单片机定时/计数功能介绍 STC89C52的定时器和计数器的工作方式是由两个特殊功能的寄存器来控制的,TCON是用来控制启动和关闭哪个中断,TMOD是用来控制其工作模式,具体功能如下表。表3.3 功能表控制寄存器TCON用来设置使用哪个中断TF1(TCON.7)定时/计数器T1溢出中断请求标志位TR1(TCON.6)定时/计数器T1运行控制位TF0(TCON.5)定时/计数器T0溢出中断请求标志位TR0(TCON.4)定时/计数器T0运行控制位工作方式寄存器TMOD用于设置定时/计数器的工作方式GATE门控位C/T

29、定时/计数模式选择位M1M2工作方式设置位 本次设计中单片机的引脚分布及其各部分所连器件如下。P0.0P0.7连接1602液晶屏的8位数据口;P1.0P1.7连接上拉电阻和四位八段数码管的八位段选;P2.0P2.7连接矩阵键盘;P3.0P3.2连接1602液晶屏的读写及使能端,P3.4、P3.6、P3.7连接38译码器。如图3-5为单片机仿真接线图。图3-5 单片机仿真图3.4 显示模块本设计中采用1602液晶屏和四位八段数码管来进行显示。3.4.1 显示模块之液晶屏LCD1602液晶显示屏是一种专门用来显示数字、字母、符号等ASCII码的点阵液晶屏。一般有两种类型,一种是5*7个点阵组成的一

30、个字符,另一种是5*11个点阵组成的一个字符,但两种类型的字符之间都有一定的间隔,每行也有一定的空隙,这和LCD12864不同,因此不能很好的显示图形。LCD1602可以显示两行内容,每行可以包含16个字符(显示字符和数字)。在此设计中显示平均速度与里程数。特性:1602工作电压有两种即3.3V或5V,对比度是可以调节的,其中自带复位电路,具有各种控制指令,如:清屏、光标闪烁、字符闪烁、显示移位等。含有80字节的数据显示存储器DDRAM,并且内建有192个5*7点阵的字符发生器CGROM,8个5*7的字符发生器CGRAM。图3-6 1602LCD仿真图图3-7 1602实物图寄存器选择控制如下

31、表所示。表3.4 寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01都busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据指令集1602是通过D0D7的8位数据端发送和传递指令和数据的。显示模式设置:(初始化)0011 0000 0x38 就是设置液晶屏为16*2显示,5*7点阵,8位数据接口模式;显示开关及光标设置:(初始化)0000 1DCB D显示、B光标闪烁、C光标显示,这里都是1有效。0000 01NS N=1 (读或写一个字符后地址指针加1且光标加1) N=0 (读或写一个字符后地址指针减1且

32、光标减1)一般推荐的初始化过程如下。延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms (以上都不检测忙信号)写指令38H (以下都要检测忙信号)写指令08H 关闭显示写指令01H 显示清屏写指令06H 光标移动设置写指令0cH 显示开及光标设置完毕字符集LCD1602液晶屏有自己的存储器,其中含有160个点阵字符,当我们需要使用这些字符时,只要将与之对应的代码发送给液晶屏,其就会自动匹配,为我们找到相对应的字符进而显示在指定位置,这方便了设计者的程序设计,比如说我们需要显示字母“A”,因为它的代码就是01000001B(41H),也就是他的ASCII码值,此时我们

33、就可以直接将这个代码发送给液晶屏,当然也可以在程序中显示发送A,然后单片机会自动转化为ASCII码值传送给液晶屏,其实这两个就是等价的,不过在编程时为了增加可读性,一般使用A这样的形式。显示地址如下。表3.5 显示地址12345678910111213141516/H000102030405060708090A0B0C0D0E0F/H404142434445464748494A4B4C4D4E4F3.4.2 显示模块之四位八段数码管本设计中采用四位八段数码管显示瞬时速度。在单片机系统中,各种数字经常是用LED数码显示器显示。八段LED显示屏是由8个发光二极管按照一定的位置排列组成的。八段和七段

34、本质是一样的,只是八段在“8”的字形上右下角多了一个小数点,可以显示带有小数的数字,功能更强大一点。一般来说LED显示器可分为两种:一种是共阳极LED,顾名思义就是将发光二极管的所有阳极都连在一起,阴极都是由IO口来控制;另一种是共阴极LED,同理就是将发光二极管的所有阴极都连在一起,阳极都是由IO口来控制其显示各种数字。如3-8所示,本次设计采用共阴极接法。图3-8 八段数码管引脚及接法显示图LED显示方式有两种,分别是动态显示和静态显示。而通常最常用的是动态显示,本系统也是采用的这种方式。动态显示接口电路的形成是将a-h的八个笔画段的同名端连在一起,I/O线控制其余每个显示器的公共极COM

35、端。当显示器显示时,具体是哪个数码管来显示取决于COM端。因为在CPU送出字型码时,所有数码管接收到的都是相同的字型码。动态显示意思就是显示是一直在运动的,但因为我们的视觉暂留效应,我们依然能够看到其实已经不亮的数码管,同时因为其速度很快,以至于我们看到的就是不闪烁的一组数字。其中的原理是我们采用分时的方法,各显示器的COM端轮流受到控制,也就会出现各显示器独自点亮。图3-9 四位八段数码管的仿真图图3-10 四位八段数码管的实物图3.4.3 38译码器 由于此设计中涉及到的单片机控制较多,所以需要与单片机相连的引脚偏多,以至于单片机引脚数目不够用,所以在此系统中增加了一个38译码器。38译码

36、器的输出端Y0Y3控制四位八段数码管的四位位选,Y4Y7控制步进电机的驱动芯片。图3-11 38译码器实物图图3-12 38译码器接线图3.5 键盘矩阵模块本设计中采用键盘矩阵一是用来在开始使用自行车速度里程表时选择车型(使用者输入所用于车型的车轮直径),二是用来切换模式和控制电机。本系统采用4*4键盘,具体键盘排列与功能见图3-13。图3-13 键盘矩阵的实物排列图4*4的键盘引出的8个引脚接单片机的P2.0口。键盘扫描原理是由16个轻触按键排成4行4列,4行4列出来的八根线连接到P2端口。行线是输出端,列线是输入端。初始时输入端为高电平,输出端都为低电平,也就是说我们可以通过读输入线的状态

37、来判断是否有按键按下,只要有一个按键被按下,输入线中的某一根就会被拉低。本系统采用的扫描法正如上所说:全部行线都置低电平,然后检测列线的状态,进而判断有无键按下。当有列线显示低电平时,则表明键盘中有键被按下,并且可以知道按下的键位于显示低电平的列线与四根行线的交叉点上。当然若没有键按下时,列线都是高电平。再进一步说,我们要判断具体位置就要顺次将行线置为低电平,在某根行线为低时其它的要为高。一旦确定某根行线位置为低后,则该行线与之前置低的列线交叉处的按键就是被按下的的按键,接线图如3-14所示。图3-14 键盘矩阵接线示意图3.6 步进电机3.6.1 步进电机简介为了在这个系统中模拟自行车速度里

38、程表的使用情况,增加了步进电机来模拟自行车的运动。有种机电元件可以将脉冲信号转换成线位移或角位移,这种机电元件就是步进电机。脉冲序列输入步进电动机,输出则为相应的转动角度。由于其所转动的角度和输入的脉冲有特定的关系,不会受负载变化和电压波动的影响,每转一周的步数是固定的。数字量可以直接控制步进电机,所以单片机适合控制步进电机。但在此设计中采用步进电机的一大缺陷就是所使用的电机有64倍减速比,因此其转速太慢,这还有待改进。3.6.2 步进电机驱动芯片ULN2003ULN2003由七个硅NPN 复合晶体管组成,是高耐压、大电流复合晶体管阵列。ULN2003可直接驱动继电器、步进电机等负载。每个2.

39、7K 的基极电阻都会串联在ULN2003 的每一对达林顿上,在5V电压的工作情况下它能与两种电路相连即TTL 和CMOS,这样其应用范围更为广泛。ULN2003的特点是:电流大,工作电压高,可以提供更大的驱动力,最大的优点是能够承受50V 的电压,可以在高负载电流中运行。图3-15为其内部结构图。图3-15 ULN2003内部结构图ULN2003是大电流驱动阵列,一般用在单片机、PLC、智能仪表、数字量输出等控制电路中。在此系统中的作用是驱动步进电机,如图3-16和3-17分别为实物图和仿真图。图3-16 ULN2003实物图与仿真图 图3-17 ULN2003实物图与仿真图4 系统软件实现4

40、.1 概述在介绍完硬件电路之后,接下来介绍系统软件部分的实现,这部分是设计中最核心和最主要的,并且关系到整个系统的正常运行。软件设计主要就是将对于系统中关系整个运行的需求转变为具体方案。模块化结构设计思想顾名思义就是将整个程序设计根据不同的子功能分为几大模块,然后再细微到对小模块的程序编写。这样设计的好处就是可使系统的整个功能和各部分的功能显而易见,方便操作。当系统出现问题时,就可以根据硬件的反应直接找到相关的程序,从而更快更准地解决问题。所以说,在整体的软件程序设计过程中,最重要的是将软件设计紧紧地与硬件设计联系在一起,这样才会更好的将软件部分与硬件部分融合在一起,利于整个系统功能的实现。本

41、次设计的软件程序主要包括初始化程序、中断子程序、速度调用子程序、里程调用子程序、液晶屏显示子程序、四位八段数码管显示子程序、延时子程序。 4.2 总程序设计在主程序模块中,刚开始需要对所有的芯片及接口进行初始化,否则芯片就无法正常工作,包括单片机初始化、中断系统初始化等。另外在主程序模块中还需要设置各寄存器的初始值以方便后期的使用。然后就是循环程序,再次包括系统中所有的功能函数。以上就是整个主函数的设计步骤。 如图4-1为系统总流程图。 图4-1系统总流程图4.3 子程序设计同时在本系统中,程序的执行光靠主函数是不行的,还需要一些子模块:中断子模块、液晶屏显示子模块、数码管显示子模块、键盘子模

42、块、步进电机驱动子模块等几个方面。4.3.1 中断子模块程序实现在子程序中,中断服务子程序是最重要的,因为它涉及到外部中断和计时器,外部中断就是为了检测霍尔传感器给它的脉冲,计时器就是计时一秒钟,在一秒钟之内检查外部中断中有几个脉冲数,进而计算出速度、里程。因此中断服务子程序是此次设计的核心程序。如图4-2为计时器流程图。图4-2 计时器流程图中断子模块主要功能就是单片机通过外部中断接受霍尔传感器发送过来的脉冲,同时计时器记时,记录下时间,以便后期的数据处理,主要参考程序如下。void timer0_int() interrupt 1 using 3 n+;if(n=100)n=0;count

43、+;second+;if(second=60) second=0;minute+;if(minute=60)minute=0;hour+;if(hour=24) hour=0; if(count=1) count=0; lengthvalue=(TL1+TH1*256)*zhouchang-lengthbuf; lengthbuf=(TL1+TH1*256)*zhouchang; TH0=0xd8;TL0=0xf0;4.3.2 显示子模块程序实现液晶屏显示子模块的主要功能是完成液晶屏的初始化,进而显示平均速度与里程值,其主要参考程序如下。if(set=0)L1602_string(1,1,S)

44、; 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,a+48); L1602_string(1,8,b+48);L1602_string(1,9,.);L1602_string(1,10,c+48);L1602_string(1,11,d+48);L1602_string(1,12, );L1602_string(1,13,m);L1602_string(1,14,/);L1602_string(1,15,s)

45、;L1602_string(1,16, );L1602_string(2,1, ); L1602_string(2,2,T);L1602_string(2,3,i);L1602_string(2,4,m);L1602_string(2,5,e);L1602_string(2,6, );L1602_string(2,7,hour1+48);L1602_string(2,8,hour2+48);L1602_string(2,9,:);L1602_string(2,10,minute1+48);L1602_string(2,11,minute2+48);L1602_string(2,12,:);L1

46、602_string(2,13,second1+48);L1602_string(2,14,second2+48);L1602_string(2,15, );L1602_string(2,16, );elseL1602_string(1,1,L); L1602_string(1,2,e);L1602_string(1,3,n);L1602_string(1,4,g);L1602_string(1,5,t);L1602_string(1,6,h);L1602_string(1,7,=);L1602_string(1,8,length1+48);L1602_string(1,9,length2+4

47、8);L1602_string(1,10,length3+48);L1602_string(1,11,length4+48);L1602_string(1,12,length5+48);L1602_string(1,13,.);L1602_string(1,14,length6+48);L1602_string(1,15,length7+48);L1602_string(1,16,m);L1602_string(2,1, ); L1602_string(2,2, );L1602_string(2,3, );L1602_string(2,4,C);L1602_string(2,5,o);L160

48、2_string(2,6,m);L1602_string(2,7,e);L1602_string(2,8, );L1602_string(2,9,o);L1602_string(2,10,n);L1602_string(2,11,!);L1602_string(2,12,!);L1602_string(2,13,!);L1602_string(2,14, );L1602_string(2,15, );L1602_string(2,16, ); 数码管显示子模块主要功能是显示瞬时速度,其主要参考程序如下。void _Display(unsigned int x) unsigned char a,

49、b,c,d,i;i=10;a= x/1000;b=( x-a*1000)/100;c=( x-a*1000-b*100)/10;d= x%10;while(i-)AA=0;BB=0;CC=0;P1=Tablea;Delay0(5);AA=1;BB=0;CC=0;P1=Table1b;Delay0(5);AA=0;BB=2;CC=0;P1=Tablec;Delay0(5);AA=1;BB=1;CC=0;P1=Tabled;Delay0(5);return;4.3.3 键盘矩阵子模块程序实现键盘子模块主要功能是选择模式,其参考程序如下。if(Keyscan()=10)key_data=0;P2 =

50、 0xf0;if(P2 != 0xf0)Delay0(30);if(P2 != 0xf0) key_data=Keyscan();Delay0(500);if(key_data=10)EA=EA;TR0=TR0;TR1=TR1; if(Keyscan()=13)key_data=0;P2 = 0xf0;if(P2 != 0xf0)Delay0(30);if(P2 != 0xf0) key_data=Keyscan();Delay0(500);if(key_data=13)set=set; if(Keyscan()=14)key_data=0;P2 = 0xf0;if(P2 != 0xf0)De

51、lay0(30);if(P2 != 0xf0) key_data=Keyscan();Delay0(500);if(key_data=14)anjian=anjian; if(Keyscan()=15)key_data=0;P2 = 0xf0;if(P2 != 0xf0)Delay0(30);if(P2 != 0xf0) key_data=Keyscan();Delay0(500);if(key_data=15)zhuan=1; if(Keyscan()=16)key_data=0;P2 = 0xf0;if(P2 != 0xf0)Delay0(30);if(P2 != 0xf0) key_da

52、ta=Keyscan();Delay0(500);if(key_data=16)zhuan=0; 4.3.4 步进电机驱动子模块程序实现步进电机驱动子模块的主要功能是实现对步进电机的驱动,使步进电机能够按照一定的模式转动,其主要参考程序如下。void Motor_stepper0() unsigned char i=10;while(i-)AA=1;BB=1;CC=1;Delay1(13);AA=0;BB=1;CC=1;Delay1(13);AA=1;BB=0;CC=1;Delay1(13);AA=0;BB=0;CC=1;Delay1(13);void Motor_stepper1() uns

53、igned char i=10;while(i-)AA=0;BB=0;CC=1;Delay1(13);AA=1;BB=0;CC=1;Delay1(13);AA=0;BB=1;CC=1;Delay1(13);AA=1;BB=1;CC=1;Delay1(13);以上简单介绍了几大主要模块的子程序设计,通过不断地调试与修改,最后使系统的整体功能得以实现。5 系统仿真与调试5.1 仿真我们在学习中经常用到的仿真平台就是PROTEUS系统仿真平台。PROTEUS可以实现很多仿真功能,如数字电路、PCB设计、模拟电路等等。我们对其学习的还很少,还需后续进行更加深入的学习。在仿真之前我们一定要完成的任务就是

54、设计好电路图、编好程序。在仿真过程中,PROTEUS ISIS编辑环境会提供电器规则检查命令,我们可以根据系统提供的错误检查报告相应的修改仿真图或者程序。直到整个系统现象与我们设计的目标一致为止。源代码要通过软件编译,确定无误后,我们就可以进行仿真,在仿真过程中不断的检测错误,然后进行电路和程序的修改,最终达到本次设计的目的,整体的仿真图如图5-1所示。图5-1 系统仿真连线图在PROTEUS中进行仿真的时候,首先我选定的轮胎周长是55cm,仿真的结果如图5-2所示。此时液晶屏上面显示的是平均速度。图5-2 仿真现象图切换模式之后,仿真图液晶屏上显示的是里程,如图5-3所示。图5-3 切换模式

55、后仿真图5.2 调试 在系统刚开始形成时,液晶屏显示不正常,于是首先对硬件电路进行了检查,没有发现错误后,又对程序进行了部分修改,最终实现了其正常工作。 其间还有许多小问题,每一个问题都经过了细心的查找问题与修改,最终在仿真软件里工作正常。在此就不再一一赘述。接通电源,打开开关,我们可以看到液晶显示屏上出现了要求设定车轮直径的界面。如图5-4所示。图5-4 起始实物现象图我们利用矩阵键盘设车轮直径为55cm,然后按下确定键,就可以得到图5-5所示现象。图5-5 设定直径后实物图接下来我们可以看到在步进电机转动过程中,液晶显示屏上显示平均速度,四位八段数码管显示瞬时速度。如图5-6所示。图5-6

56、 瞬时速度与平均速度显示如果我们想要看行驶里程,按下模式按键就可以使液晶显示屏显示行驶里程。如图5-7所示。图5-7 里程显示实物图结束语本设计的主要任务是开发一个以单片机为核心的感应式自行车速度里程表。本设计主要分为硬件和软件两大部分,硬件部分的简单性和可操作性是我们应当着重考虑的,要达到硬件电路最优化设计。软件采用C语言来编写程序,应用模块化设计思维,程序可读性比较强。系统的可行性首先要通过仿真实验验证,实现了整个设计的设计目标后,可以正确得到自行车的里程以及速度,并可用液晶屏和四位八段数码管分别显示,接下来才可以进行真正的电路板焊接。里程与速度的计算分别根据以下公式求得。里程=脉冲总数*

57、车轮周长平均速度=里程数/总时间瞬时速度=车轮周长/两次脉冲之间的时间间隔当模拟车轮的电机转动时,其上的小磁片会经过霍尔传感器件,也就相当于霍尔元件切割磁感线,进而输出脉冲。然后经过比较器比较后得到高低电平,最后传送给单片机。单片机可根据选择的车轮周长来计算速度与里程。经过一段时间的设计与实践,终于可以实现题目所有要求,包括里程、平均速度和瞬时速度。经过测试,本设计准确无误方便使用,可适合不同场合的应用。但有一些缺点,当自行车速度较慢时,瞬时速度不能准确显示,也就是在本次设计中用步进电机模拟的真实情况,导致瞬时速度不能一直显示。这个部分是模拟部分的一个漏洞,但在现实应用中此设计是没有问题的。致谢大学的四年学习生活伴随着这篇论文的完稿也要标志性的结束了。在这次设计与论文的完成中,是崔智勇老师一直在指导教诲,非常感谢崔老师的悉心教导。崔老师严格要求,注重质量,严于律己,对学生的论文真知紧紧把

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!