已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号:TP227 编号:BY15 6380 13/14/2 080301-1002沈阳化工大学本科毕业论文题 目: 电动车里程表监控软件设计院 系: 专 业: 班 级: 学生姓名: 指导教师: 论文提交日期:年 月 日论文答辩日期:年 月 日论文独创性声明本人郑重声明:此处所提交的学位论文是本人在导师指导下,在沈阳化工大学本科毕业环节独立进行研究工作所取得的成果。据本人所知,论文中除已注明部分外不包含他人已发表或撰写过的研究成果。对本文的研究工作做出重要贡献的个人和集体,均已在文中以明确方式注明。本声明的法律结果将完全由本人承担。作者签名: 日期: 年 月 日关于学位论文使用授权的说明本论文的研究成果归沈阳化工大学所有,本论文的研究内容不得以其它单位的名义发表。本学位论文作者和指导教师完全了解沈阳化工大学有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权沈阳化工大学可以将论文的全部或部分内容编入有关数据库进行检索、交流,可以采用影印、缩印或其他复制手段保存论文和汇编本学位论文。(保密的论文在解密后应遵循此规定)作者签名: 导师签名: 日期: 年 月 日毕业设计(论文)任务书专业 班 学生: 毕业设计(论文)题目:电动车里程表监控软件设计 毕业设计(论文)内容:以AT89C52 单片机为核心,采用霍尔传感器设计了一个智能里程表。设计内容包括:计算机辅助线路设计,检测系统计算机硬件设计,系统监控软件设计。 毕业设计(论文)专题部分:电动车里程表监控软件设计 起止时间: 2014年 3月- 2014年6月指导教师: 签字 年 月 日教研主任: 签字 年 月 日学院院长: 签字 年 月 日摘 要里程表应用广泛,机械式里程表有其不足之处。本文以设计电动车里程表为目的,提出了电动车里程表的设计方案。设计智能自动化的里程表,利用霍尔效应原理,引入霍尔传感器,采用脉冲检测的方法测量行驶速度与里程。并设计了用户界面,可以实现超速报警及用户自设定参数值,既可以实现测速也实现了自动化和智能化。通过实验验证,此方案可行。本文介绍了电动车里程表的工作原理、结构和以AT89C52单片机为核心的脉冲检测系统硬件设计及软件设计的相关内容。设计以AT89C52 单片机为主控芯片,用定时器T2的捕获功能捕获脉冲,并测出脉冲的频率,利用HD7279实现按键及显示的功能,X5045存储用户参数,由键盘控制里程与速度的切换显示。软件设计部分,采用了模块化的设计,编程选用了汇编语言,程序由采用程序和各功能子程序组成。主要有监控系统主程序,频率测量子程序,人机接口子程序,报警子程序组成,通过使用星研仿真器对程序进行调试。本文侧重软件的实现,硬件部分描述了硬件接口电路框图及各芯片功能,最后进行了计算机辅助线路设计。此次设计的里程表结构简单,稳定性较好,实用性强,易实现,达到了设计目的。关键字:单片机; 测频;霍尔传感器;里程表AbstractOdometer is widely used in our daily life, and mechanical odometer has its disadvantages. For the purpose of designing the electric vehicle odometer, I put forward the design scheme of electric vehicle odometer in this paper. In order to design the intelligent automatic odometer, according to HALL principle, I use a HALL sensor, measure the speed and mileage by using the pulse testing method, and improve the measuring accuracy of the system. Designing the user interface can achieve the over speeding alarm, users can set parameter values by themselves. Not only can it achieve the measurement of speed, but also can it realize the automation and intelligent. By experimental verification, this scheme is feasible.This paper introduces the working principle and structure of the electric vehicle odometer and related content about hardware design and software design of the pulse detection system which uses AT89C52 single-chip computer as the core. The design uses AT89C52 single chip microcomputer as main control chip, uses timer T2 to capture the pulse, and measures the frequency of pulse. The chip HD7279 can achieve the button and display function and the chip X5045 can store user parameters. The switching display of the mileage and speed is controlled by the keyboard.The part of software design adopts the modular design, uses the assembly language programming. The whole program consists of the using program and each function subroutine, mainly including the monitoring and controlling program, frequency measuring subroutine, man-machine cut program and alarming subroutine. And the Xing Yan emulator is used to debug the program.This paper emphasizes on the implementation of the software. The part of hardware design describes the hardware interface circuit diagram and the chip functions. The design of the odometer uses simple structure has good stability and strong practicability. It is easy to implement and reaches the design purpose.Keyword:microcomputer; Frequency measurement; Hall sensor; odometer目录第一章 绪论11.1课题背景11.2国内外研究现状11.3课题研究意义21.4本课题研究内容2第二章 整体方案设计42.1系统设计方案42.2系统工作原理42.3系统技术指标5第三章 系统硬件设计63.1传感器选型63.1.1信号转换电路设计83.2人机接口电路设计93.3存储电路设计113.4报警电路设计12第四章 系统软件设计134.1主程序设计134.2中断程序设计164.3键处理程序设计194.3.1设定键子程序设计214.3.2增加键子程序设计224.3.3左移键子程序设计224.3.4确认键子程序设计234.4显示程序设计244.5报警程序设计26第五章 电动车里程表的测试285.1测试方法285.2误差分析28第六章 硬件和软件调试306.1硬件调试306.2软件调试306.2.1 调试方法及优点306.2.2 调试出现的问题及解决方法31第七章 设计总结33参考文献34致 谢36附录1主板原理图I附录2主板PCB图I附录3 主板PCB图II附录4 副板PCB图II附录5 元件列表III沈阳化工大学学士学位论文 第一章 绪论第一章 绪论1.1课题背景里程表的原理很简单,因为车轮的直径已知,车轮的圆周长便是恒定不变的。由此可以计算出每走一里路车轮要转多少圈,这个数也是恒定不变的。因此只要能够自动把车轮的转数积累下来,然后除以每一里路对应的转数就可以得到行驶的里程了1。电动车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动电动车。我国是电动车大国,随着人们生活水平的不断提高,电动车已经不仅仅是运输、代步的工具,其辅助功能也变得越来越重要。因此,人们希望电动车的娱乐、休闲、锻炼的功能越来越多,能带来大家更多的健康与快乐。在这个背景下,电动车里程表作为电动车的一大辅助工具迅速发展起来,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能,让人能清楚地知道当前的速度、时间、里程等物理量2。电动车里程表一般由安装于前车圈钢条上的感应磁铁、前叉上的传感器、单片机及显示模块构成。当车圈旋转时传感器捕捉到感应磁铁带来的信息,通过连接线传输至单片机,单片机对此进行处理后计算出时速、里程等信息并显示。它能够让我们比较精确的知道自己的当前速度、骑行时间、单次里程、总里程、平均速度、瞬时速度等。如佛山高明华劲电子公司的电动车里程表MS-601,能动态显示行驶里程、骑车时间、实时车速等3。1.2国内外研究现状从保护环境及经济条件许可等综合因素来看,电动车里程表目前乃至未来都有着广阔的发展前景。目前市面上电动电动车的速度表和里程表都是机械的,看起来不够直观与方便。如果能用LED直接显示出来里程数或速度值,就可节省用户的时间及精力处理电动车行进过程中的突发事件4。国内外现在生产销售的很多种电动车速度里程表,某些产品的性能与结构功能简单,只有测速与里程显示的功能,比较高端的一些产品除了测量速度和里程显示功能外,还加入了GPS全球定位,单次行车里程,时间,运动时间,平均速度,累计里程,车轮转数。以后的发展趋势可能会加入mp3和短信收发功能、心率测量、视频播放,使电动车速度里程表更具有人性化,相信也会受到各个年龄段人的喜欢5。随着电动车的里程表的发展,它的功能也越来越完善,从以前老式的机械指针表盘,演变成现在利用数码技术直接利用LED或者LCD显示,上面清楚的显示电动车的速度,行驶里程,时间,电池电压等等,用户可以随时了解电动车的行驶现状,更加便捷。其中的核心部件单片机体积小,智能化,把它做到产品的内部,取代了老式机械零件,缩小产品的体积,增加功能6。随着电子技术的迅速发展和提高,行车记录仪也不仅仅是里程表,上面会集成更多的功能,路况摄像监测,人体疲劳测试程度,智能提醒车的状况,而不仅仅是显示,另外新增的语音提醒更加人性化,进一步的通讯技术,可以与互联网通信,对接收的信息进行处理,有利于交通管理。1.3课题研究意义电动车已成为人们日常生活中出行运动必不可少的工具,广泛用于个人家庭娱乐休闲及比赛等方面,给人们的娱乐运动、出行及生活带来了极大的改变与快捷。电动车速度里程表电子集成电路的发展多采用了先进的智能传感技术,使电动车速度里程表有测量准确、工作时性能稳定、容易携带等优势,它被广泛用于多个领域的发展,比如:测速,里程计算及自动控制。由于电动车的里程表基本组成包含:单片机的自动检测及控制电路、信号处理电路、显示电路、报警电路几部分,因此进行电动车速度里程表的研究是非常必要的,研究电动车速度里程表及扩展其应用邻域,有着非常现实的意义7。1.4本课题研究内容 在对电动车里程表已有的研究的基础上,本课题设计了基于AT89C52单片机的智能里程表硬件系统和软件系统,并对硬件部分和软件部分进行了测试。设计目标也是在力求结构简单、易于实现、可行性较强的前提下,尽量完善增加其辅助功能。硬件部分设计了主机电路、人机接口电路、存储电路、报警电路。软件部分采用了模块化程序设计思想,将软件分为主程序模块、键处理模块、显示模块、数据采集处理模块和报警模块。对软件的模块化处理使软件设计结构清晰明了,易于调试与修改,避免了很多错误。此外,对设计中存在的问题,出现的现象进行了进一步的分析与改正,完成了设计任务。III沈阳化工大学学士学位论文 第二章 整体方案设计第二章 整体方案设计2.1系统设计方案系统硬件由单片机AT89C52、霍尔传感器及信号转换电路、X5045、HD7279键盘显示器、报警电路组成。单片机采集霍尔传感器输出的脉冲信号,其中信号转换电路包含信号放大、波形变换和波形整形,对被测信号进行放大的目的是降低对待测信号的幅度要求,波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的信号。X5045存储报警参数,键盘显示器电路根据按键不同控制里程表的显示,最后用6 位的L E D 能直观的将速度与里程显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能速度里程表设计目的。系统设计方案图如图2-1所示, 图2-1 整体方案设计框图本次设计是以单片机为核心设计的里程表系统,仅用了较少的硬件和软件结合就实现了设计要求,且性能好,稳定性强,测速误差小,还通过软件编程新增加了一些附加功能,达到了创新的目的。2.2系统工作原理该设计能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其进行放大整形,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由按键选择LED显示模块显示所测的速度与里程。同时若检测到电动车超速,系统将发出报警提示信号,LED指示灯闪烁。2.3系统技术指标传感器对电动车的状态进行实时检测,里程表对采样数据进行处理,然后转换成标准数据输出。显示里程和速度,并设定量程上下限,速度上下限,报警上下限等参数值。里程表设计中增加了看门狗定时器功能,因此系统无需每次开机重新设定参数值。里程表的主要技术指标如下:(1) 电源供电:5V直流电压(2) 测速范围:020Km/h(3) 输入信号:脉冲方波信号(4) 频率测量范围:010Hz(5) 工作湿度:15%85%RH(6) 工作温度:055沈阳化工大学学士学位论文 第三章 系统硬件设计第三章 系统硬件设计本次的硬件电路设计主要包括以下几部分:传感器选型、人机接口电路设计、存储电路设计、报警电路设计。3.1传感器选型里程表的需要通过传感器检测信号,经信号转换电路转换后送到主机单元进行计算,在这里对传感器进行简单的介绍。电动车里程表用传感器是电动车里程表的重要部件,传感器的准确性直接影响里程表的里程精度,是里程表日常修理中遇到的最多的问题。它的功能是将转动的机械信号变成电脉冲信号,传输给里程表接口,根据输入的脉冲数来计算电动车行驶的里程9。目前电动车里程表所选配的主流传感器是霍尔式传感器,它可以检测转速与转数,而霍尔传感器尺寸较小,性能稳定可靠,工作电路简单,价格便宜,在里程表设计中使用广泛。霍尔元件是在半导体薄片的两端控制电流,若在薄片的垂直方向上施加一个磁场,垂直于电流和磁场方向上将产生一个电压,这个电压称为霍尔电压,这一现象就是霍尔效应。根据霍尔效应制造的元件就是霍尔元件。目前里程表用传感器均为开关型霍尔传感器。其特性曲线如图3-1所示。图3-1开关型霍尔传感器特性曲线图开关型霍尔传感器大小适中 ,性能可靠,价格合适,工作时的电压范围较宽,它只需配合一块小的永久磁铁就可以做成电动车里程表的传感器。根据产生的脉冲计算出行车里程12。目前,大部分传感器厂家多使用Honeywell公司生产的SS443A开关型霍尔传感器。本次毕业设计就选用此传感器。其示意图如图3-2。特点:(1)(3. 824)VDC供电(2)磁特性温度补偿 (3)数字电流沉输出 (4)可消除机械压力产生的作用(5)绝对最高电流50mA (6)可定制特殊动功释放点 图3-2开关型霍尔传感器示意图(7)工作温度范围( - 40150) 当车轮上的磁条转动到接近霍尔传感器的位置时,SS443A将接受到磁感应,此时传感器输出一个无抖动的低电平,此低电平使得AT89S52接受到信号,据此计算出里程数、实时速度等。其原理如图3-3所示霍尔传感器及其保护电路车轮小磁铁P1.1单片机图3-3传感器测距示意图电动车轮子一般为16寸,周长S大概为1330mm,即约为1.33m。两次相邻信号直间的时间间隔为t秒,瞬时速度: Vs=S/t 单位为m/s。此时记为一个单位的距离。用这个测量的实时速度与设定的报警速度上限比较,若大于报警上限,则报警。当脉冲个数为N个,初始里程数为L c时,总里程长度:L n=N*L+L c 单位为m,用数字频率计计数,起动标准转速发生装置,使其带动传感器在额定转速范围内转动,读取不同转速时标准转速发生装置转动次数K2与数字频率计的计数值K1。3.1.1信号转换电路设计如图3-4所示,系统的信号处理电路由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于0.5V 的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反相器DM74LS14 来把放大器生成的单相脉冲转换成与COMS 电平相兼容的方波信号9,如图3-5所示,同时将输出信号加到单片机的P1.1 口上。利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大于VT+,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号9,信号转换电路原理框图如图3-6所示。图3-4 信号转换电路图 图3-5 信号转换示意图图3-6 信号转换电路原理框图3.2人机接口电路设计在本系统中我们采用五个按键和八个LED显示数码管,选用的是键盘显示器的专用智能控制芯片HD7279。HD7279是管理键盘和LED显示器的专用智能控制芯片,该芯片采用串行接口方式,可同时驱动8位共阴极LED数码管或64位独立LED发光二极管,同时能对多达88的键盘矩阵进行监控,具有自动消除键抖动并识别按键代码的功能。从而可以提高CPU的工作效率,同时其串行接口方式又可简化CPU接口电路的设计10。HD7279的主要特点:(1)CPU间采用串行接口方式,仅占用4根端口线;(2)内部含有译码器,可直接接受BCD码或16进制码,同时具有2种译码方式,实现LED数码管位寻址和段寻址,消隐和闪烁属性等多种控制指令,编程灵活;(3)循环左移和循环右移指令;(4)内部含有驱动器,无需外围元件可直接驱动LED;(5)具有级联功能,可方便的实现多于8位显示或多于64键的键盘接口;(6)具有自动消除抖动并识别按键的功能。HD7279 与 AT89C52 仅需4条口线,其中CS为片选信号。当AT89C52访问HD7279时,应将片选端置为低电平。DATA为串行数据/输出端,当不向HD7279发送数据时,DATA为输入端;当HD7279输出键盘代码时,DATA为输出端。CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。RC引脚用于连接HD7279的外接振荡元件,其典型值为R=1.5K,C=15Pf。RESET为复位端。该端由低电平变成高电平并且保持25ms即复位结束。通常,该端接+5V即可。实际应用电路中,8只下拉电阻和8只键盘连接位选线DIG1DIG7的8只位选电阻的阻值应遵从一定比例关系,下拉电阻应大于位选电阻的5倍而小于其50倍,典型值是10倍。在本系统中,我们选用了100K的下拉电阻和10K的位选电阻。AT89C52和HD7279连接图如图3-7所示,图3-7 HD7279与AT89C52接口电路AT89C52与HD7279引角的连接和相关的地址分配如下:(1) CS:片选,低电平有效,与P1.4相连;(2) CLK:串行时钟输入端,与P1.5相连;(3) DATA:串行数据输入/输出端,与P1.6相连;(4) KEY:按键有效信号端,与P1.7相连。在本次设计中利用7279实现键盘和显示器的人机交互。键盘和显示器由HD7279管理,实现5个按键的功能:设置键 清零键、增键、左移键、确认键。以及显示器的显示功能:由LED数码管组成,前4位显示提示号,后4位显示具体测量值。LED显示如图3-8所示: 图3-8 LED显示图3.3存储电路设计X5045作为单片机系统电路的一个辅助芯片,它将复位、电压检测 、看门狗定时器和快锁存保护的串行PROM功能集合在一个芯片内;采用SPI总线串行外设接口方式,降低了系统成本并减少了对电路板空间的要求,提高了系统的可靠性;适合于需要现场修改数据的场合,广泛应用与仪器仪表和工业自动控制等领域13。X5045有4种功能:上电复位、低电平检测、看门狗定时器和SPI串行PROM。(1)上电复位:当器件通电并超过VCC门限电压时,X5045内部的复位电路将会提供一个约为200ms的复位脉冲让微处理器能正常复位。(2)低电压检测:工作过程中X5045监测电源电压下降并且在电源电压跌落到VCC门限电压以下时,产生复位脉冲并保持有效直到电源电压1V以下。如果电源电压在降落到门限电压后上升,复位信号消失,微处理器可以继续工作。(3)看门狗定时器:看门狗定时器对微处理器提供了一个因外界干扰而引起程序陷入死循环或“跑飞”状态的保护功能。(4)串行PROM存储器:X5045的存储器部分是具有块锁保护CMOS 4KB串行PROM。它被组织成8位的结构,由一个四线构成的SPI总线方式进行操作,一次最多可写16B。在本次设计中主要利用X5045串行PROM存储测和报警上限值,和通过具看门狗定时器功能保证AT89C52出现死循环或“跑飞”状态的情况下能回到正常状态下继续工作13。AT89C52与X5045 之间的接线图如图3-7所示。图3-7 AT89C52与X5045的接线图3.4报警电路设计 报警电路硬件部分主要由蜂鸣器和发光二极管组成,当超过设定的报警上限时(根据相关法规电动车最高时速不得超过20Km/h),发出信号使得发光二极管发光,蜂鸣器工作,发出蜂鸣声。当低于报警上限时,灯熄灭,蜂鸣器停止发声。蜂鸣器电路连接图如图3-8所示。 图3-8 蜂鸣器报警电路连接图沈阳化工大学学士学位论文 第四章 系统软件设计第四章 系统软件设计我认为软件是整个毕业设计的最核心部分,一切的硬件设计都是通过软件来实现的,软件的成功与否是关系到整个系统的最后运行,单片机所具有的智能功能要由软件来完成,因此要实现单片机的智能化,是离不开软件的。因此,我把软件设计作为我的工作重点。这里通过程序框图来介绍本人的软件设计思想。本次毕业设计软件部分主要包括:主程序设计、中断程序设计、键处理程序设计、显示程序设计、报警程序设计。4.1主程序设计程序设计采用模块化设计,主程序仅完成对电路中各个接口芯片的初始化及定时器初始化、中断向量初始化以及中断处理,然后进入休眠状态。主程序流程图如4-1所示 图4-1 主程序流程图主程序流程图如4-1所示,完成初始化功能,然后进入休眠状态,由溢出中断唤醒后,在执行完T2的中断程序后,会重新进入休眠状态,可减少功耗和提高抗干扰能力。(1) 内存变量初始化是对内存变量单元中从20HFFH的RAM地址进行清零处理,因为在伪指令中定义了大量变量,若不对内存变量清零将会使程序执行不稳定,显示器上也会出现乱码。定时器T2初始化是因为设置了T2为捕获方式 ,实时监测P1.1管脚输入的方波信号。 (2) X5045初始化主要是对其状态寄存器进行设置,本次设计中X5045的所有单元地址均可进行写入操作,看门狗定时器的喂狗周期设置为200ms,写入状态寄存器常数STTAUS-REG=20,所以写入的命令字为20H。 (3) HD7279的初始化是对I/O进行高低电平的初始化,同时向HD7279发送复位指令(A4H),所有的显示、设置的字符、闪烁等属性也将被一起清除。(4) 判断定时器T2溢出中断的标志位TF_FIG是否为1,当为1时,表示是溢出中断,才会从休眠中唤醒AT89C52,如果没有判断,T2的溢出和沿中断都会唤醒休眠,这样是为了保持时序的准确,不会混乱,。 (5) 判断SYS_STA是否为0,以及更新采样值是为了可以实时显示采样值,提高系统的实时性,如果少了判断及更新,显示需要经过设置键的一轮过程才会更新,不会实时显示出采样值。(6) 键处理模块主要是对按键进行处理,对是否有按键进行判断,若有按键则根据键值进行相应的处理,否则返回。包括在对键值进行确定后就可使用按键对各参数进行修改。(7) 显示及闪烁模块主要是对当前测量值或各个设定状态值进行显示,对LED显示器进行管理,够有效的对设定参数,采样数据进行显示,可改参数位呈现闪烁状态,数据显示一目了然,可以对被控对象有直观的了解。从而使使用者的操作更加方便、简洁。(8) 报警:提取采样值,与X5045内报警上下限进行比较,如超出范围调用报警程序,拉低蜂鸣器,否则返回。(9) 看门狗定时器进行“喂狗”处理,方法很简单,通过对其片选端CS进行置低再置高操作既可,以防止一种因外界干扰而引起程序陷入死循环或“跑飞”的状态,起到一个保护的功能。相关的主要变量和常量及地址分配伪指令表,一般安排在主程序开始时采用伪指令方式说明,设计中的变量和常量用表格分类说明,如表4-1,4-2, 4-3所示。 表4-1 片内RAM主要变量分配伪指令表符号伪指令地址或常量意义SET_STADATA30H表示设定状态指针,切换要修改的设定值SYS_CLKDATA31H表示系统时钟,其取值范围是019,完成时间片分配LEFTDATA32H表示左移位指针,其取值范围是02,切换要修改设定值的位DR0DR7DATA33H3AHLED显示单元缓冲区F_CYC1DATA3BH表示溢出次数TF_FIGBIT11H表示溢出标志位,等于1,为溢出中断KB_FIGBIT10H按键处理标志位,等于1表示键处理过,否则未处理过F_CYC2DATA3CH表示下一次的溢出次数表4-2 HD7279地址分配伪指令符号伪指令地址或常量意义 CS2BITP1.4CS_7279代表89C52的P1.4,即硬件相连CLKBITP1.5CLK代表89C52的P1.5,即硬件相连DATA_7279BITP1.6DATA代表89C52的P1.6,即硬件相连KEY_OKBITP1.7KEY_OK代表89C52的P1.7. 即硬件相连表4-3 X5045主要变量分配伪指令表符号伪指令地址或常量意义 CS1BITP1.0CS_5045代表89C52的P1.0,即硬件相连 SCKBITP1.2SCK代表89C52的P1.2,即硬件相连SIBITP1.3SI代表89C52的P1.3,即硬件相连SOBITP1.1SO代表89C52的P1.1,即硬件相连4.2中断程序设计此次设计要采样脉冲信号,因此选用了16位的定时器T2,利用它的捕获方式捕获脉冲测出频率。在程序设计时,发现测频时,定时器T2与T0中断程序互相干扰,尝试设置T0中断优先级,仍然干扰。然后在*指导下,直接从主程序中删除定时器T0的初始化程序以及T0的中断服务程序,只留T2的初始化及中断采样程序。将键处理模块、显示模块的程序放在主程序的休眠程序中,由定时器T2的溢出中断唤醒休眠。然后设置了标志位TF_FIG判断是溢出中断还是沿中断,选择是否唤醒休眠。编写T2采样程序,考虑到数据的范围,采用了三字节浮点数表示法表示数据,将数据转化为浮点数,调用了浮点数的规格化、加减及乘除子程序处理数据。调试程序后,发现系统可以测出脉冲的频率,但数据显示并不稳定,经过老师提示,在T2采样程序中加入堆栈指针,用来保护采样数据。加入堆栈后,系统可以准确测出脉冲频率,并且数据显示稳定。编写里程、速度计算程序,再次校对了各个地址变量的地址分配,00H1FH为工作区寄存器,20H2FH为位寻址区,30H7FH是通用RAM区,将各个地址变量分配在通用RAM区,防止地址定义混乱。经过多次修改与调试,程序调试成功,可以准确测出电动车当前行驶里程与速度,并能稳定显示。以下介绍定时器T2捕获方式工作原理及测频原理图。(1) T2捕获方式测频原理示意图,如图4-2所示, 图4-2测频原理示意图(2) T2捕获方式工作原理:在捕捉方式中,沿中断和溢出中断的触发方式由T2的控制位EXEN2来选择。当EXEN2=0时,T2是一个16位定时器,计数溢出时,溢出标志位TF2置位,同时激活中断。当EXEN2=1时,T2完成相同的操作,而且当T2EX引脚外部输入信号发生“1”至“0”负跳变时, TH2和TL2中的值被捕获到寄存器RCAP2H和RCAP2L中。另外,T2EX引脚信号的负跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2也会激活中断10。定时器T2的捕获方式如图4-3所示,图4-3定时器T2的捕获方式本设计采用 T2定时中断测频,中断源包括溢出中断和沿中断。溢出中断判断是否来过沿中断,计算溢出次数;沿中断则是响应后,捕获此时T2中的TH2,TL2存到RCAP2H,RCAP2L 两个寄存器中。 中断程序种用到了二个标志位分别是:FF_FIG和TF_FIG.(1)FF_FIG:设FF_FIG=1,初始化中将FF_FIG置1,表示从没来过沿中断,当第一个沿来时,将FF_FIG置零,此时将计算中需要用到的变量初始化,然后中断返回。(2)TF_FIG: 为溢出标志位,当溢出中断时,将其清零,使休眠只有在溢出时才会被唤醒,防止时序发生混乱。 图4-4 T2中断程序流程图T2中断程序流程图如图4-4所示,进入中断程序时,首先,根据的EXF2,TF2的值判断是溢出中断还是沿中断,当TF2的值为1时,是溢出中断,执行溢出子程序。再判断FF_FIG值,FF_FIG=0时,表示来过沿中断,执行程序,溢出次数加1返回;FF_FIG=1表示没来沿中断,返回。然后判断EXF2值,EXF2=1时,表示是沿中断,执行沿中断子程序,若FF_FIG=1,则是第一次沿,捕获TH2,TL2,后返回;若FF_FIG=0,则是第二次沿,捕获后,压入堆栈,进行数据处理,弹出返回。 两次响应后,由频率的计算公式:T=65536*F_CYC2+F_H2; (式4.1)f=1/T。 (式4.2)其中F_CYC2表示溢出中断次数,F_H2表示两次捕获值之差,T表示一个周期的宽度,f表示1秒钟的频率数。S=3600* f* L (Km/h) (式4.3)V= 3600*f * S (式 4.4)其中S表示里程,V表示当前行驶速度,L表示电动车车轮周长。再由式4.3、4.4计算出电动车当前行驶速度与里程值。4.3键处理程序设计键处理程序主要用来管理键盘,判断并读取键值,和主机芯片共同管理按键。此次设计的5个按键包括:设定键、清零键、增加键、左移键和确定键。键处理程序中用到了三个变量标志位:KEY_OK、KB_FIG和KEY_IN。(1)KEY_OK:表示按键按下的标志位。当KEY_OK=1时,无键按下,键处理程序结束;当KEY_OK=0时,证明有键按下,键处理程序继续执行。AT89C52的P1.7与HD7279的KEY按键信号输出端相连。(2)KB_FIG:表示按键处理标志位,判断按键是否处理过,因为有这个变量可以避免当同一键被一直按下时进行多次处理。当KB_FIG=1时,键已经处理过,因此不再处理,键处理程序结束;当KB_FIG=0时,键未被处理过,键处理程序继续执行。(3)KEY_IN::表示按键的键值,每次读到的键值放入KEY_IN中,再通过比较判断具体是哪个键按下,因为有这个变量使程序的可读性加强。按键程序设计分配在每个时间片内完成一次,间隔50ms,通过设置按键标志位,保证按一次键响应一次,按键模块流程如图4-5所示。 图4-5键处理程序流程图进入键处理程序时,首先,根据KEY_OK的值判断有无按键,若KEY_OK=1,说明无键按下,键处理程序结束;若KEY_OK=0,说明有键按下,键处理程序继续执行。再根据KB_FIG的值判断此按键是否处理过,若KB_FIG=1,说明按键已经处理过,因此不再处理,键处理程序结束;若KB_FIG=0,说明键未被处理过,键处理程序继续执行,进行键值的判断,当读取完键值后,进入对应的键程序,执行相应的键功能。当执行完键处理程序后,将KEY_OK,KB_FIG清零,否则,将不会再进入键处理模块。本次设计的5个按键分别是:设定键(20H)、清零键(18H)、增加键(10H)、左移键(08H)、确认键(00H)。对应的键码和功能如表4-4所示。表4-4 按键功能及键码表按键 功能键码意义设定 设置参数20H每按下一次,就显示一个设定参数值 清零键18H按键后,将储存的历史数据清零 增加键10H每按下一次,处于闪烁状态的数码管的值加“1”当增加到“9”后,再循环到“0”,再重新增加左移键08H每按下一次,闪烁状态位左移一位,并对该位进行修改确认确认键00H每次修改参数后,按下此键,即将修改后的参数存入内存中保存起来4.3.1设定键子程序设计设定键的程序流程如图4-6所示。 图4-6设定键子程序流程图设定键标志位“STATE”初始值赋为“0”,每按下一次设定键时,“STATE”中的值当自加一次,当“STATE”为“3”时重新被赋值为“0”。当“STATE”为“0”时对应显示当前里程值,而“STATE”为“1”时对应显示当前速度值,当“STATE”中值为“2”时对应报警上限参数,参数值从X5045中读取。减小、增加、左移、闪烁功能,只有在设置参数时才启用。4.3.2增加键子程序设计增加键的程序流程如图4-7所示 图4-7增加键子程序流程图字位闪烁时,按下增加键,数字将会自动加1,当数字加到9时,再按一次增加键数字会变成0。同样,增加键可以改的数据有里程参数和时间,其它的实时采样值是不允许改的。在进入增键程序之前也要对SET_STA进行判断。4.3.3左移键子程序设计左移键用于修改闪烁的位置,左移键的程序流程如图4-8所示。 图4-8左移键子程序流程图左移功能是在按下左移键时,闪烁位会对应的左移一位,相应的参数也就可以修改。本次设计中的闪烁位只有四位,从右数第一位到第四位,因此,当闪烁位移动到第四位时,再按一下左移键,闪烁位会回到右数第一位进行闪烁,如此形成循环。4.3.4确认键子程序设计确认键的流程图如4-9所示。 图4-9确认键子程序流程图确认键将主机芯片与存储芯片联系起来,用户参数经过修改后,按下确认键,参数将会保存在对应的存储单元中。当按下确认键时,程序会判断先SET_STA值,若为0、1则不进行键处理,若为其它值则执行确认键的功能。确认键主要将报警的上限值存入X5045中,因为X5045有掉电保护功能,将会保留存储的数据,因此,当仪表再次上电时,设定的参数不用再次设定,可以直接使用。在设定完当前参数时,再按一下确认键,显示器将切换到下一个设定参数,操作简单易行。4.4显示程序设计显示模块中,所有LED都采用HD7279的方式0进行译码,而每个LED的BCD码在单片机中都有一个固定的存储单元,为显示缓冲区DR0-DR7,译码方式选择好以后,便开始调用HD7279程序,将DR0-DR7中的数值显示。显示时第一到第四个LED显示的是电动车行驶里程与速度值,第五个到第八个显示的是当前状态提示符。具体的表示符号为:1.LP-表示瞬时里程采样 2.PP-表示里程累积 3.LH-表示速度值 4.EH-表示报警上限 图4-10显示程序流程图显示程序流程图如图4-10所示,显示程序主要将主机芯片AT89C52与HD7279联系起来,用来显示采样值,修改设定参数显示。在显示采样值时,除设定键以外,其余键均不动作、同时不执行闪烁命令,只有在显示设定参数时,才执行其它命令。显示模块中包括对LED发送命令字及闪烁处理,在设定报警上限参数值时,需要对LED的3个可修改位(LED3,LED2,LED1)进行闪烁处理,结合左移键、确认键实现对X5045的读和写。闪烁程序流程图如图4-11所示, 图4-11闪烁程序流程图4.5报警程序设计采样程序结束后,将采样值转换成BCD码按位存储到地址单元中,然后在X5045中找到存储报警上限参数的的地址单元,按位读取,由于存入X5045中的参数值也是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 主管护师考前巩固试题及答案
- 2025年江苏省直机关遴选公务员面试真题及解析
- 2025年青海出租车考试试题模拟题
- -资料员之资料员基础知识通关考试题库带答案解析
- 2025年注册计量师《计量极业实务》时间频率卷
- 2025年农业技术员(中级)职业技能考核真题解析卷
- 华医网基层培训育理论考试真题
- 临床检验仪器复习题及答案
- 2021中级注册安全工程师《煤矿安全》模拟试题2
- 2025年吉林省白城市中考作文押题附范文分析
- GB/T 28724-2012固体有机化学品熔点的测定差示扫描量热法
- 门窗工程观感质量验收标准
- 商务谈判的礼仪 课件
- 04顶棚筑装饰构造课件
- GB∕T 27996-2022 全地面起重机
- 油漆作业安全操作规程
- 氩气安全告知牌
- 2022年电厂电气运行试题库大全含答案
- Berg平衡量表应用简介
- 科技行业AI+汽车:高级别智能驾驶提效降耗新体验
- Q-RJ 557-2017 航天型号产品禁(限)用工艺目录(公开)
评论
0/150
提交评论