基于单片机控制的出租车计价器设计
- 格式:doc
- 大小:346.50 KB
- 文档页数:27
基于单片机控制的出租车计价器设计任务书
一.设计要求
(一)基本功能
1. 显示: 可以显示 单价、里程、总金额
2. 停车计费功能:中途因故停车超过5分钟后每分钟按当时单价的50%收费
3. 自动分时计费功能:白天和夜间应能自动更换单价
(二)性能 里程误差小于2%
(三)扩展功能
1.可增加时钟功能
2.可增加数据掉电保护功能
二.计划完成时间 三周
1.第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。
2.第二周完成软件的具体设计和硬件的制作。
3.第三周完成软件和硬件的联合调试。
基于单片机控制的出租车计价器设计
摘要:随着出租车行业的发展,出租车行业已经是城市交通的重要组成部分,以单片机为核心的智能出租车计价系统的开发就显得尤其重要。本设计采用89S51单片机为主控器,以FJ2E-D10NK霍尔传感器测距,实现对出租车的多功能的计价设计,并采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜,中途等待来调节单价,但同时在不计价的时候还能作为时钟为司机同志提供方便。
关键词:AT89S51,霍尔传感器,AT24C02,数码显示管,定时器/计数器
目 录
1引言……………………………………………………………………1
2总体设计方案…………………………………………………………………1
2.1方案论证与比较 ……………………………………………………………1
2.2主要元器件的介绍 ………………………………………………………2
2.3设计方框图…………………………………………………………………3
3电路设计原理分析 ………………………………………………………………4
3.1里程计算、计价单元的设计……………………………………………4
3.2数据显示单元设计……………………………………………………4
3.3掉电存储单元的设计……………………………………………………6
3.4按键单元的设计…………………………………………………………6
3.5主程序设计…………………………………………………………6
4总结与体会 … ……………………………………………………8
参考文献 …………………………………………………………8
附录 ……………………………………………………………………………………… 9
1 引言
本次课程设计利用单片机技术来实现一台多功能出租车计价器,具有性能可靠、电路简单、成本低等特点。
2 总体设计方案
2.1方案论证与比较
方案一:采用数字电路控制。其原理方框图如图2-1 所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。
图2-1数字电路方案
方案二:采用单片机控制。本方案以单片机为核心,设计上采用89S51单片机为主控器,以FJ2E-D10NK霍尔传感器测距,并采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。利用单片机丰富的I/O端口,及其控制的灵活性,实现基本的里程计价功能和价格调整、时钟显示功能。本电路设计的计价器不但能实现基本的计价,而且还能根据白天,黑夜,中途等待来调节单价,但同时在不计价的时候还能作为时钟为司机同志提供方便。单片机计算总价的公式为:总价=起步价+单价*(总里程-起步里程)。89S51作为一个单片微型计算系统,灵活性高,其强大的控制处理功能和可扩展功能为设计电路提供了很好的选择
原理结构如图2-2所示。
图2-2单片机控制方案
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能
在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
2.2主要元器件的介绍
(1)MCS—51 系列AT89S51
芯片管脚图如图2-3所示:
图2- 3 89S51 芯片管脚图
AT89S51的是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,高密度、非易失性储存生产,可灵活控制。
(2)FJ2E-D10NK霍尔传感器
它是一种磁传感器。可以检测磁场及其变化,可在各种磁场有关的场合中使用。以霍尔效应为其工作基础。它结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高,耐震动不怕一些污染和腐蚀,而且精度高工作温度范围宽。
FJ2E-D10NK集成霍尔开关由稳压器A,霍尔电势发生器(即硅霍尔片)B,差分放大器C,施密特触发器D和OC门输出E五个基本部分组成。(1)、(2)、(3)代表集成霍尔开关的三个引出端点。外形及接线如图2-4所示。
FJR2E-D10NKVccGNDOUT123 FJR2E-D10NK212K+4.5~12V3OUT
(a)外形图 (b)接线图
图2- 4霍尔传感器外形及接线
(3)数码管
数码管时一种半导体发光器件,其基本单元时发光二极管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。驱动时将所有数码管的8个显示笔划为“a、b、c、d、e、f、g、dp”的同名端连在一起,另外为每个数码管 的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,通过单片机对位选通COM端电路的控制来觉得数码管显示的字形。其管脚图见2-5所示。
图 2-5数码管脚图
2.3设计方框图
总框图的设计包括键盘控制模块,启动/清除开关模块,掉电储存单元模块 ,里程传感器,单片机控制模块部分,显示模块,锁存器和显示驱动电路。输入部分通过89S51控制输出的显示数字。其结构框图如2-6所示。
图2-6 结构总框图
3 电路设计原理分析
3.1里程计算、计价单元的设计
里程计算是通过安装在车轮上的霍尔传感器FJ2E-D10NK检测到的信号,送到单片机,经处理计算,送给显示单元的。其原理如图3-1所示。
车轮霍尔传感器小磁铁P3.289S51
图3-1 传感器测距示意图
由于FJ2E-D10NK属于开关型的霍尔传感器件,其工作电压范围(4.5V~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的I/O端口上,而且其最高检测频率可达到1MHZ。
我们选择了P3.2口作为信号的输入端,内部采用外部中断0车轮每转一圈,霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当技术达到1000次时,也就是1公里,单片机就控制将金额自动的增加,其计算公式:当前单价×公里数=金额。
3.2数据显示单元设计
用单片机驱动LED数码管按显示方式分,有静态显示和动态(扫描)显示 ,由于设计要求有单价(2位),路程(2位),总金额(3位)显示输出,加上我们另外扩展了时钟显示(包含时分秒的显示),而且在白天其对比度也不能够满足要求,因此我们采用了6位LED数码管道分屏显示,如图3-2(A、B、C、D)所示。
图3- 2(A)时钟显示 (显示为12点00分20秒)
图3- 2(B)总金额和单价显示(显示为总金额12.0元,每公里2.0元) 1 2 0 0 2
0
1 2. 0 —2. 0
图3- 2(C)路程和单价显示(图中显示总路程12公里,当前单价2.0元)
图3- 2(D)单价调整显示(图中显示为右起白天单价2.0元、晚上3.0/中途等待1.0元)
数据的分屏的显示是通过按键S1实现切换的。在出租车不走的时候,按下S1,可以实现数据的分屏显示;车载行走的时候只有总金额和单价显示屏在显示,当到达目的的的时候,就可以按下S1切换到里程和单价显示屏,供客户查询。显示电路的电路原理图如图3-3所示。
图3-3 显示器原理图
从单片机串口输出的信号先送到左边的移位寄存器(74HC164),由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器74HC164还兼作数码管的驱动,电路中的三个整流管D1~D3 的作用是降低数码管的工作电压,增加其使用寿命。
3.3掉电存储单元的设计
掉电存储单元的作用是在电源断开的时候,储存当前设定的单价信息。AT24C02是ATMEL公司的2 KB字节的电可擦除储存芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。掉电储存电路如图3-4所示。 1. 0 3. 0 2. 0 1 2 ——2. 0
图3-4 掉电储存电路
图中R8、R10是上拉电阻,其作用是减少AT24C02的静态功耗,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据地址)与单片机传送数据。
每当设定一次单价,系统就自动调用储存程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读储存器程序,将储存器的单价等信息,读到缓存单元内,供主程序使用。
3.4 按键单元的设计
电路共采用了五个按键,S1、S2、S3、S4、S5,其功能分别是:S1分屏显示切换按键,S2功能设定按键,S3:+/白天晚上切换按键,S4:—/中途等待开关,S5:上电复位。
3.5主程序设计
在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。主程序流程图如图9 所示。当按下S1时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计价时,系统自动对显示清零,并重新进行初始化过程。主程序流程图如图3-5所示。