




免费预览已结束,剩余46页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着人们生活水平的提高,科技不断进步,带动汽车行业快速发展,出租车日益普遍,新一代多功能出租车计价器应运而生。本课题研究以单片机AT89S52为核心的多功能出租车计价器的设计,阐述软硬件设计过程中关键技术的处理及实现。该计价器具有集计程、计时、计费、存储、查看、统计等多种计量功能,并且具有超速提醒、防止司机作弊、语音、打印、显示、电子钟和实现对出租车计价月统计,同时采用AT24C02型存储器实现在系统掉电的时候保存单价和系统时间信息等多种功能。与已有的计价系统相比,该系统具有超速提醒等更强的功能、性能可靠。本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。关键词:AT89S52单片机;显示;查询;票据打印AbstractAs people living standard rise,science and technology progress,driving the car industry developing fast,taxi increasingly common,a new generation of multi-function taxi meter arises at the historic momentThis topic research in the monolithic integrated circuit AT89S52 as the core of the multi-functional meter,expounds the design taxi hardware and software design process key technical processing and implementationThe meter has disaggregate cheng, timing,billing,storage,check,statistics and so on many kinds of measurement function,and has the speeding remind,prevent the driver cheating,voice,print,display,electric clock and implementation on statistics,to taxi valuation,Adopted in the system AT24C02 type memory realize power lost time save unit price and system time waiting for information functionsCompared with the existing system,this system has a speeding remind the function of such stronger and reliable in performanceThis circuit design can not only realize the meter,but also the basic valuation day and night,can according to wait to adjust the unit price midway through,while not valuation is also can be used as the clock when provide convenience for the driver comradesKeywords:AT89S52 SCM;Display;Query;Bills print目 录摘要IAbstractII目 录III1 绪 论11.1 介绍出租车计价系统课题环境11.2 现状11.3 整体方案、简介优势22 系统硬件设计32.1 核心控制器选择及介绍32.2 测量、计价原理42.2.1 测量部分设计42.3硬件电路设计62.3.1 电源部分设计62.3.2 数据显示部分设计62.3.3 时钟部分设计72.3.4 语音播报部分设计92.3.5 票据打印部分设计112.3.6 数据存储部分设计122.3.7按键设置部分设计143 系统软件设计163.1 主程序设计163.1.1程序功能介绍163.1.2程序主流程图173.2 关键子程序设计173.2.1 中断T1 里程计数程序设计173.2.2 中断T0中途等待计时程序设计183.2.3 键盘服务程序设计183.2.4看门狗应用193.3 时钟程序计203.4显示程序设计223.5语音提醒与打印程序设计234 系统调试与仿真244.1调试遇到问题244.2 主要功能测试244.3 主要功能仿真245 未来展望与小结27参考文献28结束语29致 谢30附录一 仿真图31附录二 程序清单32- 47 -宁夏理工学院毕业设计1 绪 论1.1 介绍出租车计价系统课题环境随着出租车行业的发展,出租车已经是城市交通的重要组成部分,无论是从加强行业管理还是从减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。采用模拟电路和数字电路设计的计价器整体电路的规模较大,采用的器件较多,容易出现故障,难调试,对于模式的切换需要用到机械开关,而且机械开关时间久了会造成接触不良,功能不易实现。为此我采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合就可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。针对计费模式的切换,通过软件编程就可以轻易而举的实现,避免了机械开关带来的不稳定因素。以大规模集成电路为主组成的微型计算机(Single Chip Microcomputer),简称为单片机,又称为嵌入式微控制器(Embedded Microcomputer)。它具有功能强、体积小、可靠性好和价格便宜等优点,已成为传统工业技术改造和新产品更新换代的理想机种,具有广泛的发展前景。单片机技术的应用,使得许多领域的技术水平和自动化程度得以大大提高。当单片机出现并应用于计价器后,现代出租车计价器的模型也就基本具备了,它可以完成计程,计价,显示等基本工作。单片机以及外围芯片的不断发展促进了计价器的发展。1.2 现状出租车行业在我国是八十年代初兴起的一项新兴行业,随着我国国民经济的高速发展,出租车已成为城市公共交通的重要组成部分。多年来国内普遍使用的计价器只具备单一的计量功能。目前全世界的计价器中有90%为台湾所生产。现今我国生产计价器的企业有上百家,主要是集中在北京,上海,沈阳和广州等地。我国的第一家生产计价器企业是重庆市起重机厂,最早的计价器全部采用机械齿轮结构,只能完成简单的计程功能,可以说早期的计价器就是一个里程表。随着科学技术的发展,产生了第二代计价器。它采用了手摇计算机与机械结构相结合的方式,实现了半机械半电子化。此时它在计程的同时还可以完成计价的工作。大规模集成电路的发展又产生了第三代计价器,也就是全电子化的计价器。它的功能也在不断完善。当单片机出现并应用于计价器后,现代出租车计价器的模型也就基本具备了,它可以完成计程、计价、显示等基本工作。单片机以及外围芯片的不断发展促进了计价器的发展。出租车计价器在最初使用时具备的主要功能是根据行驶里程计价,要求精度高、可靠性好。1.3 整体方案、简介优势整体方案设计方框图如图1.1所示,整个系统由单片机AT89S52 控制电路、A44E 霍尔传感器电路、AT24C02存储电路、DS1302 时钟电路、ISD2560 语音播报电路、票据打印电路、按键调整电路、74LS138驱动显示电路及电源电路组成。图1.1整体硬件设计电路示意图单片机采集并判断空车灯信号及路程检测传感器信号,当出租车启动时,单片机检测到霍尔传感器的脉冲信号并进行里程计算。当无乘客时,单片机调用实时时间芯片DS1302 程序、74LS138显示驱动程序,用LED进行时钟等数据显示;当空车灯掰下乘客上车时: ISD2560 语音播报电路进行语音播报1(欢迎乘客乘坐xx公司出租车) ,通过DS1302 获取时间信息分辨白天/ 晚上,然后调用AT24C02 程序获取白天/ 晚上的单价及起始价,便开始计价并显示时间、里程和金额等信息;当空车灯掰起乘客下车时:进行播报2 (您的目的地到了,请交金额xxx,欢迎再次乘坐本公司出租车) ,并打印好票据,单片机将营运数据信息存储到AT24C02 中,等待出租车再次启动后单次金额与里程等信息清零复位, 就此完成一次计价。2 系统硬件设计2.1 核心控制器选择及介绍 1AT89S52主要性能(1) 与MCS-51单片机产品兼容(2) 8K字节在系统可编程Flash存储器(3) 1000次擦写周期(4) 全静态操作:0Hz33Hz(5) 三级加密程序存储器(6) 32个可编程I/O口线(7) 三个16位定时器/计数器(8) 八个中断源(9) 全双工UART串行通道(10) 低功耗空闲和掉电模式(11) 掉电后中断可唤醒(12) 看门狗定时器(13) 双数据指针(14) 掉电标识符2功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。3引脚介绍图2.1引脚封装图2.2 测量、计价原理2.2.1 测量部分设计1. 霍尔效应当一块通有电流的金属或半导体薄片垂直置于磁场中时,薄片两侧会产生电势的现象,称为霍耳效应。设有一块半导体薄片,若沿X轴方向通过电流I,沿Z轴方向施以磁场,其磁感应强度为B,则在Y轴方向便会产生霍尔电势UH,其表达式为: UH=KHIB (2-1)式2-1中,I为输入端(控制电流端)注入的工作电流(mA);B为外加的磁感应强度(T);KH为灵敏度,它表示在单位磁感应强度和单位控制电流作用下,霍尔电势的大小,其单位是(mv/mAT);UH为霍尔电势(mV)。这种现象的产生,是因为通电半导体片中的载流子在磁场产生的洛仑兹力作用下,分别向片子横向两侧偏转和积聚,因而形成一个电场,称作霍尔电场。霍尔电场产生的电场力和洛仑兹力相反,它阻碍载流子继续堆积,直到霍尔电场力和洛仑兹力相等。在片子上作四个电极,其中C1、C2间通以工作电流I,C1、C2称为电流电极,C3、C4间取出霍尔电压VH,C3、C4称为敏感电极。将各个电极焊上引线,并将片子用塑料封装起来,就形成了一个完整的霍尔元件(又称霍尔片)。2A44E霍尔传感器介绍A44E集成霍尔开关,A44E集成霍尔开关由稳压器A、霍尔电势发生器(即硅霍片)(mT)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成在输入端输入电压VCC,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差H V 输出,该H V信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点(即BOP)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开。当施加的磁场达到释放点(即BrP)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。这样两次电压变换,使霍尔开关完成了一次开关动作。BOP与BrP的差值一定,此差值BH = BOP - BrP称为磁滞,在此差值内,V 0保持不变,因而使开关输出稳定可靠,这也就是集成霍尔开关传感器优良特性之一。3A44E霍尔传感器应用出租车中需要一个能准确获得车轮转动即路程计量信号的装置,以得到标准的脉冲信号送入单片机的定时/ 计数器T1 即P3.3引脚,利用单片机的T1 的计数功能完成100 次的计数后产生一中断来完成路程的测量。(设车轮周长为1 m ,则霍尔传感器每产生100 个脉冲便表示车已行程0.1km ,根据实际情况在程序中进行设置) 。汽车联轴器按圆周间隔嵌入磁钢,用霍尔传感器集成芯片A44E 检测并输出脉冲,其工作原理如图2.2 所示。霍尔传感器小磁铁P33AT89S52单片机霍尔传感器图2.2 A44E霍尔传感器工作原理示意图霍尔传感器集成芯片A44E有信号转换、电压放大、整形输出等功能,为增加其抗干扰的能力,经过74LS14对信号整形后再通过光偶送入P3.3引脚,如图2.3所示。而在此电路中为了防止司机作弊,可采用加密传感器的方法,先对霍尔传感器采集到的计数脉冲加密,使计费脉冲以密文方式传输,最后解密为明文脉冲,传送到计价器计费。在密码传感器中,加密器向解码器发送的是密码,只有加密器和解密器固有密码相同时,解码器才向计价器发送计数脉冲,计价器才计费,因此,密码传感器提高了计价器计费可靠性,不法出租车司机也无法使车费增加,同时司机也不能私自更换计价器传感器,实现了计价器由国家计量部门统一安装、维修和年检的统一管理。图2.3 A44E霍尔传感器接口电路2.3硬件电路设计本课题中计价器硬件电路由电源部分、霍尔传感器路程测量部分、数据显示部分、时钟部分、语音播报部分、票据打印部分和数据存储部分等组成,各部分端口分别与单片机AT89S52 的输出/输出口相连,通过单片机的控制来实现计价器的功能实现。2.3.1 电源部分设计图2.4 电源部分电路由于计价器的工作环境比较差,它要求有抗振动、抗高低温、抗潮湿、抗电磁干扰等能力,特别是电源方面的干扰,如出租车启动时,发动机打火、电瓶充电等造成输入计价器的+12V电源不稳定。因此采用+12V电瓶电源经过滤波和电源稳压管理芯片LM7805后得到+5V的稳定电压输出,保证整个系统能够正常工作,如图2.4 所示。2.3.2 数据显示部分设计显示电路采用LED数码管显示。如果采用LCD液晶显示,在距离屏幕1米之外就无法看清数据,而且白天其对比度也不能满足要求;LED显示效果好,能显示基本的数字信息,且程序简单,因此采用16位的高亮度LED数码管显示。LED显示器与单片机的接口一般有静态显示和动态显示两种方式。LED采用静态显示与单片机接口时,共阴极或共阳极点连接在一起接地或高电平。静态显示器接口电路,在位数较多时,电路比较复杂,需要的接口芯片较多,成本也较高。动态LED显示接口由于各个数码管共用同一个段码输出口,分时轮流通电的,从而大大简化了硬件线路,降低了成本。此次设计用动态显示位选用74LS138驱动,138输出低电平,所以选用共阴极数码管。LED显示器中每个发光二极管要通过5毫安-20毫安的电流才能达到正常亮度。设计中有单价显示为2位,路程显示为4位,金额显示为4位,时间显示为6位。显示电路如图2.5所示。图2.5 数码管显示2.3.3 时钟部分设计1. DS1302简介DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供时分秒、日期年月日的信息,每月的天数和闰年的天数可自动调整。DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线:(1)RES复位;(2)I/O 数据线;(3)SCLK串行时钟。时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302是由DS1202改进而来,增加了以下的特性:双电源管脚用于主电源和备份电源供应Vcc1为可编程涓流充电电源,附加七个字节存储器,它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域。其主要的性能如下:a) 实时时钟具有能计算2100年之前的秒、分、时、日、星期、月、年的能力还有闰年调整的能力:b) 8位暂存数据存储RAMc) 串行I/O口方式使得管脚数量最少d) 宽范围工作电压2.05.5Ve) 工作电流2.0V 时,小于300nAf) 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式g) 8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配h) 简单3 线接口i) 与TTL 兼容Vcc=5Vj) 可选工业级温度范围-40 +85k) 与DS1202 兼容l) 在DS1202 基础上增加的特性 对Vcc1 有可选的涓流充电能力 双电源管用于主电源和备份电源供应 备份电源管脚可由电池或大容量电容输入 附加的7 字节暂存存储器2. 管脚说明图2.6 DS1302引脚图(1) X1、X2:32.768KHz 晶振管脚 (2) GND:地(3) RST:复位脚(4) I/O:数据输入/输出引脚(5) SCLK:串行时钟 (6) Vcc1、Vcc2:电源供电管脚3. 硬件设计计价器在出租车空车行驶时需要显示实时时钟,因为它的时钟是作为白天/ 晚上单价自动转换的一个基准,而且计价器的时钟显示能为司机和乘客提供方便,所以选择一个好的时钟芯片对计价器很重要。DS1302是美国DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,采用SPI 三线接口与CPU 进行同步通信;时钟可提供秒、分、时、日、星期、月和年; 通过设置DS1302 的控制/ 状态寄存器选择日历,时钟方式经过初始校准后即可工作使用;工作电压宽达2. 55. 5 V ,采用双电源供电(主电源和备用电源) ,并设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力,在没有主电源的情况下启用备用电源能保存时间信息及数据。如图2.7所示。图2.7 DS1302硬件设计连线图2.3.4 语音播报部分设计1.ISD2500简介本设计采用美国ISD公司的2500芯片,按录放时间60秒、75秒、90秒和120秒分成ISD2560、2575、2590和25120四个品种。ISD2500系列和1400系列语音电路一样,具有抗断电、音质好、使用方便等优点。它的最大特点在于片内E2PROM容量为480K(1400系列为128K),所以录放时间长;有10个地址输入端(1400系列仅为8个),寻址能力可达1024位;最多能分600段;设有OVF(溢出)端,便于多个器件级联。2.引脚图及介绍(1)1-7:A0/M0A6/M6 地址 (2)28-10:A7A9 地址(3)11:AUX IN 辅助输入(4)12、13:VSSD、VSSA 数字和模拟地(5)14、15:SP+、SP- 扬声器输出(6)16、28:VCCA 、VCCD 模拟、数字信号电源正极(7)17、18:MIC、MIC REF 麦克风输入和输入参考端(8)19:AGC 自动增益控制(9)20、21:ANA IN、OUT 模拟信号输入和输出 (10)22:OVF 溢出图2.8 ISD2560引脚图(11)23:CE 片选(低电平允许芯片工作)(12)24:PD 芯片低功耗状态控制(13)25:EOM 录/放音结束信号输出(14)26:XCLK 外/部时钟(15)27:P / R 录/放音控制选择3. 硬件设计考虑到计价器的微型化、智能化,语音芯片采用集成度较高ISD2560芯片,其最大特点是采用E2PROM进行模拟信息直接存取而不必经过A/ D 和D/ A 转换。它内部带有话筒放大器、自动增益控制时钟、扬声器驱动电路等,采用+ 5 V 电源供电。语音模块与单片机的接口如图2.9所示,设计过程中,先将固定语音部分(上、下车用语) 信息存储到ISD2560内部的不同起点地址中。营运过程中根据上、下车的不同营运状态来实现不同语音功能播放。在语音芯片工作时,系统首先主程序调用放音处理程序,根据发音地址寻找ISD2560中的发音单元,然后将信号送到扬声器发出声音。4. 超速提醒有些出租车司机为了获取更多的时间来多送一个乘客 ,他们在送客过程中以高速行驶来榨取时间,而引起一些交通事故 ,为了制止这些事故发生 ,在系统程序中通过软件检测行驶速度 ,当出租车速度超过规定速度时单片机接收信号控制语音系统播放超速提醒。系统便以提醒司机不要超速行驶,以避免交通事故发生。图2.9 ISD2560语音接口图2.3.5 票据打印部分设计当出租车到达指定地点,司机翻起空车牌,便产生一个信号通知单片机AT89S52 ,单片机启动打印服务,将行车的中途等待时间、营运里程、单价、金额、日期及上下车时间等数据打印成出租车专用发票,微型打印机接口电路如图2.10 所示。该电路采用接口插板方式与单片机相连,这一特点使得计价器的票据打印在功能上与主系统一体化,而在检查、维修时又可单独进行。本设计中所用微型打印机是EPSON公司生产的TPp-16 微型打印机, 微型打印机与单片机通过并行接口相连,当所需要打印的数据出现在打印机I/O00I/O07上时,STB 只要从高电平转到低电平,再从低电平转到高电平,就可把数据送入打印机。这时打印机将BUSY置为忙(高电平) ,禁止新数据输入;当打印机取走数据并处理完毕后,BUSY线被置为闲(低电平) ,同时送出回答脉冲ACK通知系统,可以再次输入数据。图2.10 微型打印机机接口图2.3.6 数据存储部分设计1. AT24C02简介数据存储部分的作用是在电源断开时,存储当前设定的单价信息。AT24C02 是ATMEL公司的2 kB的电可擦除存储芯片,采用2线串行的总线和单片机通讯,电压最低可以到2.5 V ,额定电流为1 mA ,静态电流10Ua (5.5 V) ,芯片内的资料可以在断电的情况下保存40年以上,而且采用8 脚的DIP封装,使用方便。2. 引脚图图2.11 AT24C02引脚图表2.1引脚功能引脚号功能引脚号功能 A0、A1、A2地址线VSS电源SCL时钟线GND 接地端SDA 数据线WP写保护3. 操作时序及说明 (1)I2 C总线操作时序图2.12 I2C总线操作时序图(2)起始信号(S):在SCL高电平期间,SDA由高到低的变化,启动一次数据传送过程。在SDA变低后,SCL高电平应继续保持4S以上。(3)终止信号(P):在SCL高电平期间,SDA由低变高的变化,结束一次数据传送过程。SDA应在SCL高电平保持4S以上开始由低到高变化。(4)应答信号(A):应答信号有两种,一是在第9个时钟脉冲高电平期间,SDA是低电平,应答信号;另一是在第9个时钟脉冲高电平期间,SDA是高电平,应答非信号;应答非信号是主机在接收到从机发送数据,准备结束本次数据传送输出的应答信号。应答信号和应答非信号,SCL的高电平应大于4S。AT24C02单字节写入数据操作格式:图 2.12 单字节写入数据操作格式AT24C02是8引脚的集成块, SDA、SCL为I2C总线接口,A2、A1、A0是器件的引脚地址。WP是芯片的写保护,WP=0时,允许向存储器中写操作;WP=1时,禁止写操作。A2、A1、A0都接地,对AT24C64写操作时的器件地址为:A0H,读操作时的器件地址为:A1H。AT24C02读操作分为随机读和连续读两种方式。其数据操作格式如图2.3.16所示。图中灰色部分由AT89S52发送,AT24C02接收。白色部分AT24C02发送,AT89S52接收。SLAW、SLAR为AT24C02写和读器件地址。SLAW=A0H=10100000B,SLAR=A1H=10100001B。SADR为AT24C02存储空间地址,范围为:00FFH。DATA为从AT24C02内部单元中的数据。从读数据操作格式中可以看出,读操作分两步,先发送读出单元的地址,接着再启动读操作,并且在单片机停止操作之前应输出应答非信号。AT24C02的写操作分为单字节写入和页写入:AT24C02的写操作分为单字节写入和页写入,其数据操作格式如图2.14所示。AT24C02页写每次最多8个字节,并且应从空间地址能8整除的地址空间开始写,如:00H、08H、10H、等。超过8字节应分多次页写,两次页写间需要间隔10ms左右的时间。图2.14 AT24C02的写操作分为单字节写入和页写入图2.14中灰色部分由AT89S52发送,AT24C02接收。白色部分AT24C02发送,AT89S52接收。SLAW、SADR与读操作数据格式中的含义相同。4. 硬件设计图2.15 AT24C02硬件连接AT24C02 采用I2C总线与AT89S5相连,AT89S52的P20作为它的串行时钟线,P21作为它的串行数据线。当通过通过按键设定一次数据完毕后(如:昼夜单价、等候时间、起租里程、起租金额等) ,系统就自动调用存储程序,将数据信息保存在芯片内;当系统重新上电时,自动调用读存储器程序,将存储器内的数据信息读到缓存单元中,供主程序使用。由于保存在AT24C02中的数据是不能随意进行改动的,因此它具有防作弊功能。此外出租车营运过程中的一些营运数据,如:单次出租的营运额和营运里程、一段时间内的营运总额和总路程等,也存储在AT24C02中,以便出租车公司及司机查询,使出租车司机更方便的管理营运数据,出租车行业得到更有效的管理。2.3.7按键设置部分设计有些出租车司机为了获取更多的时间来多送一个乘客,他们在送客过程中以高速行驶来榨取时间,而引起一些交通事故,为了制止这些事故发生,在系统程序中通过软件检测行驶速度,当速度高于设置的最高速度时即超速时以红色LED显示,乘客观察后可以提醒司机不要超速行驶,以避免交通事故发生。如图2.16所示,按键部分有营运数据查询键和数据设置键,营运数据查询按键置于计价器的外面,司机通过该查询键可以查看1 个月的总营运额与总营运里程,和单次的营运额与营运里程。1. 按键设置乘客上车时,将空车灯掰下即给计价按键一个信号,系统开始计价。数据设置键则秘密安放于计价器内部,且必须对计价器多处进行铅封,以防止司机通过该按键对营运的重要数据进行设置而作弊,该按键由出租车公司的专业人员来调整数据,由功能设置/ 确认键、UP、DOWN 键组成,其中功能设置/ 确认键对系统时间、起步价、白天/ 晚上单价、等待时间等数据调整进行设置,然后通过UP 与DOWN 来对数据值进行加与减。然后再通过功能设置/ 确认键来对所设数据的确认。按键采用独立按键的方式,每一个按键接一个IO口,一端接地,接IO的一端通过一个电阻接高电平,设有功能设置,电路如图2.16所示。图2.16 矩阵键盘原理图3 系统软件设计软件设计部分可分为:主程序控制程序、外部中断0空车灯信号中断程序、外部中断1里程计算程序、T0等待时间计数中断程序、74LS138显示程序、DS1302时钟程序、ISD2560语音播报程序、AT24C02 数据存储程序、打印程序和键盘服务程序等。在整个软件中一些变量使用全局变量形式,以供主程序的调用并进行显示。3.1 主程序设计3.1.1程序功能介绍在主程序模块中, 需要完成对各芯片的初始化 (AT89S52、AT24C02、ISD2560语音芯片及微型打印机的初始化) 、各中断的初始化(外部中断0 、外部中断1 、T0 的初始化) ,另外,在主程序模块中还需要设置启动/ 清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。主程序流程图如图3.1 所示。当空车信号灯打下时,表示有乘客上车,就就进行语音播报1 ,并启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价和起价来计算出当前的累计价格,并将结果存于价格寄存器中,然后将当前时间和累计价格送74L138驱动的LED显示电路显示出来。当中途塞车(等待或低速行驶) 时,在一定时间内没有检测到传感器的脉冲信号就启动T0计时器进行计时,当超过规定的等待时间后,计价器就根据等待价格进行当前金额的累加与显示,并在计价器上显示等待时间;当到达目的地的时候,司机把空车灯打上,就停止计价,显示当前所应该付的金额和对应的单价,并进行语音播报2 ,及票据打印。等乘客下车后,启动出租车,计价器检测到传感器的脉冲信号,系统自动对显示清零,并重新进行初始化过程,完成1 次计价。 3.1.2程序主流程图图3.1 程序主流程图3.2 关键子程序设计3.2.1 中断T1 里程计数程序设计1. 中断简介中断由与中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器IE、IP、ECON和SCON来控制中断的开、关和各种中断源的优先级确定。2. 设计原理霍尔传感器输出的脉冲信号输入到单片机的外部中断T1接口,车轮每转一圈就产生一个脉冲信号,单片机就进行一次中断,在中断程序中完成两项任务;(1)启动定时器1,表示出租车启动;SETB TR1;SETB ET1;(2)单次里程与总里程的累加计算并将结果存入寄存器中(设车轮转1 圈为1 m ,则每中断1 次,里程就增加1 m) 。3.2.2 中断T0中途等待计时程序设计1. 定时器说明单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。2. 等待时间计时当外部中断1 进行中断时就启动改T0 开始计时,每当计时到达1 min ,等待时间累加器值就自加,而超过规定的等待时间后,就对当前金额加上额外的中途等待的价钱,以后每0. 1 min 都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。3.2.3 键盘服务程序设计1. 键盘功能介绍键盘采用查询的方式,其放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。键盘服务包括司机查询与出租车管理人员对数据的调整、时间设定、数据翻页查询等。流程图如3.2所示。图3.2 矩阵键盘工作程序3.2.4看门狗应用1. 看门狗作用看门狗又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。2. 注意事项:(1)AT89S52的看门狗必须由程序激活后才开始工作。所以必须保证CPU有可靠的上电复位。否则看门狗也无法工作。(2)看门狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。(3)AT89S52只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为12M时每16个毫秒需喂狗一次。以上程序我已调试通过。利用定时器把看门狗的喂狗时间延长几秒至几分钟。 (4)在reg52.h声明文件中增加一行 sfr WDTRST = 0 xA6。3.3 时钟程序计 1. DS1302操作时序图图 3.3 DS1302操作时序图2. DS1302寄存器说明在控制指令字输入后的下一个 SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位 0开始。同样,在紧跟 8位的控制指令字后的下一个 SCLK脉冲的下降沿,读出 DS1302的数据,读出数据时从低位 0位至高位 7,数据读写时序见图3.3。表3.1 DS1302寄存器数据读写时序寄存器名写命令取值范围各位内容写操作读操作76543210秒寄存器80H81H0-59CH10secsec分寄存器82H83H0-59010minmin时寄存器84H85H1-12/0-2312/240a/phrhr日寄存器86H87H1-28、29、30、310010datedate月寄存器88H89H1-1200010mmonth周寄存器8AH8BH1-700000day年寄存器8CH8DH0-9910yearyear3. DS1302操作流程图 系统开始运行初始化DS1302时、分、秒赋0,DS1302写入禁止设置正常数据范围运行检测控制是否有异常数据打印出异常数据及DS1302的时间值图3.4 DS1302操作流程图3.4显示程序设计判断目录第一章 绪 论41.1 介绍出租车计价系统课题环境41.2 现状41.3 整体方案、简介优势5第二章 系统硬件设计62.1 核心控制器选择及介绍63、 引脚介绍72.3.2 测量部分设计72.3 硬件电路设计82.3.1 电源部分设计92.3.3 数据显示部分设计92.3.4 时钟部分设计102.3.5 语音提醒部分设计122.3.6 票据打印部分设计142.3.7 数据存储部分设计162.3.8 超速提醒与按键设置部分设计19第三章系统软件设计213.1 主程序设计213.1.1程序功能介绍213.2 几个关键子程序设计223.2.1 中断T1 里程计数程序设计223.2.2 T0 中途等待计时程序设计233.2.3 键盘服务程序设计233.2.4看门狗应用243.3 时钟程序计253.5语音提-打印醒程序设计28第四章 系统调试29第五章 未来展望与小结30致 谢32参考文献33断状态?开 始 始正常工作指示空 车载 客白天夜间YN 图3.5 指示控制流程图3.5语音提醒与打印程序设计 Y开始是否载客?播放欢迎词是否下车?YYN播放下车提醒,打印N是否超速?播放超速提醒Y图3.6 语音播放程序流程4 系统调试与仿真4.1调试遇到问题1. 显示操作出现乱码。问题原因是在写地址和操作后写显示数据时延时时间、还有可能是显示器的译码器损坏、编码不当等问题不正确。2. 测量车程时开始无信号。原因:电路阻抗不匹配信号衰减太大,以至于I/O口检测不到信号。3. DS1302读取时间不正确。原因:单片机操作DS1302时序不正确,导致读取数据混乱。4. 测量里程不准。数据计算处理有问题,采样点较少,产生误差较大,受到外界干扰较大。4.2 主要功能测试多功能计价器的主要功能测试参数指标:(1) 准确测量汽车移动的距离, 误差 1 %。(2) 累计测量低速及等待时间,误差 1 %。(3) 自动判别速度高低,低于设定速度时,累计低速时间,测量误差1 clr c mov a,3bh cjne a,#9,dj1 ;白天黑夜价格变换hs2: mov 48h,#05h ljmp dj2hs1: jnc hs2 ; 判断c=0转移 clr c mov a,3bh cjne a,#6,hs3 ljmp dj1hs3: jc hs2 dj1: mov 48h,#03h dj2: clr c mov a,48h ;单价换算 mov b,#10 div ab mov 30h,a mov 31h,b retkey: mov th1,#0f0h mov tl1,#30h jb p1.2,key1wt1: jnb p1.2,wt1 ;等待松开 setb ex1 clr p1.1 setb p1.0 ljmp key6key1: jb p1.3,key2;59h是记录按下次数 mov a,59h cjne a,#3,n0 mov 59h,#00h n0: inc 59h ;跳转到按键次数判断 wt2: jnb p1.3,wt2 ljmp key6key2: jb p1.4,key3 mov a,59h cjne a,#1,gn1 inc 48hg0: jnb p1.4,g0 ;等待松开 lcall dj2 ljmp key6gn1: cjne a,#2,gn2 mov a,hor cjne a,#30h,n1 mov hor,#00hn1: inc horg1: jnb p1.4,g1 lcall write2 ljmp key6gn2: cjne a,#3,key6 mov a,min cjne a,#3bh,n2 mov min,#00hn2: inc ming2: jnb p1.4,g2 lcall write2 ljmp key6key3: jb p1.5,key4 mov a,59h cjne a,#1,gn3 mov a,48h cjne a,#00h,n6 mov 48h,#20hn6: dec 48hg3: jnb p1.5,g3 ;等待松开 lcall dj2 ljmp key6gn3: cjne a,#2,gn4 mov a,hor cjne a,#00h,n3 mov hor,#17hn3: dec horg4: jnb p1.5,g4 lcall write2 ljmp key6gn4: cjne a,#3,key6 mov 59h,#00h mov a,min cjne a,#00h,n4 mov min,#59hn4: dec min g5: jnb p1.5,g5 lcall write2 ljmp key6key4: jb p1.6,key5 lcall delay ;跳到打印程序key5: jb p1.7,key6 mov r2,#8 ;初始化内存单元 mov r0,#32h mov a,#00h lcall clear1 clr ex1 clr p1.0 setb p1.1w4: jnb p1.7,w4 ;等待松开key6: reti xs: mov r0,#30h ;显示语句 mov wei,#08h mov r2,#8wei1: mov a,wei mov p0,a add a,#01h mov wei,a cjne a,#0ch,we1 ljmp wei3we1: mov dptr,#tab mov a,r0 inc r0 movc a,a+dptr mov p2,awe2: lcall delay mov p0,#00h djnz r2,wei1 mov p0,#80h mov a,r0 inc r0 movc a,a+dptr orl a,#80h mov p2,a lcall delay mov r2,#7 mov wei,#90hwei2: mov a,wei mov p0,a add a,#10h mov wei,a mov dptr,#tab mov a,r0 inc r0 movc a,a+dptr mov p2,a lcall delay mov p0,#00h djnz r2,wei2 ljmp we3wei3: mov dptr,#tab mov a,r0 inc r0 movc a,a+dptr orl a,#80h mov p2,a ljmp we2we3: retdelay: mov r3,#25d1: mov r4,#25 djnz r3,d1 retexi1: push acc push psw clr c mov a,#10 inc 47h ;47单元的大小代表车轮大小 cjne a,47h,l1 inc 35h mov 47h,#00h cjne a,35h,l1 inc 34h mov 35h,#00h cjne a,34h,l1 inc 33h mov 34h,#00h cjne a,33h,l1 inc 32h mov 33h,#00h mov a,#100 cjne a,32h,l1 mov 32h,#00hl1: pop psw pop acc retijs1: clr c ;总价计算中存在问题 mov a,48h add a,48h subb a,#5 mov 58h,a clr c mov b,48h ;48单价 mov a,35h mul ab mov b,#100 div ab mo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全教育鼻出血培训课件
- 防城区那巴水车、那巴村、板蒙里林沟采砂工程项目环境影响报告表
- 灯具工程配套方案(3篇)
- 猫咪面具课件教学
- 农业智能化转型2025年灌溉监测一体化系统建设与创新
- 猫咪画毛衣课件
- 农业无人机租赁市场2025年行业竞争格局与市场潜力分析
- 工程保修工作方案(3篇)
- 电厂钢架改造工程方案(3篇)
- 安全教育摩托车培训课件
- GB/T 5780-2016六角头螺栓C级
- 福安蟾溪林场储备林2023年作业设计
- GA/T 1471-2018居民身份证制作中心(所)建设规范
- 学生课程免考(修)申请表(模板)
- 粘膜免疫 2课件
- 电子课件-《可编程序控制器及其应用(三菱-第三版)》-A04-1724-课题一-可编程序控制器基础知识
- 统计业务知识(统计法规)课件
- 艾滋病个案流行病学调查表
- 广告策划与创意课件-2
- 地质勘察任务书模板
- 全国中心血站上岗证考试题库
评论
0/150
提交评论