![毕业设计毕业论文基于51单片机汽车行驶状态记录仪系统设计_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-4/20/2461237d-7f0c-4ba3-99bb-26c17e651ee9/2461237d-7f0c-4ba3-99bb-26c17e651ee91.gif)
![毕业设计毕业论文基于51单片机汽车行驶状态记录仪系统设计_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-4/20/2461237d-7f0c-4ba3-99bb-26c17e651ee9/2461237d-7f0c-4ba3-99bb-26c17e651ee92.gif)
![毕业设计毕业论文基于51单片机汽车行驶状态记录仪系统设计_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-4/20/2461237d-7f0c-4ba3-99bb-26c17e651ee9/2461237d-7f0c-4ba3-99bb-26c17e651ee93.gif)
![毕业设计毕业论文基于51单片机汽车行驶状态记录仪系统设计_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-4/20/2461237d-7f0c-4ba3-99bb-26c17e651ee9/2461237d-7f0c-4ba3-99bb-26c17e651ee94.gif)
![毕业设计毕业论文基于51单片机汽车行驶状态记录仪系统设计_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-4/20/2461237d-7f0c-4ba3-99bb-26c17e651ee9/2461237d-7f0c-4ba3-99bb-26c17e651ee95.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科生毕业设计 基于基于51单片机汽车行驶状态记录仪系统单片机汽车行驶状态记录仪系统 设计设计 独独 创创 性性 声声 明明 本人郑重声明:所呈交的毕业论文(设计)是本人在指导老师指导下取得的研 究成果。除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已 经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在论 文(设计)中作了明确的说明并表示了谢意。 签名: 年月日 授授 权权 声声 明明 本人完全了解许昌学院有关保留、使用本科生毕业论文(设计)的规定,即: 有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕 业论文(设计)被查阅和借阅。本
2、人授权许昌学院可以将毕业论文(设计)的全部 或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、 汇编论文(设计)。 本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无”) : 签名: 年 月 日 指导教师签名: 年 月 日 摘 要 汽车行驶状态记录仪是一种安装在汽车上的特殊的数字式电子记录装置。它可 以全程记录汽车行驶数据,并通过对所记录的行驶信息数据进行分析,精确掌控汽 车的各种状况。利用它,可有效预防驾驶员违章驾驶、遏制重大交通事故,约束驾 驶员的不良驾驶习惯,为执法人员进行事故的分析、处理提供科学的原始数据,因 此在交通运输管理中发挥着十分重要的作
3、用。针对目前汽车行驶记录仪的研究现状, 本文设计并实现了一种基于 51 单片机的汽车行驶状态记录仪,该汽车行驶状态记录 仪具有准确性、可靠性、高效性、易读性和价格低廉等特点。 关键词:汽车行驶状态记录仪;单片机;c51;液晶显示; abstract vehicle traveling data recorder(vtdr) is a special digital electronic recorder which used to acquire and store vehicles traveling speed,time-distance and other related status
4、information,and then display data via lcd and rs232 interfacethe use of vehicle travel- ling data recorder carol not merely halt the break in traffic rules and regulations, restrain the drivers from being drive at bad habit,and call prevent the traffic accident effectively, it can also offer scienti
5、fic initial data for the tipstaffs carries on the accidentsso it plays a very important role in transportation managementaiming at the actuality of the vtdr research,a vtdr is designed in this paper which bases on the 51 mcuit also has some characteristics such as real-time,reliable,high dependabili
6、ty, read- easy and less cost key words: vehicle traveling data recorder;single chip microcomputer;c51;lcd display 目 录 1 绪论 .1 1.1 国内外汽车行驶状态记录仪发展的状况 .1 1.2 本课题的目的和意义 .2 1.3 本课题的主要研究内容 .3 2 汽车行驶状态记录仪总体方案设计 .3 2.1 汽车行驶记录仪的功能和技术指标 .3 2.2 汽车行驶状态记录仪的系统结构 .4 2.2.1 设计思路分析 .4 2.2.2 面板介绍和使用方法 .5 3 汽车行驶状态记录仪硬件
7、设计与实现 .6 3.1 记录仪的供电.6 3.2 信息采集模块.7 3.3 单片机模块 .8 3.4 可编程逻辑器件 .9 3.5 日历时钟芯片 .12 3.6 液晶显示模块 lcd .14 3.7 信息的存储 .15 4 汽车行驶状态记录仪软件设计与实现 .16 4.1 软件流程.16 4.2 中断子程序 .18 4.3 获取状态信息.20 4.4 时间信息的设置和获取.21 4.5 键盘输入.22 4.6 液晶显示.25 4.7 ic 卡操作 .26 5 分析与结论 .28 6 后续研究与发展前景 .29 附 录 .30 参考文献 .31 致 谢 .32 1 绪论 目前,我国交通建设持续
8、快速发展,车辆的数目急剧增多,道路交通安全形势 相当严峻,这样提高运输企业规模与管理等级,加强道路交通安全管理及运输等问 题越来越受到社会和行业的关注。 汽车行驶状态记录仪(vehicle travelling data recorder),亦称“汽车黑匣子”,是一 种安装在车辆上,对车辆行驶速度、时间、里程以及有关车辆行驶的其它状态信息 进行记录、存储并可通过液晶屏显示的数字式电子记录装置。 汽车行驶状态记录仪能完整、准确地记录汽车行驶状态下的相关情况,能将汽 车行驶轨迹完整记录,并通过专用电子器件在液晶显示屏上显现,达到遏止疲劳驾 驶,车辆超速违章的效果,从而约束驾驶员的不良行为。当然,对
9、分析鉴定事故, 提高交通的管理执法水平和运输管理水平、保障车辆运行安全也有着重要的实际意 义和社会价值。 1.1 国内外汽车行驶状态记录仪发展的状况国内外汽车行驶状态记录仪发展的状况 资料表明,在20世纪80年代,发达国家就开始安装并使用汽车行驶记录仪。其 中,欧共体已在1975年就通过了在汽车上安装汽车行驶记录仪的立法,要求35吨 以上货车、9座以上客车必须安装行车记录仪;欧盟在第3825/85号法规关于公路 运输车辆的记录设备的第三款中规定:“记录设备应在欧盟成员国使用的客货运 输车辆上安装和使用。”这一立法要欧洲的15个成员国在10年内,给在用的900万辆 卡车和轿车安装这一装置。这一作
10、法很快在美国引起效仿。 1998年,马来西亚内阁会议决定,强制使用汽车行驶记录仪。以日本为例,日 本的法律规定,拥有5辆以上汽车的运输单位必须配备一名专职安全管理人员,以后 每增加20辆汽车必须增加1名安全管理人员。安全管理人员监督使用汽车行驶记录仪, 通过定期采集和分析行驶记录仪的各种数据,可以完整、准确地判定每辆车在每一 时刻的运行状况,以此加强企业的安全生产管理。 2001年10月24日,交通部、公安部、国家安全生产监督管理局共同发布了关 于加强公路客运交通安全管理的通告,为明确长途客车应当使用行驶记录仪奠定 了坚实的基础。 自2001年以来,交通部交规划发200l268号发布的公路行业
11、产业政策、交公路 发2002226号和交公路发2002418号文件等分别要求利用全球定位系统(gps)以 及行驶记录仪对运输全过程进行跟踪,尤其是长途客运车辆、危险品运输车辆和旅 游客运车辆要逐步采用gps行车记录仪,以确保运输及人身安全。 2003年国家质量监督检验检疫总局发布并实施了gb/t19056-2003汽车行驶记 录仪国家标准,该标准对汽车行驶记录仪的各项性能、试验方法、检验规则及安 装作了详细的规定。 2004年12月10日,在第二届中国智能交通论坛期间,1l家汽车行驶记录仪厂家 于深圳正式签字成立中国汽车行驶记录仪联盟。联盟初步成立后,行业内一些具有 实力的厂家继续加盟。行业联
12、盟首先将在联盟成员内解决产品的互联互通。 美国、日本、香港、马来西亚等地也在大量使用汽车行驶记录仪,我国许多大 中小城市一部分车辆也安装上了汽车行驶状态记录仪。近年来的统计资料表明:使 用汽车行驶状态记录仪以来,交通事故率降低了37-52,大大减少了人员伤亡和 财产损失,产生了很明显的社会效益与经济效益。 1.2 本课题的目的和意义本课题的目的和意义 汽车行驶状态记录仪能够为驾驶员提供其驾驶活动的反馈信息,为道路运输企 业提供良好的管理工具。 首先,汽车行驶状态记录仪能真实、准确反映车辆运行中的实际状况,记录相 关行驶的数据。其存储的数据可作为企业加强对车辆的使用、运行、调度的科学管 理的依据
13、。 其次,汽车行驶状态记录仪在车辆超速或超时行驶时能发出报警声,督促司机 安全行车。而且,司机保持车辆中速行驶,可以延长车辆使用寿命、节约燃料、减 轻耗损,减少企业的经营成本。 另外,汽车行驶记录仪记录的数据,对交通事故的原因和责任分析,也有一定 的作用。 我国公安部为遏制日益频繁的交通事故,责成公安部交通管理科学研究所、中 国公路学会客车学会、中国航空工业第 61l 研究所、中国道路运输协会、中国汽车 技术研究中心、广州银宜智能交通有限公司共同参加起草并制定了汽车行驶记录 仪的国家标准 gbit90562003,并将在我国的营运车辆中运用法规强制安装汽车 行驶记录仪。 因此,研制汽车行驶记录
14、仪将具有重大的现实意义和社会价值。 1.3 本课题的主要研究内容本课题的主要研究内容 本系统包括汽车端的汽车行驶状态记录仪和计算机端的汽车行驶信息分析软件 两部分,前者记录下的状态数据最终送到计算机,由计算机侧相应的分析软件来分 析,这样得到的结果有助于运输企业和管理部门监控车辆的运行状态,加强对车辆 和驾驶员的管理,同时也可为交通管理部门对汽车事故处理提供相应的技术手段。 对于计算机端的车辆行驶信息分析软件部分,由于不在 51 单片机系统开发的研 究范畴之内,因此本文中不做具体介绍。 2 汽车行驶状态记录仪总体方案设计 2.1 汽车行驶记录仪的功能和技术指标汽车行驶记录仪的功能和技术指标 汽
15、车行驶状态记录仪的主要功能及技术指标应包括以下几个方面。 (1) 能够实时监督并记录汽车行驶的各种状态信息,包括速度、里程等重要数据。 (2) 为每个驾驶员提供单独的可移动存储卡式设备,用于记录驾驶员信息(如姓 名、工号等)和汽车(如车号等) ,为有关部门检查提供必要的信息;同时, 还需要提供存储发车站和终点站的功能。 (3) 安装在汽车上的行驶状态记录仪要提供方便、灵活的操作界面,可进行输入 信息的提示,同时还要有实时信息的显示,并可根据用户要求或设置,另外 还要具备汽车超速时的报警功能。 (4) 安装在计算机上的汽车行驶信息分析软件应该提供方便的图形用户界面,支 持鼠标和键盘操作,能统计分
16、析任何时段的行驶速度、行驶里程、停车次数、 停车时间、超速次数、超速时间、发车以及到站时间,并能用图形显示速度、 里程的变化情况;在汽车正常行驶或发生交通事故时,可向管理部门提供详 实的汽车行驶数据,帮助管理人员全面了解汽车的行驶情况,同时也可提供 故障诊断功能,便于汽车维护和维修人员判断及修理。 所开发的汽车行驶状态记录仪作为产品使用还需要满足下面的要求: 合适的数据记录频率:速度的采样周期可设置为 1 次/ s0.2 次/s。 一定的数据记录容量:0240h。 较长的数据存储时间:掉电情况下可至少保存 10 年以上。 监测汽车行驶速度范围:0240km/h。 记录需要的汽车行驶数据,包括速
17、度、里程、超速度及时间、停车次数及时 间。 存储卡还要可以存储驾驶员信息、汽车信息、发车时间和到站时间、起始站 和终点站。 要能够抗电磁干扰、防火、防潮、抗冲击。 尺寸要合适,便于在汽车上安装。 2.2 汽车行驶状态记录仪的系统结构汽车行驶状态记录仪的系统结构 2.2.1 设计思路分析设计思路分析 本系统包括数据采集、控制、键盘输入、液晶显示、日历、数据存储等功能模 块,其中采集、控制、键盘及“屏显”都属于 51 单片机的应用范畴。 本课题研究的汽车行驶状态记录仪的总体结构框图如图 2-1: 汽 车 内 部 供电单元 信号采集 键盘 输入 单片机系统 液晶显示 可编程控制模块信息存贮 图 2-
18、1 汽车行驶状态记录仪总体结构框图 在图 2-1 中,单片机系统是整个系统的核心,通过硬件和内部软件的配合控制 整个系统的运行。 供电单元的作用是将汽车内部配电模块提供的电压转换成记录仪可以正常工作 的电压,这其中为了避免汽车内部电机的干扰,需要进行屏蔽。 信号采集模块是指将汽车内部霍尔传感器传过来的一对分差信号经过适当的变 换变成一个脉冲信号提供给单片机系统。这其中需要用光耦模块进行隔离,来避免 强脉冲信号对电路板的干扰。 信息储存是指单片机系统将采集到的信息经过适当的运算处理之后存储到智能 ic 卡中,ic 卡中的信息可以长时间保存,可以用读卡设备读出其中的信息然后进行 分析。 设计这样的
19、单片机系统当然还要用到可编程逻辑器件,它可以灵活方便地产生 译码、控制等信号。 键盘输入和液晶显示是常用的单片机输入/输出模块,为用户提供友好方便的人 机操作界面,用户可以输入特定的信息,也可以看到实时的速度、里程及时间等信 息,可以做出实时判断。 2.2.2 面板介绍和使用方法面板介绍和使用方法 本论文中介绍的汽车行驶状态记录仪最终会作为车载设备在汽车上,它需要具 有有好的用户操作界面,和一般的仪器仪表开发一样,需要有用户操作面板,可设 计类似于图 2-2 所示的操作界面。 图 2-2 汽车行驶状态记录仪面板图 主屏为系统的显示界面,由液晶模块实现,它的功能是显示实时速度、里程等 信息;键盘
20、主要用于输入车号、站号等信息;面板的右下方是 ic 卡插座,用户(此 处实际就是司机)由此插入自己的智能 ic 卡,ic 卡记录此次行驶的信息。面板中间 区域是两个指示灯,左边为电源指示灯,正常情况下接通电源后亮绿灯,右边为超 速报警灯,超速时亮红灯。 3 汽车行驶状态记录仪硬件设计与实现 3.1 记录仪的供电记录仪的供电 电源系统是任何汽车电子设计中最重要的子系统之一,电源设计非常重要,如 果电源设计比较糟糕的话,其它单元设计无论多么完美,系统也不能正常发挥作用。 整体功耗、电磁干扰等都是必须考虑的因素。 目前汽车内部产生的供电是+12v,记录仪本身需要的是+5v供电,所以系统需 要供电模块
21、来实现+12v+5v的电源变换,其工作原理如图3-1(a) 、3-1(b)所示。 图 3-1(a) 汽车行驶状态记录仪电源部分原理图 图 3-1(b) 汽车行驶状态记录仪电源部分原理图 由于汽车行驶状态记录仪电源部分原理图画出来比较大,故分成 3-1(a) 、3- 1(b)显示。 汽车内部会提供一条屏蔽线 pb,它的作用是屏蔽汽车内部产生的干扰,它被引 入到光耦模块,光耦模块起到光耦隔离作用,屏蔽线和光耦电路一起可以使得采集 到的信号波形尽可能干净,信号采集电路受汽车内部电动机产生的干扰尽可能小。 3.2 信息采集模块信息采集模块 此部分的硬件设计较为简单,因为需要采集的信号很少,而且汽车内部
22、有自己 的传感器,实际上也就是有现成的信号提供给记录仪。汽车轮子每转一周,会通过 车子内部的霍尔传感器传送一对差分信号,此差分信号经过信号采集模块变成满足 要求的计数脉冲,此脉冲信号经过一定的处理即可用来得到速度、里程等信息。 信号采集模块的电路原理图如图 3-2 所示 图 3-2 汽车行驶状态记录仪信号采集电路原理图 图 3-2 中 u8 是东芝公司的单光耦芯片 tlp521-2,实际上它的内部就是两组光敏 三极管,如图 3-3 所示。 光敏三极管也是利用硅 pn 结的光电效应制成的。光敏三极管使用时,其基 极通常开路,基极集电极产生的光敏感生电流反馈入基极,并被光敏三极管 自己所放大,因此
23、光敏三极管的灵敏度比光敏二极管大得多,通常要大 100 多 倍。光敏三极管的最大工作频率只有几百 khz。 光耦模块主要就是通过电光电的变换将电信号隔离开来的,它可以避免一 侧对另一侧产生的干扰。记录仪上的+5v 工作系统是弱电电路,汽车内部提供 的脉冲信号在送入记录仪之前必须经过光耦隔离的处理。 图 3-2 中 hp 和 fp 是汽车轮子转一周内部提供的差分信号,它在通过系统 的信号采集模块后产生状态记录仪系统可以使用的信号 sig;图 3-2 中 pb 为屏 蔽线,由它构成了屏蔽网络,有效地屏蔽了汽车电动机等对硬件电路的干扰。 通过屏蔽和光耦隔离,得到波形干净的 sig 信号,信号采集功能
24、完成。采 集到的 sig 信号需要送到可编程逻辑器件中进一步处理,由单片机系统对处理 后的结果进行相应的运算,可以得到速度、里程等状态信息。 图 3-3 单光耦芯片(tlp521 内部工作框图) 3.3 单片机模块单片机模块 对于整个汽车行驶状态记录仪而言,起到控制和枢纽作用的单片机模块无 疑是其中最重要的部分。其工作原理图如图 3-4 所示。 图 3-4 汽车行驶状态记录仪单片机模块原理图 图 3-4 中 u4 为 12m 晶振,它为单片机提供稳定的 12mhz 工作时钟。 系统选用 atmel 公司的带有 8kb flash 的 8 位微控制器 at89s8252 作为单 片机芯片,它完全
25、与 mcs-51 系列单片机兼容(从指令集到引脚) 。 和 51 单片机相比 at89s8252 还具有一些增强型的功能。因为记录仪最终 需要将记录的车辆行驶状态信息存入 ic 卡,本系统选用的 ic 卡是通过 spi 口 存储的,所以本文选用带有 spi 接口功能的单片机芯片 at89s8252。 由于单片机 at89s8252 芯片各管脚的功能与作用和 80c51 芯片的基本一样, 在文中将不做详细介绍。 3.4 可编程逻辑器件可编程逻辑器件 可编程逻辑器件(programmable logic device,pld)技术是目前电子设计领 域中最具活力和发展前途的一项技术,在 pld 上,
26、工程师可以通过传统的原理 图输入法,或是硬件描述语言自由地设计一个数字系统。通过软件仿真,可以 事先验证设计的正确性。在印刷电路板 pcb 完成以后,还可以利用可编程逻辑 器件的在线修改能力,随时修改设计而不必改动硬件电路。使用可编程逻辑器 件来开发数字电路,可以大大缩短设计时间,减少 pcb 面积,提高系统的可靠 性。可编程芯片和单片机的配合使用已成为单片机系统的最常用开发模式。 本文中可编程逻辑器件主要完成的功能包括:脉冲信号的计数、定时器和 产生芯片选择信号。实现的功能比较简单,使用端口不多,选用 altera 公司的 epm7032s44 可以达到要求。epm7032s44 属于 ma
27、x7000s 系列,此系列是 altera 公司的主流芯片,采用 5v/3.3v 工艺,价格便宜。 可编程逻辑器件设计的常用方法有图形输入法和文本输入法。图形输入法 类似于数字电路设计,只是它是通过器件模型而不是具体器件搭建的;文本输 入法则是通过编程的方法从已知输入得到需要的输出。相比之下文本输入法更 为灵活,在实现复杂电路的设计时常采用它。本文中可编程逻辑器件实现的功 能采用了图形输入和文本输入结合的方式,比较简单。 本文中选用了 altera 公司的开发软件 maxplus 来设计的 gdf 文件如图 3-5 所示。 由图 3-5 可知,液晶显示模块和日历时钟芯片的片选信号由读、写信号及
28、 最高位地址线 a15 经过简单的逻辑电路搭建而成。图中另外一部分电路由两个 子模块 timer 和 sigcounter 构成,它们的作用是对信号采集到的信号 sig 进行计 数,结果通过系统的地址/数据复用总线送给单片机处理。 图 3-5 汽车行驶状态记录仪可编程逻辑器件顶层图形输入设计(gdf 文件) timer 模块用 vhdl 语言实现,代码如下: subdesign timer ( clk: input ; suocun : output; ) variable f3.0 : dff; suocun : dff; begin f.clk=clk; suocun.clk=clk; f
29、.d=(!suocun) suocun.d=f3 end; timer 模块的输入信号为日历时钟芯片产生的方波信号,输出为计数器模块 sigcounter 需要的锁存信号“suocun”。 计数器模块 sigcounter 也采用 vhdl 编程实现,代码如下: subdesign sigcounter ( sig, lrst,suocun,oe: input ; ad7.0: output; ) variable cnt07.0:dff; cnt17.0:dff; reg4.0:dff; tnode7.0 : tri_state_node; begin reg0.clk=suocun; re
30、g0.d=!reg0; reg1.clk=!oe; reg1.d=!reg0; reg2.clk=!suocun; reg2.d=reg0; reg3.clk=!oe; reg3.d=reg0; reg4.clk=!suocun; reg4.d=!reg0; cnt0.clk=sig cnt1.clk=sig cnt0.clrn=lrst cnt1.clrn=lrst cnt0.d=cnt0+1; cnt1.d=cnt1+1; tnode7=tri(cnt07.q,oe tnode7=tri(cnt17.q,oe tnode6=tri(cnt06.q,oe tnode6=tri(cnt16.q
31、,oe tnode5=tri(cnt05.q,oe tnode5=tri(cnt15.q,oe tnode4=tri(cnt04.q,oe tnode4=tri(cnt14.q,oe tnode3=tri(cnt03.q,oe tnode3=tri(cnt13.q,oe tnode2=tri(cnt02.q,oe tnode2=tri(cnt12.q,oe tnode1=tri(cnt01.q,oe tnode1=tri(cnt11.q,oe tnode0=tri(cnt00.q,oe tnode0=tri(cnt10.q,oe ad=tnode; end; 至此本设计中可编程逻辑电路的设计已
32、经完成。在调试过程中若发现需要 更改设计也很方便,只需重新编写程序、设计.gdf 文件重新下载即可,不用对 电路板做修改,这也是采用可编程逻辑器件的最大优点。 3.5 日历时钟芯片日历时钟芯片 汽车行驶状态记录仪需要对状态发生时所对应的时间信息做相应的记录, 以便后来的分析使用,所以需要获取详细的时间信息。 在 2.1 节中系统的技术指标中提到数据记录容量要求在 0240 小时,数据 存储时间在掉电情况下至少保存 10 年以上。根据这些要求,系统中选用了日历 时钟芯片来提供详细的日期和时、分、秒的时间信息。 本文中选用达拉斯半导体公司的芯片 ds12c887.。ds12c887 是一款实时 时
33、钟芯片,内部有锂供电的石英晶振,它可以在无外部供电的情况下将数据保 存 10 年以上。它内部通过计数可以实现时间的记录,时间信息可以详细到时、 分、秒、年、月、日,以及星期,时间显示模块可以选择带有“am”和“pm”指 示的 12 小时模式及正常的 24 小时模式,芯片可以提供闹钟的设置,在芯片内 部还有 15 个字节的时钟和控制寄存器,以及 113 个字节的通用 ram 空间。芯 片 ds12c887 的内部工作原理如图 3-6 所示。 用户 ram 113 字节 时钟 产生 86464 周期振荡/方波选择 电源 切换 和写 保护 方波输出 寄存器 a、b、c 和 d 时钟日历和报警 ram
34、 世纪字节 时钟 日历 更新 总 线 接 口bcd/ 二进 制增 加 cs vcc vbat ds r/w as mo ad0 ad7 vcc pok vcc s q w i r q reset 双 缓 冲 图 3-6 日历时钟芯片 ds12c887 的内部工作原理框图 ds12c887 的内存空间为 128 个字节,其中 11 个字节专门用于存储实时时 间信息,4 个字节专门用于控制和存放状态信息,剩下的 113 个字节为用户可 以使用的普通 ram 空间。 14 字节 秒闹钟 分闹钟 分钟 星期 时闹钟 时钟 秒 日 月 年 寄存器 a 寄存器 b 寄存器 d 寄存器 c 世纪 000 0
35、d 0 1 2 33 5 4 6 13 14 7 8 49 50 51 127 9 10 11 12 13 50 0e 31 32 33 7f 二 进 制 或 b c d 输 入 图 3-7 日历时钟芯片 ds12c887 内部内存空间映射示意图 3.6 液晶显示模块液晶显示模块 lcd 本文中液晶显示模块 lcd(liquid crystal display)选用内含 ks0108b/hd61202 控制器的图形液晶显示模块 gxm12864,它是一种采用低功 耗 cmos 技术实现的点阵图形 lcd 模块,有 8 位微处理器接口,通过内部的 12864 位映射 ddram(display
36、data ram)实现 128 点64 点大小的平板显示。 该液晶显示模块使用 ks0107b 为行驱动器,同时使用 ks0108b 作为列驱动器。 ks0107b 不与 mpu 发生联系,只要提供电源就能产生行驱动信号和各种同步 信号,比较简单。 对于用户来说,lcd 模块的使用关键在于驱动芯片的使用,驱动芯片和 lcd 显示屏的接口电路已经做好在 gxm12864 的内部,用户使用时只需阅读驱 动芯片的相关资料,设计出驱动芯片和微处理器之间的接口电路,编写具体的 驱动程序。 前面提到行驱动芯片 ks0107b 不与 mpu 发生联系,只要提供电源就能产 生行驱动信号和各种同步信号,比较简单
37、,在此就不做介绍了。 列驱动芯片 ks0108b 与 ks0107b 配合对液晶屏进行行列驱动,可直接与 8 位微处理器相连。微处理器对液晶显示模块的操作是通过 ks0108b 支持的指 令系统实现的,掌握这些命令是编写液晶模块驱动程序的关键。 3.7 信息的存储信息的存储 汽车行驶状态记录仪最终的任务是要将记录下的信息存储到智能 ic 卡中, 以便以后对信息进行分析。ic 卡采用符合国际标准的智能卡,本系统选用的是 atmel 公司的 at45d041a。 at45d041a 是 4m 位的串行数据 flash,采用+5v 供电,它支持在系统的 页编程,删除操作可选择页或块删除,支持 spi
38、 接口的读写操作,主要用于数 字语音、图像和数据的存储。 at45d041a 具有 4m 位的内存空间,此空间由 2048 页构成,每页 264b, 除此外,它还有两个 sram 数据缓冲,每个缓冲区的大小也是 264b,缓冲区 的作用使得主内存在重新编程的时候允许接受新数据。at45d041a 的内部结构 如图 3-8 所示。 i/o 接口 flash 内存阵列 页(264 字节) buffer1(264 字节)buffer2(264 字节) siso sck cs reset vcc gnd rdy/bus y 图 3-8 ic 卡芯片 at45d041a 的内部结构框图 与普通 flas
39、h 并行的数据接入相比,at45d041a 使用 spi 接口串行接入数 据,采用简单的串行数据接口可以增加系统可靠性,减小器件的封装,减少引 脚数目。at45d041a 和 cpu 接口的引脚主要有 7 个:cs 为低电平有效的片选 脚;sck 为串行时钟脚;si、so 分别为串行输入、输出脚;wp 为低电平有效 的硬件页写操作保护脚,低电平时主内存空间的前 256 页不允许进行编程操作, 在此可接 vcc;reset 是低电平有效的芯片复位脚;rdy/busy 是状态指示 脚,表示当前卡的状态是准备好(高电平)或是忙(低电平)。这些引脚中 sck、si 和 so 即为芯片的串行接口。 4
40、汽车行驶状态记录仪软件设计与实现 下面将介绍如何在前面实现的硬件平台上实现软件设计过程。 4.1 软件流程软件流程 本文中设计的软件流程如图 4-1 所示。 开始 初始化 汽车启动后主屏显示提示信息 输入初始相关信息并存入 ic 卡 汽车第一次开动? while 定时显示车速等信息 超速? 到站? 汽车到站后主屏显示提示信息 输入到站相关信息并存入 ic 卡 no yes 超速报警 yes no no 图 4-1 汽车行驶状态记录仪软件流程图 从图 4-1 中可以看出,软件的流程是和汽车行驶状态记录仪工作时的工序 相对应的。在启动后,液晶显示屏会提示输入站号、车号等信息,用户可以通 过键盘输入
41、,汽车开动以后,显示屏会显示汽车实时的速度和所行驶的里程信 息,在到站以后,用户按先功能键“fun”则可以输入到站的站号,之后记录下 的行驶状态信息被存入到 ic 卡中。在行驶过程中还要判断汽车是否超速,超速 要给出报警等提示。可编程逻辑器件对车轮转一周产生的信号进行计数,单片 机利用定时中断定期对计数值进行统计计算,从而得到速度等信息,程序中不 断将速度值和门限值做比较,如果超过就打开超速报警红灯。 除了定时中断以外,本系统还使用了一个外部中断 int0,汽车到站时,用户 按下“fun”键就会触发此中断。程序检测到此中断后会执行到站后的相应操作。 主程序在检测到车子开动以后进入一个无限循环,
42、循环和中断的配合实现 了系统的整个功能。 4.2 中断子程序中断子程序 本例中使用了定时器 0 中断(工作在计时器方式)和外部中断 0。前者用于 定时显示速度、里程等信息;后者用于到站操作。主程序需要根据要求对中断 有关的寄存器进行设置。 tmod=0 x06; th0=5; tl0=5; ip=0 x01; ea=1; et0=1; ex0=1; tr0=1; 定时中断服务程序如下: void timer0 ( ) interrupt 1 using 1 ea=0; timecount+; circle=p0; p14=0; ttcy+ =circle; p31=0; p17=1; ea=1
43、; 程序中最主要的是三个变量 timecount、circle 和 ttcy。其中 circle 值由 cpld 计算获得,它表示的是转速信息;ttcy 值对 circle 进行累加,在主程序中 由它可得到行驶里程信息;timecount 变量也是一个全局变量,在定时中断中 不断累加,它决定了主程序何时刷新速度和里程的更新显示。 外部中断采用的是中断查询的方式,也就是中断到来的时候只做置位操作 (给设定的中断标志位置 1) ,主程序中不断轮询此标志位,发现被置位后进行 相应的处理,这样可简化中断服务子程序。 外部中断服务程序如下: void int0 ( ) interrupt 0 using
44、 2 ea=0; int0flag=1; ea=1; 上述程序完成对 int0flag 的置位操作。 在主程序中需要轮询 int0flag 变量。 void main (void) while (1) if ( int0flag) 4.3 获取状态信息获取状态信息 硬件电路中,车轮每转一周都会提供一个脉冲信号 sig,然后可编程逻辑 器件 epm7032 会算出转速信息通过 p0 口送给单片机。 单片机获取状态信息的程序如下: if (timecount=120) timecount=0; hi=36*circle/35; mid=hi/100; disp1(mid); lo=(himid*1
45、00)/10; disp2(lo); disp2(himid*100lo*10); mid=(36*circle35*hi)*10/35; disp3(mid); j=ttcy/700; mid=j/100; disp4(mid); lo=(jmid*100)/10; disp5(lo); disp5(jmid*100lo*10); mid=(ttcy700*j)*10/700; disp6(mid); 4.4 时间信息的设置和获取时间信息的设置和获取 主程序流程图中,初始化部分要包括时间信息的初始化。首先屏幕会显示 提示信息,比如“请输入年”,然后用户通过键盘输入正确信息,比如“2008”,
46、 此时程序记录此信息并显示在液晶屏上,这样依次根据屏幕提示输入所有的时 间信息,包括年、月、日、时、分、秒。具体程序如下: void presettime ( ) unsigned char year,month,day,hour,min,sec; timeregb=0 x8e; timerega=0 x2f; dispnian( ); year=getkey( ); timeyear=year; dispyue( ); month=getkey( ) timemonth=month; dispri( ); day=getkey( ); timeday=day; dispshi; hour=g
47、etkey( ); timehour=hour; dispfen; min=getkey( ); timemin=min; dispmiao; sec=getkey( ); timesec=sec; timeregb=0 x0e; 设置初始时间主要是对实时时钟芯片 ds12c887 的操作,程序通过获取键 盘输入的值,写入芯片内部的 6 种时间寄存器。芯片内部还有 4 个控制寄存器, 在此设计中只用了 a、b 寄存器。此外,程序中还用到了键盘扫描和液晶显示 相关的函数。 4.5 键盘输入键盘输入 记录仪的输入通过键盘来实现,使用的键盘扫描函数 keyscan()如下: unsigned cha
48、r keyscan(void) ( unsigned char sccode,recode; p1=0 x78; if (p1&0 x78)!=0 x78) d110ms( ); if (p1&0 x78)!=0 x78) sccode=0 xfe; while (sccode&0 x08)!=0) p1=sccode; if (p1&0 x78)!=0 x78) recode =(p1&0 x78)0 x78; return (sccode)(recode); else sccode=(sccode1)0 x01; return (0); ) 键盘读取函数 getkey()如下: unsig
49、ned char getkey(void) unsigned char num1,num2,num; num1=0; num2=0; num=0; while (key!=0 x44) num1=keyscan( ); switch(num1) case 0 x09: num1=0; num2=num2*10; num=num+1; if (num=2) disp2(num1); else disp1(num1); break; case 0 x11: num1=1; num2=num1*10+num1; num=num+1; if (num=2) disp2(num1); else disp
50、1(num1); break; case 0 x21: case 0 x41: case 0 x0a: case 0 x12: case 0 x22: case 0 x42: case 0 x0c: case 0 x14: case 0 x24: case 0 x44: break; return(num2); 在键盘读取函数 getkey()中除了读取了键值以外还调用了数字显示函数,将 数字显示了出来。由于键盘读取函数 getkey()程序较长,文中只写出了程序 的框架,但不影响调试等操作。 4.6 液晶显示液晶显示 液晶显示包括屏幕提示、键盘输入值的显示及行驶中状态信息的显示。要 编写正确
51、的液晶显示程序,就必须熟悉所用液晶模块的指令集。本设计中使用 的液晶模块是 gxm12864,它所用的控制驱动器是 2 片 ks0108b 和 1 片 ks0107b,其中和单片机直接进行连接的是 ks0108b,ks0108b 共有 7 种指令。 1、显示开关指令 r/wd/idb7 db6 db5 db4 db3 db2 db1 db0 000 0 1 1 1 1 1 0/1 当 db0=1 时,lcd 显示 ram 中的内容;db0=0 时,关闭显示。 2、显示起始行(row)设置指令 r/wd/idb7 db6 db5 db4 db3 db2 db1 db0 001 1 显示起始行(0
52、63) 该指令设置了对应液晶屏最上一行的显示 ram 的行号,有规律地改变显示 起始行,使 lcd 实现显示滚动的效果。 3、页(page)设置指令 r/wd/idb7 db6 db5 db4 db3 db2 db1 db0 001 0 1 1 1 页号(07) 显示 ram 共 64 行,分 8 页,每页 8 行。 4、列地址(y address)设置指令 r/wd/idb7 db6 db5 db4 db3 db2 db1 db0 000 1 显示列地址(063) 设置了页地址和行地址,就唯一确定了显示 ram 中的一个单元,这样 mpu 就可以用读、写指令读出该单元中的内容或向该单元写进一
53、个字节数据。 5、读状态指令 r/wd/idb7 db6 db5 db4 db3 db2 db1 db0 10busy 0 on/off reset 0 0 0 0 该指令用来查询液晶显示模块内部控制器的状态,各参量含义为: busy:1内部在工作,0正常状态 on/off:1显示关闭,0显示打开 reset:1复位状态,0正常状态 在 busy 和 reset 状态中,除读状态指令外,其它指令不对液晶显示模 块产生作用。在对液晶显示模块操作之前要查询 busy 状态,以确定是否可以 对液晶显示模块进行操作。 6、写数据指令 r/wd/idb7 db6 db5 db4 db3 db2 db1
54、db0 01 写数据 7、读数据指令 r/wd/idb7 db6 db5 db4 db3 db2 db1 db0 11 读显示数据 4.7 ic 卡操作卡操作 前面介绍了 ic 卡中有主内存和两块缓冲区,ic 芯片 at45d041 提供专门的 读写指令对它们进行操作。图 4-2 和图 4-3 是写操作和读操作的流程图。 i/o 接口 flash 内存阵列 页(264 字节) buffer1(264 字节)buffer2(264 字节) buffer1 到主内存 页程序 buffer1 写 主内存页程序 通过 buffer1 主内存页程序通 过 buffer2 buffer2 到主内存 页程序
55、 buffer2 写 si 图 4-2 at45d041 写操作流程图 i/o 接口 flash 内存阵列 页(264 字节) buffer1(264 字节)buffer2(264 字节) 主内存页到 buffer1 buffer1 读 主内存页到 buffer2 buffer2 读 so 主内存 页读 图 4-3 at45d041 读操作流程图 5 分析与结论 本文详细介绍了汽车行驶状态记录仪的整个设计过程。本文中设计的汽车 行驶信息记录仪体积小巧,携带安装均很方便,应用广泛,可安装使用在各种 12v 或 24v 直流电源的车辆上。记录仪的数据记录和分析分离,驾驶人员无法 对记录下来的数据进
56、行任何修改,只有管理部门可以对数据进行分析。 汽车行驶状态记录仪的操作使用过程中的注意事项: 系统数据采集模块的入口处应该使用屏蔽线进行屏蔽。 实时时钟芯片 ds12c887 是内部自带电池的芯片,使用前最好测试其电池 电量,电量不足会出现异常的读数和操作。 在程序控制液晶显示模块 gxm1286 的显示时要注意左右的选择,不同液晶 模块左右区选择可能不同。 lcd 在清屏后再显示之前先做一次初始化操作,这样可避免显示时出现显 示屏的闪动问题。 下图 5-1 为汽车行驶状态记录仪的软件部分调试结果: 图 5-1 汽车行驶状态记录仪的软件部分调试结果 6 后续研究与发展前景 汽车行驶状态记录仪的设计是一项复杂的系统工程,涉及到汽车行业、通 信、计算机、自动化、电子信息等诸多领域,当然整个系统的功能以及具体实 现上还需要进一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度短信平台数据统计分析服务合同范本
- 2025年度阳台装修封包与景观照明系统安装合同
- 化学-黑龙江省大庆市实验中学2024-2025学年高一上学期阶段考试
- 软件开发项目管理计划
- 秘书工作任务安排计划
- 韵律之声学校声乐社团训练计划
- 从规划到执行的工作计划流程
- 持续改进班级工作方法计划
- 从消费者行为看品牌优化计划
- 组织班级志愿者活动计划
- 精神科常见药物中毒急救与护理课件
- 新生儿的护理 新生儿科课件
- 麦当劳市场调研
- DB32/T 2283-2024 公路工程水泥搅拌桩成桩质量检测规程
- 费曼学习法,世界公认最好的学习方法
- 《电机与电气控制(第三版)》 课件全套 课题1-6 直流电机的应用- 常用机床电气控制线路的安装与调试
- 视频监控维保项目投标方案(技术标)
- 2024标准版安全生产责任制培训记录
- 中英旅游文本用词的共同特点及其翻译
- Meta分析的步骤与实例分析
- 城市区域环境噪声监测实验报告
评论
0/150
提交评论