基于单片机的多功能出租车计价器的设计.pdf_第1页
基于单片机的多功能出租车计价器的设计.pdf_第2页
基于单片机的多功能出租车计价器的设计.pdf_第3页
基于单片机的多功能出租车计价器的设计.pdf_第4页
基于单片机的多功能出租车计价器的设计.pdf_第5页
已阅读5页,还剩2页未读 继续免费阅读

基于单片机的多功能出租车计价器的设计.pdf.pdf 免费下载

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

文档简介

基于单片机的多功能出租车计价器的设计 肖卫初,陈伟宏,杨 明 (湖南城市学院 湖南 益阳 413000) 摘 要:介绍一种以单片机AT89S52为核心的多功能出租车计价器的设计,阐述软硬件设计过程中关键技术的处理。 仿真结果表明该计价器具有集计程、 计时、 计费、 存储、 查看、 统计等多种计量功能,并且具有超速提醒、 防止司机作弊、 语音、 打印和显示等多种功能。与已有的系统相比,该系统具有超速提醒等更强的功能。 关键词:出租车计价器;多功能;AT89C52 ;软硬件设计 中图分类号:TP368. 1 文献标识码:B 文章编号:10042373X(2008)162180206 Design of Multi2function Taximeter Based on Single Chip Microcomputer XIAO Weichu ,CHEN Weihong ,YANG Ming (Hunan City University ,Yiyang ,413000 ,China) Abstract : The designs of a new type of taximeter based on single chip microcomputer AT89S52 are presented. How to solve key problems in the process of designing software and hardware system is also discussed. The simulation results have proved that the system is satisfied with the practical requirements of distance ,time and fare counting ,storing ,examining ,accu2 mulating data ,reminding of the excessive speed ,guarding against driver cheating ,and the print ,speech and display function. Compared with the existing system ,this system has stronger function ,such as reminding of the excessive speed and so on. Keywords:taximeter ;multi2function;AT89C52 ;software/ hardware design 收稿日期:2008202217 基金项目:湖南省教育厅科研基金资助项目06C219 1 引 言 出租车计价器是出租车营运收费的专用智能化仪 表,随着电子技术的发展,出租车计价器技术也在不断 进步和提高。国内出租车计价器已经经历了4个阶段 的发展。从传统的全部由机械元器件组成的机械式,到 半电子式即用电子线路代替部分机械元器件的出租车 计价器;再从集成电路式到目前的单片机系统设计的出 租车计价器。出租车计价器计费是否准确、 出租车司机 是否超速才是乘客最关心的问题,而计价器营运数据的 管理是否方便才是出租车司机最关注的。因此怎样设 计出一种既能有效防止司机作弊和超速又能方便司机 的计价器尤为重要。 因此,本文以单片机AT89S52为核心设计一款多 功能出租车计价器,该计价器能实现里程计价与显示、 数据存储与查询、 时钟显示、 超速提醒、 语音播报和票据 打印等功能。它比市场上的一些计价器使用更方便,功 能更全,还具有有效防止司机作弊和系统稳定性好的优 点。其中的超速提醒功能可以提醒司机和乘客,以告诫 司机不要超速行驶,以避免交通事故的发生。 2 系统硬件结构及功能特性 2. 1 整体方案 整体方案设计方框图如图1所示,整个系统由单片 机A T89S52控 制 电 路、A44E霍 尔 传 感 器 电 路、 AT24C02存储电路、DS1302时钟电路、ISD2560语音 播报电路、 票据打印电路、 按键调整电路、MAX7219驱 动显示电路及电源电路组成。 图1 整体方案设计方框图 单片机采集并判断空车灯信号及路程检测传感器 信号,当出租车启动时,单片机检测到霍尔传感器的脉 冲信号并进行里程计算。当无乘客时,单片机调用实时 时间芯片DS1302程序和MAX7219串口显示驱动程 081 元器件与应用肖卫初等:基于单片机的多功能出租车计价器的设计 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 序,用4只LED进行时钟显示;当空车灯掰下乘客上车 时:ISD2560语音播报电路进行语音播报 1 ( 欢迎乘客 乘坐本出租车 ) , 通过DS1302获取时间信息分辨白 天/晚上,然后调用A T24C02程序获取白天/晚上的单 价及起始价,便开始计价并显示时间、 里程和金额等信 息;当空车灯打上乘客下车时:进行播报 2( 谢谢再次乘 坐本出租车,请交金额? ) , 并打印好票据,单片机将 营运数据信息存储到24C02中,等待出租车再次启动 后单次金额与里程等信息清零复位,就此完成一次 计价。 2. 2 硬件电路设计 其硬件电路整体图如图2所示。 图2 硬件电路整体图 由电源部分、 霍尔传感器路程测量部分、 数据显示部 分、 时钟部分、 语音播报部分、 票据打印部分和数据存储 部分等组成,各部分端口分别与单片机AT89S52的输出 口相连,通过单片机的控制来实现计价器的功能实现。 2. 2. 1 电源部分 由于计价器的工作环境比较差,它要求有抗振动、 抗高低温、 抗潮湿、 抗电磁干扰等能力,特别是电源方面 的干扰,如出租车启动时,发动机打火、 电瓶充电等造成 输入计价器的+ 12 V电源不稳定。因此采用+ 12 V 电瓶电源经过滤波和电源稳压管理芯片7805后得到 + 5 V的稳定电压输出,保证整个系统能够正常工作。 如图3所示。 2. 2. 2 路程测量部分 出租车中需要一个能准确获得车轮转动即路程计 量信号的装置,以得到标准的脉冲信号送入单片机的定 时/计数器T1即P3. 5引脚,利用单片机的T1的计数 功能完成100次的计数后产生一中断来完成路程的测 量。(设车轮周长为1 m ,则霍尔传感器每产生100个 脉冲便表示车已行程0. 1 km ,根据实际情况在程序中 进行设置)。汽车联轴器按圆周间隔嵌入磁钢,用霍尔 传感器集成芯片A44E检测并输出脉冲,其工作原理如 图4所示,霍尔传感器集成芯片A44E有信号转换、 电 压放大、 整形输出等功能,为增加其抗干扰的能力,经过 74LS14对信号整形后再通过光偶送入P3. 5引脚。如 图5所示。而在此电路中为了防止司机作弊,可采用加 密传感器的方法,先对霍尔传感器采集到的计数脉冲加 密,使计费脉冲以密文方式传输,最后解密为明文脉冲, 传送到计价器计费。在密码传感器中,加密器向解码器 发送的是密码,只有加密器和解密器固有密码相同时, 解码器才向计价器发送计数脉冲,计价器才计费,因此, 181 现代电子技术2008年第16期总第279期 ?新型元器件? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 密码传感器提高了计价器计费可靠性,不法出租车司机 也无法使车费增加,同时司机也不能私自更换计价器传 感器,实现了计价器由国家计量部门统一安装、 维修和 年检的统一管理。 图3 电源电路 图4 A44E传感器工作原理图 图5 A44E霍尔传感器接口电路 2. 2. 3 数据显示部分 由于设计要求有单价 (2 位)、 中途等待时间 (2 位)、 路程 (4 位)、 金额 (4 位)显示、 时钟 (4 位)输出,如果采 用LCD液晶显示,在距离屏幕1 m之外就无法看清数 据,而且在白天其对比度也不能够满足要求,因此采用 16位的高亮度L ED数码管显示。当为空车时,为了节 电,只显示时间,为供司机查看时间提供方便,当司机要 查询以往的营运数据时,按查询键可提供显示;在乘客 时显示营运的单价、 等待时间、 路程、 金额及时钟。 显示驱动器MAX7219具有串行输入/并行输出功 能,最多可显示8个L ED数码管,同时有可以对亮度、 译码方式、 显示位数、 工作模式进行编程,非常满足远距 离数据显示;MAX7219采用串行寻址方式,进入DIN 端的16位串行数据在每个CL K的上升沿被移入到内 部的16位移位寄存器中,在LOAD端的上升沿被锁存 到控制寄存器和数据寄存器中,接收到的第一位为最高 位D15 ,在该电路中采用89S52的P1. 5为数据口, P1. 6为LOAD端,P1. 7为时钟口。 由于要显示16个LED ,所以采用2片MAX7219 级连进行驱动显示,把上一片的数据输出口和下一片的 数据输入口连接使用。而主电路板上TA89S52输出的 DIN ,LOAD ,CL K信号在传输到显示板的过程中可能 会由于干扰而产生变形,所以在显示板电路板上对这 3个信号进行整形然后再通过光偶,以防止数据的错误 显示或不显示的现象发生。如图6所示。 图6 MAX7219接口电路 2. 2. 4 时钟部分 计价器在出租车空车行驶时需要显示实时时钟,因 为它的时钟是作为白天/晚上单价自动转换的一个基 准,而且计价器的时钟显示能为司机和乘客提供方便, 所以选择一个好的时钟芯片对计价器很重要。DS1302 是美国DALLAS公司推出的一种高性能、 低功耗的实 时时钟芯片,采用SPI三线接口与CPU进行同步通信; 时钟可提供秒、 分、 时、 日、 星期、 月和年;通过设置 281 元器件与应用肖卫初等:基于单片机的多功能出租车计价器的设计 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. DS1302的控制/状态寄存器选择日历,时钟方式经过初 始校准后即可工作使用;工作电压宽达2. 55. 5 V ,采 用双电源供电(主电源和备用电源 ) , 并设置备用电源充 电方式,提供了对后背电源进行涓细电流充电的能力, 在没有主电源的情况下启用备用电源能保存时间信息 及数据。如图7所示。 图7 时钟芯片接口电路 2. 2. 5 语音播报部分 考虑到计价器的微型化、 智能化,语音芯片采用集 成度较高ISD2560芯片,其最大特点是采用E2PROM 进行模拟信息直接存取而不必经过A/ D和D/ A转换。 它内部带有话筒放大器、 自动增益控制时钟、 扬声器驱 动电路等,采用+ 5 V电源供电。 语音模块与单片机的接口如图8所示,设计过程 中,先将固定语音部分(上、 下车用语、)信息存储到 ISD2560内部的不同起点地址中。营运过程中根据上、 下车的不同营运状态来实现不同语音功能播放。在语 音芯片工作时,系统首先主程序调用放音处理程序,根 据发音地址寻找ISD2560中的发音单元,然后将信号 送到扬声器发出声音。 图8 语音播报模块 2. 2. 6 票据打印部分 当出租车到达指定地点,司机翻起空车牌,便产生 一个信号通知单片机AT89S52 ,单片机启动打印服务, 将行车的中途等待时间、 营运里程、 单价、 金额、 日期及 上下车时间等数据打印成出租车专用发票,微型打印机 接口电路如图9所示。该电路采用接口插板方式与单 片机相连,这一特点使得计价器的票据打印在功能上与 主系统一体化,而在检查、 维修时又可单独进行。本设 计中所用微打是EPSON公司生产的TPp216微型打 印机,微打与单片机通过并行接口相连,当所需要打印 的数据出现在打印机I/ O0I/ O7上时,STB只要从高 电平转到低电平,再从低电平转到高电平,就可把数据 送入打印机。这时打印机将BUSY线置为忙(高电 平 ) , 禁止新数据输入;当打印机取走数据并处理完毕 后,BUSY线被置为闲(低电平 ) , 同时送出回答脉冲 ACK通知系统,可以再次输入数据。 图9 微型打印机接口电路 2. 2. 7 数据存储部分 数据存储部分的作用是在电源断开时,存储当前设 定的单价信息。AT24C02是ATMEL公司的2 kB的 电可擦除存储芯片,采用2线串行的总线和单片机通 讯,电压最低可以到2. 5 V ,额定电流为1 mA ,静态电 流10Ua(5. 5 V) ,芯片内的资料可以在断电的情况下保 存40年以上,而且采用8脚的DIP封装,使用方便。 如图10所示。 图10 数据存储电路 图10中的时钟信号线SCL与数据线SDA需外接 5. 1 k的上拉电阻,其作用是减少A T24C02的静态功 耗,24C02采用I2C总线与AT89S52相连,AT89S52 的P1. 3作为它的串行时钟线,P1. 4作为它的串行数据 381 现代电子技术2008年第16期总第279期 ?新型元器件? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 线。当通过通过按键设定一次数据完毕后(如:昼夜单 价、 等候时间、 起租里程、 起租金额等 ) , 系统就自动调用 存储程序,将数据信息保存在芯片内;当系统重新上电 时,自动调用读存储器程序,将存储器内的数据信息,读 到缓存单元中,供主程序使用。由于保存在24C02中 的数据是不能随意进行改动的,因此它具有防作弊功 能。此外出租车营运过程中的一些营运数据,如:单次 出租的营运额和营运里程、 一段时间内的营运总额和总 路程等,也存储在24C02中,以便出租车公司及司机查 询,使出租车司机更方便的管理营运数据,出租车行业 得到更有效的管理。 2. 2. 8 超速提醒与按键设置部分 有些出租车司机为了获取更多的时间来多送一个 乘客,他们在送客过程中以高速行驶来榨取时间,而引 起一些交通事故,为了制止这些事故发生,在系统程序 中通过软件检测行驶速度,当速度高于设置的最高速度 时即超速时以红色L ED显示,乘客观察后可以提醒司 机不要超速行驶,以避免交通事故发生。 如图11所示,按键部分有营运数据查询键和数据 设置键,营运数据查询按键置于计价器的外面,司机通 过该查询键可以查看1个月的总营运额与总营运里程, 和单次的营运额与营运里程。 图11 超速提醒与按键设置电路 短按查看总营运数据,再次短按则循环依次往上翻 阅过去单次的营运数据,长按3 s则跳出数据查询。数 据设置键则秘密安放于计价器内部,且必须对计价器多 处进行铅封,以防止司机通过该按键对营运的重要数据 进行设置而作弊,该按键由出租车公司的专业人员来调 整数据,由功能设置/确认键、UP、DOWN键组成,其中 功能设置/确认键对系统时间、 起步价、 白天/晚上单价、 等待时间等数据调整进行设置,然后通过UP与 DOWN来对数据值进行加与减。然后再通过功能设 置/确认键来对所设数据的确认。 3 系统软件设计 软件设计部分可分为:主程序控制程序、 外部中 断0空车灯信号中断程序、 外部中断1里程计算程序、 T0等待时间计数中断程序、MAX7219串口静态16位 L ED显示程序、DS1302时钟程序、ISD2560语音播报 程序、24C02数据存储程序、 打印程序和键盘服务程序 等;在整个软件中一些变量使用全局变量形式,以供主 程序的调用并进行显示。 3. 1 主程序设计 在主程序模块中,需要完成对各芯片的初始化 (MAX7219 ,AT24C02 ,ISD2560语音芯片及微型打印 机的初始化)、 各中断的初始化(外部中断0、 外部中 断1、T0的初始化 ) , 另外,在主程序模块中还需要设置 启动/清除标志寄存器、 里程寄存器和价格寄存器,并对 它们进行初始化。然后,主程序将根据各标志寄存器的 内容,分别完成启动、 清除、 计程和计价等不同的操作。 主程序流程图如图12所示。当空车信号灯打下时,表 示有乘客上车,就就进行语音播报1 ,并启动计价,将根 据里程寄存器中的内容计算和判断出行驶里程是否已 超过起价公里数。若已超过,则根据里程值、 每公 里的单价和起价来计算出当前的累计价格,并将 结果存于价格寄存器中,然后将当前时间和累计 价格送MAX7219驱动的LED显示电路显示出 来。当中途塞车(等待或低速行驶)时,在一定时 间内没有检测到传感器的脉冲信号就启动T0计 时器进行计时,当超过规定的等待时间后,计价器 就根据等待价格进行当前金额的累加与显示,并 在计价器上显示等待时间;当到达目的地的时候, 司机把空车灯打上,就停止计价,显示当前所应该 付的金额和对应的单价,并进行语音播报2 ,及票 据打印。等乘客下车后,启动出租车,计价器检测 到传感器的脉冲信号,系统自动对显示清零,并重 新进行初始化过程,完成1次计价。 3. 2 几个关键子程序 3. 2. 1 外部中断1里程计数程序 霍尔传感器输出的脉冲信号输入到单片机的 外部中断1接口,车轮每转一圈就产生一个脉冲信号, 单片机就进行一次中断,在中断程序中完成两项任务: (1)启动定时器0 ,表示出租车启动; (2)单次里程与总里程的累加计算并将结果存入 寄存器中(设车轮转1圈为1 m ,则每中断1次,里程就 增加 1 m) 。 481 元器件与应用肖卫初等:基于单片机的多功能出租车计价器的设计 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 3. 2. 2 T0中途等待计时程序 当外部中断1进行中断时就启动改T0开始计时, 每当计时到达1 min ,等待时间累加器值就自加,而超 过规定的等待时间后,就对当前金额加上额外的中途等 待的价钱,以后每0. 1 min都自动加上中途等待的单 价。当中途等待结束的时候,也就自动切换到正常的 计价。 图12 主程序流程图 3. 2. 3 键盘服务程序 键盘采用查询的方式,其放在主程序中,当没有按 键按下的时候,单片机循环主程序,一旦有按键按下,便 转向相应的子程序处理,处理结束再返回。键盘服务包 括司机查询与出租车管理人员对数据的调整。 4 系统仿真 在Proteus的ISIS 6软件环境下画出电路原理图, 如图13所示。接下来就是将设计的程序在Keil C51 Vision2开发集成环境上编译成机器语言,进入Pro2 teus的ISIS ,鼠标左键点击菜单 “Debug”,选中 “use romote debuger monitor”,便可实现KeilC与Proteus 连接调试。首先在Proteus中双击单片机AT89S52 ,将 KeilC下编程生成的. HEX文件导入到AT89S52中, 可在Proteus中单击全速仿真运行按钮,进行现象的查 看,能清楚地观察到芯片上每一个引脚的电平变化,红 色代表高电平,蓝色代表低电平;并在LED显示器上显 示相应的数据,如图13所示。如果现象不正确,则在 KeilC中单步调试程序,并在Proteus观察现象,那一步 不正确则对该段的程序进行修改,调试直到仿真完全成 功为止。 该仿真中霍尔传感器采集的路程脉冲信号用系统 提供的脉冲信号源代替,其他器件均可找到,电路设计 及程序调试完毕,表明系统硬件和程序通过了模拟,为 检验设计的电路和程序,将调试好的程序下载到制作的 实物电路板的单片机中,制作电路印刷板,得到的实物 运行结果与Proteus的仿真结果完全一致。 图13 系统仿真调试现象图 5 结 语 本文设计了以单片机A T89S52为核心,以语音芯 片ISD2560、 时钟芯片DS1302、MAX7219等芯片为外 设的新型出租车计价器。给出硬件电路图及主程序流 程图,阐述了软硬件设计过程中关键技术的处理。该系 统完全满足集计程、 计时、 计费、 存储、 查看、 统计等多种 计量功能为一体的出租车计价器的实用要求。本文在 出租车计价器的设计中,优化了的设计的程序,实现 Keil C51与Proteus连接调试,这对于单片机应用系 统、 电子电路的开发和教学等都有较大的实用价值。与 已有的系统相比,该系统具有超速提醒等更强的功能。 参 考 文 献 1何立民.单片机应用技术选编M.北京:北京航空航天大 学出版社,1999. 2求实科技.单片机典型模块设计实例导航M.北京:人民 邮电出版社,2004. 3陈小忠.单片机接口技术实用子程序 M.北京:人民邮电 出版社,2005. 4赵晶主.电路设计与制版Protel99高级应用 M.北京:人 民邮电出版社,2000. 5全国大学生电子设计竞赛组委会.全国大学生电子设计竞 赛获奖作品精选M.北京:北京理工大学出版社,2000. 6杨恢先,黄辉先.单片机原理及应用M.长沙:国防科技大 学出版社,2003. (下转第188页) 581 现代电子技术2008年第16期总第279期 ?新型元器件? 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. 化、 实现A/ D转换。采集数据程序流程图如图5所示。 3 C/ OS2 的移植 C/ OS2 是一种专门为微控制器设计的抢占式实 时多任务操作系统3,它以源代码的形式给出。其内核 主要提供进程管理、 时间管理、 内存管理等服务。系统 最多支持56个任务,每个任务均有一个独有的优先级。 由于其内核为抢先式,所以总是处于运行态最高优先级 的任务占用CPU。系统提供了丰富的API函数,实现 进程之间的通信以及进程状态的转化。 图4 温度湿度测控系统 主程序流程图 图5 数据采集 程序流程图 多任务系统在运行时每个任务好像独立占用CPU 一样,因此系统必须为每个任务开辟一块内存空间作为 该任务的任务堆栈。该堆栈的作用是保存任务被切换 前时CPU各寄存器的值以及系统堆栈的数据。在进 行任务切换时需要完成的工作,主要步骤如下: (1)将当前任务CPU所有的寄存器压栈; (2)将CPU系统堆栈的数据全部拷贝到当前任务 的任务堆栈中; (3)得到下一个处于运行态优先级最高的任务的 任务堆栈的指针; (4)恢复下一个任务的CPU寄存器的值; (5)恢复下一个任务的系统堆栈中的数据; (6)通过中断返回指令或函数返回指令,间接修改 PC寄存器的值来进行任务切换。 在为COS2编写任务切换代码时需要注意: COS2 在每次发生中断后都会产生任务调度,但在中 断结束后进行的任务切换,不能调用普通任务切换函 数,这是因为在中断过程中往往伴随将CPU的状态寄 存器压栈操作。在中断后,芯片将PC和SR寄存器的 值压入堆栈,因此,在中断结束后进行的任务

温馨提示

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

评论

0/150

提交评论