AT89C51芯片的出租车计费器的设计
一、引言 1
二、总体方案设计 2
(一)方案论证与比较 2
(二)单片机系统总体设计 3
(三)芯片简介 4
1、 AT89C52 4
2、AT24C02 5
3、74HC164 6
4、DS1302 7
三、硬件电路设计 8
(一)CPU模块 8
(二) 电源部分设计 9
(三) 路程测量部分设计 9
(四) 数据显示部分设计 10
(五) 时钟部分设计 12
(六) 掉电存储单元AT24C02的设计 12
(七) 按键单元设计 12
四、系统软件设计 14
(一) 主程序 14
(二) 定时中断服务程序 15
(三) 里程计数中断服务程序 15
(四) 中途等待中断服务程序 16
(五) 显示子程序服务程序 16
(六) 程序调试 17
五、 结束语 20
致谢 21
参考文献 22
附录(硬件原理图) 23
附录(源程序) 24
正文
一、引言
凡坐过出租车的人都知道,只要汽车一开动,随着行驶里程的增加,就会看到汽车前面的计费器里程数字显示的读数从零逐渐增大。同时,当行驶到某一值时(如3KM)计费数字显示开始从起步价(如10元)增加。当出租车到达某地需要在那里等候时,司机按动一下“计时”键,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。这就是出租车计费 *好棒文|www.hbsrm.com +Q: ¥351916072¥
器。
我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计费器。出租车计费器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。出租车计费器是出租车营运收费的专用智能仪表,目前市面所使用的计费器大都功能较少,这给出租车行业的服务质量及管理带来一定影响,而功能齐全的计费器大都采用双CPU结构,这又提高了计费器的生产成本。
随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。现在各大中城市出租车行业都已普及自动计费器,所以计费器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计费器的普及也是毫无疑问的,所以未来汽车计费器的市场还是十分有潜力的。
二、总体方案设计
(一)方案论证与比较
出租车计费器是出租车营运收费的专用智能仪表。随着电子技术的发展,出租车计费器的技术已经不断进步和提高国内出租车计费器已经走过了若干个发展阶段。在过去,使用机械式表的出租车,计费方式是通过累计运行中的齿轮转过圈数,根据里程齿轮比,换算出里程的数量,最终计算出收费额。由于机械齿轮相对大尺寸的计算不是很精确,而且易磨损,所以目前使用一个传感器与汽车运行使用传感器接收信息计算里程和票价的方式,因此定价将是非常准确的。所需期间完成这个装置很简单,成本非常低,技术上容易实现。
从传统的机械部件组成,完全由机械,的士计程表机械部件的一部分,到使用半电子的电子电路。出租车计费器计费是否正确,司机是否超速行驶是出租车乘客最关心的问题,仪表数据管理操作方便的出租车司机最关心的。
方案一:采用数字电路控制。其原理方框图如图 1所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计费。
图1 数字电路方案
考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。整体电路的规模较大,所用到的器件多,会造成故障率高,且调试较难,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。
方案二:采用单片机控制。利用单片机丰富的 I/ O端口及其控制的灵活性,实现基本的里程计费功能和价格调节、时钟显示功能。其控制原理框架如图2所示。
图2单片机控制方案
通过比较以上两种方案,单片机方案有较大的变化空间,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求。而且灵活性强,可以通过软件编程来完成更多的附加功能;不但能实现所要求的功能而且能在很大的程度上扩展功能,对系统进行升级。所以采用第二种方案。
(二)单片机系统总体设计
总体设计框图见图3。单片机采集并判断空车灯信号,并检测传感器的信号,当出租车启动时,单片机主芯片检测到霍尔传感器的脉冲信号,进行里程计算。没有乘客时:单片机调用实时芯片 DS1302程序和74HC164串口显示驱动程序, LED进行时钟显示。当空车灯掰下乘客上车时:通过DS1302获取时间信息,分辨白天还是晚上,然后调用AT24C02程序获取白天或晚上的单价及起始价,开始计费并显示时间、里程和金额等信息。当空车灯打上乘客下车时:等到出租车再次启动后,单次金额与里程等信息清零复位,从而完成一次计费。
图3 总体设计框图
(三)芯片简介
本设计主要选用的4个芯片,分别为AT89C52、AT24C02、74HC164、DS1302。
1、 AT89C52
图4 单片机引脚图
AT89C52是ATMEL公司生产的51单片机系列的典范。AT89C52是一个低电压、高性能的8位CMOS单片机,片内含8K字节的可反复擦写的Flash只读程序存储器(ROM)和256字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性的存储技术而生产,兼容标准MCS-51指令集,片内置有通用8中央处理器和Flash存储单元,功能强大的AT89C52单片机可以提供许多更复杂的系统控制应用。AT89C52有40个引脚,32个外部双向输入/输出(I / O)端口,另外还包括两个外部中断口,3个16位可编程定时计数器,两个全双工串行端口,2个读写口线。它可以根据传统的方法编程,也可以实现在线编程。它将通用的微处理器和Flash存储器结合在一起,尤其是可反复擦写的Flash存储器,可有效地降低开发成本。
Q4~Q7 10~13 输出
VCC 14 正电源
4、DS1302
DS1302是一家美国公司(DALLA)推出的一款高性能,低功耗,带RAM的实时时钟电路,它可以年,月,日,小时,分钟,秒计时码表,闰年补偿功能,工作电压为2.5V?5.5V。一个三线同步通信接口与CP和突发模式使用多个传输的字节时钟信号或RAM数据。DS1302有一个内部31×8,用于临时存储数据的RAM寄存器。DS1302的寄存器分为两类:一种是单个RAM单元,共31个,每个单元被配置为一个8位字节的RAM,命令控制字为C0H?FDH,其中奇数为读操作,偶数是写操作,另一种为突发模式的RAM寄存器,这种模式可以一次性读取和写入31字节的RAM,命令控制字FEH(写),FFH(读)。
二、总体方案设计 2
(一)方案论证与比较 2
(二)单片机系统总体设计 3
(三)芯片简介 4
1、 AT89C52 4
2、AT24C02 5
3、74HC164 6
4、DS1302 7
三、硬件电路设计 8
(一)CPU模块 8
(二) 电源部分设计 9
(三) 路程测量部分设计 9
(四) 数据显示部分设计 10
(五) 时钟部分设计 12
(六) 掉电存储单元AT24C02的设计 12
(七) 按键单元设计 12
四、系统软件设计 14
(一) 主程序 14
(二) 定时中断服务程序 15
(三) 里程计数中断服务程序 15
(四) 中途等待中断服务程序 16
(五) 显示子程序服务程序 16
(六) 程序调试 17
五、 结束语 20
致谢 21
参考文献 22
附录(硬件原理图) 23
附录(源程序) 24
正文
一、引言
凡坐过出租车的人都知道,只要汽车一开动,随着行驶里程的增加,就会看到汽车前面的计费器里程数字显示的读数从零逐渐增大。同时,当行驶到某一值时(如3KM)计费数字显示开始从起步价(如10元)增加。当出租车到达某地需要在那里等候时,司机按动一下“计时”键,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。这就是出租车计费 *好棒文|www.hbsrm.com +Q: ¥351916072¥
器。
我国在70年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计费器。出租车计费器的功能从刚开始的只显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。出租车计费器是出租车营运收费的专用智能仪表,目前市面所使用的计费器大都功能较少,这给出租车行业的服务质量及管理带来一定影响,而功能齐全的计费器大都采用双CPU结构,这又提高了计费器的生产成本。
随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。现在各大中城市出租车行业都已普及自动计费器,所以计费器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计费器的普及也是毫无疑问的,所以未来汽车计费器的市场还是十分有潜力的。
二、总体方案设计
(一)方案论证与比较
出租车计费器是出租车营运收费的专用智能仪表。随着电子技术的发展,出租车计费器的技术已经不断进步和提高国内出租车计费器已经走过了若干个发展阶段。在过去,使用机械式表的出租车,计费方式是通过累计运行中的齿轮转过圈数,根据里程齿轮比,换算出里程的数量,最终计算出收费额。由于机械齿轮相对大尺寸的计算不是很精确,而且易磨损,所以目前使用一个传感器与汽车运行使用传感器接收信息计算里程和票价的方式,因此定价将是非常准确的。所需期间完成这个装置很简单,成本非常低,技术上容易实现。
从传统的机械部件组成,完全由机械,的士计程表机械部件的一部分,到使用半电子的电子电路。出租车计费器计费是否正确,司机是否超速行驶是出租车乘客最关心的问题,仪表数据管理操作方便的出租车司机最关心的。
方案一:采用数字电路控制。其原理方框图如图 1所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计费。
图1 数字电路方案
考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。整体电路的规模较大,所用到的器件多,会造成故障率高,且调试较难,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。
方案二:采用单片机控制。利用单片机丰富的 I/ O端口及其控制的灵活性,实现基本的里程计费功能和价格调节、时钟显示功能。其控制原理框架如图2所示。
图2单片机控制方案
通过比较以上两种方案,单片机方案有较大的变化空间,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求。而且灵活性强,可以通过软件编程来完成更多的附加功能;不但能实现所要求的功能而且能在很大的程度上扩展功能,对系统进行升级。所以采用第二种方案。
(二)单片机系统总体设计
总体设计框图见图3。单片机采集并判断空车灯信号,并检测传感器的信号,当出租车启动时,单片机主芯片检测到霍尔传感器的脉冲信号,进行里程计算。没有乘客时:单片机调用实时芯片 DS1302程序和74HC164串口显示驱动程序, LED进行时钟显示。当空车灯掰下乘客上车时:通过DS1302获取时间信息,分辨白天还是晚上,然后调用AT24C02程序获取白天或晚上的单价及起始价,开始计费并显示时间、里程和金额等信息。当空车灯打上乘客下车时:等到出租车再次启动后,单次金额与里程等信息清零复位,从而完成一次计费。
图3 总体设计框图
(三)芯片简介
本设计主要选用的4个芯片,分别为AT89C52、AT24C02、74HC164、DS1302。
1、 AT89C52
图4 单片机引脚图
AT89C52是ATMEL公司生产的51单片机系列的典范。AT89C52是一个低电压、高性能的8位CMOS单片机,片内含8K字节的可反复擦写的Flash只读程序存储器(ROM)和256字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性的存储技术而生产,兼容标准MCS-51指令集,片内置有通用8中央处理器和Flash存储单元,功能强大的AT89C52单片机可以提供许多更复杂的系统控制应用。AT89C52有40个引脚,32个外部双向输入/输出(I / O)端口,另外还包括两个外部中断口,3个16位可编程定时计数器,两个全双工串行端口,2个读写口线。它可以根据传统的方法编程,也可以实现在线编程。它将通用的微处理器和Flash存储器结合在一起,尤其是可反复擦写的Flash存储器,可有效地降低开发成本。
Q4~Q7 10~13 输出
VCC 14 正电源
4、DS1302
DS1302是一家美国公司(DALLA)推出的一款高性能,低功耗,带RAM的实时时钟电路,它可以年,月,日,小时,分钟,秒计时码表,闰年补偿功能,工作电压为2.5V?5.5V。一个三线同步通信接口与CP和突发模式使用多个传输的字节时钟信号或RAM数据。DS1302有一个内部31×8,用于临时存储数据的RAM寄存器。DS1302的寄存器分为两类:一种是单个RAM单元,共31个,每个单元被配置为一个8位字节的RAM,命令控制字为C0H?FDH,其中奇数为读操作,偶数是写操作,另一种为突发模式的RAM寄存器,这种模式可以一次性读取和写入31字节的RAM,命令控制字FEH(写),FFH(读)。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/txgc/2110.html