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

3出租车计价器硬件设计

硬件是一个电子器具能否顺利运行的重要保障,它是软件的物质基础和载体。本系统的硬件设计主要包含K24C02记忆存储模块,用于存储数据;DS1302时钟模块,为计价器计时;A44E霍尔传感器电路,丈量里程;数据显示部件,把信息显示在液晶屏上;里程计算及计价单元的设计,把单价与里程进行运算;以及最重要的单片机STC89C52。充分发挥各部分硬件部件的功能特点,组成此多用途的出租车计价器设计。合理搭配使用,尽量兼顾性能与性价比。
3.1系统的硬件构成及功能
硬件大体上可分为7个模块,方案图如图3-1。包含了以下部件:STC89C52,每公里价格与总价显示部件,键盘操作部分,里程计算部分,1302时钟显示模块,K24C02存储器存储模块。
通过正确的链接单片机上的多种IO端口,达到可以显示里程计算功能,调价功能以及时间展示功能。不仅能达到所要求的功能,而且具有充足的拓展余地,还能非常便利地提升系统功能。后面“多功能出租车计价器总体电路图”有更为详细的内容。


图3.1 单片机控制方案图
3.5时钟电路设计
美国The Dallas Group of America公司推出了一款名为DS1302的时钟芯片。其特点是性能高、功耗低、工作时功率小于1mW。内含一个31字节的静态RAM的实时时钟电路,这款芯片能在时分秒,年月日等单位进行计时,每月的天数和平润年区别都可以自定调整,芯片DS1302能在2.5V~5.5V间正常使用。DS1302内部有两类与RAM相关的寄存器。用于时钟电路的程序存储。一类是由31个RAM单元,,独立组成的,每一个单元有8个字节的RAM寄存器,掉电丢失,用于暂时储放信息。另一类突发方式寄存器能必要时候将多个字节的RAM数据和时钟信号通过CPU与三线接口同步通信的方式,一次传送出来。作为一款升级版时钟芯片,DS1302不仅与前版本芯片兼容,而且采用了备用源VCC1、主电源VCC2双电源引脚,同时VCC1具备小电流充电能力。通过串行接口进行数据传输。振荡源接口出的外接处,连接32.768kHz的晶振。
3.5.1DS1302引脚说明

图3.6 DS1302引脚

4系统的软件设计

本系统的软件设计主要分为8个部分,对于转换公里数为价格的主程序模块,定时中断程序,里程技术中断程序,客人中途要求我们等待时的中途等待中断服务程序显示子程序服务程序,控制键盘逻辑关系的键盘服务程序,用于计时,显示时间的DS1302时钟程序以及K24C02的数据断电保护程序。下面对各部分模块作介绍。
4.1系统主程序设计
我们的主程序模块需要在计价器开始工作时初始化计价器里的各个芯片,重新开始计算里程和金额,并通过里程寄存器来进行运算分析,当前的行驶里程何时会超过规定的起价公里数。在起步价的里程内,车资按照起步价算。当行程超出了起步价里程,则根据超出的里程以及每公里的单价数进行运算,再加上起步价,即为当前出租车应收的车资,并将结果保存在寄存器里,最后通过显示屏公示出来。

图4.1 主程序流程图

5系统安装与调试

5.1程序的查错手段
我们在设计一款单片机的应用系统时,一般不会直接使用实物进行制作。必须借助软件和开发系统来验证自己的想法,进行数字化模拟实验,仿真,对我们设计的硬件和软件全面勘查,测试,验证其可行性并避免浪费实物。软件和开发系统的种类有多种,但通常都是用以下几种手段可供仿真与查错。
5.1.1单步执行
简单的单步执行可以帮助我们对程序采用逐条逐条检查的方式,每一步检查一 条指令,通过这种分步且细致的检查来验证程序是否与我们设计的要求一致,能否实现我们想要的功能。而宏单步执行操作则可以把一段程序执行检查,一步就能执行整个循环程序段。
5.1.2断点设置全速运行
当我们对自己的程序已经大体排查完毕之后,如果还对程序的某些地方不太确定抱有疑虑,不必一段一段的进行检测,只需要对有疑问的地方设置一个断电,开始运行程序,断电设置操作就能过以全速或者非全速的方式,从开头一直运行到目的地。运行有三种结果,一个是程序写的正确,至少无逻辑和语法上的硬伤,那程序就会一直顺利运行到目的断点处,并且自动返回监控状态。一个是程序确实出现了错误,那么检测运行就会从开头一直运行到错误的地方停止。如果程序陷入了死循环或者程序运行时发生跑飞,那么检测运行就会一直进行下去直到有人为干预停止。断点设置全速运行可以很方便的就我们的疑问点进行测试,能过快速排查出问题是否存在,并快速响应。
5.1.3显示器窗口检查
5.1.4实时跟踪记录
除上述之外,还有以下功能:符号化调试。通常,我们的程序会以标号与符号地址等展现出来,以自动控制进行数据变换和调整,偏移量为手段,以实现程序计算和内容写入的自主。达到快速跟踪记录,确定目标的目的。
5.2源程序的检测
源程序是出租车计价器里非常重要的一部分,但程序也是依附在硬件上才能发挥出作用来的。因此我们如果想要对源程序进行检测和调试的话,就必须先排除硬件上的问题,保证硬件基本上是正确的。在此基础上,我们对源程序调试前,主要的要求是要先对其进行检测。
5.2.1程序系统检查
以程序设计初画的流程图为对照进行检查。第一步先把不同功能分区模块和功能,中断服务程序,和子模块等相对独立的部分认真检查。第二步,按照功能的划分,如时钟模块,显示模块,划分成对应几段程序,逐一检查。最后是以整个系统为整体分析检查。
程序的检查是有侧重的,逻辑功能的符合要求与否,结构与算法是不是足够完善,有关的参量和初始值正不正确,都是重点。难点在于关键性的指令是否选择合理,这个比较难判断,尤其是在模拟的情况也并不是能完全百分百反应实物的效果,有些难以调试正确的隐患。需要花费一定的时间和精力去仔细检查。
5.2.2硬件系统检查
硬件系统是毕业设计的关键点,保证没有重大的疏漏如线路故障或电源短路,在连接各种芯片的器件前,先接通电源进行上电检查,看各个节点处电势是否合理,连接有无问题,逻辑电平及信号是否正确。在排除了以上可能存在的隐患后,将芯片和器件按照设计好的位置接好,使用proteus等软件对仿真程序进行检查。如果有故障存在,仿真软件的监控程序就无法正常工作。这种办法可以帮助我们快速排查硬件系统的一般性故障。 。
有故障是纯软件上的,只需在软件上调试好故障点就能排除;有些是软件和硬件上不相匹配,需要通过软件的调试对硬件稍作调整才能解决。
5.3源程序的调试
源程序在检测完毕后需要进行调试,以确保功能合理数据正确。调试一般有以下步骤。
5.3.1分调
首先调试的对象是子程序,它们相对独立,分别使用仿真软件对其进行调试直到符合基本的设计要求。中断服务程序则用模拟的方法初调,接着按照出租车计价器的系统逻辑,分设为几个大部的功能程序段,按照应用系统运行的逻辑顺序逐级进行调试。
(1)基于出租车计价器的实际应用预设一些数据,通过仿真软件对程序段进行仿真运行。观察仿真运行的结果或故障影响。
(2)发现问题存在,需要问题的根源。大胆假设,小心求证,利用仿真的系统环境来验证自己的故障原因分析,逐步缩小问题的范围,确定问题的原因并加以改善。
(3)分析故障原因。
5.3.2联调
在前面我们通过分调已经基本上完成了各个独立模块的调试,而联调在此基础上的任务与分调不同,它的调试将证明不同程序模块之间,能否各司其职的同时又顾及大局不会冲突,因此,联调的存在也是必要的。此调试的要点是调试主程序与子程序之间能否依照设计正确连接,信息交换是否通畅。通过执行顺序依次对整个软件系统逐个相连进行调试。
5.4proteus界面介绍

图5.1 Proteus 窗口界面图

5.5Protues的简单使用
5.5.1新建原理图
启点击proteus软件的图标,启动仿真软件。选择File下面的New选项,会跳出新建原理图的界面。定下我们要展示的纸面格式,示意图如图5-2所示:

图5.2新建原理图示意图
5.5.2寻找元件
打开protues,选择P字母开头的pick devices选择元件按钮,会出现软件里自带的仿真元件库,里面可以选择我们需要的元件,出现如图4.3所示窗口,通过关键词搜索出目标元件,并连接。

图5.3 选取元件库中元件示意图

5.6故障分析
(1)用于C51单片机的程序在仿真软件上模拟时没有发现问题,但写入片子时,发现运行出来的结果有误。
(2)分析:仿真器一般跳了地址的,需要做简单的调整的,再者是检查硬件电路了。如果仿真通过,那可能的原因就是芯片有问题,重新检查一遍,或者换一块片子。中断陷入了死循环。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1168917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

收藏级指南:Agentic RAG 彻底升级传统RAG,打造能干活的AI数字同事

Agentic RAG作为传统RAG的颠覆性升级方案,核心是将静态的“检索-生成”流程,重构为智能体驱动的动态自适应工作流。传统RAG仅能完成单次问答的闭环,而Agentic RAG凭借推理规划、工具调用、自我修正的核心能力,可承接复杂任务落地。…

QML基本元素

元素可以被分为可视化元素与非可视化元素。一个可视化元素(例如矩形框Rectangle)有着几何形状并且可以在屏幕上显示。一个非可视化元素(例如计时器Timer)提供了常用的功能,通常用于操作可视化元素。现在我们将专注于几…

交直流可编程电源(技术资料) 直流电源是直流输出0-30V 5A TL494 线路; 交流电压...

交直流可编程电源(技术资料) 直流电源是直流输出0-30V 5A TL494 线路; 交流电压是10-120HZ可变频,0-30V幅度可调,5A输出; 变频交流电源部分是MEGA8DDS芯片D类数字功放做的。 电路原理: 经典的TL494开关电源线路 开关电…

DevSecOps时代测试工具的进化论:从功能验证到全链路质量保障

DevSecOps时代测试工具的进化论:从功能验证到全链路质量保障 在数字化转型加速的今天,软件开发周期持续缩短,安全威胁日益复杂,传统的"开发-测试-部署"线性流程已难以应对当下挑战。随着DevSecOps理念的深入实践&#x…

收藏级!大厂后端面试全流程复盘+大模型从入门到实战学习礼包

对于计算机专业应届毕业生而言,每年初秋的互联网大厂校招季,既是机遇与挑战交织的关键窗口期,更是检验四年专业积淀与技术能力的“终极实战场”。作为去年成功斩获字节跳动、阿里巴巴等多家头部大厂后端开发Offer的亲历者,同时也是…

【Java毕设全套源码+文档】基于springboot的公务员考试管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

基于Arduino的物流分拣控制系统设计

摘 要 为了提高当前物流分拣系统的工作效率和分拣正确率,满足市场对该行业的智能化需求,改善快递行业的经济性,本项目利用机械臂作为分拣工具,抓取物品并送到指定位置;利用光电对管作为扫描识别仪器,检测…

本土DevOps领军者Gitee:如何重塑中国企业研发效能新范式

本土DevOps领军者Gitee:如何重塑中国企业研发效能新范式 在数字化转型进入深水区的当下,研发效能已成为决定企业竞争力的关键变量。根据IDC最新报告,到2025年,采用成熟DevOps实践的企业将比同行实现50%以上的交付速度优势。这一背…

【Java毕设全套源码+文档】基于springboot的新闻发布会管理系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

收藏!AI焦虑别慌,程序员为啥要学大模型?零基础系统入门指南

近来技术圈的“AI焦虑”持续蔓延,“大模型”“AI替代程序员”这类话题反复霸占热搜与技术社群,不少从业者陷入莫名的恐慌与迷茫。 相信很多程序员都有这样的疑问:在AI浪潮席卷各行各业的当下,到底该不该主动掌握AI大模型相关能力&…

【Java毕设源码分享】基于springboot+vue的水果在线销售系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

listmap数据变驼峰

/*** listmap数据_变驼峰** param list* return*/public static List<Map<String, Object>> convertListToCamelCase(List<Map<String, Object>> list) {List<Map<String, Object>> data new ArrayList<>();if (null list || list…

量产HLW8032串口通讯芯片的三相电参数采集系统项目资料 1主芯片采用STM32F407

量产HLW8032串口通讯芯片的三相电参数采集系统项目资料 1主芯片采用STM32F407 2嵌入式软件使用UCOS2操作系统 3通过3个独立串口实时采集三路三相电参数数据&#xff08;通过HLW8032&#xff09; 4具备TFT液晶显示接口&#xff0c;实时显示三相电参数数据 5为了采集电参数更加精…

Java后端开发学习路线,零基础入门到精通,收藏这篇就够了

此思维导图是从codeSheep那里而来 文章目录 java后端开发学习路线 编程基础 java语言 语法基础JVM并发/多线程 数据结构和算法 数据结构算法 计算机网络数据库/SQL操作系统设计模式 研发工具应用框架 后端 spring全家桶服务器软件中间件分布式/微服务 微服务发现/注册网关服务…

Maven 4 终于快来了,新特性很香!

大家好&#xff0c;我是 Guide&#xff01;在 Java 生态中&#xff0c;Maven 绝对是大家每天都要打交道的“老朋友”。 InterviewGuide 这个开源 AI 项目中&#xff0c;我使用了 Gradle。不过&#xff0c;根据大家的反馈来看还是更愿意使用 Maven 一些。 目前&#xff08;2026…

AntDesign Table sorter 为什么点击第三次取消了,还是有参数发出?可设置sortDirections解决

在 Ant Design 的 Table 组件中&#xff0c;排序默认的行为是&#xff1a;点击一次为升序&#xff08;ascend&#xff09;&#xff0c;点击二次为降序&#xff08;descend&#xff09;&#xff0c;点击三次则取消排序&#xff08;undefined&#xff09;。这个行为是由 sorter 属…

AI驱动的11款论文写作工具,提供LaTeX格式智能排版与内容优化功能。

工具对比排名 工具名称 核心优势 支持LaTeX 适用场景 aibiye AIGC率降个位数&#xff0c;兼容知网规则 是 AI痕迹强处理 aicheck 学术改写优化&#xff0c;语义保留佳 是 格式统一化 askpaper 降重降AI一体&#xff0c;20分钟快速响应 是 初稿优化 秒篇 人类特…

如何应对AI生成重复内容:精选十大工具评测及有效解决策略

核心工具对比速览 工具名称 核心功能 适用场景 处理速度 特色优势 aibiye 降AIGC率查重 学术论文优化 20分钟 适配知网/格子达/维普规则 aicheck AIGC检测 风险区域识别 实时 可视化热力图报告 askpaper 学术内容优化 论文降重 20分钟 保留专业术语 秒篇 …

【Java毕设源码分享】基于springboot+vue的二手书交易商城系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

AI驱动的11项论文写作工具,支持LaTeX格式排版与智能内容优化

工具对比排名 工具名称 核心优势 支持LaTeX 适用场景 aibiye AIGC率降个位数&#xff0c;兼容知网规则 是 AI痕迹强处理 aicheck 学术改写优化&#xff0c;语义保留佳 是 格式统一化 askpaper 降重降AI一体&#xff0c;20分钟快速响应 是 初稿优化 秒篇 人类特…