机电一体化毕业设计(论文)-基于单片机的出租车计价系统设计.doc_第1页
机电一体化毕业设计(论文)-基于单片机的出租车计价系统设计.doc_第2页
机电一体化毕业设计(论文)-基于单片机的出租车计价系统设计.doc_第3页
机电一体化毕业设计(论文)-基于单片机的出租车计价系统设计.doc_第4页
机电一体化毕业设计(论文)-基于单片机的出租车计价系统设计.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

鄂东职院机电工程系2008届毕业设计(论文)题 目:出 租 车 计 价 系 统学生姓名: 指导教师: 专 业: 机电一体化 班 级: 0516班 完成时间: 2007年11月28日 鄂东职业技术学院毕业设计(论文)任务书学生姓名王鑫专业班级机电0516学号56课题名称出租车计价系统指导教师及职称杨 宝 平(以下内容指导教师可根据实际情况进行调整)一、课题介绍1、目的 使学生对所学知识系统化的运用2、任务 设计系统的硬件结构及软件框图3、拟重点解决的问题 (1)计价器的系统硬件框图(2)系统采用8052作为中央cpu单元,主要分为语音模块、 显示模块、时钟模块、 打印模块和ic卡管理模块 (3)分别介绍系统的各项功能特性。二、主要内容1、主要技术指标 计价器;单片机;微型打印机;ic卡2、设计方案、设计方法、设计手段采用单片机控制。利用单片机丰富的io端口,及其控制的灵活性,实现本的里程计价功能和价格调节、时钟显示功能、打印功能等。由于验证条件有限,我们采用电动机附带霍尔元件作为车轮,电机为3v 的直流电机,每分的转速可以达到几千转,我们设定电机每转一圈为车轮转动1 米,当电机转动达到1000圈时,就表示已经到达了一公里,系统自动将当前的单价加到总金额上。设定白天的单价是2.5 元,起步价为5 元(包含3 公里),分别行驶不同里程测得数据进行验证。3、主要工作程序1. 对现有出租车计价器进行了深入细致的分析。出租车计价器虽然体积小,但它却要具备多项功能,我们通过对硬件电路及软件程序的分析,充分了解了现有计价器的各项功能的实现原理.2. 由于计价器的工作环境恶劣,因此功能的实现必须可靠。但在实际运行中,它难免会出现问题。通过对计价器的分析,我们解决了现有计价器存在的问题,如乱报单价问题。3. 在出租车计价器原有的软件基础上,为满足客户要求做了多种改动方案.出租车计价在不同的地方有不同的方式,例如:起租里程不同;加价距离不同:等候时间不同等等。4. 完成了微型打印机的硬件及软件设计工作.打印机的种类多,在综合考虑其性价比基础之上,选择点阵针式打印机,并绘制了打印机的硬件电路,编写出了打印驱动程序。三、主要仪器设备计价器;单片机;微型打印机;ic卡四、主要资料及参考文献1、张友德,等.单片微型机原理、应用与实验.复旦大学出版社,1996.2、王卓人,等. ic卡的技术与应用.电子工业出版社,1999. 3、刘向东,等. 打印机结构原理与使用维修.机械工业出版社,1998.4、蔡美琴等. mcs-51系列单片机系统及其应用.高等教育出版社2004.5、张鑫、华臻、陈书谦单片机原理及应用电子工业出版社,20056、马忠梅 籍顺心等. 单片机的c语言应用程序设计.北京航空航天大学出版社2005.7、黄智伟. fpga系统设计与实践.电子工业出版社.2005.8、赵不贿等在系统可编程器件与开发技术机械工业出版社2001.五、预期设计(论文)成果(1) 不同情况具有不同的收费标准。(2) 能进行手动修改单价(3) 具有数据的复位功能(4) io 口分配的简易要求(5) 数据输出(6) 能够在掉电的情况下存储单价等数据(7) 能够显示当前的系统时间(8) 打印票据任务下达时间2007 年 05 月 20 日毕业设计(论文)开始与完成时间2007 年 06 月 01 日至2007 年 12 月 10 日预计毕业答辩时间2007 年 12 月 15 日毕 业 设 计 进 度 安 排周次工作内容检 查 方 式第七周 至 第八周开题报告第八周 至 第九周收集资料第九周 至 第十周整理资料第十一周 至 第十二周毕业设计第十二周 至 第十三周毕业答辩专业教研室负责人意见签名:年月日系审核意见(系 公 章)年月日任务下达人签字年月日任务接受人签字年月日备注:1、此表由各专业教研室统一规格后打印。2、本任务书一式三份,由指导教师填写相关栏目,经系审核同意后,系、指导教师和学生各执一份。3、本任务书须与学生的毕业设计(论文)一并按要求装订存档。鄂东职业技术学院教务处诚 信 声 明本人郑重声明:本人所呈交的毕业设计(论文)出租车计价系统是在杨宝平教师的指导下,根据任务书的要求,独立撰写的。本设计(论文)中所引用的其他个人或集体已发表的文字和研究成果,或为获得教育机构的学位或证书所使用过的材料,均已明确注明。凡为本文的撰写所提供的各种形式的帮助,本人在致谢中已经明确表达了谢意。本人完全意识到本声明的法律结果。毕业论文(设计)作者签名:王鑫2007年11月23日目录第一章 出租车的历史 1 1.1出租车计价器发展概况 11.2 出租车行业的管理现状 1第二章 出租车计价器的制作 22.1电路的功能单元设计 22.1.1 里程计算、计价单元的设计 22.1.2 数据显示单元的设计 42.1.3 at24c02 掉电存储单元的设计 62.1.4 按键单元的设计 72.1.5 设计总框图 72.1.6 设计总体电路图 72.2、程序设计 82.2.1 模块介绍 82.2.2 程序流程图 9第三章 现有的出租车计价器总体功能结构分析123.1 出租车计价操作流程概述123.1.1 出租车计价器的工作原理123.2系统硬件结构及功能特性123.2.1 语音模块123.2.2 显示模块133.2.3 时钟模块143.2.4 打印模块143.2.5 ic卡管理模块153.3系统软件结构16第四章 现有出租车计价器的各项改进工作164.1 日历时钟芯片与乱加单价问题的解决164.1.1日历时钟芯片ds12887功能概述174.1.2乱报单价问题的解决204.2 软件的改进及其抗干扰措施214.3软件的抗干扰措施22第五章 打印机驱动电路及其程序的设计225.1 打印机的选择235.2 m-150ii针式打印机原理235.3打印机硬件接口电路的设计245.4 打印数据的保存255.5打印驱动程序的设计25参考文献26结束语27致谢词28附件129附件237题目:出租车计价系统摘要:计价器显示的营运金额是营运里程与价格的函数(等候时间一般折算成一定比例的里程来计算)。出租车计价器通过传感器与行驶车辆连接。出租汽车的实际里程通过传感器的脉冲信号在计价器里折算成一定的计价营运里程。目前市场上出租车计价器功能主要有具有数据的复位功能、白天/晚上转换功能、数据输出功能、计时计价功能等等,但能够进行语音播报数据信息的出租车计价器还是比较少见的,针对这一点我们来设计一款多功能出租车计价器,在原有功能的基础上增加单价输出、单价调整、路程输出、显示当前的系统时间、语音播报数据信息等功能。关键词:计价器;单片机;微型打印机;ic卡出租车计价系统 第1页第一章 出租车的历史1.1出租车计价器发展概况出租车行业在我国是八十年代初兴起的一项新兴行业,随着出租车的产生,计价器也就应运而生。但当时在全国还没有一家企业能够生产,因而那个时期的计价器是由台湾引进。台湾是计价器的主要生产场地,目前全世界的计价器中有90%为台湾所生产。现今我国生产计价器的企业有上百家,主要是集中在北京、上海,沈阳和广州等地.我国第一家生产计价器的是重庆市起重机厂,最早的计价器全部采用机械齿轮构,只能完成简单的计程功能,可以说,早期的计价器就是个里程表。随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。此时它在计程的同时还可完成计价的工作.大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器。它的功能也在不断完善.当单片机出现并应用于计价器后,现代出租车计价器的模型也就基本具备了,它可以完成计程,计价,显示等基本工作。单片机以及外围芯片的不断发展促进了计价器的发展。出租车计价器在最初使用时具备的主要功能是根据行驶里程计价,要求精度高,可靠性好.随着电子技术的发展以及对计价器的不断改进和完善,便产生了诸多的附加功能。例如:(1)led显示功能,数码管的使用让计价器实现多屏显示的功能,可同时显示各项营运数据,使乘客一目了然;(2)永久时钟功能,在非营运状态下,日历时钟芯片的使用使计价器可以显示永久时钟;(3)存储功能,可存储多项营运数据,便于查询。新型数据存储器的应用使得计价器的营运数据在掉电情况下还可以保存10年;(4)语音功能,实现语音报价及语音提示等。可以说计价器的发展史反应了现代科技的发展史。1.2 出租车行业的管理现状在我国,经济尚处于发展阶段,由于人民的生活水平以及道路交通的限制,私家汽车的拥有率在短期内不会有较大提高,因此出租车扮演着重要角色。出租车计价器则是出租车上必不可少的重要仪器,它是负责出租车营运收费的专用智能化仪表.由于出租车数量的快速增长,出租车的行业管理也就产生了一系列问题。在我国的各大城市中,对出租车行业的管理方式归纳起来可以分为两大类:第一类管理模式是由出租车出租车计价系统 第2页司机以向私人老板承包的方式进行的,司机只须每天向老板交纳一定的租赁费用,最终由老板按出租车数量向地方和国家交一定的费用即可。因此这种管理模式相对简单,但存在的问题也较多,主要体现在以下两点:1.税收严重流失2.现有的出租车票据不统一:目前国内出租车普遍使用的发票为客运汽车发票,众所周知,汽车客运发票的面值一般来讲为整数,如5角,1元,10元一张等。这在实际使用中一是会给乘客带来不便。例如,计价器显示计价13.4元,而客运汽车发票面值为5元一张和10元一张,此时司机给乘客的发票或者为15元,或者为10元,与实际计价肯定存在误差,给乘客带来不便;二是给单位造成损失。在有些情况下,司机多给乘客发票,乘客若凭此发票报销,会给单位财政带来损失。第二章 出租车计价器的制作利用单片机丰富的io端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。其原理如图2所示。 图2单片机控制方案2.1电路的功能单元设计2.1.1里程计算、计价单元的设计里程计算是通过安装在车轮上的霍尔传感器a44e检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图2-1-1所示。出租车计价系统 第3页 图2-1-1传感器测距示意图由于a44e 属于开关型的霍尔器件,其工作电压范围比较宽(4.518v),其输出的信号符合ttl 电平标准,可以直接接到单片机的io 端口上,而且其最高检测频率可达到1mhz。 图2-1-2 集成开关型霍耳传感器原理图a44e 集成霍耳开关由稳压器a、霍耳电势发生器(即硅霍耳片)b、差分放大器c、施密特触发器d 和oc 门输出e 五个基本部分组成。在输入端输入电压cc v ,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差h v 输出,该h v 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到oc 门输出。当施加的磁场达到.工作点.(即op b )时,触发器输出高电压(相对于地电位),使三极管导通,此时oc 门输出端输出低电压,通常称这种状态为.开.。当施加的磁场达到.释放点.(即rp b )时,触发器输出低电压,三极管截止,使oc 门输出高电压,这种状态为.关.。这样两次电压变换,使霍耳开关完成了一次开关动作。其集成霍耳开关外形及接线如图2-1-3 所示。出租车计价系统 第4页 图2-1-3 集成霍耳开关外形及接线我们选择了p3.2 口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是1 米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到1000 次时,也就是1 公里,单片机就控制将金额自动的加增加,其计算公式:当前单价 公里数=金额。2.1.2数据显示单元的设计由于设计要求有单价(2 位)、路程(2 位)、总金额(3 位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),采用lcd 液晶段码显示,在距离屏幕1 米之外就无法看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用6 位led数码管的分屏显示,如图2-2-4ad 所示: 图2-1-2-1 a 时钟显示(图中显示为12 点34 分46 秒) 图2-1-2-1 b 总金额和单价显示(图中显示为总金额12.3 元,每公里4.6 元)出租车计价系统 第5页 图2-1-2-1c 路程和单价显示(图中显示为总路程12 公里,当前单价4.6 元)图2-1-2-1 d单价调整显示(图中显示为右起白天单价4 .6 元/晚上7.8 /中途等待1.2 元)数据的分屏的显示是通过按键s1 来实现切换的,如图2-1-5所示。 图2 -2-2 s1 切换显示屏在出租车不走的时候,按下s1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下s1 切换到里程和单价显示屏,供客户查询。显示电路的电路原理图如图2-1-3所示。出租车计价系统 第6页 图2-1-2-3显示器原理图从单片机串口输出的信号先送到左边的移位寄存器(74hc164),由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器74hc164还兼作数码管的驱动,插头1(header1)接电源,插头2(header2)接数据和脉冲输出端。电路中的三个整流管d1d3 的作用是降低数码管的工作电压,增加其使用寿命。2.1.3at24c02 掉电存储单元的设计掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。at24c02 是atmel 公司的2kb 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5v,额定电流为1ma,静态电流10ua(5.5v),芯片内的资料可以在断电的情况下保存40 年以上,而且采用8 脚的dip 封装,使用方便。其电路如图2-1-3-1 所示。 图2-1-3-1 掉电存储电路原理图出租车计价系统 第7页图中r8、r10 是上拉电阻,其作用是减少at24c02 的静态功耗,由于at24c02 的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线scl(移位脉冲)和sda(数据/地址)与单片机传送数据。每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。2.1.4按键单元的设计电路共采用了四个按键,s1、s2、s3、s4,其功能分别是:s1 分屏显示切换按键,s2功能设定按键,s3 ./白天晚上切换按键,s4 ./中途等待开关。2.1.5设计总框图 图2-5 总体设计框图2.1.6设计总体电路图出租车计价系统 第8页 图2-6总体电路图2.2程序设计2.2.1模块介绍该计程计价系统的软件设计分为以下几个模块:(1)主程序模块在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。其程序流程如图所示.当按下s1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。出租车计价系统 第9页(2)定时中断服务程序在定时中断服务程序中,每100ms 产生一次中断,当产生10 次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。其程序流程如图所示.(3)里程计数中断服务程序每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000 次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。其程序流程如图所示.(4)中途等待中断服务程序当在计数状态下霍尔开关没有输出信号,片内的t1 定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。(5)显示子程序服务程序由于是分屏显示数据,所以就要用到4 个显示子程序,分别是:时分秒显示子程序(hms_dis)、金额单价显示子程序(cp_dis)、路程单价显示子程序(dp_dis)、单价调节子程序(pa_dis)。其程序流程如图所示.(6)键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。其程序流程如图所示.2.2.2程序流程图(1)主程序流程图如图2-2-2-1 所示。开始初始化数据出租车计价系统 第10页否s1按下?是是s4按下?否设定晚上单价设定默认 单价(白天)否按下s4?是启动计价器设定中途等待单价图2-2-2-1 主程序流程图否是到一公里?是否否是显示金额及单价s3按下?显示路程和单价s3按下?总路程加1总金额加1是里程中断?停止计价和里程计数是否s4按下?返回时间显示是否传感有信号? ( 2)计价流程图如图2-2-2-2 所示。出租车计价系统 第11页 图2-2-2-2计价流程图( 3)单价时间调整流程图如图2-2-2-3 所示。出租车计价系统 第12页 图2-2-2-3 单价时间调整流程图第三章 现有的出租车计价器总体功能结构分析若要对现有的出租车计价器进行改进和设计,首先必须了解出租车的工作原理,其次要熟悉现有计价器的硬件及软件结构。在本章中,首先阐述了出租车计价器的工作原理和操作过程,其次论述了现有计价器的硬件及软件结构。3.1 出租车计价操作流程概述3.1.1出租车计价器的工作原理出租车计价器是记录出租车行驶里程并将里程折合为金额计算的仪表。它的工作原理可以用以下公式进行描述:假如图示为一出租车车轮,以角速度 转动,在某段营运时间范围内计量的圈数和金额为:1. n= w(t2,-t, )/2ji圈数t,营运起始时间t,:营运终止时间s=n x c3公里后,则按超过的里程加价。3.1.2出租车计价流程出租车计价的操作流程如下:乘客上车空车3.2系统硬件结构及功能特性计价器的系统硬件框图如图1所示。系统需要输入的外部信号有传感器信号和空车灯信号。 传感器与出租车转轴相连,车轮转动一圈即发出一个脉冲信号,用于计算路程。空车灯信号 用于判断出租车是否处于空车状态。系统采用8052作为中央cpu单元,主要分为语音模块、 显示模块、时钟模块、打印模块和ic卡管理模块。以下分别介绍系统的各项功能特性。 3.2.1语音模块考虑到计价器产品的微型化、智能化,语音芯片采用了集成度较高的isdl420芯片,其最大 特点是采用eeprom进行模拟信息直接存取而不必经过a/d和da转出租车计价系统 第13页换。它内部带有话筒放大 器、自动增益控制时钟、扬声器驱动电路等,采用+5v电源供电。语音模块与主系统的接口如图2所示,主系统通过8155扩展芯片的pa口与isdl420芯片相连。 设计过程中,先将固定语音部分(上、下车用语)信息存储到isdl420内部的不同起点地址中 。营运过程中根据上、下车的不同营运状态来实现不同语音功能播放。 语音芯片工作时,系统首先将主程序指针转入放音处理程序,根据发音地址寻找isdl420中 的发音单元,然后将信号送到扬声器发出声音。主cpu完成送音程序后,立刻转入其他子程 序。3.2.2显示模块显示模块用于显示计价器在营运过程中的各种详细营运数据,如时间、单价、总价、等候时 间及行车里程等。采用的元器件为显示接口芯片8279及led数码管,其接口电路如图3所示。出租车计价系统 第14页3.2.3时钟模块本系统采用dsl2887实时时钟芯片。它自身带有地址锁存功能,与主系统8052芯片的接口十 分简单,如图4所示。ad0ad7为双向地址/数据复用总线。as为地址选通输入,其下电后,利用软件对dsl2887进行初始化,即各寄存器写入初始值 。3.2.4打印模块打印出租车专用发票,包括车牌号、上车时间、下车时间、等候时间、营运里程、单价 、金额及日期等。本系统单独设计了智能微打电路: 采用接口插板方式与主机相连,这特点使得出租车计价系统 第15页计价器的票据打印在功能上与主系统一体化, 而在检查、维修时又可单独进行。本系统中所用微打的打印头是epson公司生产的model 15 0型打印头。它是一种机械点阵式4针打印机构,有4个水平安装、且在同一滑架上的电磁 铁打针。该微打采用了单独的单片机系统,考虑到微打自身的性能要求,使用intel公司的8 051芯片。微打与主单片机通过并行接口相连,其接口图如图5所示。当 所需要打印的数据出现在打印机i/o0i/o7上时,stb只要从高电平转到低电平,再从 低电平 转到高电平,就可把数据送入打印机。这时打印机将busy线置为忙(高电平),禁止新数据输 入,当打印机取走数据并处理完毕后,busy线被置为闲(低电平),同时送出回答脉冲ack通 知系统,可以再次输入数据。 3.2.5ic卡管理模块该功能通过ic卡完成。计价器营运当中所需使用的一些计量参数,如:昼夜单价、起租里程 、起租金额等,通过程序设置在ic卡中。同时,利用ic卡存储司机的详细营运数据及进行ic卡 控管设置,实现统一管理、营运数据查询。在本系统中,ic卡座与8155的pc口相连。其具体连接为:pci口接卡座的复位端rst,pc0口 接卡座的时钟脉冲端clk,pc2口接卡座的数据输入输出端i/o,pc3口接卡座的vdd端。ic卡的供电采用了独立电源的方式,并受控于8052。当有卡插入时,便开始向ic卡提供所需 的电源。如果插入的是一张电源与地击穿的坏卡或金属片之类的物体,就会造成供电回路的 短路现象,干扰整个设备的工作。采用ic卡独立供电方式,当出现ic卡电源短路情况时,电 源稳压器因输出过载而形成短路保护,输出低电平,cpu检测到低电平时,对ic卡的供电便 会中断。 出租车计价系统 第16页 3.3系统软件结构该系统软件采用模块化设计,系统程序固化在单片机内部rom中。主程序的程序框图如 图6所示,其中包含了若干子程序和中断服务程序。子程序的功能包括系统初始化、键处理 、显示、语音与数据的传送处理等,中断服务程序包括行驶脉冲的计数与处理,时间的计数 与处理,掉电保护处理、打印机处理等。第四章 现有出租车计价器的各项改进工作在本章中,详细介绍了对上述提出的现有出租车计价器存在的各项问题的解决方案及其实施工作。4. 1 日历时钟芯片与乱加单价问题的解决出租车计价系统 第17页计价器在工作中,对出租车所行驶里程的计价是分时进行的。当时间处于白天时间段时,例如7: ooam- 21: oopm,应按白天单价计价;当时间处于夜间时,如21: pm一一-07: am,此时应按夜间单价计价。根据这项要求,在软件设计中加入了昼夜判断子程序,在计车资前,先执行该子程序,并按照执行结果取单价。在该子程序中判断昼夜时间的主要依据就是日历时钟芯片中的时钟数据。若子程序判断出此时进行了昼夜时间段的更替,则通过语音电路报出相应时间段的单价,并按此单价加价。在计价器工作中,发现它存在有乱报单价问题。也就是说,当此时处于白天时,计价器会报出夜间单价,并按夜间单价计价,若运行一段时间后,又恢复到白天单价。在夜间运行时,也报出白天单价。昼夜判断功能的实现是根据从日历时钟芯片中读取的时钟数据进行的,因此若解决存在的问题,关键要了解日历时钟芯片的特点。4.1.1日历时钟芯片ds12887功能概述。日历时钟芯片选用dalls公司设计生产的ds12887芯片,该芯片具有下述特点:1.管脚与日历时钟芯片mc146818b及ds1287兼容.2.在断电情况下,数据可保存10年不变。3.芯片内部具有时钟电路,可自动记录秒,分钟,小时,星期,日,月,年等数据,数据格式有两种,二进制和bcd码形式。小时数据方式可采用12小时形式或24小时形式记录。4.芯片内部还包含有114字节的nvsram区,14字节专用寄存器和时钟数据寄存器。5.具有总线兼容的中断信号irq, 3个独立的中断源.4.1.1.1寄存器地址映射图日历时钟芯片ds12887包含有128个字节的随机存储寄存器ram,其中前14个字节为日历时钟数据专用的寄存器,后114个字节为一般的通用寄存器,可用来保存数据.前10个字节为时钟,日历以及报警单元,后4个为专用的控制寄存器,其中寄存器c和寄存器d为只读寄存器,寄存器a的第7位是只读位,秒寄存器的高4位为只读位,其余的寄存器均为可读写的寄存器.(1)时钟,日历单元的介绍出租车计价系统 第18页在芯片ds12887内部具有一个自动计时单元电路,它可以自动记录秒,分钟,小时等时钟数据,并将数据保存在相应的单元中,同时芯片内部还有一个100年日历,可自动记录日历数据.通过对寄存器的访问,便可获知时钟和日历数据.这10个寄存器的内容还可以由程序初始化,数据方式既可以是二进制码的形式,也可以是bcd码形式,但这10个字节数据的存储必须采取同种方式.当需要对这些字节初始化时,首先确定数据的存储方式,然后将寄存器b中的数据方式位(dm)置为相应的格式,第三步,将寄存器b中的置位位(set)置为1,接着把数据写入须初始化的单元,在数据写完后,必须将寄存器b中的置位位(set)清0,以便时钟电路能够自动校正时钟和日历数据.下表则说明了以二进制码方式和bcd码方式存储数据的格式。寄存器 存储的数据 数据范围 二进制码表示范围 bcd码表示范围0 秒 0-59 00-3b 00-591 秒定时 0-59 00-3b 00-592 分钟 0-59 00-3b 00-593 分钟定时 0-59 00-3b 00-594 12小时方式 24小时方式 1- 120-23 01-0cam81-8cpm00-17 01- 12am81-92pm 00-235 12小时定时 24小时定时 1- 120-23 01-0cam81-8cpm00-17 01-12am 81-92pm 00-236 星期 1-7 01-07 01-077 日 1-31 01-1f 01-318 月 1-12 01-1c 01-129 年 0-99 00-63 00-99小时寄存器数据计时方式有两种,一种是12小时计时方式,一种是24小时计时方式。当选择12小时方式时,为了区分上午和下午,就用数据的高位来表示.若数据的第8位为1,则代表此时是下午;若第8位为0,则表示此时为上午.时钟电路在每秒钟都会对这10个单元的数据进行校正,使它们都增加1秒,并判断是否到达定时单元所设定的时间.需注意的是在对数据进行校正时,不能访问这些单元,否则会使数据据产生混乱。出租车计价系统 第19页(2).定时单元的介绍在前10个时钟日历单元寄存器中,有3个定时单元,分别为秒定时,分钟定时以及小时定时.这3个定时单元有两种使用方法:第一:当在这3个单元中写入每天指定的时间后,若定时中断使能位为高电平,则在每天的指定时刻,均会发出中断信号.第二:当在这3个单元中写入00- ff之间的任意一个非定时数据时,则会产生如下情形:若在小时定时单元中写入该范围的任意一个数据时,芯片在每小时会发出一次中断请求信号;若在小时定时单元和分钟定时单元写入该范围的数据,则芯片在每分钟发出一次中断信号;若在这3个定时单元中都写入该范围的数据,则芯片在每秒钟发出一次中断信号.4.1.1.2 中断为了使芯片的功能更加完善,ds12887内部设置了3个独立的中断源,包括定时中断,周期中断以及校准中断.定时中断的设置在上文中已经阐述了,它所引起的中断频率可以从每秒钟产生一次至每天产生一次。对于这3个中断,寄存器b及寄存器c都有相应的控制位来分别控制这3个中断的产生。在寄存器b中,有3个中断使能位,当需要使用某个中断产生中断信号时,必须先将相应的中断使能位置1,芯片才能允许相应的中断信号从1rq端输出,若在中断使能位写入0,则禁止相应的中断信号产生.在寄存器c中,有3个中断标志位,与3个中断源是一一对应的.当某个中断发生时,相应的中断标志位被自动置1,须注意的是,这些中断标志位与对应的中断使能位的设置是不相关的,当中断使能位设置为0时,虽然不产生中断信号,但当中断的条件满足时,中断标志就会被置1。所以,中断标志位是一种状态位,用户可通过软件查询这些状态位,当某个中断标志位是1时,表示此中断已经产生了一次.每读取一次寄存器c的内容后,这些标志位都会被清0.当某个中断标志位及中断使能位都为有效时,才会使irq脚产生有效信号(低电平)。在出租车计价器中,日历时钟芯片工作于校准中断方式.(1)校准中断日历时钟芯片ds12887内部具有一个时钟电路,它在每秒钟都会产生一个校准信号来校准寄存器中的日历和时钟数据。在校准周期中,同样会将定时单元中的数据与出租车计价系统 第20页相应的时钟单元数据进行比较,若二者相同,则发出定时到的信号.在内部电路进行时钟校准时,不能对时钟及日期寄存器进行访问,否则会打乱寄存器中的数据.为了避免这种情况的产生,可以采取2种方法:第一种方法是采用校准中断.如果校准中断开放,则在每一个校正周期结束后都会发出中断信号,表明有多于999ms的时间可用于读取有效的时钟及日历数据.在中断响应完毕后,必须读取寄存器c,将中断标志清0.第二种方法是将寄存器a中的校准标志位uip来判断校准周期是否正在进行中.在寄存器a中有一个校准进行标志位uip,它是一个状态标志位,它在每秒针产生一个高电平.当它为1时,表明校准周期马上要进行,此时不能读取时钟及日期数据;当它为0时,表明有244微秒的时间可用来读取数据,因此中断服务程序读取数据时应避免超过244微秒.4.1.2乱报单价问题的解决通过对日历时钟芯片的分析,乱报单价的问题主要是由外界干扰造成了主机读取的时钟数据发生错误.通过总线读周期时序可以看出,在ale信号的下跳沿数据线上传送的是地址数据,在rd信号有效期间,数据线上传送的是时钟数据。若这两组数据在传送中任意一组发生错误,主机就有可能读取错误的数据.例如:小时单元的地址是04h.数据线d0至d7依次为:d7d6d5d4d3d2d1d000000100若由于干扰脉冲的影响使得d5在传送中变为1,则地址就为24h,下一步主机获取的数据实际上是24h单元的内容,在昼夜判断中就会出错.若在传送小时数据时发生干扰,同样会造成上述问题。例如:现在小时数据为13点,则当rd信号有效时,do至d7依次为d7d6d5d4d3d2d1d000010011但由于干扰脉冲的影响。使得d4变为0,则主机读取的小时数据就变为03h,在昼夜判断软件中,只要小时数据小于06h,就进行单价的转换.此时会加错误的单价。根据以上分析的原因,归根结底就在于数据在到达主机时已经发生了改变。解决出租车计价系统 第21页的办法有两种:一种是采用硬件滤波的办法滤掉干扰信号。但这种方法需要在现有的电路上增加硬件设备,造成产品的成本提高,因此不易采用。第二种办法是采用软件滤除的方案。因为昼夜判断的依据是小时,若两次读取的小时数据发生较大的变化,就会出现乱报 单价的问题。因此在昼夜判断子程序中加入一段对读取的小时数据进行判断的功能。将读取的小时数据与前次保留下来的小时数据相比较,若

温馨提示

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

评论

0/150

提交评论