1、分类号TP227编号BY15638013/14/20803011002沈阳化工大学本科毕业论文题目电动车里程表监控软件设计院系专业班级学生姓名指导教师论文提交日期2014年6月23日论文答辩日期2014年6月25日论文独创性声明本人郑重声明此处所提交的学位论文是本人在导师指导下,在沈阳化工大学本科毕业环节独立进行研究工作所取得的成果。据本人所知,论文中除已注明部分外不包含他人已发表或撰写过的研究成果。对本文的研究工作做出重要贡献的个人和集体,均已在文中以明确方式注明。本声明的法律结果将完全由本人承担。作者签名日期年月日关于学位论文使用授权的说明本论文的研究成果归沈阳化工大学所有,本论文的研究内
2、容不得以其它单位的名义发表。本学位论文作者和指导教师完全了解沈阳化工大学有关保留、使用学位论文的规定,即学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权沈阳化工大学可以将论文的全部或部分内容编入有关数据库进行检索、交流,可以采用影印、缩印或其他复制手段保存论文和汇编本学位论文。(保密的论文在解密后应遵循此规定)作者签名导师签名日期年月日毕业设计(论文)任务书测控技术与仪器专业1002班学生郑银玲毕业设计(论文)题目电动车里程表监控软件设计毕业设计(论文)内容以AT89C52单片机为核心,采用霍尔传感器设计了一个智能里程表。设计内容包括计算机辅助线路设计
3、,检测系统计算机硬件设计,系统监控软件设计。毕业设计(论文)专题部分电动车里程表监控软件设计起止时间2014年3月2014年6月指导教师签字年月日教研主任签字年月日学院院长签字年月日摘要里程表应用广泛,机械式里程表有其不足之处。本文以设计电动车里程表为目的,提出了电动车里程表的设计方案。设计智能自动化的里程表,利用霍尔效应原理,引入霍尔传感器,采用脉冲检测的方法测量行驶速度与里程。并设计了用户界面,可以实现超速报警及用户自设定参数值,既可以实现测速也实现了自动化和智能化。通过实验验证,此方案可行。本文介绍了电动车里程表的工作原理、结构和以AT89C52单片机为核心的脉冲检测系统硬件设计及软件设
4、计的相关内容。设计以AT89C52单片机为主控芯片,用定时器T2的捕获功能捕获脉冲,并测出脉冲的频率,利用HD7279实现按键及显示的功能,X5045存储用户参数,由键盘控制里程与速度的切换显示。软件设计部分,采用了模块化的设计,编程选用了汇编语言,程序由采用程序和各功能子程序组成。主要有监控系统主程序,频率测量子程序,人机接口子程序,报警子程序组成,通过使用星研仿真器对程序进行调试。本文侧重软件的实现,硬件部分描述了硬件接口电路框图及各芯片功能,最后进行了计算机辅助线路设计。此次设计的里程表结构简单,稳定性较好,实用性强,易实现,达到了设计目的。关键字单片机;测频;霍尔传感器;里程表ABST
5、RACTODOMETERISWIDELYUSEDINOURDAILYLIFE,ANDMECHANICALODOMETERHASITSDISADVANTAGESFORTHEPURPOSEOFDESIGNINGTHEELECTRICVEHICLEODOMETER,IPUTFORWARDTHEDESIGNSCHEMEOFELECTRICVEHICLEODOMETERINTHISPAPERINORDERTODESIGNTHEINTELLIGENTAUTOMATICODOMETER,ACCORDINGTOHALLPRINCIPLE,IUSEAHALLSENSOR,MEASURETHESPEEDANDMI
6、LEAGEBYUSINGTHEPULSETESTINGMETHOD,ANDIMPROVETHEMEASURINGACCURACYOFTHESYSTEMDESIGNINGTHEUSERINTERFACECANACHIEVETHEOVERSPEEDINGALARM,USERSCANSETPARAMETERVALUESBYTHEMSELVESNOTONLYCANITACHIEVETHEMEASUREMENTOFSPEED,BUTALSOCANITREALIZETHEAUTOMATIONANDINTELLIGENTBYEXPERIMENTALVERIFICATION,THISSCHEMEISFEASI
7、BLETHISPAPERINTRODUCESTHEWORKINGPRINCIPLEANDSTRUCTUREOFTHEELECTRICVEHICLEODOMETERANDRELATEDCONTENTABOUTHARDWAREDESIGNANDSOFTWAREDESIGNOFTHEPULSEDETECTIONSYSTEMWHICHUSESAT89C52SINGLECHIPCOMPUTERASTHECORETHEDESIGNUSESAT89C52SINGLECHIPMICROCOMPUTERASMAINCONTROLCHIP,USESTIMERT2TOCAPTURETHEPULSE,ANDMEASU
8、RESTHEFREQUENCYOFPULSETHECHIPHD7279CANACHIEVETHEBUTTONANDDISPLAYFUNCTIONANDTHECHIPX5045CANSTOREUSERPARAMETERSTHESWITCHINGDISPLAYOFTHEMILEAGEANDSPEEDISCONTROLLEDBYTHEKEYBOARDTHEPARTOFSOFTWAREDESIGNADOPTSTHEMODULARDESIGN,USESTHEASSEMBLYLANGUAGEPROGRAMMINGTHEWHOLEPROGRAMCONSISTSOFTHEUSINGPROGRAMANDEACH
9、FUNCTIONSUBROUTINE,MAINLYINCLUDINGTHEMONITORINGANDCONTROLLINGPROGRAM,FREQUENCYMEASURINGSUBROUTINE,MANMACHINECUTPROGRAMANDALARMINGSUBROUTINEANDTHEXINGYANEMULATORISUSEDTODEBUGTHEPROGRAMTHISPAPEREMPHASIZESONTHEIMPLEMENTATIONOFTHESOFTWARETHEPARTOFHARDWAREDESIGNDESCRIBESTHEHARDWAREINTERFACECIRCUITDIAGRAM
10、ANDTHECHIPFUNCTIONSTHEDESIGNOFTHEODOMETERUSESSIMPLESTRUCTUREHASGOODSTABILITYANDSTRONGPRACTICABILITYITISEASYTOIMPLEMENTANDREACHESTHEDESIGNPURPOSEKEYWORDMICROCOMPUTER;FREQUENCYMEASUREMENT;HALLSENSOR;ODOMETER目录第一章绪论111课题背景112国内外研究现状113课题研究意义214本课题研究内容2第二章整体方案设计421系统设计方案422系统工作原理423系统技术指标5第三章系统硬件设计631传感
11、器选型6311信号转换电路设计832人机接口电路设计933存储电路设计1134报警电路设计12第四章系统软件设计1341主程序设计1342中断程序设计1643键处理程序设计19431设定键子程序设计21432增加键子程序设计22433左移键子程序设计22434确认键子程序设计2344显示程序设计2445报警程序设计26第五章电动车里程表的测试2851测试方法2852误差分析28第六章硬件和软件调试3061硬件调试3062软件调试30621调试方法及优点30622调试出现的问题及解决方法31第七章设计总结33参考文献34致谢36附录1主板原理图I附录2主板PCB图I附录3主板PCB图II附录4副
12、板PCB图II附录5元件列表III沈阳化工大学学士学位论文第一章绪论1第一章绪论11课题背景里程表的原理很简单,因为车轮的直径已知,车轮的圆周长便是恒定不变的。由此可以计算出每走一里路车轮要转多少圈,这个数也是恒定不变的。因此只要能够自动把车轮的转数积累下来,然后除以每一里路对应的转数就可以得到行驶的里程了1。电动车被发明及使用到现在已有两百多年的历史,这两百年间人类在不断的尝试与研发过程中,将玩具式的木马车转换到今日各式新颖休闲运动电动车。我国是电动车大国,随着人们生活水平的不断提高,电动车已经不仅仅是运输、代步的工具,其辅助功能也变得越来越重要。因此,人们希望电动车的娱乐、休闲、锻炼的功能
13、越来越多,能带来大家更多的健康与快乐。在这个背景下,电动车里程表作为电动车的一大辅助工具迅速发展起来,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能,让人能清楚地知道当前的速度、时间、里程等物理量2。电动车里程表一般由安装于前车圈钢条上的感应磁铁、前叉上的传感器、单片机及显示模块构成。当车圈旋转时传感器捕捉到感应磁铁带来的信息,通过连接线传输至单片机,单片机对此进行处理后计算出时速、里程等信息并显示。它能够让我们比较精确的知道自己的当前速度、骑行时间、单次里程、总里程、平均速度、瞬时速度等。如佛山高明华劲电子公司的电动车里程表MS60
14、1,能动态显示行驶里程、骑车时间、实时车速等3。12国内外研究现状从保护环境及经济条件许可等综合因素来看,电动车里程表目前乃至未来都有着广阔的发展前景。目前市面上电动电动车的速度表和里程表都是机械的,看起来不够直观与方便。如果能用LED直接显示出来里程数或速度值,就可节省用户的时间及精力处理电动车行进过程中的突发事件4。国内外现在生产销售的很多种电动车速度沈阳化工大学学士学位论文第一章绪论2里程表,某些产品的性能与结构功能简单,只有测速与里程显示的功能,比较高端的一些产品除了测量速度和里程显示功能外,还加入了GPS全球定位,单次行车里程,时间,运动时间,平均速度,累计里程,车轮转数。以后的发展
15、趋势可能会加入MP3和短信收发功能、心率测量、视频播放,使电动车速度里程表更具有人性化,相信也会受到各个年龄段人的喜欢5。随着电动车的里程表的发展,它的功能也越来越完善,从以前老式的机械指针表盘,演变成现在利用数码技术直接利用LED或者LCD显示,上面清楚的显示电动车的速度,行驶里程,时间,电池电压等等,用户可以随时了解电动车的行驶现状,更加便捷。其中的核心部件单片机体积小,智能化,把它做到产品的内部,取代了老式机械零件,缩小产品的体积,增加功能6。随着电子技术的迅速发展和提高,行车记录仪也不仅仅是里程表,上面会集成更多的功能,路况摄像监测,人体疲劳测试程度,智能提醒车的状况,而不仅仅是显示,
16、另外新增的语音提醒更加人性化,进一步的通讯技术,可以与互联网通信,对接收的信息进行处理,有利于交通管理。13课题研究意义电动车已成为人们日常生活中出行运动必不可少的工具,广泛用于个人家庭娱乐休闲及比赛等方面,给人们的娱乐运动、出行及生活带来了极大的改变与快捷。电动车速度里程表电子集成电路的发展多采用了先进的智能传感技术,使电动车速度里程表有测量准确、工作时性能稳定、容易携带等优势,它被广泛用于多个领域的发展,比如测速,里程计算及自动控制。由于电动车的里程表基本组成包含单片机的自动检测及控制电路、信号处理电路、显示电路、报警电路几部分,因此进行电动车速度里程表的研究是非常必要的,研究电动车速度里
17、程表及扩展其应用邻域,有着非常现实的意义7。14本课题研究内容在对电动车里程表已有的研究的基础上,本课题设计了基于AT89C52单片机的智能里程表硬件系统和软件系统,并对硬件部分和软件部分进行了测试。设计目标也是在力求结构简单、易于实现、可行性较强的前提下,尽量完善增加其辅助功能。硬沈阳化工大学学士学位论文第一章绪论3件部分设计了主机电路、人机接口电路、存储电路、报警电路。软件部分采用了模块化程序设计思想,将软件分为主程序模块、键处理模块、显示模块、数据采集处理模块和报警模块。对软件的模块化处理使软件设计结构清晰明了,易于调试与修改,避免了很多错误。此外,对设计中存在的问题,出现的现象进行了进
18、一步的分析与改正,完成了设计任务。沈阳化工大学学士学位论文第二章整体方案设计4第二章整体方案设计21系统设计方案系统硬件由单片机AT89C52、霍尔传感器及信号转换电路、X5045、HD7279键盘显示器、报警电路组成。单片机采集霍尔传感器输出的脉冲信号,其中信号转换电路包含信号放大、波形变换和波形整形,对被测信号进行放大的目的是降低对待测信号的幅度要求,波形变换和波形整形电路则用来将放大的信号转换成可与单片机相连的信号。X5045存储报警参数,键盘显示器电路根据按键不同控制里程表的显示,最后用6位的LED能直观的将速度与里程显示给用户,并且在速度高于一定的值时可自动向用户报警,从而达到智能速
19、度里程表设计目的。系统设计方案图如图21所示,霍尔传感器转换电路单片机蜂鸣器X5045电路键盘显示器控制电路键盘显示器显示里程、速度发光二级管图21整体方案设计框图本次设计是以单片机为核心设计的里程表系统,仅用了较少的硬件和软件结合就实现了设计要求,且性能好,稳定性强,测速误差小,还通过软件编程新增加了一些附加功能,达到了创新的目的。22系统工作原理该设计能实时地将所测的速度与累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量沈阳化工大学学士学位论文第二章整体方案设计5出来,考虑到信号的衰减、干扰等影响,在信号送入单片机前应对其
20、进行放大整形,然后通过单片机计算出速度和里程,再将所得的数据存储到串口数据存储器,并由按键选择LED显示模块显示所测的速度与里程。同时若检测到电动车超速,系统将发出报警提示信号,LED指示灯闪烁。23系统技术指标传感器对电动车的状态进行实时检测,里程表对采样数据进行处理,然后转换成标准数据输出。显示里程和速度,并设定量程上下限,速度上下限,报警上下限等参数值。里程表设计中增加了看门狗定时器功能,因此系统无需每次开机重新设定参数值。里程表的主要技术指标如下(1)电源供电5V直流电压(2)测速范围020KM/H(3)输入信号脉冲方波信号(4)频率测量范围010HZ(5)工作湿度1585RH(6)工
21、作温度055沈阳化工大学学士学位论文第三章系统硬件设计6第三章系统硬件设计本次的硬件电路设计主要包括以下几部分传感器选型、人机接口电路设计、存储电路设计、报警电路设计。31传感器选型里程表的需要通过传感器检测信号,经信号转换电路转换后送到主机单元进行计算,在这里对传感器进行简单的介绍。电动车里程表用传感器是电动车里程表的重要部件,传感器的准确性直接影响里程表的里程精度,是里程表日常修理中遇到的最多的问题。它的功能是将转动的机械信号变成电脉冲信号,传输给里程表接口,根据输入的脉冲数来计算电动车行驶的里程9。目前电动车里程表所选配的主流传感器是霍尔式传感器,它可以检测转速与转数,而霍尔传感器尺寸较
22、小,性能稳定可靠,工作电路简单,价格便宜,在里程表设计中使用广泛。霍尔元件是在半导体薄片的两端控制电流,若在薄片的垂直方向上施加一个磁场,垂直于电流和磁场方向上将产生一个电压,这个电压称为霍尔电压,这一现象就是霍尔效应。根据霍尔效应制造的元件就是霍尔元件。目前里程表用传感器均为开关型霍尔传感器。其特性曲线如图31所示。图31开关型霍尔传感器特性曲线图开关型霍尔传感器大小适中,性能可靠,价格合适,工作时的电压范围较宽,它只需配合一块小的永久磁铁就可以做成电动车里程表的传感器。根据产生的脉冲计算出行车里程12。目前,大部分传感器厂家多使用HONEYWELL公司生产的SS443A开关型霍尔传感沈阳化
23、工大学学士学位论文第三章系统硬件设计7器。本次毕业设计就选用此传感器。其示意图如图32。特点(1)3824VDC供电(2)磁特性温度补偿(3)数字电流沉输出(4)可消除机械压力产生的作用(5)绝对最高电流50MA(6)可定制特殊动功释放点图32开关型霍尔传感器示意图(7)工作温度范围40150当车轮上的磁条转动到接近霍尔传感器的位置时,SS443A将接受到磁感应,此时传感器输出一个无抖动的低电平,此低电平使得AT89S52接受到信号,据此计算出里程数、实时速度等。其原理如图33所示图33传感器测距示意图电动车轮子一般为16寸,周长S大概为1330MM,即约为133M。两次相邻信号直间的时间间隔
24、为T秒,瞬时速度VSS/T单位为M/S。此时记为一个单位的距离。用这个测量的实时速度与设定的报警速度上限比较,若大于报警上限,则报警。当脉冲个数为N个,初始里程数为LC时,总里程长度LNNLLC单位为M,用数字频率计计数,起动标准转速发生装置,使其带动传感器在额定转速范围内转动,读取不同转速时标准转速发生装置转动次数K2与数字频率计的计霍尔传感器及其保护电路车轮小磁铁P11单片机沈阳化工大学学士学位论文第三章系统硬件设计8数值K1。311信号转换电路设计如图34所示,系统的信号处理电路由二级电路构成,第一级是由开关三极管组成的零偏置放大器,采用开关三极管可以保证放大器具有良好的高频响应。当输入
25、信号为零或负电压时,三极管截止,电路输出高电平;而当输入信号为正电压时,三极管导通,此时输出电压随着输入电压的上升而下降,这使得速度里程表既可以测量任意方波信号的频率,也可以测量正弦波信号的频率。由于放大器的放大功能降低了对待测信号的幅度要求,因此,系统能对任意大于05V的正弦波和脉冲信号进行测量。预处理电路的第二级采用带施密特触发器的反相器DM74LS14来把放大器生成的单相脉冲转换成与COMS电平相兼容的方波信号9,如图35所示,同时将输出信号加到单片机的P11口上。利用施密特触发器状态转换过程中的正反馈作用,可以把边沿变化缓慢的周期性信号变换为边沿很陡的矩形脉冲信号。输入的信号只要幅度大
26、于VT,即可在施密特触发器的输出端得到同等频率的矩形脉冲信号9,信号转换电路原理框图如图36所示。图34信号转换电路图图35信号转换示意图信号放大器波形转换波形整形单片机图36信号转换电路原理框图沈阳化工大学学士学位论文第三章系统硬件设计932人机接口电路设计在本系统中我们采用五个按键和八个LED显示数码管,选用的是键盘显示器的专用智能控制芯片HD7279。HD7279是管理键盘和LED显示器的专用智能控制芯片,该芯片采用串行接口方式,可同时驱动8位共阴极LED数码管或64位独立LED发光二极管,同时能对多达88的键盘矩阵进行监控,具有自动消除键抖动并识别按键代码的功能。从而可以提高CPU的工
27、作效率,同时其串行接口方式又可简化CPU接口电路的设计10。HD7279的主要特点1CPU间采用串行接口方式,仅占用4根端口线;2内部含有译码器,可直接接受BCD码或16进制码,同时具有2种译码方式,实现LED数码管位寻址和段寻址,消隐和闪烁属性等多种控制指令,编程灵活;3循环左移和循环右移指令;4内部含有驱动器,无需外围元件可直接驱动LED5具有级联功能,可方便的实现多于8位显示或多于64键的键盘接口;6具有自动消除抖动并识别按键的功能。HD7279与AT89C52仅需4条口线,其中CS为片选信号。当AT89C52访问HD7279时,应将片选端置为低电平。DATA为串行数据/输出端,当不向H
28、D7279发送数据时,DATA为输入端;当HD7279输出键盘代码时,DATA为输出端。CLK为数据串行传送的同步时钟输入端,时钟的上升沿表示数据有效。KEY为按键信号输出端,在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。RC引脚用于连接HD7279的外接振荡元件,其典型值为R15K,C15PF。RESET为复位端。该端由低电平变成高电平并且保持25MS即复位结束。通常,该端接5V即可。实际应用电路中,8只下拉电阻和8只键盘连接位选线DIG1DIG7的8只位选电阻的阻值应遵从一定比例关系,下拉电阻应大于位选电阻的5倍而小于其50倍,典型值是10倍。在本系统中,我们
29、选用了100K的下拉电阻和10K的位选电阻。AT89C52和HD7279连接图如图37所示,沈阳化工大学学士学位论文第三章系统硬件设计10P10/T21P11/T2EX2P123P134P145P156P167P178RST9P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P35/T115P36/WR16P37/RD17XTAL218XTAL119VSS20P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427P27/A1528PSEN29ALE30EA/VPP31P07/AD732
30、P06/AD633P05/AD534P04/AD435P03/AD336P02/AD237P01/AD138P00/AD039VCC40AT89C52U1AT89C52DIG321DIG422DIG523DIG624DIG725CLK7KEY9SC14DATA8CS6CLKO26NC3VSS4SA16SB15NC5DP17SD13SE12SF11SG10RC27RESET28VDD2VDD1DIG018DIG119DIG220U2HD7279LED8LED7LED6LED5LED4LED3LED2LED1VCC15KR315PFC4200R18R17R16R15R14R13R12R11100K
31、R922KR422KR522KR622KR722KR8DPABCDEFG20H18H00H10H08H图37HD7279与AT89C52接口电路AT89C52与HD7279引角的连接和相关的地址分配如下(1)CS片选,低电平有效,与P14相连;(2)CLK串行时钟输入端,与P15相连;(3)DATA串行数据输入/输出端,与P16相连;(4)KEY按键有效信号端,与P17相连。在本次设计中利用7279实现键盘和显示器的人机交互。键盘和显示器由HD7279管理,实现5个按键的功能设置键清零键、增键、左移键、确认键。以及显示器的显示功能由LED数码管组成,前4位显示提示号,后4位显示具体测量值。LE
32、D显示如图38所示沈阳化工大学学士学位论文第三章系统硬件设计110001605KMKM/H里程速度键盘图38LED显示图33存储电路设计X5045作为单片机系统电路的一个辅助芯片,它将复位、电压检测、看门狗定时器和快锁存保护的串行错误未找到引用源。PROM功能集合在一个芯片内;采用SPI总线串行外设接口方式,降低了系统成本并减少了对电路板空间的要求,提高了系统的可靠性;适合于需要现场修改数据的场合,广泛应用与仪器仪表和工业自动控制等领域13。X5045有4种功能上电复位、低电平检测、看门狗定时器和SPI串行错误未找到引用源。PROM。(1)上电复位当器件通电并超过VCC门限电压时,X5045内
33、部的复位电路将会提供一个约为200MS的复位脉冲让微处理器能正常复位。(2)低电压检测工作过程中X5045监测电源电压下降并且在电源电压跌落到VCC门限电压以下时,产生复位脉冲并保持有效直到电源电压1V以下。如果电源电压在降落到门限电压后上升,复位信号消失,微处理器可以继续工作。(3)看门狗定时器看门狗定时器对微处理器提供了一个因外界干扰而引起程序陷入死循环或“跑飞”状态的保护功能。(4)串行错误未找到引用源。PROM存储器X5045的存储器部分是具有块锁保护CMOS4KB串行错误未找到引用源。PROM。它被组织成8位的结构,由一个四线构成的SPI总线方式进行操作,一次最多可写16B。在本次设
34、计中主要利用X5045串行错误未找到引用源。PROM存储测和报警上沈阳化工大学学士学位论文第三章系统硬件设计12P10/T21P11/T2EX2P123P134P145P156P167P178RST9P30/RXD10P31/TXD11P32/INT012P33/INT113P34/T014P35/T115P36/WR16P37/RD17XTAL218XTAL119VSS20P20/A821P21/A922P22/A1023P23/A1124P24/A1225P25/A1326P26/A1427P27/A1528PSEN29ALE30EA/VPP31P07/AD732P06/AD633P05/
35、AD534P04/AD435P03/AD336P02/AD237P01/AD138P00/AD039VCC40U1AT89C52CS1SO2SLK6SI5VCC8RESET7WP3VSS4U3X504512CRY20PFC220PFC147KR20VCCVCC限值,和通过具看门狗定时器功能保证AT89C52出现死循环或“跑飞”状态的情况下能回到正常状态下继续工作13。AT89C52与X5045之间的接线图如图37所示。图37AT89C52与X5045的接线图34报警电路设计报警电路硬件部分主要由蜂鸣器和发光二极管组成,当超过设定的报警上限时根据相关法规电动车最高时速不得超过20KM/H,发出信
36、号使得发光二极管发光,蜂鸣器工作,发出蜂鸣声。当低于报警上限时,灯熄灭,蜂鸣器停止发声。蜂鸣器电路连接图如图38所示。图38蜂鸣器报警电路连接图沈阳化工大学学士学位论文第四章系统软件设计13启动内部变量及定时器初始化X5045初始化HD7279初始化更新采样值键处理模块显示模块看门狗定时器“喂狗TF_FIG1SET_STA0NYYN休眠第四章系统软件设计我认为软件是整个毕业设计的最核心部分,一切的硬件设计都是通过软件来实现的,软件的成功与否是关系到整个系统的最后运行,单片机所具有的智能功能要由软件来完成,因此要实现单片机的智能化,是离不开软件的。因此,我把软件设计作为我的工作重点。这里通过程序
37、框图来介绍本人的软件设计思想。本次毕业设计软件部分主要包括主程序设计、中断程序设计、键处理程序设计、显示程序设计、报警程序设计。41主程序设计程序设计采用模块化设计,主程序仅完成对电路中各个接口芯片的初始化及定时器初始化、中断向量初始化以及中断处理,然后进入休眠状态。主程序流程图如41所示沈阳化工大学学士学位论文第四章系统软件设计14图41主程序流程图主程序流程图如41所示,完成初始化功能,然后进入休眠状态,由溢出中断唤醒后,在执行完T2的中断程序后,会重新进入休眠状态,可减少功耗和提高抗干扰能力。1内存变量初始化是对内存变量单元中从20HFFH的RAM地址进行清零处理,因为在伪指令中定义了大
38、量变量,若不对内存变量清零将会使程序执行不稳定,显示器上也会出现乱码。定时器T2初始化是因为设置了T2为捕获方式,实时监测P11管脚输入的方波信号。2X5045初始化主要是对其状态寄存器进行设置,本次设计中X5045的所有单元地址均可进行写入操作,看门狗定时器的喂狗周期设置为200MS,写入状态寄存器常数STTAUSREG20,所以写入的命令字为20H。3HD7279的初始化是对I/O进行高低电平的初始化,同时向HD7279发送复位指令A4H,所有的显示、设置的字符、闪烁等属性也将被一起清除。4判断定时器T2溢出中断的标志位TF_FIG是否为1,当为1时,表示是溢出中断,才会从休眠中唤醒AT8
39、9C52,如果没有判断,T2的溢出和沿中断都会唤醒休眠,这样是为了保持时序的准确,不会混乱,。5判断SYS_STA是否为0,以及更新采样值是为了可以实时显示采样值,提高系统的实时性,如果少了判断及更新,显示需要经过设置键的一轮过程才会更新,不会实时显示出采样值。6键处理模块主要是对按键进行处理,对是否有按键进行判断,若有按键则根据键值进行相应的处理,否则返回。包括在对键值进行确定后就可使用按键对各参数进行修改。7显示及闪烁模块主要是对当前测量值或各个设定状态值进行显示,对LED显示器进行管理,够有效的对设定参数,采样数据进行显示,可改参数位呈现闪烁状态,数据显示一目了然,可以对被控对象有直观的
40、了解。从而使使用者的操作更加方便、简洁。8报警提取采样值,与X5045内报警上下限进行比较,如超出范围调用报警程序,拉低蜂鸣器,否则返回。9看门狗定时器进行“喂狗”处理,方法很简单,通过对其片选端CS进行置低沈阳化工大学学士学位论文第四章系统软件设计15再置高操作既可,以防止一种因外界干扰而引起程序陷入死循环或“跑飞”的状态,起到一个保护的功能。相关的主要变量和常量及地址分配伪指令表,一般安排在主程序开始时采用伪指令方式说明,设计中的变量和常量用表格分类说明,如表41,42,43所示。表41片内RAM主要变量分配伪指令表符号伪指令地址或常量意义SET_STADATA30H表示设定状态指针,切换
41、要修改的设定值SYS_CLKDATA31H表示系统时钟,其取值范围是019,完成时间片分配LEFTDATA32H表示左移位指针,其取值范围是02,切换要修改设定值的位DR0DR7DATA33H3AHLED显示单元缓冲区F_CYC1DATA3BH表示溢出次数TF_FIGBIT11H表示溢出标志位,等于1,为溢出中断KB_FIGBIT10H按键处理标志位,等于1表示键处理过,否则未处理过F_CYC2DATA3CH表示下一次的溢出次数表42HD7279地址分配伪指令符号伪指令地址或常量意义CS2BITP14CS_7279代表89C52的P14,即硬件相连CLKBITP15CLK代表89C52的P15
42、,即硬件相连DATA_7279BITP16DATA代表89C52的P16,即硬件相连KEY_OKBITP17KEY_OK代表89C52的P17即硬件相连表43X5045主要变量分配伪指令表符号伪指令地址或常量意义CS1BITP10CS_5045代表89C52的P10,即硬件相连SCKBITP12SCK代表89C52的P12,即硬件相连SIBITP13SI代表89C52的P13,即硬件相连SOBITP11SO代表89C52的P11,即硬件相连沈阳化工大学学士学位论文第四章系统软件设计1642中断程序设计此次设计要采样脉冲信号,因此选用了16位的定时器T2,利用它的捕获方式捕获脉冲测出频率。在程序
43、设计时,发现测频时,定时器T2与T0中断程序互相干扰,尝试设置T0中断优先级,仍然干扰。然后在魏老师指导下,直接从主程序中删除定时器T0的初始化程序以及T0的中断服务程序,只留T2的初始化及中断采样程序。将键处理模块、显示模块的程序放在主程序的休眠程序中,由定时器T2的溢出中断唤醒休眠。然后设置了标志位TF_FIG判断是溢出中断还是沿中断,选择是否唤醒休眠。编写T2采样程序,考虑到数据的范围,采用了三字节浮点数表示法表示数据,将数据转化为浮点数,调用了浮点数的规格化、加减及乘除子程序处理数据。调试程序后,发现系统可以测出脉冲的频率,但数据显示并不稳定,经过老师提示,在T2采样程序中加入堆栈指针
44、,用来保护采样数据。加入堆栈后,系统可以准确测出脉冲频率,并且数据显示稳定。编写里程、速度计算程序,再次校对了各个地址变量的地址分配,00H1FH为工作区寄存器,20H2FH为位寻址区,30H7FH是通用RAM区,将各个地址变量分配在通用RAM区,防止地址定义混乱。经过多次修改与调试,程序调试成功,可以准确测出电动车当前行驶里程与速度,并能稳定显示。以下介绍定时器T2捕获方式工作原理及测频原理图。(1)T2捕获方式测频原理示意图,如图42所示,图42测频原理示意图(2)T2捕获方式工作原理在捕捉方式中,沿中断和溢出中断的触发方式由T2的控制位EXEN2来选择。当EXEN20时,T2是一个16位
45、定时器,计数溢出时,溢出标志位TF2置位,同时激活中断。当EXEN21时,T2完成相同的操作,而且当T2EX引脚外部输入信号发生“1”至“0”负跳变时,沈阳化工大学学士学位论文第四章系统软件设计17TH2和TL2中的值被捕获到寄存器RCAP2H和RCAP2L中。另外,T2EX引脚信号的负跳变使得T2CON中的EXF2置位,与TF2相仿,EXF2也会激活中断10。定时器T2的捕获方式如图43所示,图43定时器T2的捕获方式本设计采用T2定时中断测频,中断源包括溢出中断和沿中断。溢出中断判断是否来过沿中断,计算溢出次数;沿中断则是响应后,捕获此时T2中的TH2,TL2存到RCAP2H,RCAP2L
46、两个寄存器中。中断程序种用到了二个标志位分别是FF_FIG和TF_FIG(1)FF_FIG设FF_FIG1,初始化中将FF_FIG置1,表示从没来过沿中断,当第一个沿来时,将FF_FIG置零,此时将计算中需要用到的变量初始化,然后中断返回。(2)TF_FIG为溢出标志位,当溢出中断时,将其清零,使休眠只有在溢出时才会被唤醒,防止时序发生混乱。沈阳化工大学学士学位论文第四章系统软件设计18EXF21TF21TFFIG0TF20FFFIG1P4P1P0中断TFFIG1EXF20FF_FIG1RCAP2TET2ET2SF_H2P0P65536F_H2TF1000000/TTFFIG0RCAP2TSP
47、0YNYNNYNYYNYN返回返回返回返回图44T2中断程序流程图T2中断程序流程图如图44所示,进入中断程序时,首先,根据的EXF2,TF2的值判断是溢出中断还是沿中断,当TF2的值为1时,是溢出中断,执行溢出子程序。再判断FF_FIG值,FF_FIG0时,表示来过沿中断,执行程序,溢出次数加1返回;FF_FIG1表示没来沿中断,返回。然后判断EXF2值,EXF21时,表示是沿中断,执行沿中断子程序,若FF_FIG1,则是第一次沿,捕获TH2,TL2,后返回;若FF_FIG0,则是第二次沿,捕获后,压入堆栈,进行数据处理,弹出返回。两次响应后,由频率的计算公式沈阳化工大学学士学位论文第四章系
48、统软件设计19T65536F_CYC2F_H2;(式41)F1/T。(式42)其中F_CYC2表示溢出中断次数,F_H2表示两次捕获值之差,T表示一个周期的宽度,F表示1秒钟的频率数。S3600FLKM/H(式43)V3600FS(式44)其中S表示里程,V表示当前行驶速度,L表示电动车车轮周长。再由式43、44计算出电动车当前行驶速度与里程值。43键处理程序设计键处理程序主要用来管理键盘,判断并读取键值,和主机芯片共同管理按键。此次设计的5个按键包括设定键、清零键、增加键、左移键和确定键。键处理程序中用到了三个变量标志位KEY_OK、KB_FIG和KEY_IN。(1)KEY_OK表示按键按下
49、的标志位。当KEY_OK1时,无键按下,键处理程序结束;当KEY_OK0时,证明有键按下,键处理程序继续执行。AT89C52的P17与HD7279的KEY按键信号输出端相连。(2)KB_FIG表示按键处理标志位,判断按键是否处理过,因为有这个变量可以避免当同一键被一直按下时进行多次处理。当KB_FIG1时,键已经处理过,因此不再处理,键处理程序结束;当KB_FIG0时,键未被处理过,键处理程序继续执行。(3)KEY_IN表示按键的键值,每次读到的键值放入KEY_IN中,再通过比较判断具体是哪个键按下,因为有这个变量使程序的可读性加强。按键程序设计分配在每个时间片内完成一次,间隔50MS,通过设置按键标志位,保证按一次键响应一次,按键模块流程如图45所示。沈阳化工大学学士学位论文第四章系统软件设计20KEY模块KEYOK1KBFIG1KEYIN设定清零左移确定KBFIG1KBFIG清零增加YYNKEYIN20HKEYIN18HKEYIN10HKEYIN08HKEYIN00HN返回图45键处理程序流程图进入键处理程序时,首先,根据KEY_OK的值判断有无按键,若KEY_OK1,说明无键按下,键处理程序结束;若KEY_OK0,说明有键按下,键处理程序继续执行。再根据KB_FIG的值判断此按键是否处理过,若KB_FIG1,说明按键已经处理过,因此不再处理,键处理程序结束
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。