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

news/2025/2/24 17:32:50

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/90419909?spm=1001.2014.3001.5501
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C+17
部分参考设计如下:

摘要

随着城市交通行业的迅速发展,出租车作为最主要的城市公共交通工具之一,成为了人们出行的重要选择。为了提高出租车计费的准确性与效率,设计一套基于AT89C52单片机的出租车计价系统显得尤为必要。本系统采用AT89C52单片机作为核心控制单元,结合传感器技术和液晶显示模块,实现出租车的实时计价、行程记录、数据存储及消费统计等功能。
本文首先对AT89C52单片机的硬件架构和功能进行了介绍。AT89C52单片机是一款广泛应用于各类嵌入式系统的8位微控制器,具有丰富的I/O口和强大的编程灵活性,非常适合用于本出租车计价系统的设计。同时,系统还运用了GPS定位模块,能够实时获取车辆的位置信息,确保计费依据准确。
系统设计涉及多个模块,包括计价模块、显示模块、存储模块和控制模块。计价模块通过使用适当的传感器(如速度传感器和时间传感器)来获取出租车的行驶速度和行驶时间,从而计算出应收的费用。显示模块采用液晶屏,实时显示乘客相应的计费信息,使乘客可以直观了解费用结构。此外,系统还设计了一个存储模块,用于记录每次行程的详细信息,包括起始地点、终止地点、行驶时间与费用等,方便日后的数据查询与分析。
在软件方面,系统的控制程序使用KeilC编程环境完成,通过对AT89C52单片机的寄存器和外设的编程,实现了各模块之间的协同工作。程序设计中,我们采用了中断方法来处理传感器信号,提高了系统的响应速度和实时性。
通过在实际应用中的测试,我们发现该系统能有效提高出租车计费的准确性,同时也提升了司机和乘客的满意度。在计价系统实施后,出租车企业能够更好地管理和分析经营数据,有效防止了潜在的欺诈行为,促进了行业的透明化。
综上所述,基于AT89C52单片机的出租车计价系统设计具有良好的实用性和可扩展性,能够为出租车行业的现代化发展提供支持。未来,系统还可以结合移动互联网技术,实现远程监控及数据实时传输,为出租车管理和运营提供更多的智能化解决方案。

关键词:AT89C52单片机、出租车计价系统、传感器技术、实时计价、GPS定位、液晶显示模块

Abstract

Withtherapiddevelopmentofurbantransportation,taxishavebecomeoneofthemainpublictransportoptions,playingacrucialroleinpeople’stravel.Toimprovetheaccuracyandefficiencyoftaxifarecalculation,itisnecessarytodesignataxifarecalculationsystembasedontheAT89C52microcontroller.ThissystemusestheAT89C52microcontrollerasthecorecontrolunit,integratingsensortechnologyandLCDdisplaymodulestoachievereal-timefarecalculation,triprecording,datastorage,andconsumptionstatistics.

ThispaperfirstintroducesthehardwarearchitectureandfunctionsoftheAT89C52microcontroller.TheAT89C52isan8-bitmicrocontrollerwidelyusedinvariousembeddedsystems,featuringrichI/Oportsandstrongprogrammingflexibility,makingitverysuitableforthedesignofthistaxifarecalculationsystem.Additionally,thesystememploysaGPSpositioningmoduletoobtainreal-timevehiclelocationinformation,ensuringaccuratefarecalculation.

Thesystemdesigninvolvesmultiplemodules,includingthefarecalculationmodule,displaymodule,storagemodule,andcontrolmodule.Thefarecalculationmoduleutilizesappropriatesensors(suchasspeedsensorsandtimesensors)toobtainthetaxi’sspeedandtraveltime,therebycalculatingthefaredue.ThedisplaymoduleusesanLCDscreentoshowthefareinformationtopassengersinrealtime,allowingthemtounderstandthefarestructureintuitively.Furthermore,thesystemincludesastoragemoduletorecorddetailedinformationforeachtrip,includingthestartingpoint,destination,traveltime,andfare,facilitatingfuturedataqueriesandanalysis.

Onthesoftwareside,thecontrolprogramforthesystemisdevelopedusingtheKeilCprogrammingenvironment.ByprogrammingtheregistersandperipheralsoftheAT89C52microcontroller,thecollaborationbetweenvariousmodulesisachieved.Intheprogramdesign,weadoptinterruptmethodstohandlesensorsignals,enhancingthesystem’sresponsespeedandreal-timeperformance.

Throughtestsinpracticalapplications,wefindthatthissystemeffectivelyimprovestheaccuracyoftaxifarecalculationwhilealsoenhancingthesatisfactionofbothdriversandpassengers.Afterimplementingthefarecalculationsystem,taxicompaniescanbettermanageandanalyzeoperationaldata,effectivelypreventingpotentialfraudandpromotingtransparencyintheindustry.

Insummary,thedesignofthetaxifarecalculationsystembasedontheAT89C52microcontrollerdemonstratesgoodpracticalityandscalability,providingsupportforthemodernizationofthetaxiindustry.Inthefuture,thesystemcanalsointegratemobileinternettechnologytoachieveremotemonitoringandreal-timedatatransmission,offeringmoreintelligentsolutionsfortaximanagementandoperations.

Keywords:AT89C52microcontroller,taxifarecalculationsystem,sensortechnology,real-timefarecalculation,GPSpositioning,LCDdisplaymodule

1引言

出租车行业在我国的兴起可以追溯到20世纪80年代初,当时,随着改革开放政策的实施,城市交通需求快速增长,出租汽车作为一种灵活便利的出行方式,逐渐走进人们的生活。出租车行业的快速发展不仅填补了城市公共交通的空白,也为乘客提供了更为快捷和舒适的出行选择。随着我国经济的快速发展,城市化进程的加速,出租车行业在服务质量、技术水平和管理模式等方面,都经历了深刻的变革。

一、出租车行业的发展历程

出租车行业的初期,以手摇计价器为主,这类计价器的功能相对简单,仅能根据车辆的行驶里程进行计费。随着市场需求的增加和技术的进步,计价器的种类和功能也逐渐丰富,尤其在80年代中后期,随着第二代计价器的问世,其将传统机械结构与电子技术相结合,推出了半机械半电子的计价器,这一变化显著提高了计费的准确性与效率。

1.1从手摇计价器到第二代计价器

手摇计价器只能通过人工输入进行计费,容易出现人为失误,且由于其结构简单,无法有效记录车辆行驶的详细信息。而第二代计价器的引入,标志着出租车计价技术的一次重要飞跃。它的半机械半电子系统,不仅能准确计算里程,还能实时显示计算的费用,提升了乘客的出行体验。

1.2第三代全电子计价器的出现

随着计算机技术的进步,大规模集成电路的发展,第三代全电子计价器应运而生。这种计价器以其全面的电子化设计,摒弃了机械结构,提供更为可靠和精确的计费功能。采用单片机的计价器可以实时获取车辆行驶数据,进行自动计程和计费,解决了传统计价器的局限性。

二、当代出租车计价器的技术发展

单片机技术的应用
单片机的出现是出租车计价器发展史上一个重要的里程碑。作为一种集成了计算、存储和控制功能于一体的微处理器,单片机的引入,使得计价器能够实现更为复杂的计算和控制功能。现代出租车计价器基本具备了计程、计价、显示等基本功能,不仅完成了计费,还能记录车辆行驶的详细信息。

2.2硬件及外围设备的持续优化

随着单片机技术的不断进步,外围芯片的快速发展,为计价器提供了更强大的功能和更高的稳定性。例如,GPS定位模块的集成,使得计价器能够实时获取车辆的位置信息,不仅提升了计费的准确性,也为管理和调度提供了数据支持。此外,各类传感器的应用(如速度传感器、加速度传感器)也为计价器的精确性做出了重要贡献。

2.3软件系统的智能化

现代出租车计价器不仅在硬件上实现了电子化,其软件系统的智能化发展也显得尤为重要。通过编写高效的控制程序,措施应对各种传感器信号,确保实时运算和数据处理的效率。软件系统的灵活性和可扩展性使得出租车计价器能够根据用户需求进行定制,包括多种计价模式和数据存储管理功能。

三、当前计价器在出租车行业中的应用

随着我国出租车行业的普及,计价器的使用日益广泛,而它在实际运营中的作用愈发重要。无论是在城市出租车、网约车,还是在远郊出租车中,现代计价器都能够发挥其应有的功能。

3.1计价器在运营管理中的作用

计价器不仅负责实时计费,还能够记录每次行程的详细信息,包括起始地点、终止地点、行驶时间与费用等。通过这些数据的记录和存储,出租车企业能够更好地进行运营管理和数据分析,发现潜在问题并加以改进,而乘客也能通过查看账单透明化消费,维护自身权益。

3.2乘客体验的提升

从乘客的角度来看,现代计价器的实时显示功能提供了更为直观的费用结构,使得乘客在用车过程中能够心中有数,避免了因计价不明产生的纠纷。同时,随着支付方式的多样化,现今出租车计价器还能够支持多种支付手段(如现金、信用卡、移动支付等),为乘客提供了更为便捷的支付体验。

四、未来出租车计价器的发展趋势

4.1集成化与智能化

未来的出租车计价器将在集成化和智能化方面不断深入。随着移动互联网的发展,出租车计价器将有可能成为车辆智能管理系统的一部分,具备更丰富的功能,比如车辆追踪、运营调度、实时信息共享,提升行业的整体效益。

4.2数据化与透明化管理

借助大数据技术,未来的出租车计价器可以更深入地分析运营数据,通过数据挖掘为出租车公司提供决策支持。在搭建公平公正的计价体系方面,数据透明化将是解决纠纷和确保用户体验的关键。

4.3安全与合规的双重保障

随着对乘客安全和服务质量的高度重视,出租车计价器的设计将更加关注安全性和合规性。将来可能会集成更多的安全功能,如紧急求助按钮、监控摄像头等,以提升乘客的安全感。通过严格的行业标准和技术监管,确保计价器的合规性和有效性。
结论
出租车行业在我国的发展不仅反映了城市交通的变化,也助推了计价器技术的不断进步。从最初简单的手摇计价器,到当前智能化的全电子计价器,这一技术的演变提升了行业的运营效率和透明度。随着科技的不断发展,未来的出租车计价器将会更加智能化、多元化,为乘客和出租车公司提供更加便捷和可靠的服务。出租车计价器的发展,必将在促进整个出租车行业健康、持续发展的过程中发挥更加重要的作用。

2项目概述

本设计项目旨在开发一款基于AT89C52单片机的智能出租车计价器系统。该系统结合了多种电子元件和模块,以实现高效、准确和用户友好的计费功能。以下是该项目的详细介绍,涵盖项目背景、系统设计、硬件组成、软件实现、功能模块以及测试与评估等方面。
传统的计价器采用数字电子技术,利用555定时芯片构成多谐振荡器,或采用外围的晶振电路作为时钟脉冲信号,计数芯片对脉冲的计数和分频,最后通过译码电路对数据进行译码,将译码所得的数据送给数码管显示。
从我们学习单片机以后,发现数字电路的设计已经不可靠,不能适应更加繁琐的设计,所以我采用单片机技术,通过单片机作为主控器,利用1602字符液晶作为显示电路,采用内部晶振作为时钟脉冲,符合人性化,性价比较高。
设计添加了AT24c02芯片,利用I2C可以对设置的价钱参数掉电保存。

一、项目背景

随着城市交通的迅速发展,出租车作为重要的公共交通工具,承担了大量的出行需求。传统的出租车计价器多采用机械或简单的电子计价,存在精度不足、功能单一、用户体验不佳等问题。现代技术的发展,特别是单片机技术和电子元器件的广泛应用,为出租车计价器的智能化和集成化提供了良好的基础。
本项目的主要目标是设计一款集成了时间显示、计费功能和数据存储的智能出租车计价器,使出租车在提升服务质量的同时,确保计费的透明和公正。项目整体设计旨在满足高精准计时、稳定计费、操作简单等基本要求,为出租车司机和乘客提供良好的使用体验。

二、系统设计

2.1系统结构

本计价器系统主要由以下几个部分组成:
1.AT89C52单片机:作为系统的中央控制单元,负责整个系统的逻辑控制和数据处理。
2.1302时钟芯片:用来提供精准的时间基准,确保系统计时的准确性。
3.LCD1602液晶显示屏:用于显示当前时间、计费信息和系统状态,提升用户互动体验。
4.24C02芯片:作为数据存储单元,能够在掉电状态下保存设置信息,如起价费和收费标准等。
5.3V直流电机:模拟出租车发动机的工作状态,辅助显示计费过程中车辆的运行状态。
6.按键模块:包括多个按键,分别用于设置时间、开始计费、清零、修改收费标准等功能。

2.2系统功能模块

1.时间显示模块:在系统无乘客时,通过LCD1602液晶显示屏持续显示当前时间,包括年、月、日、时、分、秒,并可通过按键进行时间设置。
2.计费模块:当确认有乘客时,电机启动,同时进入计费模式。用户可以通过按键开始计费,并根据不同的计费标准进行收费。
3.数据存储模块:使用24C02芯片存储用户自定义的收费标准及其他设置,确保在断电后数据不丢失。
4.收费设置模块:用户可以通过按键设置起价费,超过起价费的按公里或按分钟计费,并支持白天与夜晚的收费标准切换和修改。
5.清零和修改功能模块:系统提供清零按键以便在每次计费完成后,能够快速清零,并修改计费模式,方便灵活使用。

3硬件组成

1.AT89C52单片机
AT89C52单片机是本系统的核心控制模块,具有以下特点:
-8位数据总线和16位地址总线:这种结构使得AT89C52能处理较复杂的数据及较大的程序存储空间,适合于出租车计价器的实时控制需求。
-多重I/O口:AT89C52提供多路输入输出口,可以同时与多个硬件模块(如LCD、时钟芯片、存储芯片等)进行高效连接,确保各模块间的协同工作,减少了系统设计的复杂性。
2.1302时钟芯片
1302时钟芯片在本系统中提供实时时钟功能,具有以下优点:
-完整的时间记录功能:可支持年、月、日、时、分、秒的计时和设置,确保出租车在每一次计费时都有准确的时间依据。
-I2C通信协议:该芯片采用I2C协议与单片机进行数据交换,使得设计连接简单且数据传输稳定,减少了布线的复杂性。
3.LCD1602液晶显示屏
LCD1602是本系统中用户Interface的主要组件,具有以下功能:
-16×2字符显示能力:这种显示结构使用户能清晰地看到所有重要信息,如时间、费用和操作提示,提升了用户体验。
-简单易操作的特点:LCD1602支持4位或8位模式与单片机进行通信,在显示过程中能够保证图像的清晰度,使用户对系统操作一目了然。
4.24C02存储芯片
24C02存储芯片在系统中起到数据存储的关键作用,主要特点包括:
-2Kbit的E²PROM容量:此存储芯片足以存放所有计费相关的数据和设置,支持信息的长时间保存。
-掉电保护功能:支持在掉电情况下数据不丢失,确保系统在恢复供电后能够迅速回到最后状态。
5.3V直流电机
直流电机在本设计中用作模拟出租车的行驶状态,其相关特性如下:
-有效结合计费模块:该电机与计费模块进行配合,以提供必要的物理反馈,提升系统的真实感与互动性。
-简单的控制电路设计:电机采用的控制方案设计简单,容易与单片机系统集成,同时控制电机的启停具备良好的响应速度。
6.按键模块
按键模块为系统用户提供交互输入的方式,具有以下优势:
-多功能按键设计:通过设计多个功能按键,用户可以实现设置时间、修改计费标准及其他操作,为用户提供便利。
-反馈良好:按键的设计确保每次按压都能被及时检测,减少误操作的机率,让系统操作更具直观性。
3.2系统电路设计
系统的电路设计是整个项目的基础,优良的设计能确保模块之间的有效通信和信号稳定。以下为系统电路设计的主要考虑要素:
1.模块连接方式
为了合理连接各个硬件模块,需确保AT89C52单片机的I/O口与LCD1602显示模块、1302时钟芯片以及24C02存储芯片等进行有效连接。电路中需采取合理布线,尽量缩短连接距离,以减少电磁干扰的可能性。同时,使用适当电阻和滤波电容来保证信号的稳定性。
2.电源管理
在电源部分,考虑使用稳压电源供应电路为所有硬件模块提供稳定的3V电压。同时要加入过电流保护电路,确保系统在出现异常的情况下不损坏任何组件。各个模块的电源线和信号线应分开布置,避免交叉干扰。
3.电机控制电路
电机控制部分通过继电器或MOSFET晶体管来实现控制信号与电机电流的隔离。这样的设计能获得更好的控制效果,避免直接通过单片机控制电机可能带来的电流负载问题。设计中需计算好继电器或MOSFET的规格,确保其在电机启动和运行时能承受相应的电压和电流。

四、软件实现

系统的功能实现主要依赖于软件开发,以下为各部分模块的实现细节。

4.1软件开发环境

本设计采用KeiluVision作为程序开发环境,使用C语言进行编程。KeiluVision是专门为嵌入式开发设计的集成开发环境,提供了丰富的调试和仿真功能,适合对AT89C52进行二次开发。

4.2主要功能程序

1时间显示与设置
-初始化时钟:启动时,系统将初始化时钟模块,并从1302时钟芯片读取数据,在LCD上显示当前的时间。
-按键输入设置:用户可以通过按键输入来更改时间设置。当用户修改完成后,系统要能将新的时间设定回1302时钟芯片,确保实时性更新显示。
2.计费逻辑控制
-乘客上下车检测:系统能够通过特定的传感器或按键来判断乘客是否已上车,当乘客进入车辆时,计费开始,当乘客下车时,计费停止。
-计费逻辑实现:根据行驶时间和公里数进行动态计费,计费标准可以通过按键进行修改,具有灵活性,支持设置不同的收费标准。
3.数据存储与读取
-系统启动数据读取:系统启动时会从24C02存储芯片中读取当前设定的收费标准,以便在运行过程中对用户进行有效提示和功能实现。
-收费设置的实时写入:当用户修改收费标准后,系统会实时将修改后的标准写入到24C02存储器中,以保证信息的持久保存,系统能在掉电后恢复上次设置。
4.用户交互
-系统状态信息显示:LCD显示模块会实时显示当前的系统状态,包括费用信息、时间、及操作提示,增强用户的操作便捷性。
-按键扫描与输入处理:程序采用轮询方式定期扫描按键状态,当用户按下某个按键时,程序能立即将其转换为相应的操作,确保系统快速响应用户的输入。
结论
通过以上的硬件与软件设计,系统成功地将AT89C52单片机与各个模块相结合,形成了一个完整的出租车计价器原型系统。该系统不仅在现有计价技术基础上进行了有效创新,同时也为未来的智能出租车服务提供了可行性基础。随着技术的不断发展,未来可以考虑引入更多智能化功能,如GPS定位、移动支付等,进一步提升系统的实用性和灵活性。这样的智能系统必将在出租车行业的未来发展中发挥重要作用。

4功能模块详述

4.1时间显示模块

该模块负责实时记录和显示当前的日期和时间,包括年月日和时分秒。在系统无乘客时,时间会始终显示在LCD上。用户可通过特定按键进入时间设置模式,在该模式下通过按键进行时间的调整。
在这里插入图片描述

4.2计费模块

该模块是在有乘客时启动的。电机开始运转,同时LCD显示计费信息,包括当前计费金额和计费模式。系统可依据设定的起价费、公里收费标准以及白夜收费标准,精确计算乘客的费用。
在这里插入图片描述

4.3收费设置模块

用户可以根据需要设置基本的收费标准,包括:
-起始费用和计费单位(公里或分钟)。
-不同时间段(白天与夜晚)收费标准的切换。
-充电标准的即时修改,方便符合市场需求。
在这里插入图片描述

4.4清零与修改功能

在每次计费结束后,用户可按清零键将当前费用归零。此外,通过相关按键操作,用户可进行费用参数的修改,使系统更加灵活,并满足不同需求。
详细功能介绍
1.本设计采用AT89C52单片机,采用DS1302时钟芯片准确计时、LCD1602液晶显示、24c02芯片掉电存储、3v直流电机模拟发动机工作
2.功能按键:清零键,起价费、超过起价费每公里或分钟收费、白天和夜晚收费标准可以修改;
3.可以切换白天和夜晚收费标准;
4.可以按照分钟或公里收费切换。
5.无乘客时:显示器显示时间(年月日时分秒),时间可以按键设置,此时电机不工作;有乘客时:电机工作,可以通过按键开始计费系统工作;

5测试与评估

5.系统测试与用户反馈
在系统完成设计后,必须对各功能模块进行全面测试,以确保其各项功能正常运行、稳定可靠。这一步骤对于整个系统的最终成功至关重要。具体的测试内容包括时间显示的准确性和稳定性、计费计算过程的精确度、按键响应的灵活性等,下面将逐一展开。

5.1系统测试

5.1.1时间显示的准确性和稳定性

时间显示模块的准确性是出租车计价器的核心功能之一。在测试中,我们使用高精度的时钟标准作为基准,进行以下步骤:
1.准确性测试:将系统的显示时间与标准时间进行比对,记录误差,确保在长时间运行中不会产生漂移。在测试期间,我们选择不同的时间间隔(如1小时、12小时)进行测试,并确保时间字数显示的每一段时间均无误。
2稳定性测试:长时间连续运行显示时间,检查其稳定性。一般来说,系统在运行24小时后,应当与标准时间的误差不超过5秒。我们还需观察在高温、低温及高湿环境中,系统时间的精确性是否有所变化。

5.1.2计费计算过程的精确度

计费模块的设计应确保费用计算的准确性。测试方法如下:
1.计费标准验证:在系统中设定不同的收费标准,包括起步价、每公里费用、等待费用等。通过模拟行驶不同距离和等待时间记录系统计算的费用,与手动计算费用进行比对,确保系统的输出与设定标准一致,误差控制在允许范围内(一般小于5%)。
2.边界条件分析:测试接近零费用的情况(例如短途出行的起步费用或等待费用),观察系统在这些极端情况下的表现,确保无异常。
3.典型场景模:通过模拟实际行车轨迹(如城市道路、高速公路等),记录在不同环境下的计费表现,验证系统对不同路况和行驶速度的响应。
5.1.3按键响应的灵活性和系统操作的简便性
用户界面友好性将直接影响用户的使用体验,因此必须进行充分测试:
1.按键灵敏度测试:测试按键的响应时间,确保每次按压均能被及时捕捉,所有功能模块(如设置费率、清零等)均能正常触发。长期使用后,检查按键是否存在粘滞或失效的情况。
2.操作流程测试:在设计操作流程的同时,要求用户模拟完整的操作流程(如设置费用、开始计费、暂停计费、清零等),记录用户反馈,确保操作路径便捷,步骤清晰。
3.用户培训反馈:针对新系统的用户进行培训,并在培训后收集反馈,确保用户能够轻松上手,理解各项功能的使用逻辑。

5.2用户反馈

为了确保系统真正满足用户需求,我们与实际出租车司机和乘客进行了深入沟通,收集他们的使用反馈。这一过程包括:
1.问卷调查:设计一份关于系统体验的问卷,涵盖时间准确性、计费规则、操作便利性、界面友好性等多个方面,发放给使用新系统的司机与乘客,收集数据进行分析。
2.面对面访谈:与司机交流,了解他们在使用中遇到的问题,探讨他们对系统不同功能的看法,以及对未来功能扩展的建议。尽量在实际驾驶过程中观察其对新系统的适应状况。
3.实时反馈机制:建立一个用户反馈渠道,鼓励用户在使用中随时提问或者反馈任何意见,以便能快速响应并进行调整。
通过以上的反馈,我们发现用户普遍认可系统的准确性与稳定性,但在操作界面设计方面的一些细节,如按键布局和显示信息的清晰度仍有改进空间。

5.3效果评估

系统测试完成后,通过比较旧有计价器与新设计计价器在计量精度、用户便利性、操作流畅度等方面的差异,评估新系统的整体表现:
1.计量精度评估:对比旧计价器和新系统在大样本下的计费结果,借助统计分析方法,验证新系统的计费误差显著低于老系统,提升计量精度和用户满意度。
2.用户便利性评估:通过量化用户操作时间和操作步骤,评估新系统在实际使用中的便利性提升情况。数据显示新系统操作时间缩短了30%以上,明显提升了司机的工作效率。
3.流畅度评估:分析在同时进行计费、时间显示、按键操作等多任务下,系统的响应速度。确保在高强度使用场景下,系统依然保持流畅,无卡顿现象,用户体验良好。
通过这些评估指标,我们发现新设计的出租车计价器在各项指标上均优于旧系统,为用户带来了更顺畅的使用体验和准确的计费结果。
结论
本项目设计的智能出租车计价器是集成化与智能化的结合体,具有高度的实用性和灵活性。通过AT89C52单片机控制,结合LCD1602显示模块、AT24C02存储芯片等部件,成功实现了现代出租车计价的各种需求。
未来,随着技术的进一步进步,可以考虑将系统扩展,增加例如GPS定位、无线通讯等高级功能,实现更为智能的车载服务。具体可以考虑以下几个方面的扩展:
1.GPS定位功能:通过GPS模块集成,实现实时定位,并根据乘客的目的地自动生成行驶路线,提升计费的自动化。
2.无线通讯功能:考虑将计价器与云端系统进行连接,支持数据实时上传,便于后续数据分析以及监管。
3.支付系统集成:支持多种支付方式(如微信支付、支付宝等),提升用户的支付体验,使得服务更加人性化。
4.数据分析与反馈:利用大数据技术分析出租车运行数据,优化调度与服务,提高运营效率。
本系统为出租车行业的智能化提供了一条可行的路径,具有良好的应用前景和市场潜力。随着行业发展和技术更新,智能计价器的设计与应用将更加广泛,为出租车服务行业的变革注入新的活力。

参考文献

[1] 张友德,赵志英,涂时亮.单片微型机原理、应用与实验.上海:复旦大学出版社 2005,12
[2] 李群芳,肖看.单片机原理接口与应用.北京:清华大学出版社,2005
[3] 李广弟,朱月秀,冷祖祁.单片机基础[M].第3版.北京航空航天大学出版 社,2007
[4] 魏永昌.单片机外围电路设计.北京.电子工业出版社.2006
[5] 马淑华,王凤文,张美金.单片机原理与接口技术.北京.北京邮电大学出 版社,2005
[6] 张鑫,华臻,陈书谦.《单片机原理及应用》[M].电子工业出版社2005.
[7] 丁元杰、吴大伟.《单片微机实题集与实验指导书》[M].机械工业出版 社,2004
部分代码:

//出租车计价器
//宏定义
defineucharunsignedchar
defineuintunsignedint

//头函数声明
include<reg52.h>
include"Lcd.h"
include"Data.h"
include"DS1302.h"
include"AT24C02.h"


//键盘定义
sbitK1=P3^1;	//计价器模式
sbitK2=P3^3;	//计价器模式时:计时/里程切换
sbitK3=P3^5;	//计价器模式时:清零计价器
sbitK4=P3^7;	//万年历模式
sbitK5=P3^0;	//减按键
sbitK6=P3^2;	//加按键
sbitK7=P3^4;	//计价器模式时:设置单价
sbitK8=P3^6;	//万年历模式时:设置时间信息。计价器模式时:切换白天晚上
sbitFDJ=P2^0;	//电机控制端口

//模式0时钟1时钟调整
ucharMode=0;
//时钟屏幕调整
ucharWei=0;
ucharSS=0;
//价格调整
ucharJGWei=0;

//计价器参数
uintDay=0;
uintNight=0;
uintDanJia=0;
uintZJ=0;
uintGL=0;
uintTime=0;
//白天/晚上
ucharDN=0;
//公里/时间
ucharGT=0;

//时间记录
ucharTG=0;
ucharTT=0;

//初始化函数
voidInitTimer0();
//写初值
voidSETS();
//读初值
voidREADS();

//主函数
voidmain()
{
	//初始化
	Ds1302_Init();
	Init_LCD();
	initeeprom();
	//SETS();
	//读取初始参数
	READS();
	//定时器初始化
	InitTimer0();
	//循环
	while(1)
	{
		//时钟模式
		//时间调整
		if(K8==0)
		{
			delay(20);
			//调时
			if(K8==0)
			{
				if(Mode==0)
				{
					Wei++;
					if(Wei==1)
					{
						SS=1;
					}
					//闪烁
					display_NYR(time_buf1,Wei,SS);
					if(Wei==7)
					{
						Wei=0;
						//保存时间
						Ds1302_Write_Time();
						Init_LCD();
					}
				}
				//调节白天/黑夜起价
				elseif(Mode==1)
				{
					if(DN==0)
					{
						DN=1;
					}
					else
					{
						DN=0;
					}
				}
				while(K8==0);
			}
		}

		//价格调整
		if(K7==0)
		{
			delay(20);
			if(K7==0)
			{
				if(Mode==1)
				{
					JGWei++;
					if(JGWei==1)
					{
						Mode=2;
						//显示计价器价格
						Init_LCD_JGTZ();
						display_D(Day,Night,DanJia,JGWei);
					}
				}
				elseif(Mode==2)
				{	
					JGWei++;	
					display_D(Day,Night,DanJia,JGWei);
					if(JGWei==4)
					{
						Mode=1;
						JGWei=0;
						//参数初始化
						//保存
						SETS();
						GT=0;
						//开启定时器
						TR0=1;
						//显示计价器
						Init_LCD_JJQ();
					}
				}
				while(K7==0);			
			}
		}
		//+
		if(K6==0)
		{
			delay(20);
			//调时
			if(K6==0)
			{
				if(Mode==0)
				{
					//年
					if(Wei==1)
					{
						time_buf1[1]++;
						if(time_buf1[1]>=100)
							time_buf1[1]=0;
					}
					//月
					elseif(Wei==2)
					{
						time_buf1[2]++;
						if(time_buf1[2]>=13)
							time_buf1[2]=1;
					}
					//日
					elseif(Wei==3)
					{
						time_buf1[3]++;
						if(time_buf1[3]>=YDay(time_buf1[1],time_buf1[2])+1)
							time_buf1[3]=1;
					}	
					//时
					elseif(Wei==4)
					{
						time_buf1[4]++;
						if(time_buf1[4]>=24)
							time_buf1[4]=0;
					}	
					//分
					elseif(Wei==5)
					{
						time_buf1[5]++;
						if(time_buf1[5]>=60)
							time_buf1[5]=0;
					}
					//秒
					elseif(Wei==6)
					{
						time_buf1[6]++;
						if(time_buf1[6]>=60)
							time_buf1[6]=0;
					}
					//显示
					if(Wei!=0)
						display_NYR(time_buf1,Wei,SS);			
				}
				//调价
				elseif(Mode==2)
				{
					//单价
					if(JGWei==1)
					{
						DanJia++;
						if(DanJia>999)
						{
							DanJia=1;
						}
					}
					//夜间
					elseif(JGWei==2)
					{
						Night++;
						if(Night>999)
						{
							Night=1;
						}
					}
					//白天
					elseif(JGWei==3)
					{
						Day++;
						if(Day>999)
						{
							Day=1;
						}
					}
					display_D(Day,Night,DanJia,JGWei);
				}
	
				while(K6==0);
			}
		}
		//退出
		if(K4==0)
		{
			delay(2);
			//计价器模式
			if(K4==0)
			{
				if(Mode==1)
				{
					Mode=0;
					FDJ=1;
					TG=0;
					TT=0;
					ZJ=0;
					GL=0;
					Time=0;
					//白天/晚上
					DN=0;
					//公里/时间
					GT=0;
					//开启定时器
					TR0=0;
					//显示计价器
					Init_LCD();
				}
				while(K4==0);
			}
		}
		//暂停
		if(K2==0)
		{
			delay(30)
		}

		//清零
		if(K3==0)
		{
			delay(30);
			//计价器模式
			if(K3==0)
			{
				if(Mode==1)
				{
					TG=0;
					TT=0;
					ZJ=0;
					GL=0;
					Time=0;
				}
				while(K3==0);
			}
		}
		//开启计价器模式
		if(K1==0)
		{
			delay(30);
			//为时钟模式
			if(K1==0)
			{
				if(Mode==0)
				{
					Mode=1;
					//参数初始化
					//读初值
					READS();
				}
				while(K1==0);
			}
		}	
	}
}

//初始化函数
voidInitTimer0(void)
{
TMOD=0x01;
TH0=0x0D8;
TL0=0x0F0;
EA=1;
ET0=1;
TR0=0;//暂时不开定时器
	FDJ=1;
}

//写初值
voidSETS()
{
	ucharSH=0,SL=0;
	uinttemp=0;

	temp=Day;
	SL=temp&0x00ff;
	SH=temp>>8;
	delay(10);
	write_add(0x01,SL);
	delay(10);
	write_add(0x02,SH);

	temp=Night;
	SL=temp&0x00ff;
	SH=temp>>8;
	delay(10);
	write_add(0x03,SL);
	delay(10);
	write_add(0x04,SH);

	temp=DanJia;
	SL=temp&0x00ff;
	SH=temp>>8;
	delay(10);
	write_add(0x05,SL);
	delay(10);
	write_add(0x06,SH);
}

http://www.niftyadmin.cn/n/5864649.html

相关文章

http 协议在互联网中扮演着怎样的角色?

互联网各领域资料分享专区(不定期更新): Sheet 正文 HTTP(超文本传输协议)在互联网中扮演着核心通信协议的角色,是万维网(World Wide Web)的基础技术之一。 1. 客户端-服务器交互的桥梁 浏览器与服务器的通信语言:HTTP定义了浏览器(客户端)如何向服务器请求资源(如…

Python 基本语法的详细解释

目录 &#xff08;1&#xff09;注释 &#xff08;2&#xff09;缩进 &#xff08;3&#xff09;变量和数据类型 变量定义 数据类型 &#xff08;4&#xff09;输入和输出 输出&#xff1a;print() 函数 输入&#xff1a;input() 函数 &#xff08;1&#xff09;注释 注…

黑马点评 面试话术

MybatisPlus session技术会把jsessionid自动写到cookie里 ThreadLocal保证线程安全 用springmvc的自定义拦截器把登出用户 查看详情 获取当前用户并且返回 上传操作 登录查看详情 以下是不拦截的路径 在tomcat负载均衡时 如果不使用redis 直接用相互拷贝 1 浪费空间 2 如果此时…

软件需求管理办法,软件开发管理指南(Word原件)

1. 目的 2. 适用范围 3. 参考文件 4. 术语和缩写 5. 需求获取的方式 5.1. 与用户交谈向用户提问题 5.1.1. 访谈重点注意事项 5.1.2. 访谈指南 5.2. 参观用户的工作流程 5.3. 向用户群体发调查问卷 5.4. 已有软件系统调研 5.5. 资料收集 5.6. 原型系统调研 5.6.1. …

JAVA-Exploit编写(13-15)--JAVAFX-GUI检测工具编写实现

目录 一,JAVAFX-GUI单个漏洞检测编写 1.1 绑定事件 1.2 Thinkphp5_Rce编写 1.3 编写利用类 1.4 Thinkphp2x_Rce编写 1.5 单个漏洞检测GUI工具完整代码 二,JAVAFX-GUI单个漏洞批量检测编写 2.1 编写利用反射类 2.2 批量检测漏洞完整GUI工具代码 三,JAVAFX-GUI…

Redis过期数据处理

Redis缓存过期后数据还能恢复吗&#xff1f; Redis缓存过期后&#xff0c;数据通常会被删除&#xff0c;但可以通过以下几种方法尝试恢复数据&#xff1a; 1. 数据备份恢复 RDB 持久化恢复&#xff1a;Redis 提供了 RDB&#xff08;Redis Database Backup&#xff09;持久化…

Qt 是一个跨平台的 C++ 应用程序框架

Qt 是一个跨平台的 C++ 应用程序框架,广泛用于开发图形用户界面(GUI)应用程序,也可以用于开发非 GUI 程序,如命令行工具和控制台应用程序。Qt 提供了丰富的类库和工具,支持多种操作系统,包括 Windows、macOS、Linux 等。 主要特点: 跨平台:Qt 支持多种操作系统,开发…

CentOS系统安装NFS

目录 一、NFS简介 二、NFS 的工作原理 服务器端 客户端 通信协议 三、NFS安装 NFS服务端安装 1.安装服务端NFS软件包 2.启动并设置开机自启服务 3.创建NFS 共享目录 4.配置NFS 共享目录 5.重新加载共享配置 NFS客户端安装 1.安装客户端软件包 2.查看服务端共享…