信号并将这些信号计算成里程数据,同时它还负责通过预置的单价信息将接受到的里程计算为费用,并且它还负责将计算得到的费用以及里程数据传送给显示部件来显示给乘客和司机朋友查看。利用霍尔传感器A44E来作为里程计算单元,它的工作原理简单同时结构也相对简洁,用在出租车计价器系统中十分合适,它具体的功能我们将在下一个章节进行详实和准确的描述。同时我们还对整个出租车计价器系统进行了掉电保护,即在AT89S51单片机外围附加了一个部件即AT24C02,用它就可以实现在系统掉电的时候保存整个系统中各种不同的信息例如里程费用等相当重要的信息,这样就可以保证在整个出租车计价器系统掉电的时候不至于立即失去非常重要的信息,因此极大的提高了系统稳定性以及准确性从而可以满足绝大多数出租车条件的要求。另外出租车计价器系统除了上述部件外最重要的部件就是显示部件,一个好的显示器件将会使整个出租车计价器系统的整体性能得到极大提升,而一个不好的选择将会使整个计价系统的效率变低甚至是彻底失灵,在显示器件的选择上,我们已经论证了两种备选材料,他们分别是LCD液晶和6位LED数码管,通过上面的论证我们得知6位LED数码管可以很好的完成我们所需要的设计要求。
因此具体的论证了出租车计价器系统的每一个部件之后,我们得到了总体设计框图。如下图所示:
89S51单片机 AT24C02掉电储存 里程计算单元 总金额显示 单价显 示 锁存器 串口显示驱动电路 图2.3 出租车计价器系统总体设计框图
11
第三章 硬件设计
第一节 硬件设计概述
硬件设计是整个出租车计价器系统的灵魂以及核心,整个计价系统最重要的部分和整个设计依托就是硬件设计。失去了硬件设计的依托,再好的软件设计也是纸上谈兵,可以说硬件设计就是整个出租车计价器系统的基石,一个好而精密的硬件设计可以极大的简化整个计价系统的设计,同时也使得设计出来的成品变得完善而且富有强大的可扩展性,在整个行业的竞争中也会充满生机和活力并使得一个好的计价系统的生命周期更长,让它得到充分而完善的利用。
硬件设计是出租车计价器系统的核心以及灵魂,而AT89S51又是硬件设计的核心以及灵魂,它负责接受并处理从霍尔传感器A44E中采样得到的里程脉冲信号并将这些信号计算成为里程数据,同时它还可以通过预置的单价信息将计算得到的里程数据计算为本次旅程的费用,并且它还负责将计算得到的费用以及里程数据传送给显示部件即6位LED数码管来显示给乘客和司机朋友以供他们查看。在里程计算单元的选择上,我们选择了霍尔传感器A44E,它的工作原理很简单同时结构也相对简洁而且方便,用在出租车计价器系统中是十分合适同时也是相对廉价的,它具体的功能我们将在下一个章节进行详实和准确的描述。同时我们还设计了一个掉电保护单元,它可以对整个出租车计价器系统进行了掉电保护,即在AT89S51单片机外围附加了一个部件即AT24C02,用它就可以实现在系统掉电的时候紧急保存整个系统中各种不同的信息例如里程费用等相当重要的信息,这样就可以保证在整个出租车计价器系统掉电的时候不至于立即失去非常重要的信息而且在又来电的时候可以查看这些信息,因此有了掉电保护单元就极大的提高了系统的稳定性以及准确性从而可以满足绝大多数出租车司机朋友的要求。除了上述那些部件,出租车计价器系统最重要的部件就是显示部件,一个好的显示器件将会使整个出租车计价器系统的整体性能得到极大提升,而一个不好的选择将会使整个计价系统的效率变低甚至是彻底失灵。在显示器件的选择上,我们已经论证了两种备选材料,他们分别是LCD液晶和6位LED数码管,通过上面的论证我们得知6位LED数码管可以很好的完成我们所需要的设计要求。
12
下面就是出租车计价器系统的整体设计电路图:
图3.1 整体设计电路图
第二节 AT89S51单片机及其引脚说明
2.4.1 AT89S51单片机总体说明
AT89S51单片机一种是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含有4KB的可系统编程的可反复擦写1000次的Flash只读程序存储器,这样就可以满足各种情况下均采用51单片机就能满足出租车计价器系统设计的各种要求,同时器件采用了ATMEL公司的高密度、非易失性存储技术生产,这样就使得在设计出租车计价器系统时必须满足的稳定性得到了保障,它兼容标准8051的指令系统及引脚,这样就使它的兼容性获得了大大增强,使得它的应用范围变得更加广泛。
13
AT89S51单片机芯片内集成了通用8位中央处理器还有ISP Flash存储单元,这样就使得它既可以使用传统方法进行编程也可以通过Flash程序存储器编程即可在线编程(ISP),这就使得它的灵活性得到了大大提升,由于上面讲到的各种各样的优点,它在8位微处理器以及单片芯片中,具有相当高的性价比,因此也是我们进行出租车计价器系统设计的最最理想的芯片。 2.4.2 AT89S51单片机引脚说明
AT89S51单片机具有40个引脚,每一个引脚都有它独特的功能,大量的引脚就使得单片机的各种功能十分丰富,同时可扩展的接口也很多,这在出租车计价器系统的设计中是十分重要的一项指标,可扩展的接口多的话,我们就可以实现很多在系统设计完成之后再被提出的要求,我们可以通过外加一个简单的部件就可以方便的完成。
下面我们就对单片机的每根引脚进行单独而且详实的描述,首先是AT89S51单片机的引脚图:
1 40 P1.0/T2 VCC 2 39 P1.1./T2 EX P0.7 3 38 P1.2 P0.6 4 37 P1.3 P0.5 5 36 P1.4 P0.4 6 35 P1.5/MOSI P0.3 7 34 P1.6/MISO P0.2 8 33 P1.7/SCK P0.1 9 32 RST P0.0 10 31 P3.0/RXD EA/VPP 11 30 P3.1/TXD ALE/PROG 12 29 P3.2/INT0 PSEN 13 28 P3.3/INT1 P2.7 14 27 P3.4/T0 P2.6 15 26 P3.5/T1 P2.5 16 25 P3.6 P2.4 17 24 P3.7 P2.3 18 23 XTAL2 P2.2 19 22 XTAL1 P2.1 20 21 GND P2.0
图3.2 AT89S51引脚示意图
14
下面我将详细描述AT89S51单片机的每个引脚,详细介绍每个引脚的具体功能,这样将对我们下面完成整个出租车计价器系统的设计起到很大的作用。引脚具体功能如下:
VCC:电源电压输入端 GND:电源地 P0.0-P0.7口:
P0口是一组8位漏极开路型双向I/O口,也就是通常意义上的地址/数据总线复用接口。当P0口作为输出口时,每一位都能够驱动8个TTL逻辑门电路。而对端口第一次写“1”时,则被定义为高阻抗输入端。P0还能作为外部数据存储器或程序存储器使用,这时P0口被定义为地址和数据总线复用,切实数据或地址的低八位。而在作为外部数据存储器或程序存储器使用时,访问期间必须激活内部上拉电阻。在Flash编程时,P0口接收指令字节,即作为源码输入口,而当FIASH进行校验时,即在程序校验时,P0输出指令字节即源码,此时P0口必须外接一个上拉电阻。
P1.0-P1.7口:
P1口是一个8位双向I/O口,也就是通常意义上的地址/数据总线复用接口。它内部就提供上拉电阻,同时P1的输出缓冲级可驱动(吸收电流或输出电流)4个TTL逻辑门电路。当P1口管脚写入1后,通过内部的上拉电阻把端口拉到高电平状态,此时P1口就可以当作输入端口使用。当P1口用作输入端口使用时,因为内部上拉电阻的存在而使引脚被外部信号下拉为低电平,这时P1口会输出一个电流。而在Flash编程以及程序校验期间,P1口则用来接收低8位地址。
P1口部分端口引脚以及它们各自的特殊功能如下表所示:
表2.1 P1口特殊功能
P1口引脚 P1.5 P1.6 P1.7 特殊功能 MOSI(用于ISP编程) MOSI(用于ISP编程) SCK(用于ISP编程) 15