基于单片机的出租车计费器的设计与研究内容摘要:

位电路的电容充电来实现的。 只要 VCC 的上升时间不超过 1ms,就可以实现自动上电复位。 不过在本设计中,没有加入上电复位电路。 单片机最小系统如图 3 所示。 液晶显示模块 液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。 1602 可以显示 2 行 16 个字符,有8 位数据总线 D0D7,和 RS、 R/W、 EN 三个控制端口,工作电压为 5V,并且带有字符对比度调节和背光。 并且 1602 的基本操作时序简单,因 此 1602 的运用非常简单,成为 最常用的显示元件之一。 图 4 LCD1602 接线图 6 由于 本设计 采用的 LCD1602 是 162 两行显示。 在本次设计中运用 LCD 作为显示屏,效果较好。 第一行显示总金额和单价,其中总金额显示四位,包括百位、十位、个位和十分位,单位是元,可以精确到 1 毛,单价用两位显示,包括十位和个位,单位是元。 第二行显示内容为路程和起步价,其中路程显示三位,包括十位、个位和十分位,单位是千米,可以精确到 1 百米。 起步价显示两位,包括十位和个位,单位是元。 LCD1602具有很高的性价比,且应用很 广泛。 另外本设计使用 排 针将 1602 接到电路中,若 1602出现故障更换方便。 液晶电路使用时,如果发现液晶不亮可以调节连接液晶的点位器,改变液晶的亮度 (张辉杰, 2020)。 本设计中 1602 的接线图如图 4 所示。 按键电路 本设计中按键电路是重要组成部分,当单价等信息需要进行修改切换时 ,就要用到键盘(毛小辉等, 2020)。 由于调节信息较多,本次设计一共用了 8 个按键,分别接在单片机的 到 , 到。 当按下相应 按键 时,通过软件,实现相应功能。 本毕业设计的引脚图如图 5 所示。 其中左边四个按 键从上到下分别命名为 按键 按键 按键 按键 4。 按键 1 和按键 2 组合可以实现白天晚上的随意转换,按键 3 可以实现清零功能,当按键 3 闭合时实现清零功能,否则不实现清零功能。 按键 4 可以实现等待功能和继续计费功能,当按键 4 闭合时实现等待功能,此时显示内容保持不变,否则不实现等待功能,系统继续计费。 右边四个按键从上到下分别命名为 键 按键 按键 按键8。 按键 按键 按键 按键 8 的组合可以实现白天晚上单价和起步价的设置。 按键5 闭合时进入起步价设置模式,断开时进入单价设置模式。 按键 6 闭合时进入白天设置模式,断 开时进入晚上设置模式。 按键 7 闭合时实现加 1 功能,断开时不实现任何功能。 按键 8 闭合时实现减 1 功能,断开时不实现任何功能。 表 1 为 按键 按键 2 的功能,表2 为按键 按键 按键 按键 8 的功能。 表中 1 表示按键 断开 , 0 表示按键 闭合。 表 1 按键 按键 2 的功能 按键 1 按键 2 实现功能 1 1 白天计费 1 0 白天转换到晚上计费 0 1 晚上计费 0 0 晚上转换到白天计费 7 图 5 按键电路 表 2 按键 按键 按键 按键 8 的功能 按键 5 按键 6 按键 7 按键 8 实现功能 0 0 0 0 进入白天起步价设置模式 0 0 0 1 白天起步价减 1 0 0 1 0 白天起步价加 1 0 0 1 1 无意义 0 1 0 0 进入黑夜起步价设置模式 0 1 0 1 黑夜起步价减 1 0 1 1 0 黑夜起步价加 1 0 1 1 1 无意义 1 0 0 0 进入白天单价设置模式 1 0 0 1 白天单价减 1 1 0 1 0 白天单价加 1 1 0 1 1 无意义 1 1 0 0 进入黑夜单价设置模式 1 0 1 0 白天单价加 1 8 集成开关型霍耳传感器电路 如图 6, A44E 集成霍耳开关由稳压器 A、霍耳电势发生器 (即硅霍耳片 )B、差分放大器 C、施密特触发器 D 和 OC 门输出 E 五个基本部分组成。 在输入端输入电压 CC V ,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差 H V 输出,该 H V 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到 OC 门输出。 当施加的磁场达到 .工作点 .(即 OP B )时,触发器输出高电压 (相对于地电位 ),使三极管导通,此时 OC 门输 出端输出低电压,通常称这种状态为 .开 .。 当施加的磁场达到 .释放点 .(即 rP B )时,触发器输出低电压,三极管截止,使 OC 门输出高电压,这种状态为 .关 .。 这样两次电压变换,使霍耳开关完成了一次开关动作。 车轮每转一圈,霍尔传感器集成芯片 A44E 就产 生一个标准的脉冲信号送入单片机的定时 / 计数器 T0 即 P3. 5 引脚, 利用单片机的 T1 的计数功能完成 路程的测量 ( 翟敏焕 , 2020)。 其集成霍耳开关外形如图 7 所示。 图 6 集成开关型霍耳传感器原理图 图 7 集成霍 尔 开关外形及接线 本设计 选择了 作为信号的输入端,内部采用 T0 计算脉冲数的方式测量行走路程。 设 车轮每转 10 圈 时行走路程 为 ,霍尔开关就检测并输出信号,单片机 T0 计霍尔 VCC GND OUT VO 5v 0 工作点 VCC OUT GND A B C D 9 数器就对外部脉冲进行计数,设当计数达到 10 次时,相当于出租车行走 ,单片机就控制将金额自动的加增加, 每当出租车行走 时显示屏就会刷新一次,显示金额金辉增加一次。 其计算公式: 当前单价 公里数 +起步价 =总金额。 霍尔传感 器 测距示意图如图 8 所示(刘尧等, 2020),霍尔传感器 的电路如图 9 所 示。 图 8 霍尔传感器测距示意图 图 9 霍尔传感器电路图 4 系统软件设计 编程语言 STC89C51 单片机 小磁铁 霍尔传感器 10 目前,对单片机的编程主要采用汇编和 C 语言。 由于汇编语言的 助记符指令和机器指令一一对应。 用汇编语言编制的程序效率高,占用存储空间小,运行速度快。 汇编语言能编写出最优化的程序,且能反映计算机的实际运行情况。 尤其在进行 I/O 端口管理时,使用汇编语言有快捷、 直观的优点。 但是缺乏通用性,程序不易移植。 不同计算机的汇编语言之间是不能通用的,因为它们各自都有适合于自己机型特点的汇编语言。 并且 使用汇编语言相对于使用高级语言编程难度要大一些,且程序可读性低,开放性差,从系统开发时间来看,效率不是很高。 C 语言是一种结构化语言,可产生紧凑代码。 C 语言可以用许多机器级函数直接控制操作 8051 硬件。 C 语言是种通用的、面向过程的程序语言。 它具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。 与汇编语言相比, C 语言的优点 如表 5 所示。 因此本设计采用 C 语言编程 ,使编程更加简单,程序结构更清晰。 增强程序的移植性。 表 3 C 语言的优点 编号 优点 1 不要求了解单片机的指令系统,仅要求对 8052 的存储结构有初步了解 2 寄存器分配,不同存储器的寻址及数据类型等细节可由编译器管理 3 程序有规范的结构,可分为不同的函数,这种方式可使程序结构化 4 具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性 5 关键字及运算符可用近似人的思维方式使用 6 编程及程序调试时间显著缩短,从而提高效率 7 提供的库包含许多标准子程序,具有较强的数据处理能 力 8 已编好的程序可容易地植入新程序,因为它具有方便的模块化编程技术 软件设计 本次设计的 基于单片机的出租车计费器要实现起步价、单价可以随意设置,白天黑夜计费方式不同,显示路程,起步价,单价,总金额等功能。 因此就需要解决路程计算,按键功能和显示等问题。 首先需要考虑如何进行路程计算的问题。 在本设计中采用霍尔开关传感器来计算路程。 将磁铁粘贴在车轮上,并固定霍尔开关的位置。 当磁铁远离霍尔开关时,霍尔开关 11 输出高电平,当磁铁靠近霍尔开关时,霍尔开关输出低电平,因此当轮子转动时,霍尔开关将输出一个 方波信号。 将霍尔开关的输出端接到单片机的 ,用 T0 来计算外部脉冲数。 算出外部脉冲数就是车轮转动的圈数,经过运算就可以算出行走路程。 因此运用霍尔开关就可以非常简单地算出行走路程。 其次是 1602LCD 显示问题,先将 LCD 初始化。 然后再确定显示内容。 由于本设计的显示内容较多,需要经过严格的考虑安排,才能使得显示结果更加美观。 首行显示的内容为总金额和单价,第二行显示的内容为行走路程和起步价。 为了使计费结果更精确,总金额精确到毛,行走路程精确到百米,且每 100 米总金额就刷新一次。 最后, 是按键功能和按 键个数问题。 由于出租车计费器需要实现起随意设置步价、单价、白天黑夜计费方式不同,显示路程、起步价、单价、总金额等功能,然而在不同功能之间如何转换就成为一个难点。 用按键可以轻松地实现转换功能,但是不同按键的组合,可以用更加少的按键实现相同的功能。 但是如果按键较少,虽然在实现功能方面是没有问题的,但是操作比较麻烦,使用起来比较困难。 如果用较多按键(每个按键只有一个功能且单独使用)这样操作虽然简单,但是会造成浪费,成本的增加。 经过实践,8 个按键的相互组合使用,既能实现功能,操作又比较简单。 程序 设计及 流 程图 本系统程序主要由主程序、 LCD 初始化与显示程序 、路程计算程 序等组成。 清零设置 通过判断按键 3 的闭合状态来判断是否进行清零。 当按键 3 为 1 时,不进行清零,当按键 3 为 0 时,进行清零。 其流程图如图 10 所示。 ( 1 表示按键不闭合, 0 表示按键闭合。 ) 图 10 清零设置流程图 图 11 等待设置流程图 开始 SW3=0? 清零 不清零 结束 开始 SW4=0? 等待 不等待 结束 Y Y N return N return 12 等待设置 通过判断按键 4 的闭 合状态来判断是否实现等待功能。 当按键 4 为 1 时,不实现等待功能,当按键 4 为 0 时,实现等待功能。 其流程图如图 11 所示。 ( 1 表示按键不闭合,0 表示按键闭合。 ) 起步价设置 通过判断按键 按键 按键 按键 8 的闭合状态来设置起步价。 当按键 5 为 1时退出起步价设置,当按键 5 为 0 时进入起步价设置。 当按键 6 为 0 是进入白天起步价设置,当按键 6 为 1 时进入晚上起步价设置。 当按键 7 为 1 时,起步价不变,当按键 7为 0 时,起步价加 1,当按键 8 为 1 时,起步价不变,当按键 8 为 0 时,起步价减 1。 其程序流程图如图 12 所示。 ( 1 表示按键不闭合, 0 表示按键闭合。 ) 单价设置 通过判断按键 按键 按键 按键 8 的闭合状态来设置单价。 当按键 5 为 1 时进入单价设置,当按键 5 为 0 时退出单价设置。 当按键 6 为 0 是进入白天单价设置,当按键 6 为 1 时进入晚上单价设置。 当按键 7 为 1 时,单价不变,当按键 7 为 0 时,单价加 1,当按键 8 为 1 时,单价不变,当按键 8 为 0 时,单价减 1。 其程序流程图如图 13所示。 ( 1 表示按键不闭合, 0 表示按键闭合。 ) 白天晚上计费方式转换设置。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。