茅颖韬出租车计费系统的设计(共33页).doc
精选优质文档-倾情为你奉上 密级: 公开 科学技术学院NANCHANG UNIVERSITY COLLEGE OFSCIENCE AND TECHNOLOGY 学 士 学 位 论 文 THESIS OF BACHELOR( 2011 2015 年)题 目 出租车计费系统的设计 学 科 部: 信息学科部 专 业: 通信工程 班 级: 通信工程111 学 号: 学生姓名: 茅颖韬 指导教师: 谭菊华 起讫日期:2014年12月8日 2015年5月26日专心-专注-专业南昌大学 科学技术学院学士学位论文原创性申明本人郑重申明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本申明的法律后果由本人承担。作者签名: 日期:学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌大学可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于保 密 ,在 年解密后适用本授权书。不保密 。(请在以上相应方框内打“” )作者签名: 日期:导师签名: 日期:目录I出租车计费系统的设计专业:通信工程 学号: 学生姓名: 茅颖韬 指导教师:谭菊华摘要:本设计采用单片机STCS89C52作为控制芯片,LCD1602作为液晶显示屏, DS1302作为计时部分。此计费系统由STC89C52、数据显示部件、键盘控制部件、A44E霍尔传感器电路、里程计算单元、DS1302时钟模块和K24C02记忆存储模块等模块组成。基本步骤如下:程序初始化,按下K3运行键,单片机进行一系列数据采集后,把信号发送到1602液晶显示屏显示出来,设计阶段使用PROTEUS软件作为开发平台,用脉冲信号模拟出租车的运行,模拟系统各个功能。本系统设计的计费系统不仅实现了出租车计费器所需的一些基本功能:起步价、里程计费、等待计时计费等,还能通过LCD1602液晶显示单价、里程、总金额,自动更换计费模式。关键词:89C52;S1302;K24C02;1602液晶;计价器;Taxi Meter System DesignAbstract: The design uses a control chip named STCS89C52 as a control chip,LCD1602 as the LCD display ,the DS1302 as a part of the design.The Billing System is built up by STC89C52,Data display unit,Keyboard control unit,A44E Hall sensor circuit,Mileage calculation unit,DS1302 clock module and K24C02Memory storage module.The basic steps are as follows:Program initial,press the initial key K3,then send a signal to the 1602 LCD display after a series of single-chip data acquisition.The design phase uses the PROTEUS software as a development platform and the pulse signal simulating to the Taxi,to simulate the various functions of the system . The billing system designed not only to achieve some basic functions required for billing Taxi: starting price, mileage billing, waiting time billing, etc., but also to display the unit price, mileage, the total amount through LCD1602 , automatic replacement billing model. Keywords: 89C52;1602 LCD;DS1302;K24C02;Devices;第一章 引言1.1 设计背景 从18世纪开始,这个世界经历了三次工业革命,每次革命伴随着创造出新的事物,给这个世界带来了翻天覆地的变化,伴随着集成电路的飞速发展,我们也围绕其创造出了许多产品,新一代的出租车计价器也随之产生,计价器对于每一辆出租车来说,其重要性不言而喻,计价器是通过乘客所乘坐的路程以及在路程中等待的时间来计算出乘客所需付的费用的计量仪器,出租车计价器是乘客与司机之间的交易准则,计价器的准确性直接关系到乘客与司机经济利益,所以计价器的准确性是非常重要的,而起也进入来了一个更换的过程,因此,作为出租车行业的核心,计价器的准确性已经不能满足现代快节奏的生活,其还需具备断电保护,复位及自动更换单价等功能,这些不仅能让乘客安心,还可以大大降低行业纠纷的发生率,所以计价器的升级还贷,对于此行业的发展有着非常关键的作用。出租车行业的不断发展,出租车计价器的功能和需要发生着变化记忆进步。老式的计价器所使用的模拟电路和数字电路电路规模大,器件也较多,难以调试且故障多,需要用机械开关来对模式进行切换,升级后的计价器是沾着集成电路的技术革新光完成的,围绕单片机位核心,附加多个集成电路的计价器,实现了更小,更敏捷及更多需要的功能并且通过程序的编写可以在不更换产品的同时完成产品的升级和功能延伸。1.2 设计要求显示:可以显示单价、里程、总金额。计费:本设计实现了自动更换计费模式的功能,无等待超过两分钟的行驶过程,白天的费用为起步价6元;当行驶超过三公里,则在6元的起步价上加上每公里1.3元计算总额,若未超过三公里则收费6元;如果行驶过程中计价器开启的状态下,等待超过2分钟,则等待的时间按照每分钟1.5元计费。夜间费用是白天的105%。自动分时计费功能:白天和夜间能自动更换单价。发挥部分:能够显示当前的系统时间,能够实现自动切换功能。第二章 系统设计2.1 系统组成及工作原理 本系统主要由以下几个硬件组成:STCS89C52,1602液晶显示屏,霍尔传感器,DS1302,断电保护器及数个按键。本系统设计的多功能计价器是通过各部件功能的充分互相利用实现的,系统框图如图2.1所示。主要工作原理是通过按键控制运行状态,由霍尔传感器检测到里程数据,传送到单片机进行系列操作,再把数据信息发送到数据显示单元1,由于单片机有32个(I/O)口,所以可实现里程计价,时钟显示和等待计价等功能,不仅当前所需要的功能能够轻易完成,而且还可以在很大范围内增加所需要的功能,因为(I/O)口丰富,所以当系统需要升级时只需要简便的操作及可完成。 图2.1 系统框图2.2 STC89C52简介STC89C52拥有很多特点以下简单介绍其中一部分2:8位微控制器,40根引脚 ,8bytes储存空间,32根可 编程输入输出线,4倍于89c51的数据存储器,复位电路,因为其可直接使用串口下载,所以89c52可以实现更加简便的实现增加外界设备,并可提高解决系统问题的简便度。 图2.2 89C52引脚图引脚说明及其功能:表格2.1 89C52引脚说明 表格2.2 89CS52引脚说明 2.3 霍尔传感器电路设计霍尔传感器具有很多优点是光电传感器所不能比的,在恶劣条件下的生存能力及使用能力使其被广泛应用,另外其还具备了稳定,精确,高性价比灵巧等特点。安装在轮子中的霍尔传感器对实时数据的进行采集后,把数据发送到单片机,经过分析与处理,再发送到1602液晶显示屏显示出来3,图2.2为其原理图。图 2.3 传感器测距示意图A44E是开关型霍尔器件,工作电压为4.5v到18v,其信号频率符合准则,固能与单片机接口在不借助线路驱动器或接收器电路的情况下连接,输入电压CC V,这个时候电压并不能直接加载在电势发生器各个端点,经过系统内部自带的稳压器调整后,即可工作,在霍尔效应原理的应用下,我们会收集到电势差信号输出,此时信号需要使用到差分放大器和其他必要设备完成放大并转换,变成方波转移到OC 门,随即传送到单片机进行下一步操作。A44E有两种工作状态,我们称之为开与关,前者状态是当磁场达到低点,经由触发器转换的信号从低电平上升到高电平,三极管导通,集电极开路门输出低电压,后者状态是当磁场达到饱和,经由触发器转换的信号从高电平下降到低电平,三极管闭合,OC 门输出高电压。 以单片机P3.2作为信号输入端口,中断程序设置于单片机中,这样可以简化子模块程序设计,车轮转动一圈,霍尔传感器就会收集信号,然后发送到单片机,单片机收到信号后自动中断,对脉计数,达到一定次数N次后(N×车轮周长=1000米),单片机会控制并发送信号到显示器单元增加金额。图2.4 传感器电路图2.4 1602液晶显示设计1602液晶显示屏是使用频率最高的信息显示器件,常被用于单片机应用设计。其共有有两行,每行16个字符块,有两种工作电压的选择,3.3v为后背电源供电工作电压,背光较弱,5.0v为主电源供电工作电压,背光较亮,由于其储存了大量字符阵型,所以显示内容丰富,有较高的观赏性,且工作电压小,所以其带来的续航能力增加而耗能较少,集成电路的应用,使其体积大幅减小4。接口功能: 1602液晶显示接口功能如表2.3所示。表2.3 1602型LCD的接口信号说明表2.4 1602液晶显示参数基本的操作程序: 读状态:令RS=L,RW=L, E=H 输出:D0D7=状态字 读数据:令RS=H,RW=H, E=H 输出:无 写指令:令RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:D0D7=数据 写数据:令RS=H,RW=L, D0D7=数据, E=高脉冲 输出:无 图2.5 单片机与LCD1602的连接图2.5 时钟电路设计 DS1302 有八个引脚,工作电压介于2.5v到5v,通过RS232通信接口完成与cpu连接,并向其发送数据信号。其计时功能精确到秒,由于DS1302临时存取储存器的存在,在遇到断电,人为关闭等突发情况的时候,可把当前信息储存到临时存取储存器中,重新开启后,再以突击发送的方式把信号发送到cup,再传输到数据显示单元,DS1302不仅完成了换代,还实现了与旧版本的互相支持融合,两者之间的差别在于DS1302电源引脚,可以使其再工作时可以耗电与充电同时进行,后背电源会在不使用的情况下自动流失电量,这个问题也得到了很完善的解决,后背电源得到了微小电压充电的能力,集成电路的应用,使其体积大幅减小,使用起来也更为简单方便。主要特点是穿行通信,在遇到正常供电电源掉电时,可通过自行跟换后背电源充电方式,使用后背电源为其供电,这样的好处是可在仅能使用后背电源时,可长时间为DS1302供电,持续工作而不影响计价器的整体运行。DS1302引脚说明DS1302封装和引脚如图2.4所示。图2.6 DS1302封装和引脚图DS1302只有八个引脚,虽然其引脚不多,但是每个引脚的充分利用使其功能完善,下面分别介绍各个引脚的功能,其共有两个电源引脚,分别时VCC1和VCC2,前者是后背电源,后者是主电源,在遇到断电或认为关闭等突发情况,主电源不能工作,则由后背电源代替其工作,使时钟继续长时间工作,DS1302会自动选择VCC1或VCC2电量相对充足者进行供电。X1以及X2都是必不可少的振荡源,外接2的15次方千赫兹晶振,(I/O)为三线接口式的双向数据线,SCLK是时间信号输入端,控制信息的输入及输出,RST为复位脚。图2.5为各个引脚的功能说明表。表2.5 DS1302引脚功能说明DS1302控制字节注意事项DS1302为SPI总线驱动方式,在c语言编写时需要了解到此特性,DS1302需要把控制字送到寄存器中,还要读取寄存器中指定的信息。只有完成对DS1302的地址与命令字节的充分认识,才能在和DS1302通信时不产生源程序错误,控制字不仅控制DS1302的存取内容,写入方式,还控制操作的工作方式等,且都是由其首先进行所有的数据传输。表2.6为控制字。1. 第7 位:有两种逻辑状态,正常情况时为1,若为0,则控制数据传输的引脚停止工作。2. 第6位:有两种逻辑状态1和0,若为前者则存取储存器数据,若为后者则存取日历时钟数据。3第5位:选择操作单元的地址。表2.6 DS1302的控制字节图2.7 DS1302 单字节读写时序 DS1302寄存器我们需要使用控制字在DS1302 RAM 内搜索完成寻址,继而对指定的寄存器的各位进行操作,2.7为寄存器功能表5。表2.7 寄存器功能表图2.8 单片机与时钟芯片DS1302连接图上图所示的电路具有以下几个优点:体积小,稳定性强,高效率,低成本。89c52单片机P2口与DS1302复位脚连接,电路运行后,89c52由于内部上拉导致电阻增大,并输出高电平,P2.0作为串行时钟接口,P2.1作为时钟数据的I/O。DS1302拥有主电源和后背电源两种充电方式,正常情况下由主电源提供+5v电压,而当主电源停止工作后,由后背电源提供+3v电压。6DS1302的两个振荡源连接的晶振,其频率为2的15次方千赫兹。2.6 键盘电路设计在初稿时我设计的是带有价格设置按钮,后来由于某些原因决定放弃,由于铜板已经腐蚀,所以除开复位键,空出来的k2价格设置键,余下k3k8键,每个键都有其各自的程序设计和功能,以下为各键功能,源程序参考附录,图2.9为按键电路设计图。图2.9 按键电路设计K3:第一次按下开始计价,第二次按下停止计价,第三次按下计价数据清零,并返回时间显示页面。K4:暂停出租车(直流电机)的转动。K5:启动出租车(直流电机)的转动。K6:时间日期设置键。K7:在设置状态下,是增大键;在不设置的状态下按下显示当天的总价。K8:在设置状态下,是减小键;在显示当天总价的时候,按下使当天的总价清零。2.7 K24C02的电路设计K24C02有超宽工作电压+1.8v-5.5v,其内部储存器有256Byte的内存,可以储存128个汉字或256个数字和英文,由于其超宽的工作电压7,在低功率及低电压的集成电路中是使用频率最高的断电保护芯片. 图 2.10图 2-11K24C02 断电存储部分电路如下:图 2.11 K24C02电路图第三章 系统的软件设计3.1 系统主程序设计主程序模块中,各接口芯片完成初始化后按下k3键,微机开始服务程序,里程计算单元开始计算行驶的公里数,当公里数小于三公里时,数据显示部件将起步价,公里数和时间显示出来,当公里数超过三公里时,单片机会自动更换计价模式,并在起步价的基础上继续计费,直到停止运行,微机停止工作,最后的叠加金额,公里数和时间也将会通过数据显示部件显示出来。3.2 里程计数中断服务程序设计计数器计满1000 次后,使微机停止服务程序。在此程序中,完成总额和当前驶里程数的相加操作后,在里程及总额寄存器中存入结果。3.3 中途等待停止服务程序设计当休息键按下,每当到达2分钟计时后,就在当前金额的基础上加上中途等待的单价。 3.4 DS1302时钟程序设计DS1302程序操作流程图如下:3.5 K24C02数据断电保护K24C02器件基本操作如下:时钟及数据传输:SDA引脚通常被外围器件拉高。SDA引脚数据只在SCL为低电平时变(;当数据在SCL为高时变化,将视为下文所述的一个起始或停止命令。 起始条件: 当SCL为高时,SDA由高到低的变化被视为起始命令,任何一次读/写操作必须以起始命令作为开始。 停止条件:当SCL为高时,SDA由低到高的变化被视为停止命令,在一个读操作后,停止命令会使EEPROM进入等待态低功耗模式。 应答:所有的地址和数据字节都是以8位为一组串行输入和输出的。每收到一组8位的数据后,EEPROM都会在第9个时钟周期时返回应答信号。每当主控器件接收到一组8位的数据后,应当在第9个时钟周期向EEPROM返回一个应答信号。收到该应答信号后,EEPROM会继续输出下一组8位的数据。若此时没有得到主控器件的应答信号,EEPROM会停止读出数据,直到主控器件返回一个停止命令来结束周期8。 等待模式:K24C02特有一个低功耗的等待模式。可以通过以下方法进入该模式:(a)上电(b)收到停止位并且结束所有的内部操作后。 器件复位:在协议中断、下电或系统复位后,器件可通过以下步骤复位:1. 连续输入9个时钟。 2. 在每个时钟周期中确保当SCL为高时SDA也为高。 3. 建立一个起始条件。3.6 键盘服务程序设计图3-1 主程序流程图图3-2 定时中断服务程序第四章 系统仿真4.1 proteus简介图4.1 Proteus 界面图4.2 Protues使用方法1 原理图创建及模版选择 启动protues软件,把鼠标移动到文件上,自动加载多项应用,左键点击第一个新建,弹出下图所示窗口,选择一个模版作为新设计。9窗口如图4.2所示:图4.2 模版选择窗口2 元器件查找 启动Proteus软件, 左键点击pick from libraries命令后, 出现元器件查找窗口,在keywords中输入需要使用的元器件名称,点击确定会出现多个选项,选中自己需要的型号的器件,鼠标左键点住不放手拖入界面中,当所有器件找齐后再一一布线。元器件查找如图4.3所示。 图4.3 元器件查找示意图3 源程序插入及仿真右键单片机选中编辑属性项,出现组件窗口如图4.4所示,10找到程序文件,点击右侧文件图像,导入源程序 .图4.4 加载程序图左键点击开始按钮,仿真开始,加入脉冲信号模拟运行行驶过程,显示器数据随预设程序规则变化,若想结束仿真,按下最右侧正方形图案按钮即可,图4.5为按键显示图。图4.5 按键示意图4.3 计价器系统的仿真本设计系统采用的是模块设计法,所以我们先对各个子模块进行调试,当所有子模块都没有问题后,接下来就进行联合调试,发现在联合调试时发生了时序冲突,这是一个很严重的问题,时序冲突会导致两个不同的子模块输出的信号不能同时传送出来,经过谭老师指导发现中断程序设置不合理,定时器0,定时器2和外部中断一起使用时外部中断和定时器1停止运行,出现中断加塞,定时器1不一定非要处在计时状态,若把其工作状态改为记数,不仅解决中断加塞现象,而且减少了中断,设计程序时也变得方便11。 联合调试结束,仿真实现,仿真图如4.6所示图4.6 仿真运行图4.4 故障分析 在protues上完成各元器件的连接后,将编写的c语言程序导入,仿真成功实现,各项功能一切正常,而将c语言程序导入单片机后,实物通电却没有反应。 分析:由于在protues上的仿真成功,则说明程序没有错误,而是板子出现了问题,经过查找资料发现仿真器是跳过地址的,需要对程序做简单修改,所以我对程序作了一些修改,然而结果依然时失败,于是进一步检查电路及各个硬件,首先我检查了电路是否在板子制作过程中的不注意,出现短路,断路和错接,结果发现一切正常,经过仔细检查后发现单片机管脚焊接时误把P3.6和P3.7接反,经过修改,实物最终成功运行,并完成各项指标。结束语本系统设计的计价器完成了对现在普遍使用的出租车计价器各方面的完美超越,例如:体积更小化,使用时间更长化,每次运行的时间和公里数也会显示出来,另外,还有一个特点就是,断电复位模式的引用,稳定性得到大幅提升,本系统还拥有低成本,性价比高,设计简单,集成电路的发展也使得本计价器的电路实现了简单化,使用的89c52单片机,可以对程序实现优化,升级更新时也能轻易完成。经过本次设计,让我意识到在我们学习的过程中,对待每一个课程,每一个细节,都必须全身心的投入吸收,因为仅仅时设计一个出租车计价器都需要拥有丰富的单片机知识和集成电路知识,程序设计知识,还需要熟练掌握各个软件的应用,当我们踏入社会,需要更多更全面的知识才能胜任工作中的挑战。在设计的过程中,我们还运用网络搜寻所需要的资料,在一边学习一边运用的过程中不断掌握各种以前未掌握的知识。参考文献1 黄智伟.全国大学生电子设计竞赛系统设计M.北京航空航天大学出版社,2006.2 汪德彪.MCS-51单片机原理及接口技术M.电子工业出版社.2009.3 刘丽华. 自动检测技术及应用M. 清华大学出版社. 2010.4 季建华.智能仪表原理M. 山东教育出版社.2004.5 谢自美.电子线路设计·实验·测试第三版M.华中科技大学出版社. 2006. 6 张毅刚.新编MCS-51单片机应用设计(第3版)M.哈尔滨工业大学出版社,2003.7 .模拟电子技术基础M.2007.8 吴继华.Altera FPGA/CPLD设计(高级篇)M.人民邮电出版社,2011.9 、.EDA技术基础与实验教程M.北京:清华大学出版社出版,2010.10 黄仁欣.EDA技术实用教程M.北京:清华大学出版社出版,2011.11 夏宇闻.Verilog数字系统设计教程M(第二版).,2008致 谢在设计的过程中,我遇到了一个接一个麻烦,在我垂头丧气的时候,谭菊华老师老师对我的每一个问题都细心聆听,每次遇到软件或者程序的问题时,谭老师会在网上与我沟通并给出详细的问题报告,而在制作实物的过程中,出现问题时我会去办公室请谭老师给我答疑,或者求助现场的其他同学,最让我感动的是,有次在焊接时遇到了问题,正烦恼时,谭老师突然出现在焊接室,并即使给予了帮助,在此还想感谢我的同学,从开题报告到正稿,他们给了我很大的帮助,感谢高飞飞学长在设计过程中,给我提出的指向性建议,让我找到正确的思路进行本设计的开始,在制作的过程中,学校也给予了我们毕业生很多关照,比如开放试验室,让我们在制作实物的时候更加方便。 谭老师教会了我任何事情都不像它看起来那么简单,我们只有在不断的学习创作中,才能很好的完成任务,并且不能自大,我们还很年轻,总觉得任何事情对于自己都是小事一桩,殊不知,我们的能力离完成这个任务还有很远的路,在行走的路上磕磕绊绊,只有认清自己,才能畅行无阻,在今后的工作生活中,我会谨记这条教导,在学习与谦逊中航行。附录1 元器件清单附录2 系统实物图附录3 系统原理图多功能出租车计价器总体电路图附录4 PCB版图