《毕业设计论文基于单片机的出租车计价系统.doc》由会员分享,可在线阅读,更多相关《毕业设计论文基于单片机的出租车计价系统.doc(34页珍藏版)》请在三一办公上搜索。
1、摘 要: 出租车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。 而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编
2、程就可以轻易而举的实现。避免了机械开关带来的不稳定因素。另外在本方案中那个使用了点阵的液晶,可以实现更加友好的使用界面。数据信息一目了然,并且即使是成品也可以方便的修改使用界面,更可根据不同的公司客户使用不同的局面。关键词:出租车计价器 单片机 控制Abstract: Taximeter is both passengers and drivers of the transaction criteria, it is the taxi industry an important symbol, a taxi is the most important tools. It relates to
3、the interests of both transactions. Has a good performance regardless of the meter is a vast number of taxi drivers or passengers are very necessary. Therefore, the car meter is also very much a study of value. The use of analog circuits and digital circuit design of the meter as a whole circuit of
4、a larger scale, using the device, a failure rate is high and difficult to debug, the pattern of switching need to use mechanical switches, mechanical switch will cause a long-time contacts Bad, functions not easy to achieve. SCM used for the design, a relatively powerful, with less hardware and appr
5、opriate software can easily coordinate with each other to achieve the design requirements, flexibility and strong, can be programmed by software to complete more of the additional Function. Pricing model for the switch, software programming and can easily cite the achievement. To avoid a mechanical
6、switch the destabilizing factors. Also in this programme that the use of a dot-matrix LCD, can be more friendly to use interface. Data information at a glance, and even the finished product can also facilitate the use of interface changes, according to different customers using a different situation
7、.Keywords: Taximeter 89 S51 MCU control 引言步入21世纪,出租车已经广泛地出现在我们周围。随着人们生活水平的不断提高,出租车的使用频率也越来越高,出租车行业也以高质量的服务给人们带来了出行的享受。但是由于行业的特殊性,出租车行业总存在着买纠纷,困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器,用更加精良的计价器来为乘客提供更加方便快捷的服务。 30年前,我国出现了出租车,但是由于当时的经济水平,出租车并没有普遍在我们生活中出现。随着改革开放的深入,出租车行业的发展势头已十分突出。如今出租车在我国的交通运输中承担着重要的角色,出租车计
8、价器是出租车上必不可少的重要仪器,它是负责出租车营运收费的专用智能化仪表。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。 我们都知道,只要出租车开动,随着行驶里程的增加,就会看到汽车前面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如5KM)计费数字显示开始从起步价(如5元)增加。当出租车到达某地需要在那里等候时,司机只要按一下“计时”键,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。 采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率
9、高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。1 方案设计1.1功能要求利用单片机的软件编写功能,实现以5.0元为起步价,根据所行驶的距离进行计价,长时间时可等待启用等待计价,区分白天和晚上不同计价,以及采用数码管显示所计的价钱。1.2方案论证方案一:采用数字电路控制。其原理方框图如图21所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能
10、不够稳定,故障率高,难调试,而且电路不够实用。移位寄存器电路金额显示单价显示里程传感器电源电路及保护电路图21 数字电路方案方案二:采用单片机控制。利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能,途中等待等不同功能。通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。2硬件各个模块选型与设计2.1 单片机模块单片机种类很多,可以根据自己的具体要求选用单片机,选择的主要原则有:1. 单片机的基本参数例如速度,程序存储器容量,I/O引脚数量 2. 单片机的增强功能,例如看门
11、狗,双指针,双串口,RTC(实时时钟),EEPROM,扩展RAM,CAN接口,I2C接口,SPI接口,USB接口。 3. Flash和OTP(一次性可编程)相比较,最好是Flash。 4. 封装 IP(双列直插),PLCC(PLCC有对应插座)还是贴片。DIP封装在做实验时可能方便一点。 5. 工作温度范围,工业级还是商业机。如果设计户外产品,必须选用工业级。 6. 功耗,比如设计并口加密狗,信号线取电只能提供几个mA,用PIC就是因为低功耗,后来出了MSP430也不错。 7. 工作电压范围。例如设计电视机遥控器,2节干电池供电,至少应该能在1.8-3.6V电压范围内工作。 8. 供货渠道畅通
12、。能申请样片,小批量购买有现货。最好像标准51,中发里随便找个柜台就能买到。9. 价格低。 10. 有服务商,像周立功公司推Philips,双龙公司推AVR,都提供了很多有用的技术支持,起码烧写器有地方买。 11. 烧录器价格低,如果是ICP(把单片机放在烧录器上编程)能否利用现有的烧录器,如果是表贴封装,买一个转接座也很贵,至少得一二百元。能否ISP(在系统编程,即把芯片先焊到板子上再通过预留的ISP接口编程),一般ISP编程器比较便宜大约一二百元甚至几十元。 12. 仿真器便宜。对于FLASH型单片机,仿真器不是必备的。但是对于OTP(一次性可编程)型单片机,必须购买或者租用仿真器。 13
13、. 单片机汇编语言是自己熟悉的,并且能支持C语言。编程环境要像keil一样好用,并且还是免费的。 14. 网站速度快,资料丰富。包括芯片手册,应用指南,设计方案,范例程序。最好有中文,像Atmel就不错。 15. 保密性能好,查一下专业解密网站上的黑名单,再发个mail咨询一下解密价格。 16. 抗干扰性能好。17. 和其他外设芯片放在一起的综合考虑结合出租车计价器的使用环境核对单片机的要求,根据上述原则,选用Atmel公司生产的89C51单片机作为主控模块的核心芯片。AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasa
14、ble Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图5.2所示 1.主要特性:与MCS-51 兼容 4K字节可编程闪烁存
15、储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM图5.2 AT89C51外部引脚图 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 2.管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P
16、0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
17、在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4
18、T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止A
19、LE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(
20、VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 4.芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该
21、操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 2.2 电源模块由于计价器的工作环境比较差,它要求有抗振动、抗高低温、抗潮湿、抗电磁 图5.3 电源模块干扰等能力,特别是电源方面的干扰,如出租车启动时,发动机打火、电瓶充电等造成输入计价器的+12 V 电源不稳定。因此采用+l2 v电瓶电源经过滤波和电源稳压管理芯片7805后得到+5 V的稳定电压输出,保证整
22、个系统能够正常工作。如图5.3所示。图5.3 电源模块2.3 霍尔传感器模块霍尔器件是一种磁传感器。用它们可以检测磁场及其变化,可以在各种与磁场有关的场合中使用。霍尔传感器以霍尔效应为其工作基础。霍尔器件具有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高(可达1MHz),耐振动,不怕灰尘、油污、水汽及盐雾等污染或腐蚀。霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、位置重复精度高。采用了各种补偿和保护措施的霍尔器件的工作温度范围宽,可达-55150。A44E型霍尔传感器属于霍尔开关器件,输出的是数字量。其工作电压范围比较宽(4.518V)A44E集成霍尔开
23、关有稳压器A,霍尔电势发生器(即硅霍尔片)差分放大其C,施密特触发器D和OC门输出E五个基本部分组成,如图5.3所示,(1)、(2)、(3)代表霍尔开关的三个引出端点,分别是电源输入端、接地端和信号输出端。外部形状如图5.4所示。 图5.4 霍尔传感器内部构成 在输入端输入电压Vcc,经过稳压器稳压或加在霍尔电势发生器两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差输出,该信号经过放大器放大后送至施密特触发整形,使其成为方波输送到OC门中输出。当施加的磁场达到工作点时,触发器输出高电压使三极管导通,此时OC门输出低电压,通常称
24、这种状态为开。当施加磁场未达到工作点时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。P3.3单片机车轮耦合滤波整形小磁铁传感器 图5.6 霍尔传感器工作原理图霍尔传感器在出资车计价器中的电路如下图5.6所示 图5.7霍尔传感器路程检测电路用霍尔传感器集成芯片A44E检测并输出脉冲,其工作原理如图5.5所示,霍尔传感器集成芯片A44E有信号转换、电压放大、整形输出等功能,为增加其抗干扰的能力,在A44E转换、放大、整形后再通过光偶送入P3.3引脚。A44E引脚说明(1) Vcc 外接供电电源输入端(2) GND外接电源地(3) OUT 数字信号输出端2.4 空车牌模块空车牌模
25、块主要是控制是否运行空车牌的计费功能,当有乘客上车时,司机关闭空车牌,此时单片机计价器开始计数,当乘客下车时,司机打开空车牌,计价器停止计费,并且空车牌上有LED灯管,可以提示想乘车的顾客此车上无人,方便乘客乘车空车牌电路如图5.8所示。图5.8 空车牌电路 2.5 时钟模块计价器在出租车空车行驶时需要显示实时时钟,因为他的时钟作为白天/晚上单价自动转换的一个基准,而且计价器的时钟显示能作为司机和乘客提供方便,所以选择一个好的时钟芯片很重要。DS1302时美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,采用SPI三线接口与CPU进行同步通信;始终可提供秒、分、时、日、星期、月和年;
26、通过设置DS1302的控制状态寄存器选择日历,时钟方式经过初始校准后即可工作使用;工作电压宽达2.55.5 V,采用双电源供电(主电源和备用电源),并设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力,在没有主电源的情况下启用备用电源能保存时间信息及数据。如图5.93所示。图5.9 时钟芯片电路图5.9示出DS1302的引脚排列,其各引脚如下:(1) 其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS13
27、02由Vcc1供电。(2)X1和X2是振荡源,外接32.768kHz晶振。(3)RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。(4)I/O为串行数据输入输出端(双向)。(5)SCLK始终
28、是输入端。(6)GND外接电源地2.6数码管数码管时一种半导体发光器件,其基本单元时发光二极管。 数码管按段数分为七段数码管和八段数码管,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。驱动时将所有数码管的8个显示笔划为“a、b、c、d、e、f、g、dp”的同名端连在一起,另外为每个数码管 的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字
29、形码时,所有数码管都接收到相同的字形码,通过单片机对位选通COM端电路的控制来觉得数码管显示的字形。 数码管也74LS164的连接电路图见附录二,其管脚图见1-8所示。 图 1-8 数码管脚图 3电路的系统计3.1 设计总框图总框图的设计包括键盘控制模块,启动/清除开关模块,掉电储存单元模块 ,里程传感器,单片机控制模块部分,显示模块,锁存器和显示驱动电路。输入部分通过89S51控制输出的显示数字。其结构框图如2-1所示。图2-1 结构总框图3.2 里程计算、计价单元的设计里程计算是通过安装在车轮上的霍尔传感器FJ2E-D10NK检测到的信号,送到单片机,经处理计算,送给显示单元的,其原理如图
30、2-2所示。图2-2传感器测距示意图由于FJ2E-D10NK属于开关型的霍尔传感器件,其工作电压范围比较宽(4.5V18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I/O端口上,而且其最高检测频率可达到1MHZ。我们选择了P3.2口作为信号的输入端,内部采用外部中断0(这样可以减少程序设计的麻烦),车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当技术达到1000次时,也就是1公里,单片机就控制将金额自动的增加,其计算公式:当前单价公里数=金额。3.3 数据显示单元的设计用单片机驱动LED数码管按显示方式分,有静态显示和动态(扫描)显示 ,由于设计要求有单价(
31、2位),路程(2位),总金额(3位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),而且在白天其对比度也不能够满足要求,因此我们采用了6位LED数码管道分屏显示,如图2-3(A、B、C、D)所示。120046图2-3(A)时钟显示 (显示为12点00分46秒)12046图2-3(B)总金额和单价显示(显示为总金额12.0元,每公里4.6元)1246图2-3(C)路程和单价显示(图中显示总路程12公里,当前单价4.6元)12784.6图2-3(D)单价调整显示(图中显示为右起白天单价4.6元、晚上7.8/中途等待1.2元)数据的分屏的显示是通过按键S1实现切换的。切换显示如图2-4所示
32、。图2-4 切换显示屏在出租车不走的时候,按下S1,可以实现数据的分屏显示;车载行走的时候只有总金额和单价显示屏在显示,当到达目的的的时候,客户要求查看总的里程的时候,就可以按下S1切换到里程和单价显示屏,供客户查询。显示器原理图如2-5所示。图2-5 显示器原理图从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器74C164还兼作数码管的驱动,插头1(header1)接电源,插头2(header 2)接数据和脉冲输出端。电路中的三个整流管D1D3的作用是降低数码管的工作电压,增加其使用寿命。3.4 AT24CO2掉电存
33、储单元的设计 掉电存储单元的作用是在电源断开的时候,储存当前设定的单价信息。AT24C02是ATMEL公司的2 KB字节的电可擦除储存芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。掉电储存电路如图2-6所示。图2-6 掉电储存电路图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据地址)与单片机传送数据。每当设定一次单价,系
34、统就自动调用储存程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读储存器程序,将储存器的单价等信息,读到缓存单元内,供主程序使用。3.5 按键单元的设计电路共采用了五个按键,S1、S2、S3、S4、S5,其功能分别是:S1分屏显示切换按键,S2功能设定按键,S3:+/白天晚上切换按键,S4:/中途等待开关,S5:上电复位。S1、S2、S3、S4按键电路图如图2-7所示,S5上电复位按键电路图2-8所示。图 2-7 按键电路图图2-8 上电复位按键电路图3.6 设计总体电路图 整个电路以89S51为核心,用来控制的驱动的各个分支电路。当霍尔传感器FJ2E-D10NK检测到的信号,送到
35、单片机,从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,送给显示单元的,用单片机驱动LED数码管显示,按键可以实现数据的分屏显示和计价等功能,以达到显示不同情况下数值的目的。当电源断开的时候,AT24C02储存当前设定的单价信息,R8、R10是上拉电阻是减少AT24C02的静态功耗。只用两根线SCL(移位脉冲)和SDA(数据地址)与单片机传送数据。电路共采用了 S1、S2、S3、S4、S5五个按键,来实现人为改动计价器的功能。4 程序设计4.1 主程序模块在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及
36、开中断、循环等待等工作。灵位,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。当按下S1时,就启动计价,则根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计几个,并将结果存于价格寄存器中,然后将市级和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。4.2
37、定时中断服务程序在定时中断服务程序中,每100ms产生一次中断,当产生10次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。4.3 里程计数中断服务程序每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。4.4 中途等待中断服务程序当在计数状态下霍尔开关没有输出信号,片内的T1定时器便被启动,每当计时到达10分钟,就对当前金额加上中途等待的单价,以后每10分钟都自动加上中途等待的单价。当
38、中途等待介绍的时候,也就自动切换到正常的计价。4.5 显示子程序服务程序由于时分屏显示数据,所以就要用到4个显示子程序,分别时:时分秒显示子程序(HMS_DIS)、金额单价显示子程序(CP_DIS)、路程单价显示子程序(DP_DIS)、单价调节子程序(PA_DIS)。4.6 键盘服务程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。4.7 程序流程图(1)计价流程图 出租车计价流程图如图3-1所示。图3-1 计价流程图- 34 -2)单价时间调整流程图出租车单价时间调整流程图如图3-2所示。图3-2 单价时间调
39、整流程图 出租车计费系统的设计 5出租车计费系统的设计 5.1 设计内容本次课程设计的内容是独立完成一个出租车自动计费器的设计,采用EWB电路仿真设计软件完成出租车自动计费器电路的设计及仿真调试,在微机上仿真实现出租车自动计费器的设计。课程设计具体内容如下:汽车在行驶时,里程传感器将里程数转换成与之成正比的脉冲个数,然后由计数译码电路变成收费金额。里程传感器由磁铁和干簧管组成,磁铁置于变速器涡轮上,每行驶100米,磁铁与干簧管重合一次,即输出一个脉冲信号,则10个脉冲/公里(设为P3)。里程单价(设2.1元/公里)可由两位(B2=2、B1=1)BCD拨码开关设置,经比例乘法器(如J 690)后
40、将里程计费变换成脉冲数P1=P3(1B2+0.1B1)。由于P3=10,则P1为21个脉冲,即脉冲当量为0.1元/脉冲。同理,等车计费也可以转换成脉冲当量,这需要由脉冲发生器产生10个脉冲/10分钟(设为P4),如果等车单价为0.6元/10分钟(置B4=0、B3=6),经比例乘法器后将等车计费变换成脉冲数P2=P4(0B4+0.1B3)。由于P4=10,则P2为6个脉冲,即得到相同的脉冲当量为0.1元/脉冲。同理,起步价(设5元)也可以转换成脉冲数(P0=个脉冲)或者将P0作为计数器的预置信号(框图所示)。最后行车费用转换成脉冲总数P=P0+P1+P2,其结果用译码显示器显示。5.2 设计的基
41、本原理自动计费器包括里程计费电路、等候时间计费电路、起步价三部分,用三位数码管显示,最大金额99.9元。里程计费电路工作原理:干簧继电器产生的脉冲信号经由74LS00组成的施密特发生器整形得到CP0,CP0送入74LS160计数器,当计数记满10个脉冲时,一方由于与非门产生清零脉冲,加到Rd端使计数器清零,另一方面将基本R-S触发器的Q置为1,此时ET=EP=1,使两片74LS160组成的21进制计数器(即里程单价计数器)开始对标准脉冲计数,(标准脉冲CP1由时钟电路提供)计满21个脉冲后,Rd端得到的清零脉冲而使计数器清零,R-S触发器的Q1输出为零,计数器停止计数,由于Q1=1,则P2=C
42、P1使P2端输出21个脉冲信号,代表每公里行车的里程计费,即每个脉冲计费是0.1元,称为脉冲当量,P2输出的脉冲当量送到总费计数器进行计数累加。等候时间计费电路工作原理:等候时间计费电路由等候时间计费器和十分钟单价计数器组成,由三片74LS160构成600进制等候时间计数器,对秒脉冲CP2(来至时钟电路)做计数,当计满一个循环时,也就是等候时间满十分钟,一方面对600进制计数清零,另一方面将基本R-S触发器Q2置1,启动由74LS160构成的十分钟单价计数器工作,它是一个6进制计数器,计数期间同时将脉冲从P1输出,在计数器计满十分钟等候单价时R-S触发器复位为0,停止计数。等候时间起始信号由手
43、动开关给定。6测试分析与计算6.1.里程计价测试方法由于试验条件有限,我们采用电动机附带霍尔元件作为车轮,电机为3V的直流电机,每分的转速可以达到几千转,我们设定电机每转一圈为车轮转到1米,当电机转到1000圈时,就表示已经到达了一公里,单片机控制系统将金额自动的增加,其计算公式:当前单价公里数=金额。6.2.里程测量数据表1的测试条件时:设定白天的单价时2.5元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。表1:白天单价测试 公里41015374959总金额理论7.522.53590120145实测7.522.53590120145总里程理论41015374959实测4.29
44、.51537.34959误差0.20.500.300表2的测试条件时:晚上的单价设定为3.0元,起步价为5元(包含3公里),分别行驶不同里程测得数据如下表。表2:晚上单价测试 公里41015374959总金额理论82641107143173实测82641107143173总里程理论41015374959实测41116374958误差011001里程测试数据的分析:通过表1、表2的数据,我们可以看到系统的计价功能很稳定,误差很小,几乎为零,不过还应该在实际的应用中测试。6.3.掉电储存测试掉电储存是为了防止在系统掉电的情况所储存的单价信息丢失,我们用人为的掉电方法实现这一测试。表4:掉电储存测试
45、白天单价晚上单价中途等待单价掉电前数据 2.53.01.0重新上电后数据2.53.01.0表4显示的数据表明,系统能在掉电的情况下正确的保存数据,并且能在系统上电后将数据读到相应的储存单元。7 电路的调试与安装 电路的安装与调试时整个电子设计大赛最为复杂的一部分,要涉及的领域非常的广泛,包括LED显示器的结构、工作原理等相关知识、传感器测速的相关知识、单片机知识在一次次的调试当中不断改进,是对我们学生的一次全方位的考验。在出租车计价器的系统中,我们采用了12V的直流电压,满足计价器完成修改单价、显示、计价等功能所需的电压要求。传感器的选择方面,考虑到是对路程里数的测试我们选用了FJ2E-D10
46、NK测距传感器,FJ2E-D10NK属于开关型的霍尔传感器件,其工作电压范围比较宽(4.518V), 及上述一系列的比较后,它的优点是非常适合我们的设计要求。在实际的运用里,由于是对出租车的车轮转速的检测,位置要求和磁铁相对应,在设计安装方面,由于考虑到霍尔传感器的灵敏度问题,我们将传感器和其它电路模块分开安装在不同的板子上,特别是与电机的问题得到解决。这样,即可以避免了电机的震动影响到电路板,产生抖动,还可以时电机和传感器的相对位置保持不变,保证了测量数据的准确性。我们在LED数码管的挑选上也是经过考虑和筛选的,共阳的8段数码管的段选线时连在一起的,通过74LS164进行驱动,低电平时点亮相应的段。要注意的是如果选择的扫描频率不合适,可能会出现小数点闪动的情况。但只要扫描频率不小于