基于单片机的出租车计价器.doc

上传人:b****3 文档编号:2491136 上传时间:2022-10-30 格式:DOC 页数:15 大小:648.50KB
下载 相关 举报
基于单片机的出租车计价器.doc_第1页
第1页 / 共15页
基于单片机的出租车计价器.doc_第2页
第2页 / 共15页
基于单片机的出租车计价器.doc_第3页
第3页 / 共15页
基于单片机的出租车计价器.doc_第4页
第4页 / 共15页
基于单片机的出租车计价器.doc_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于单片机的出租车计价器.doc

《基于单片机的出租车计价器.doc》由会员分享,可在线阅读,更多相关《基于单片机的出租车计价器.doc(15页珍藏版)》请在冰豆网上搜索。

基于单片机的出租车计价器.doc

基于单片机控制的出租车计价器

摘要

随着出租车行业的发展,出租车已经是城市交通的重要组成部分,从加强行业管理以及减少司机与乘客的纠纷出发,具有良好性能的计价器对出租车司机和乘客来说都是很必要的。

而采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试。

而采用单片机进行的设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易地实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。

本设计以89S51单片机为中心、附加A44E霍尔传感器测距,实现对出租车计价统计,采用AT24C02实现在系统掉电的时候保存单价和系统时间等信息,输出采用8段数码显示管。

目录

前言………………………………………………………………………………………4

第一章系统工作原理…………………………5

1.1功能说明

1.2基本原理

第二章硬件设计……………………………………………6

2.1单片机最小系统单元

2.2A44E霍尔传感器检测单元

2.3AT24C01存储单元

2.4键盘调整单元

2.5显示单元

第三章软件设计……………………………………………9

3.1系统主程序

3.2中断程序

3.2.1里程计数中断程序

3.2.2中途等待中断程序

3.3计算程序

3.4显示程序

3.5键盘程序

第四章总结…………………………………………11

附录…………………………………………………………………………………………14

参考文献………………………………………………………………………………12

本科生课程设计成绩评定表…………………………………………………13

14

前言

本次课程设计利用单片机技术来实现一台多功能出租车计价器,具有性能可靠、电路简单、成本低等特点。

第一章系统工作原理

1.1功能说明

出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。

从起步价开始,当汽车程行驶未满3公里时,均按起步价计算。

过3公里后,实现每1公里单价收费,中间遇暂停时,计程数不再增加,开始计时收费,测距收费和测时收费的和便构成了一位乘客的车费。

同时,白天和夜晚价格不同,可以进行切换。

白天单价、夜晚单价、等待单价和起步价格都可通过独立键盘进行调节。

(默认起步价为5元/3公里,里程单价白天为1.5元/公里,夜晚为1.8元/公里,等待计时单价为0.5元/5分钟)1.2基本原理

计数器系统主要由五部分组成:

A44E霍尔传感器、AT89S52单片机、独立键盘、EEPROMAT24C01和显示数码管。

   霍尔传感器安装在车轮上,主要检测汽车行进的公里数,并产生一系列相应的脉冲输出,脉冲送到单片机进行处理,单片机根据程序设定通过计算脉冲数换算出行驶公里数,再根据从EEPROM中读取的价格等相关数据进行金额的计算,计算好的金额、里程和单价都实时地显示在数码管上。

独立键盘可以调节价格等相关数据,按下相应的按钮,产生信号交由单片机处理并实时显示出来,调节好的数据存储到EEPROM中,掉电后可以使调好的数据不丢失,下次得电后直接从EEPROM读到单片机,系统结构图如图1。

 图1系统结构图        

第二章硬件设计

2.1单片机最小系统单元

主控机系统采用了Atmel公司生产的AT89S52单片机,它含有256字节数据存储器,内置8K的电可擦除FLASHROM,可重复编程,大小满足主控机软件系统设计,所以不必再扩展程序存储器。

复位电路和晶振电路是AT89S52工作所需的最简外围电路。

单片机最小系统电路图如图2所示。

图2单片机最小系统图

AT89S52的复位端是一个史密特触发输入,高电平有效。

RST端若由低电平上升到高电平并持续2个周期,系统将实现一次复位操作。

在复位电路中,按一下复位开关就使在RST端出现一段时间的高电平,外接11.0592M晶振和两个30pF电容组成系统的内部时钟电路。

2.2A44E霍尔传感器检测单元

A44E属于开关型的霍尔器件,其工作电压范围比较宽(4.5~18V),其输出的信号符合TTL电平标准,可以直接接到单片机的IO端口上,而且其最高检测频率可达到1MHZ。

A44E集成霍耳开关由稳压器A、霍耳电势发生器(即硅霍耳片)B、差分放大器C、施密特触发器D和OC门输出E五个基本部分组成。

在输入端输入电压Vcc,经稳压器稳压后加在霍尔电势发生器的两端,根据霍尔效应原理,当霍尔片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍尔电势差VH输出,该VH信号经放大器放大后送至施密特触发器整形,使其成为方波输送到OC门输出。

当施加的磁场达到工作点(即Bop)时,触发器输出高电压(相对于地电位),使三极管导通,此时OC门输出端输出低电压,三极管截止,使OC门输出高电压,这种状态为关。

这样两次电压变换,使霍尔开关完成了一次开关动作。

A44E霍尔传感器原理如图3所示。

图3 A44E霍尔传感器原理

里程计算是通过安装在车轮上的霍尔传感器检测到的脉冲信号,送到单片机产生中断,单片机再根据程序设定,计算出里程。

其原理如图4所示。

图4传感器测距示意图

本系统选择了将A44E的脉冲输出口接到P3.3口外部中断1作为信号的输入端(这样可以减少程序设计的麻烦),车轮每转一圈(设车轮的周长是1米),霍尔开关就检测并输出信号,引起单片机的中断,对脉冲计数,当计数达到1000次时,即1公里,单片机就控制将金额自动增加,如图5。

图5 A44E霍尔元件接线图

2.3AT24C01存储单元

存储单元的作用是在电源断开的时候,存储当前设定的单价信息。

AT24C01是Ateml公司的1KB的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。

AT24C02芯片引脚配置如图6所示。

存储单元电路连接如图7所示

图7 存储单元电路原理图

图中R4、R5是上拉电阻,其作用是减少AT24C01的静态功耗。

由于AT24C01的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(时钟脉冲)和SDA(数据/地址)与单片机P2.2和P2.3口连接,进行传送数据。

   每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。

2.4键盘调整单元

当单价等信息需要进行修改时,就要用到键盘进行修改。

由于调节信息不多,故采用4个独立键盘即可,分别实现清零、切换、增大、减小和功能等作用。

电路原理如图8所示。

图8键盘调整单元接线图

S1:

接P1.0口,对上一次的计费进行清零,为下次载客准备

S2:

接P1.1口,实现白天和夜晚单价的切换;当功能键S4按下时,S2可对数据进行增大。

S3:

接P1.2口,当功能键S4按下时,S3可对数据进行减小。

S4:

接P1.3口,按1次,进入调整白天单价;按2次,进入调整夜晚单价;按3次,进入调整等待单价;按4次,进入调整起步价;按5次,返回。

2.5显示单元

显示单元由7个8段共阳数码管组成,采用动态扫描进行显示。

前三个数码管分别接P3.0、P3.1和P3.2,用于显示总金额;中间两个分别接P3.4和P3.5,用于显示里程;后边两个分别接P3.6和P3.7,用于显示单价。

电路如图9所示。

图9数码管显示图

第三章软件设计

软件的设计的重点在秒脉冲信号的产生,显示和按键复位、清零和暂停继

续的实现,秒脉冲的产生利用延时来实现,采用动态显示。

3.1系统主程序

在主程序模块中,需要完成对各参量和接口的初始化、出租车起价和单价的初始化以及中断、计算、循环等工作。

另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。

然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。

当汽车运行起来时,就启动计价,根据里程寄存器中的内容计算和判断行驶里程是否已超过起步价公里数。

若已超过,则根据里程值、每公里的单价数和起步价数来计算出当前的总金额,并将结果存于总金额寄存器中;中途等待时,无脉冲输入,不产生中断,当时间超过等待设定值时,开始进行计时,并把等待价格加到总金额里,然后将总金额、里程和单价送数码管显示出来。

程序流程如图10所示。

图10主程序流程图图11计算程序流程图

3.2中断程序

3.2.1 里程计数中断程序

每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满1000次时,进入里程计数中断服务程序中,里程变量加一。

主函数中总金额也相应地变化。

3.2.2中途等待中断程序

在中途等待中断程序中,每1ms产生一次中断,将当前里程值送入某个缓存变量,每5分钟将缓存变量中的值和当前里程值比较,当汽车停止,霍尔传感器5分钟没有输出信号,当前里程值和缓存变量内的值相同,则进入等待计时,每5分钟记一次价格。

3.3 计算程序

计算程序根据里程数分别进入不同的计算公式。

如果里程大于3公里,则执行公式:

总金额=起步价+(里程-3)*单价+等待时间*等待单价;否则,执行公式:

总金额=起步价+等待时间*等待单价。

程序流程图如图11所示。

3.4 显示程序

显示程序利用定时器每1ms产生一次中断,相应变量置位,点亮一个数码管,显示一位数据,利用主函数内的循环,实现动态扫描显示,同时根据数码管余辉和人眼暂留现象,即可实现显示。

3.5 键盘程序

键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。

流程图如图12。

图12 键盘程序流程图

第四章 总结

经过这些天有关于出租车计价器的课程设计,使我对单片机的应用有了更深的了解。

在课程设计的过程中,还是碰到了许多的问题。

比如,对于数码管动态扫描显示和键盘的延时防抖的综合编程不能较好地解决;对于代码的前后顺序及调用掌握得还不够好;对于一些相关的应用软件没能熟练掌握。

通过这几天晚上的苦想和反复调

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1