基于AT89C52单片机的出租车计价器
点击链接获取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);
}
相关文章:
基于AT89C52单片机的出租车计价器
点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90419909?spm1001.2014.3001.5501 C17 部分参考设计如下: 摘要 随着城市交通行业的迅速发展,出租车作为最主要的城市公共交通工具之一…...
C++入门基础课程讲解
C编程入门课程 | 码学堂 竞赛名师授课,不仅涵盖了从零开始学习C的所有必要知识点,还深入探讨了基础算法及其应用,课程内容包括: (1)编程及上机平台介绍:包括推荐使用的IDE和在线编译器…...
Graspness Discovery in Clutters for Fast and Accurate Grasp Detection 解读
研究背景 研究问题 :这篇文章要解决的问题是如何在杂乱的环境中快速且准确地检测抓取姿态。传统的 6自由度抓取方法将场景中的所有点视为平等,并采用均匀采样来选择抓取候选点,但忽略了抓取位置的重要性,这极大地影响了抓取姿态检…...
MyBatis的CRUD
1. what MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射实体类型、接口、Java POJO(Plain Old Java Objects,普…...
leetcode 题目解析 第3题 无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “b”…...
深度学习入门--神经网络
初学,若有错误,恳请指正。 目录 初学,若有错误,恳请指正。 3.1 从感知机到神经网络 3.1.1 神经网络的例子 3.1.2 复习感知机 3.1.3 激活函数登场 3.2 激活函数 3.2.1 sigmoid 函数 3.2.2 阶跃函数的实现 3.2.3 阶跃函数…...
pycharm 调试 debug 进入 remote_sources
解决办法1: pycharm函数跳转到remote_sources中的文件中_pycharm修改remotesource包存放地址-CSDN博客 file->settings->project structure将项目文件夹设为"Sources"(此时文件夹会变为蓝色)。 解决方法2 Debug:使用Pychar…...
【复习】计算机网络
网络模型 OSI 应用层:给应用程序提供统一的接口表示层:把数据转换成兼容另一个系统能识别的格式会话层:负责建立、管理、终止表示层实体之间的通信会话传输层:负责端到端的数据传输网络层:负责数据的路由、转发、分片…...
CentOS停服后的替代选择:openEuler、Rocky Linux及其他系统的未来展望
CentOS停服后的替代选择:openEuler、Rocky Linux及其他系统的未来展望 引言CentOS停服的背景华为openEuler:面向未来的开源操作系统1. 简介2. 特点3. 发展趋势 Rocky Linux:CentOS的精神继承者1. 简介2. 特点3. 发展趋势 其他可选的替代系统1…...
ollama+open-webui,本地部署自己的大模型
目录 一、效果预览 二、部署ollama 1.ollama说明 2.安装流程 2.1 windows系统 2.1.1下载安装包 2.1.2验证安装结果 2.1.3设置模型文件保存地址 2.1.4拉取大模型镜像 2.2linux系统 2.2.1下载并安装ollama 2.2.2设置环境变量 2.2.3拉取模型文件 三、部署open-webui…...
Oracle EBS 12.1和APEX 集成时 Apache的配置代理
在有些场景下,apex的前端服务不是和oracle EBS 应用部署在同一个服务器上或者要求apex和访问地址和EBS公用同一个域名同一个端口,那么怎么才能做到用EBS 的域名和端口来实现对apex的访问呢 通过配置代理规则解决,以Oracle EBS 12.1.3 为例&am…...
hive开窗函数边界值ROWS BETWEEN 和 RANGE BETWEEN区别
目录 一、概念 1.rows between ... and ... 2.range between ... and ... 二、语法 1.关键词含义 一、概念 1.rows between ... and ... rows:指以行号来决定frame的范围,是物理意义上的行。 2.range between ... and ... range:指以当…...
HTML第一节
一.HTML标签 注意:1.双标签是要包裹内容的 (单标签单独记) 二.HTML骨架 1.骨架规则 注意:1.title为网页的名字 2.VS code自动生成骨架 注意:1.先输入感叹号(必须为英文) 再按回车 三.标签间的…...
Google第三方库详解------ProtoBuf详解 + 样例(5万字详解!)
目录 前言: 提示: 插件 入门: ProtoBuf普通字段类型: 编译命令: 序列化与反序列化: Proto3语法: 字段规则:数组类型 应用 将通讯录数据序列化后写入文件 工具介绍&#x…...
机器学习数学通关指南——泰勒公式
前言 本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 一句话总结 泰勒公式是用多…...
如果后台的Long类型的数据返回是null,那么Android客户端的数据bean的kotlin的Long类型的字段接受到数据后是null空指针吗?
如果后台的Long类型的数据返回是null,那么Android客户端的数据bean的kotlin的Long类型的字段接受到数据后是null空指针吗? DeepSeek R1 思考 35 秒 思考过程 好的,用户的问题是关于在Android客户端使用Kotlin处理后台返回的Long类型数据为n…...
ai-financial-agent - 为金融投资打造的AI代理
探索人工智能在投资研究中的应用。本项目仅用于**教育**目的,不用于真实交易或投资。 作者声明: 本项目仅用于教育和研究目的。 不用于真实交易或投资不提供任何保证或担保过去的表现并不代表未来的结果Creator 对经济损失不承担任何责任咨询财务顾问…...
学习路程三 数据加载及向量化
前序 之前简单粗暴将LangChain分了几块,现在就挨着了解学习每块内容。今天主要从文档这条路来看。 本地文档这一条链路,通过加载,分割,向量化,再存储数据库 ps:看到这里还想继续实操下去,可以…...
基于GWO灰狼优化的WSN网络最优节点部署算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 无线传感器网络(Wireless Sensor Network, WSN)由大量分布式传感器节点组成,用于监测物理或环境状况。节点部署是 WSN 的关键问…...
保姆级! 本地部署DeepSeek-R1大模型 安装Ollama Api 后,Postman本地调用 deepseek
要在Postman中访问Ollama API并调用DeepSeek模型,你需要遵循以下步骤。首先,确保你有一个有效的Ollama服务器实例运行中,并且DeepSeek模型已经被加载。 可以参考我的这篇博客 保姆级!使用Ollama本地部署DeepSeek-R1大模型 并java…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...
