出租车计价器(毕业设计论文).doc_第1页
出租车计价器(毕业设计论文).doc_第2页
出租车计价器(毕业设计论文).doc_第3页
出租车计价器(毕业设计论文).doc_第4页
出租车计价器(毕业设计论文).doc_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

编号 淮安信息职业技术学院毕业论文题 目多功能出租车计价器学生姓名张 奇学 号15075039系 部电 子 工 程 系专 业应 用 电 子班 级150750指导教师徐江海 高级工程师顾问教师徐昌华 实验师 二一 年 六 月摘要摘 要摘要:随着人们生活水平的提高,科技不断进步,新一代多功能出租车计价器应运而生,介绍一种以单片机AT89S52 为核心的多功能出租车计价器的设计,阐述软硬件设计过程中关键技术的处理。该计价器具有集计程、计时、计费、存储、查看、统计等多种计量功能,并且具有超速提醒、防止司机作弊、语音、打印、显示、电子钟和电子温度计和实现对出租车计价月统计,同时采用AT24C64 实现在系统掉电的时候保存单价和系统时间等信息等多种功能。与已有的系统相比,该系统具有超速提醒等更强的功能。本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。关键词:AT89S52单片机 电子温度 数据黑匣子 显示 查询 票据打印III淮安信息职业技术学院毕业设计论文 目 录摘 要I第一章 绪 论11.1整体方案1第二章 系统硬件设计22.1核心控制器选择介绍 22.2 引脚介绍32.3 硬件电路设计32.3.1 电源部分设计32.3.2 测量部分设计42.3.3 数据显示部分设计52.3.4 时钟部分设计112.3.5 语音提醒部分设计122.3.6 票据打印部分设计142.3.7 数据存储部分设计162.3.8 超速提醒与按键设置部分设计192.3.9 DS18B20电子温度计设计20第三章系统软件设计223.1 主程序设计223.1.1、程序功能介绍223.2 几个关键子程序设计233.2.1 中断T1 里程计数程序设计233.2.2 T0 中途等待计时程序设计243.2.3 键盘服务程序设计253.2.4看门狗应用263.3 时钟程序计273.5语音提-打印醒程序设计333.6电子温度计程序设计33第四章 系统调试37第五章 未来展望与小结38致 谢39参考文献40附录41绪论第一章 绪 论1.1整体方案整体方案设计方框图如图1 所示,整个系统由单片机A T89S52 控制电路、A44E 霍尔传感器电路、AT24C64 存储电路、DS1302 时钟电路、ISD2560 语音播报电路、票据打印电路、按键调整电路、MAX7219 驱动显示电路及电源电路组成。图1-1 整体硬件设计电路示意图 片机采集并判断空车灯信号及路程检测传感器信号,当出租车启动时,单片机检测到霍尔传感器的脉冲信号并进行里程计算。当无乘客时,单片机调用实时时间芯片DS1302 程序MAX7220串口显示驱动程序,用12864液晶屏进行时钟等数据显示;当空车灯掰下乘客上车时: ISD2560 语音播报电路进行语音播报1 (欢迎乘客乘坐本出租车) ,通过DS1302 获取时间信息分辨白天/ 晚上,然后调用A TAT24C64 程序获取白天/ 晚上的单价及起始价,便开始计价并显示时间、里程和金额等信息;当空车灯打上乘客下车时:进行播报2 (谢谢再次乘坐本出租车,请交金额 ) ,并打印好票据,单片机将营运数据信息存储到AT24C64 中,等待出租车再次启动后单次金额与里程等信息清零复位, 就此完成一次计价。21系统硬件设计第二章 系统硬件设计2.1核心控制器选择介绍 1. AT89S52主要性能A. l 与MCS-51单片机产品兼容B. l 8K字节在系统可编程Flash存储器C. l 1000次擦写周期D. l 全静态操作:0Hz33HzE. l 三级加密程序存储器F. l 32个可编程I/O口线G. l 三个16位定时器/计数器H. l 八个中断源I. l 全双工UART串行通道J. l 低功耗空闲和掉电模式K. l 掉电后中断可唤醒L. l 看门狗定时器M. l 双数据指针N. 掉电标识符2、功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.2 引脚介绍 图2-1 引脚封装图2.3 硬件电路设计由电源部分、霍尔传感器路程测量部分、数据显示部分、时钟部分、语音播报部分、票据打印部分和数据存储部分等组成,各部分端口分别与单片机AT89S52 的输出口相连,通过单片机的控制来实现计价器的功能实现。2.3.1 电源部分设计由于计价器的工作环境比较差,它要求有抗振动、抗高低温、抗潮湿、抗电磁干扰等能力,特别是电源方面的干扰,如出租车启动时,发动机打火、电瓶充电等造成输入计价器的+ 12 V 电源不稳定。因此采用+ 12 V电瓶电源经过滤波和电源稳压管理芯片7805 后得到+ 5 V的稳定电压输出,保证整个系统能够正常工作。如图3.3-1 所示。图2-2电源部分电路2.3.2 测量部分设计1、A44E霍尔传感器介绍A44E集成霍耳开关,A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)(mT)、差分放大器C、施密特触发器D和OC门输出E 五个基本部分组成在输入端输入电压VCC,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差H V 输出,该H V信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。当施加的磁场达到工作点(即BOP)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,通常称这种状态为开。当施加的磁场达到释放点(即BrP)时,触发器输出低电压,三极管截止,使OC门输出高电压,这种状态为关。这样两次电压变换,使霍耳开关完成了一次开关动作。BOP与BrP 的差值一定,此差值BH = BOP - BrP称为磁滞,在此差值内,V 0保持不变,因而使开关输出稳定可靠,这也就是集电成霍耳开关传感器优良特性之一。2、A44E霍尔传感器应用出租车中需要一个能准确获得车轮转动即路程计量信号的装置,以得到标准的脉冲信号送入单片机的定时/ 计数器T1 即P3. 5 引脚,利用单片机的T1 的计数功能完成100 次的计数后产生一中断来完成路程的测量。(设车轮周长为1 m ,则霍尔传感器每产生100 个脉冲便表示车已行程0. 1 km ,根据实际情况在程序中进行设置) 。汽车联轴器按圆周间隔嵌入磁钢,用霍尔传感器集成芯片A44E 检测并输出脉冲,其工作原理如图2-4 所示,霍尔传感器集成芯片A44E 有信号转换、电压放大、整形输出等功能,为增加其抗干扰的能力,经过74L S14 对信号整形后再通过光偶送入P3. 5 引脚。如图5 所示。而在此电路中为了防止司机作弊,可采用加密传感器的方法,先对霍尔传感器采集到的计数脉冲加密,使计费脉冲以密文方式传输,最后解密为明文脉冲,传送到计价器计费。在密码传感器中,加密器向解码器发送的是密码,只有加密器和解密器固有密码相同时,解码器才向计价器发送计数脉冲,计价器才计费,因此,密码传感器提高了计价器计费可靠性,不法出租车司机也无法使车费增加,同时司机也不能私自更换计价器传感器,实现了计价器由国家计量部门统一安装、维修和年检的统一管理。图2-4 A44E霍尔传感器工作原理示意图图2-5 A44E 霍尔传感器接口电路2.3.3 数据显示部分设计一、 12864液晶显示1、概述 FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。基本特性:A. 低电源电压(VDD:+3.0-+5.5V)B. 显示分辨率:12864点C. 内置汉字字库,提供8192个1616点阵汉字(简繁体可选)D. 内置 128个168点阵字符E. 2MHZ时钟频率F. 显示方式:STN、半透、正显G. 驱动方式:1/32DUTY,1/5BIASH. 视角方向:6点I. 背光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10J. 通讯方式:串行、并口可选K. 内置DC-DC转换电路,无需外加负压L. 无需片选信号,简化软件设计M. 工作温度: 0 - +55 ,存储温度: -20 - +60 2、模块接口说明 表2-1 LCD12864接口*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。*注释2:内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。 *注释3:如背光和模块共用一个电源,可以将模块上的JA、JK用焊锡短接。3、模块主要硬件构成说明1、控制器接口信号说明: 表2-2 RS,R/W的配合选择决定控制界面的4种模式:RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据 表2-3E信号 E状态执行动作结果高低I/O缓冲DR配合/W进行写数据或指令高DRI/O缓冲配合R进行读数据或指令低/低高无动作 a) 忙标志:BF BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据。利用STATUS RD 指令,可以将BF读到DB7总线,从而检验模块之工作状态。b) 字型产生ROM(CGROM)字型产生ROM(CGROM)提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY ON),DDRAM 的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。DFF 的状态是指令DISPLAY ON/OFF和RST信号控制的。c) 显示数据RAM(DDRAM)模块内部显示数据RAM提供642个位元组的空间,最多可控制4行16字(64个字)的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM字型及CGROM的中文字型,三种字型的选择,由在DDRAM中写入的编码选择,在0000H0006H的编码中(其代码分别是0000、0002、0004、0006共4个)将选择CGRAM的自定义字型,02H7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字型的编码BIG5(A140D75F),GB(A1A0-F7FFH)。 d) 字型产生RAM(CGRAM) 字型产生RAM提供图象定义(造字)功能, 可以提供四组1616点的自定义图象空间,使用者可以将内部字型没有提供的图象字型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。e) 地址计数器AC地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变,之后只要读取或是写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一,当RS为“0”时而R/W为“1”时,地址计数器的值会被读取到DB6DB0中。f) 光标/闪烁控制电路此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。2、指令表说明当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。3、指令控制指令 模块控制芯片提供两套控制命令,基本指令和扩充指令如下表:指令表2-4:(RE=0:基本指令)指令 指 令 码功 能RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满20H,并且设定DDRAM的地址计数器(AC)到00H地址归位000000001X设定DDRAM的地址计数器(AC)到00H,并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容显示状态开/关0000001DCBD=1: 整体显示 ONC=1: 游标ON B=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容 功能 设定00001DLXREXXDL=0/1:4/8位数据RE=1: 扩充指令操作RE=0: 基本指令操作 设定CGRAM 地址0001AC5AC4AC3AC2AC1AC0设定CGRAM 地址 设定DDRAM 地址0010AC5AC4AC3AC2AC1AC0设定DDRAM 地址(显示位址)第一行:80H87H第二行:90H97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7D0写入到内部的RAM (DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7D0(DDRAM/CGRAM/IRAM/GRAM)3、读写时序图1)数据传输过程图2-6 8位和4位数据线的传输过程图2-7 串口数据线模式数据传输过程2)时序图图 2-8 MPU写资料到ST7920(8位数据线模式)图2-9 MPU 从ST7920读资料(8位数据线模式)3)串口读写时序: 图2-10 串口方式下MPU写数据到ST79204、应用说明用FYD12864-0402B显示模块时应注意以下几点:欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。当字符编码为2字节时,应先写入高位字节,再写入低位字节。模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。2.3.4 时钟部分设计1、DS1302简介DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW,DS1302 是由DS1202 改进而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc1 为可编程涓流充电电源附加七个字节存储器它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域下面将主要的性能指标作一综合。a) 实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力还有闰年调整的能力b) 31 8 位暂存数据存储RAMc) 串行I/O 口方式使得管脚数量最少d) 宽范围工作电压2.0 5.5Ve) 工作电流2.0V 时,小于300nAf) 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式g) 8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配h) 简单3 线接口i) 与TTL 兼容Vcc=5Vj) 可选工业级温度范围-40 +85k) 与DS1202 兼容l) 在DS1202 基础上增加的特性A、对Vcc1 有可选的涓流充电能力B、双电源管用于主电源和备份电源供应C、备份电源管脚可由电池或大容量电容输入D、附加的7 字节暂存存储器2、管脚说明 图2-11 DS1302引脚图a. X1 X2 32.768KHz 晶振管脚 b. GND 地c. RST 复位脚d. I/O 数据输入/输出引脚e. SCLK 串行时钟 f. Vcc1,Vcc2 电源供电管脚3、硬件设计计价器在出租车空车行驶时需要显示实时时钟,因为它的时钟是作为白天/ 晚上单价自动转换的一个基准,而且计价器的时钟显示能为司机和乘客提供方便,所以选择一个好的时钟芯片对计价器很重要。DS1302是美国DALLAS 公司推出的一种高性能、低功耗的实时时钟芯片,采用SPI 三线接口与CPU 进行同步通信;时钟可提供秒、分、时、日、星期、月和年; 通过设置DS1302 的控制/ 状态寄存器选择日历,时钟方式经过初始校准后即可工作使用;工作电压宽达2. 55. 5 V ,采用双电源供电(主电源和备用电源) ,并设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力,在没有主电源的情况下启用备用电源能保存时间信息及数据。如图3.3-15所示。图2-12 DS1302硬件设计连线图2.3.5 语音提醒部分设计1、IDS2500简介 本设计采用美国ISD公司的2500芯片,按录放时间60秒、75秒、90秒和120秒分成ISD2560、2575、2590和25120四个品种。ISD2500系列和1400系列语音电路一样,具有抗断电、音质好,使用方便等优点。它的最大特点在于片内E2PROM容量为480K(1400系列为128K),所以录放时间长;有10个地址输入端(1400系列仅为8个),寻址能力可达1024位;最多能分600段;设有OVF(溢出)端,便于多个器件级联。2、引脚图及介绍图2-13 ISD2560引脚图如图2-13a. 1-7 A0/M0A6/M6 地址 b. 8-10 A7A9 地址c. 11 AUX IN 辅助输入d. 12,13 VSSD、VSSA 数字和模拟地e. 14,15 SP+、SP- 扬声器输出f. 16,28 VCCA 、VCCD 模拟、数字信号电源正极g. 17,18 MIC、MIC REF 麦克风输入和输入参考端h. 19 AGC 自动增益控制i. 20,21 ANA IN、OUT 模拟信号输入和输出 j. 22 OVF溢出k. 23 CE片选(低电平允许芯片工作)l. 24 PD芯片低功耗状态控制m. 25 EOM 录放音结束信号输出n. 26 XCLK 外部时钟o. 27 P / R 录/放控制选择2、硬件设计考虑到计价器的微型化、智能化,语音芯片采用集成度较高ISD2560 芯片,其最大特点是采用E2 PROM进行模拟信息直接存取而不必经过A/ D 和D/ A 转换。它内部带有话筒放大器、自动增益控制时钟、扬声器驱动电路等,采用+ 5 V 电源供电。语音模块与单片机的接口如图8 所示,设计过程中,先将固定语音部分(上、下车用语、) 信息存储到ISD2560内部的不同起点地址中。营运过程中根据上、下车的不同营运状态来实现不同语音功能播放。在语音芯片工作时,系统首先主程序调用放音处理程序,根据发音地址寻找ISD2560 中的发音单元,然后将信号送到扬声器发出声音。图2-14 ISD2560语音接口图2.3.6 票据打印部分设计当出租车到达指定地点,司机翻起空车牌,便产生一个信号通知单片机A T89S52 ,单片机启动打印服务,将行车的中途等待时间、营运里程、单价、金额、日期及上下车时间等数据打印成出租车专用发票,微型打印机接口电路如图9 所示。该电路采用接口插板方式与单片机相连,这一特点使得计价器的票据打印在功能上与主系统一体化,而在检查、维修时又可单独进行。本设计中所用微打是EPSON 公司生产的TPp216 微型打印机,微打与单片机通过并行接口相连,当所需要打印的数据出现在打印机I/ O0I/ O7 上时,STB 只要从高电平转到低电平,再从低电平转到高电平,就可把数据送入打印机。这时打印机将BUSY 线置为忙(高电平) ,禁止新数据输入;当打印机取走数据并处理完毕后,BUSY线被置为闲(低电平) ,同时送出回答脉冲ACK通知系统,可以再次输入数据。打印功能是税控计价器的另一重要技术特色,在过去的出租车上都没有打印功能,引发了许多管理方面的投诉问题。现在开发的税控出租车计价器能在每次计价结算时,根据计价显示的应付车费,打印出统一车票。有的计价器还可以根据要求打印出各种类型的累计票。完成打印功能的设备是微型打印机,目前各个厂家用的打印机各不相同,有的厂家用的是针式打印头,有的则用轮式打印头。针式打印头的原理是用4 根打印针击打色带从而在发票上打印出结果,其最大特点是可打印少量汉字及字母。但众所周知其打印针易折断,以致造成缺点现象,而且因为需要用微型色带,其日常消耗也较高。我公司根据市场要求,综合各方面的技术,在大量实验下,选用了EPSON 公司的Model - 42V 型轮式打印头,此种打印头具有字符轮串行双色打印、进纸速度快(达到每秒8行) 、接触式上墨等特点。打印机性能:字符轮式串行打印打印字列为最大19 列(包括2 个符号)字符类型为符号12 位置+ 2 个空格,数字14 个位置字符尺寸为116mm(W) 218mm(H)字符间隔:数字之间119mm ,数字和符号间414mm ,行间隔416mm打印速(610VDC 下的平均速度) 为19字列下019 行/ 秒,17 字列下210 行/ 秒纸张宽5715mm电机终端电压为610 + 0. 5- 2. 0 (直流) ,主电流为0123A工作温度为0 - 50 稳定性为MCBF = 700000 行lv尺寸为86mm (W) 4915mm (D) 19mm(H)此种打印头采用了与针式打印机完全不同的打印原理,它每次打印的不是一个点,而是整个一个数字。它共有3 组字符轮,第一组字符轮上刻有各种字母,可以在最右边打印字母;第二三组字符轮上刻有数字,可以打印出0 - 9 各个数字。打印时,应先启动马达,此时字符轮开始旋转,程序根据要打印的数字,计算出相应的脉冲数,在要打印的字符正好对准打印位置时,给电磁铁发一个触发信号,于是这个字符就被印在打印纸上。重复以上步骤并配合回车、换行就可完整打印一份发票。因为一次打印的是一个字符,所以不用担心缺点问题,而且比用字点组成的字符要清晰。打印头上的油墨轮是用特殊材料制成的。当滴到上面的油墨太多时,它会自动吸入;当油墨太少时,则自动渗到轮子表面,这样字符轮上的字符表面始终都有浓淡相宜的油墨。一瓶油墨可用较长时间,且价格便宜,从而使打印头使用过程中的日常消耗较小。该打印头的缺点是不能打印汉字而且只能打印少量字母。因为出租车所用的发票是已印好的套票,上面已印好各种汉字提示,打印机只须将数字打印在上面即可,故而对打印并无妨碍。ETT - 1 型计价器的打印过程分两步:首先在按倒空车牌开始营运时,打印常规数据如公司代码、电话、车号、上车时间、日期等,而在运营结束时再打印运营里程、单价、总金额等,以完成一份发票的打印。这样做的目的是为了更节省时间,以使乘客在下车时不必等太长时间得到一份发票,提高了工作效率。另外,轮式打印机用的打印纸宽57. 5mm ,针式打印机用的则窄一些。ETT - 1 型计价器在进纸口加上一特殊设备,也可使用针式打印机用的窄行打印纸,即它可适应这两种类型的发票。图2-15 微型打印机机接口图2.3.7 数据存储部分设计 1、AT24c64简介数据存储部分的作用是在电源断开时,存储当前设定的单价信息。A TAT24C64 是A TMEL 公司的2 kB 的电可擦除存储芯片,采用2 线串行的总线和单片机通讯,电压最低可以到2. 5 V ,额定电流为1 mA ,静态电流10Ua (5. 5 V) ,芯片内的资料可以在断电的情况下保存40 年以上,而且采用8 脚的DIP 封装,使用方便。2、引脚图表 2-6 引脚号功能引脚号功能 A0、A1、A2地址线VSS电源SCL时钟线GND 接地端SDA 数据线WP写保护 图2-16 AT24C64引脚图 3、操作时序及说明 (1)I2 C总线操作时序图2-17 I2C总线操作时序图(1)起始信号(S):在SCL高电平期间,SDA由高到低的变化,启动一次数据传送过程。在SDA变低后,SCL高电平应继续保持4S以上。(2)终止信号(P):在SCL高电平期间,SDA由低变高的变化,结束一次数据传送过程。SDA应在SCL高电平保持4S以上开始由低到高变化。(3)应答信号(A):应答信号有两种,一是在第9个时钟脉冲高电平期间,SDA是低电平,应答信号;另一是在第9个时钟脉冲高电平期间,SDA是高电平,应答非信号;应答非信号是主机在接收到从机发送数据,准备结束本次数据传送输出的应答信号。应答信号和应答非信号,SCL的高电平应大于4S。 A、 24C64单字节写数据操作格式图 2-18 单字节写数据操作格式AT24C64是8引脚的集成块,其DIP封装如图7-11a所示, SDA、SCL为I2C总线接口,A2、A1、A0是器件的引脚地址,WP是芯片的写保护,WP=0时,允许向存储器中写操作,WP=1时,禁止写操作。Vcc、GND是芯片的电源引脚。用AT89S52作为虚拟主机的接口电路如图7-11b所示AT24C64 口电路按照图中的接法,A2、A1、A0都接地,对AT24C64写操作时的器件地址为:A0H,读操作时的器件地址为:A1H。AT24C64读操作分为随机读和连续读两种方式。其数据操作格式如图7-12所示。图中灰色部分由AT89S52发送,AT24C64接收。白色部分AT24C64发送,AT89S52接收。SLAW、SLAR为AT24C64写和读器件地址。SLAW=A0H=10100000B,SLAR=A1H=10100001B。SADR为AT24C64存储空间地址,范围为:00FFH。DATA为从AT24C64内部单元中的数据。从读数据操作格式中可以看出,读操作分两步,先发送读出单元的地址,接着再启动读操作,并且在单片机停止操作之前应输出应答非信号。B、 AT24C64的写操作分为单字节写和页写AT24C64的写操作分为单字节写和页写,其数据操作格式如图7-13所示。AT24C64页写每次最多8个字节,并且应从空间地址能8整除的地址空间开始写,如:00H、08H、10H、等。超过8字节应分多次页写,两次页写间需要间隔10ms左右的时间。图2-19 AT24C64的写操作分为单字节写和页写图中灰色部分由AT89S52发送,AT24C64接收。白色部分AT24C64发送,AT89S52接收。SLAW、SADR与读操作数据格式中的含义相同。4、硬件设计图2-20 AT24c64硬件连接AT24C64中的时钟信号线SCL 与数据线SDA 需外接5. 1 k的上拉电阻,其作用是减少A TAT24C64 的静态功耗,AT24C64 采用I2 C 总线与A T89S5相连,A T89S52的P1. 3 作为它的串行时钟线,P1. 4 作为它的串行数据线。当通过通过按键设定一次数据完毕后(如:昼夜单价、等候时间、起租里程、起租金额等) ,系统就自动调用存储程序,将数据信息保存在 芯片内;当系统重新上电时,自动调用读存储器程序,将存储器内的数据信息,图2-20 AT24C64接线图读到缓存单元中,供主程序使用。由于保存在AT24C64 中的数据是不能随意进行改动的,因此它具有防作弊功能。此外出租车营运过程中的一些营运数据,如:单次出租的营运额和营运里程、一段时间内的营运总额和总路程等,也存储在AT24C64 中,以便出租车公司及司机查询,使出租车司机更方便的管理营运数据,出租车行业得到更有效的管理。2.3.8 超速提醒与按键设置部分设计1、有些出租车司机为了获取更多的时间来多送一个乘客,他们在送客过程中以高速行驶来榨取时间,而引起一些交通事故,为了制止这些事故发生,在系统程序中通过软件检测行驶速度,当速度高于设置的最高速度时即超速时以红色L ED 显示,乘客观察后可以提醒司机不要超速行驶,以避免交通事故发生。如图11 所示,按键部分有营运数据查询键和数据设置键,营运数据查询按键置于计价器的外面,司机通过该查询键可以查看1 个月的总营运额与总营运里程,和单次的营运额与营运里程。短按查看总营运数据,再次短按则循环依次往上翻阅过去单次的营运数据,长按3 s 则跳出数据查询。数据设置键则秘密安放于计价器内部,且必须对计价器多处进行铅封,以防止司机通过该按键对营运的重要数据进行设置而作弊,该按键由出租车公司的专业人员来调整数据,由功能设置/ 确认键、UP、DOWN 键组成,其中功能设置/ 确认键对系统时间、起步价、白天/ 晚上单价、等待时间等数据调整进行设置, 然后通过UP 与DOWN 来对数据值进行加与减。然后再通过功能设置/ 确认键来对所设数据的确认。2、矩阵按键每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。3、超速提醒当出租车速度超过规定速度时单片机接收信号控制语音系统播放超速提醒。图2-21 矩阵键盘原理图2.3.9 DS18B20电子温度计设计1、DS18B20说明DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。TO92封装的DS18B20的引脚排列如图1,其引脚功能描述表。2、详细引脚功能描述图2-22 DS18b20引脚图表2-7序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。2 、硬件原理图:图223 DS18B20电子温度计原理图系统软件设计第三章系统软件设计软件设计部分可分为: 主程序控制程序、外部中断0空车灯信号中断程序、外部中断1 里程计算程序、T0 等待时间计数中断程序、MAX7920 串口液晶显示程序、DS1302 时钟程序、ISD2560 语音播报程序、AT24C64 数据存储程序、打印程序和键盘服务程序等;在整个软件中一些变量使用全局变量形式,以供主程序的调用并进行显示。3.1 主程序设计 3.1.1程序功能介绍在主程序模块中, 需要完成对各芯片的初始化 (MAX7219 ,A TAT24C64 , ISD2560 语音芯片及微型打印机的初始化) 、各中断的初始化(外部中断0 、外部中断1 、T0 的初始化) ,另外,在主程序模块中还需要设置启动/ 清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。主程序流程图如图12 所示。当空车信号灯打下时,表示有乘客上车,就就进行语音播报1 ,并启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价和起价来计算出当前的累计价格,并将结果存于价格寄存器中,然后将当前时间和累计价格送MAX7219 驱动的L ED 显示电路显示出来。当中途塞车(等待或低速行驶) 时,在一定时间内没有检测到传感器的脉冲信号就启动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,表示出租车启动;TR1=1;ET1=1;(2) 单次里程与总里程的累加计算并将结果存入寄存器中(设车轮转1 圈为1 m ,则每中断1 次,里程就增加1 m) 。if(num_T1=1)/载客变量为 1Num_time+;/轮胎圈数if(today=1)/白天价格Sum_money=10+ Num_time* perimeter * price_1;/总价格 if(today=0)/夜晚价格Sum_money=10+ Num_time* perimeter * price_1;/总价格 3.2.2 T0 中途等待计时程序设计1、 定时器说明80C51单片机内部设有两个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 都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。等待计时程序TR0=1; ET0=1; if(wait=1)/进入等待 Time_wait+;/时间单位秒 if(Time_wait=60)/换算成分钟计时 Time+; if(Time=10)/等待超过10分钟 Time_money= (Time-10)* price_time;/等待金额,小于10分钟免费3.2.3 键盘服务程序设计1、 矩阵键盘工作原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键。矩阵式键盘的按键识别方法,确定矩阵式键盘上何键被按下介绍一种“行扫描法”。 行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下,判断键盘中有无键按下 将全部行线Y0-Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。单片机的P口用作键盘I/O口,键盘的列线接到P口的低4位,键盘的行线接到P口的高4位。列线P.0-P.3分别接有4个上拉电阻到正电源+5V,并把列线P.0-P.3设置为输入线,行线P.4-P.7设置为输出线。4根行线和4根列线形成16个相交点。检测当前是否有键被按下。检测的方法是P.4-P.7输出全“0”,读取P.0-P.3的状态,若P.0-P.3为全“1”,则无键闭合,否则有键闭合。去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P.4-P.7按下述4种组合依次输出:P.7 1 1 1 0,P.6 1 1 0 1 ,P.5 1 0 1 1,P.4 0 1 1 1,在每组行输出时读取P.0-P.3,若全为“1”,则表示为“0”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值 。2、键盘功能介绍键盘采用查询的方式,其放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。键盘服务包括司机查询与出租车管理人员对数据的调整、时间设定、数据翻页查询等。图3-2 矩阵键盘工作程序3.2.4看门狗应用 1、看门狗作用看门狗又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。2、注意事项:a. AT89S52的看门狗必须由程序激活后才开始工作。所以必须保证CPU有可靠的上电复位。否则看门狗也无法工作。b. 看门狗使用的是CPU的晶振。在晶振停振的时候看门狗也无效。c. AT89S52只有14位计数器。在16383个机器周期内必须至少喂狗一次。而且这个时间是固定的,无法更改。当晶振为12M时每16个毫秒需喂狗一次。以上程序我已调试通过。利用定时器把看门狗的喂狗时间延长几秒至几分钟。 d. 在reg52.h声明文件中增加一行 sfr WDTRST = 0 xA6;3、应用程序 Main()WDTRST=0 x1E;WDTRST=0 xE1;/初始化看门狗。While (1)WDTRST=0 x1E;WDTRST=0 xE1;/喂狗指令.3.3 时钟程序计 1、DS1302操作时序图图 3-3 DS1302操作时序图2、 DS1302寄存器说明表3-1 寄存器寄存器名写命令取值范围各位内容写操作读操作76543210秒寄存器80H81H0-59CH10secsec分寄存器82H83H0-59010minmin时寄存器84H85H1-12/0-2312/24010/aphrhr日寄存器86H87H1-28、29、30、310010Datedate月寄存器88H89H1-1200010mmonth周寄存器8AH8BH1-700000day年寄存器8CH8DH0-9910yearyear在控制指令字输入后的下一个 SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位 0开始。同样,在紧跟 8位的控制指令字后的下一个 SCLK脉冲的下降沿读出 DS1302的数据,读出数据时从低位 0位至高位 7,数据读写时序见图3-3。2、DS1302操作流程图 图3-4 DS1302操作流程图3、 由图3-3程序示程 如:设置时钟时间地址函数 void Set1302(uchar *pClock) uchar i; uchar ucAddr = 0 x80; W1302(0 x8e,0 x00); /* 控制命令,WP=0,写操作?*/ for(i =7; i0; i-) W1302(ucAddr,*pClock); /* 秒 分 时 日 月 星期 年 */ pClock+; ucAddr +=2; W1302(0 x8e,0 x80); /* 控制命令,WP=1,写保护?*/3.4显示程序设计 1、指示程序流程图判断状态?开 始正常工作指示空 车载 客白天夜间YN图3-5指示控制流程图2、指示程序void zsd()/指示灯服务状态 if(num_T1= =1)/载客状态 /指示 if(num_T1= =0)/空车状态/指示if(today=0)/夜晚状态/指示if(today=1)白天状态/指示else /3、由时序图2-6液晶程序示例如:LCD数据读写函数void wr_lcd(uchar dat_comm,uchar content) uchar a,i,j; delay(50); a=content; cs=1; sclk=0; std=1; for(

温馨提示

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

评论

0/150

提交评论