基于单片机的出租车计价器设计.doc
《基于单片机的出租车计价器设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的出租车计价器设计.doc(55页珍藏版)》请在三一办公上搜索。
1、基于单片机的出租车计价器设计摘 要随着城市改革开放的进一步深化,出租车行业迅速发展,出租车计价器的市场需求量也大大增加。从加强出租车行业管理及服务质量并且节约成本出发,本设计以AT89C52 单片机为中心、附加A44E 霍尔传感器测距,实现对出租车计价统计,采用AT24C02 实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天、黑夜、中途等待来调节单价,同时在不计价的时候还能作为时钟为司机同志提供方便。关键词:出租车计价器 AT89C52 单价调节 软硬件设计Taximeter based on single-chip
2、 designAbstractAlong with the urban reform open further deepening,the rental car profession are expanding rapidly,and the rental car mileage fare meters market demand is also greatly increasing. In order to strengthen the rental car trade management and the grade of service,and saves the cost to emb
3、ark,The single-chip circuitry to AT89C52 as the center, an additional Hall sensor A44E ranging, to realize Taximeter statistics, using AT24C02 realize when the system power-down unit prices and save information such as system time, the output using 8 digital display tube. The circuit design of the m
4、eter will not only realize the basic valuation, but also according to the daytime, night, halfway to wait to adjust the unit price, while not denominated as a time clock can also provide convenience for the drivers comrades.Key word: Rental car mileage fare meter、AT89C52 、unit price adjustment、softw
5、are and hardware design目录摘 要IAbstractII第一章 引言11.1 概述1第二章 总体方案设计32.1方案论证与比较32.2单片机系统总体设计42.3芯片简介52.3.1 AT89C5252.3.2 AT24C02112.3.3 74HC164122.3.4 DS130213第三章 硬件电路设计163.1 主程序/CPU模块163.2 电源部分设计173.3 路程测量部分173.4 数据显示部分193.5 时钟部分213.6 掉电存储单元AT24C02的设计213.7 按键单元设计22第四章 系统软件设计234.1 主程序设计234.2 定时中断服务程序244.
6、3 里程计数中断服务程序254.4 中途等待中断服务程序254.5 显示子程序服务程序264.6 系统调试27总结29参考文献30附录A(硬件原理图)32附录B(源程序)33致谢51第一章 引言1.1 概述凡坐过出租车的人都知道,只要汽车一开动,随着行驶里程的增加,就会看到汽车前面的计价器里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如5KM)计费数字显示开始从起步价(如6元)增加。当出租车到达某地需要在那里等候时,司机只要按一下“计时”键,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。汽车计价器是乘
7、客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也是十分有一个应用价值的。随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器,用更加精良的计价器来为乘客提供更加方便快捷的服务。我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改
8、革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。出租车计价器是出租车营运收费的专用智能仪表,目前市面所使用的计价器大都功能较少,这给出租车行业的服务质量及管理带来一定影响,而功能齐全的计价器大都采用双CPU结构,这就提高了计价器的生产成本。现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随
9、着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。16第二章 总体方案设计2.1方案论证与比较出租车计价器是出租车营运收费的专用智能化仪表,随着电子技术的发展,出租车计价器技术也在不断进步和提高,国内出租车计价器已经经历了4个阶段的发展。从传统的全部由机械元器件组成的机械式,到半电子式即用电子线路代替部分机械元器件的出租车计价器。出租车计价器计费是否正确、出租车司机是否超速才是乘客最关心的问题,而计价器营运数据的管理是否方便才是出租车司机最关注的。方案一:采用数字电路控制。其原理方框图如图 2.1所示。采用传感器件
10、,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价。 图2.1 数字电路方案考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。方案二:采用单片机控制。利用单片机丰富的 I/ O端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。其原理如图2.2所示。 图2.2单片机控制方案通过比较以上两种方案,单片机方案有较大的活动空间,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现
11、设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以采用后一种方案。在过去,出租车采用机械式的计价器,用齿轮比的方式来计算出租车所跑的里程数,并由里程数来换算车费;由于机械的齿轮体积比较大,计算不是很准确,而且容易磨损,所以选用用了传感器的方式,利用传感器接收车的跑动信息,从而计算里程数和车费,这样计价就会非常准确。完成此装置所需期间简单,成本也非常低,技术上也容易实现2.2单片机系统总体设计单片机采集并判断空车灯信号及路程检测传感器信号,当出租车启动时,单片机检测到霍尔传感器的脉冲信号并进行里程计
12、算。当无乘客时,单片机调用实时时间芯片 DS1302程序和74HC164串口显示驱动程序,用LED进行时钟显示;当空车灯掰下乘客上车时:通过DS1302获取时间信息分辨白天/晚上,然后调用AT24C02程序获取白天/晚上的单价及起始价,便开始计价并显示时间、里程和金额等信息;当空车灯打上乘客下车时:等待出租车再次启动后单次金额与里程等信息清零复位,就此完成一次计价。图2.3 总体设计框图2.3芯片简介本设计采用了4个芯片,分别为AT89C52、AT24C02、74HC164、DS1302。2.3.1 AT89C52图2.4 单片机引脚图AT89C52是51系列单片机的一个型号,它是ATMEL公
13、司生产的。AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可提供许多较复杂系统控制应用场合。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器
14、和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。P0口:P0口是一组8 位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写
15、“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash 编程和程序校验期间,P1接收低8 位地址。P2口:P2 是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4 个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输
16、出一个电流(IIL)。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用
17、于锁存地址的低8位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为00
18、00HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。特殊功能寄存器:在AT89C52片内存储器中,80H-FFH共128个单元为特殊功能寄存器(SFE)。AT89C52除了与AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。定时/计数器2的控制和状态位位于T2CON,T2MOD,寄存器对(RCAO2H、RCAP2L)是定时器2在16位捕获方式或16位自动重装载方式下的捕获/自动重装载寄存器。数据存储器:AT8
19、9C52有256个字节的内部RAM,80H-FFH 高128个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。当一条指令访问7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128字节RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。定时器0和定时器1:AT89C52的定时器0和定时器1的工作方式与AT89C51相同。定时器2:定时器2是一个16位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2
20、位选择。定时器2有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON的控制位来选择。捕获方式:在捕获方式下,通过T2CON控制位EXEN2来选择两种方式。如果EXEN2=0,定时器2是一个16位定时器或计数器。自动重装载(向上或向下计数器)方式:当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON。波特率发生器:当T2CON中的TCLK和RCLK置位时,定时/计数器2作为波特率发生器使用。如果定时/计数器2作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1用于其它功能,若RCLK
21、和TCLK置位,则定时器2作于波特率发生器方式。10可编程时钟输出:定时器2可通过编程从P1.0输出一个占空比为50%的时钟信号。P1.0引脚除了是一个标准的I/O口外,还可以通过编程使其作为定时/计数器2的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz时,输出时钟频率范围为61Hz4MHz。UART:AT89C52的UART工作方式与AT89C51工作方式相同。中断:AT89C52共有6个中断向量:两个外中断(INT0和INT1),3个定时器中断(定时器0、1、2)和串行口中断。这些中断源可通过分别设置专用寄存器IE的置位或清0来控制每一个中断的允许或禁止。IE也有一个
22、总禁止位EA,它能控制所有中断的允许或禁止。时钟振荡器:AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。空闲节电模式:在空闲工作模式状态,CPU自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同时将片内RAM和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。掉电模式:在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模
23、式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。11程序存储器的加密:AT89C52有3个程序加密位,可对芯片上的3个加密位LB1、LB2、LB3 进行编程(P)或不编程(U)来得到。当加密位LB1被编程时,在复位期间,EA 端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的EA电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。Flash存储
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 出租车 计价器 设计
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-4135524.html