机械毕业设计468出租车计价器系统设计.doc

机械毕业设计468出租车计价器系统设计

收藏

压缩包内文档预览:(预览前20页/共74页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:553722    类型:共享资源    大小:410.31KB    格式:ZIP    上传时间:2015-12-04 上传人:QQ28****1120 IP属地:辽宁
6
积分
关 键 词:
机械毕业设计论文
资源描述:
机械毕业设计468出租车计价器系统设计,机械毕业设计论文
内容简介:
1 第 一 章 引 言 随着生活水平的提高,人们已不再满足于衣食住的享受,出行的舒适已受到越来越多人的关注。于是,出租车行业以低价高质的服务给人们带来了出行的享受。但是总存在着买卖纠纷困扰着行业的发展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。用更加精良的计价器来为乘客提供更加方便快捷的服务。 我国在 70 年代开始出现出租车,但那时的计费系统大都是国外进口不但不够准确,价格还十分昂贵。随着改革开放日益深入,出租车行业的发展势头已十分突出,国内各机械厂家纷纷推出国产计价器。出租车计价器的功能从刚开始的只 显示路程(需要司机自己定价,计算后四舍五入),到能够自主计费,以及现在的能够打发票和语音提示、按时间自主变动单价等功能。随着城市旅游业的发展,出租车行业已成为城市的窗口,象征着一个城市的文明程度。 现在各大中城市出租车行业都已普及自动计价器,所以计价器技术的发展已成定局。而部分小城市尚未普及,但随着城市建设日益加快,象征着城市面貌的出租车行业也将加速发展,计价器的普及也是毫无疑问的,所以未来汽车计价器的市场还是十分有潜力的。 凡 乘 过出租车的人都知道,只要汽车开动,随着行驶里程的增加,就会看到汽车前面的计价器 里程数字显示的读数从零逐渐增大,而当行驶到某一值时(如 5KM)计费数字显示开始从起步价(如 10 元)增加。当出租车到达某地需要在那里等候时,司机只要按一下 “ 计时 ” 键,每等候一定时间,计费显示就增加一个该收的等候费用。汽车继续行驶时,停止计算等候费,继续增加里程计费。到达目的地,便可按显示的数字收费。 汽车计价器是乘客与司机双方的交易准则,它是出租车行业发展的重要标志,是出租车中最重要的工具。它关系着交易双方的利益。具有良好性能的计价器无论是对广大出租车司机朋友还是乘客来说都是很必要的。因此,汽车计价器的研究也 是十分有一个应用价值的。 采用模拟电路和数字电路设计的计价器整体电路的规模较大,用到的器件多,造成故障率高,难调试,对于模式的切换需要用到机械开关,机械开关时间久了会造成接触不良,功能不易实现。为此我们采用了单片机进行设计,相对来说功能强大,用较少的硬件和适当的软件相互配合可以很容易的实现设计要求,且灵活性强,可以通过软件编程来完成更多的附加功能。 nts2 第 二 章 出租车计价器系统设计 内容 2.1 基本 设计内容 ( 1) 不同情况具有不同的收费标准。 白天 晚上 途中等待( 10min 开始收费 ) ( 2) 能进行手动修改单价 ( 3) 具有数据的复位功能 ( 4) IO 口分配的简易要求 距离检测使用霍尔开关 A44E 白天 /晚上收费标准的转换开关 数据的清零开关 单价的调整(最好使用 和 按键) ( 5) 数据输出(采用 LCM103) 单价输出 2 位 路程输出 2 位 总金额输出 3 位 ( 6) 按键 启动计时开关 数据复位(清零) 白天 /晚上转换 2.2 拓展功能 能够在掉电的情况下存储单价等数据 能够显示当前的系统时间 语音播报数据信息 nts3 第三章 方案论证 3.1 方案比较 方案一: 采用数字电路控制。其原理方框图如图 3 1 所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用。 图 3 1 数字电路方案 方案二: 采用单片机控制。利用单片机丰富的 IO 端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。其原理如图 3 2所示。 图 3 2 单片机控制方案 移位寄存器电路 金额 显示 单价 显示 里程 传感器 电源电路 及保护电路 89S51 单片机 AT24C02 掉电存储 里程计算单元 键盘 控制 串口显示驱动电路 总金额 显示 单价 显示 nts4 3.2 确定方案 通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。 nts5 第四章 单片机 计价器系统 总体 设计 4.1 计价器的工作原理 通常计价器采用 MCS - 51 芯片 ,在 EEPROM中预先已写入了有关程序和数据的信息 ,如基本距离、续程距离、候时时间的规定值 ,与收费标准 规定相应的收费价格值 ,不同出租条件下收费的变化比率 ,附加车费值计费方式等数据和与收费办法相应的车费计算与控制程序等 ,并且在计价器安装前已根据不同车型选定好 K 值。计价器的原理结构如图 4-1 所示。在工作过程中其主要的功能都是由 MCS - 51 芯片中的定时器 / 计数器来实现。 图 4-1 计 价器的原理结构图 nts6 4.2 单片机系统 总 体设计 单片机系统总体设计框图如图 4-2所示 图 4 2 单片机系统 总体设计框图 启动 /清除开关 89S51 单片机 AT24C02 掉电存储 里程传感器 键盘控制 串口显示驱动电路 总 金额 显示 单价 显示 锁存器 nts7 第五章 硬件设计 5.1 单片机 总体电路图 设计 电路图见附 图 一 所示 5.2 AT89S51单片机 介绍 AT89S51兼容 MCS51微控制器 ,4K字节 FLASH存贮器支持在系统编程 ISP 1000次擦写周期 ,128字节片内 RAM,工作电压 4.0V到 5.5V,全静态时钟 0 Hz 到 33 MHz,三级程序加密 ,32个可编程 IO口 ,2/3个 16位定时 /计数器 ,6/8个中断源 ,全双工 UART,低功耗支持 Idle和 Power-down模式 , Power_down模式支持中断唤醒 , 看门狗定时器 ,双数据指针 ,上电复位标志 。内部逻辑结构,如图 5-1所示。 nts8 图 5-1 AT89S51内部逻辑结构图 1.定时器 / 计数器的基本原理 作为基本组成内容 ,AT89S51单片机共有两个可编程的定时器 / 计数器 ,分别称定时器 / 计数器 0和定时器 / 计数器 1 。它们都是十六位加法计数结构 ,分别由 TH0 和 TL0 及 TH1 和TL1 两个 8 位计数器组成。 2.计数功能 所谓计数是指对外部事件进行计数。外部事件 的发生以输入脉冲表示 ,因此计数功能的实质就是 对外来脉冲进行计数。 MCS - 51 芯片有 T0 ( P3. 4) 和 T1 (P3. 5) 两个信号引脚 ,分别是这两个计数器的 计数输入端。外部输入的脉冲在负跳变时有效 ,进 行计数器加 1 (加法计数 ) 。 3.定 时功能 定时功能也是通过计数器的计数来实现的 ,不过这时的计数脉冲来自单片机的内部 ,既每个机器周期产生一个计数脉冲。也就是每个机器周期计数器加 1 。由于一个机器周期等于 12 个振荡脉冲周期 ,因此计数频率为振荡频率的 1/ 12 。如果单片机采用 12MHz 晶体 ,则计数频率为 1MHz。即每微秒计数器加 1 。这样不但可以根据计数值计算出定时时间 ,也可以反过来按 定时时间的要求计算出计数器的预置值。 5.3 电源控制线路设计 出 租车计价器 316V/ 60mAh 镍镉电池恒流充放电控制线路 额定电压 316V , 容量为 60mAh 的 Nicd 电池在出租车计价器中有着广泛的应用 ,它也是其它智能化仪表中最为常用的备用电池。在出租车计价器的日常维护中 ,一旦由于电池爬碱 (轻微漏液 ),线路漏电、短路以及长期使用造成电池性能下降时 ,对电池的处理办法一般采用弃用。然而对这类电池进行适当的维护 ,如对爬碱的电池进行清理并用绝缘胶密封 ,对记忆效应明显的电池可进行多次循环充放电加以消除 ,有不 少电池仍可利用 ,但这需要一种可用于判定电池性能的容量检测线路 ,而普通的 NiCd 电池充电器并不具有这一功能。为此笔者设计了一种适用于 316V/ 60mAh NiCd 电池恒流充放电控制线路 ,不仅可用于容量检测 ,在作一般的充电器使用时 ,可在充电前对电池的剩余容量给予准确有效的放电以消除其记忆效应 ,比普通的充电线路更具优越性。 nts9 1 基本原理 (1)恒流放电线路 图 5-2 是恒流放电线路原理图 ,其基本工作原理是当电池放电时 ,由于电压下降引起电流下降时 ,通过电阻 R 的反馈及运放的调整 ,使三极管 T 的基极电流发 生变化 ,调节三极管 ce 极压降从而确保 R 上的电压不变 ,使之流过的电流保持恒定。设电池放电电流为 I ,运放同反相端电压分别为 V + , V - ,基准稳压管 D 的电压为 E0 ,由于三极管的基极电流较小 ,可忽略不计 ,因此流过 R 的电流可视为电池的放电电流。则 : 图 5-2 恒流放电线路原理图 V = RI , V + = E0 由于运放的同反相端电压相等 ,即 V + = V - , 因此 :E0 = RI 则 : I = E0/ R 显然 ,放电电流只决定于基准电压 E0 及限流电阻 R 的阻值 ,与电池电压无关 ,一旦 E0 及 R 保持定值 ,电流 I 即恒定不变。由于 R 上的压降必须大于电池的终止放电电压 ,并确保三极管c e 之间的压降有足够的调整空间 ,因此 R 的取值不易过大。 (2)放电终止控制线路 图 5-3 为放电终止控制线路原理图 ,图中运放构成电压比较器 ,当电池电压 E 大于基准电压 E0 时 ,V + V - ,比较器输出高电平 ,三极管导通 ,继电器吸合。同样当电池电压低于基准电压时 , V + V - 。运放输出低电平 ,三极管截止 ,继电器断开。这样 ,便可通过继电器触点控制放电电流的通断。根据“ GB/ T1103 - 1996 圆柱密封镉镍可充单体电池”标准规定 , 单体电池的终止放电电压为 110V ,对于 316V NiCd 电池是由三只单体电池串联而成 ,因此 ,终止放电电压为 310V ,而图中的基准电压应取 E0 = 3. 0V。 nts10 图 5-3 放电终止控制线路原理图 (3)恒流充电线路 图 5-4为由 78L05 构成的恒流充电线路原理图 ,图中 : I0 = U0/ R ,则充电电流 I 为 : I = I0 + I d = U0/ R + Id 式中 U0 为 78L05 的输出电压 (定值 + 5V) ,而 Id 为 78L05 的静态工作电 流 ,一般在几至十几毫安也为定值 ,因此 ,一旦 R 调整确定 ,充电电流即为恒定电流不变。图中输入电压 Ui 要求大于 U0 + E ,其中 E 为电池电压。 D 是反向隔离二极管 ,为防止电池电流反串而设。由于785L05 输出电流仅为 100mA ,因此 ,该线路的充电电流也不超过 100mA。 图 5-4 恒流充电线路原理图 (4)充电定时控制线路 如图 5-5 所示由 555 及两级 4020 计数器构成了充电定时控制线路 ,图中 555 构成了多谐振荡器 ,其周期稳定的振荡波形经两级 4020 计数实现长时间定时 ,采用两级计数的 目的是为了降低 555 的振荡周期 ,以便采用小容量 CBB (金属聚酯膜电容 ) 振荡电容 ,虽然采用单级4020 计数同样可达到两级计数的定时时间 ,但振荡电容必须采用容量较大的电解电容 ,而电解电容的稳定性及温度特性远不及 CBB电容。如采用 10 F 的电解电容 ,当温度在 0 30 范围内波动时 ,8 小时的定时时间将产生 30min 的温度误差 ,而采用 CBB 电容产生的误差小于1min。图中调整 W1 使 555 振荡周期为 t = 11716ms ,则定时时间 : T = 214 210 t = 810h 。图中按下 AN1 ,4020 复位 ,4020 ( IC3) 的 Q10输出低电平 ,三极管 T导通 ,继电器通电 ,nts11 触点 J K 吸合自锁 ,接通充电电路工作电源对电池进行充电 ,同时 555 振荡 ,4020开始计数 ,当定时时间达到预定时间后 ,4020 ( IC3)的 Q10输出高电平 ,三极管 T 截止 ,继电器线包断电 ,触点 J K断开 ,切断定时线路及后级充电线路工作电源 ,停止对电池充电。 图 5-5 电池恒流充放电控制线路 2 恒流充放电控制线路 图 5-5 为 316V/ 60mAh NiCd 电池恒流充放电控制线路 ,其容量检测精度优于 3 %(不计计时误差 ) 。根据 GB/ T11013 1996 标准规定 ,NiCd 电池容量测试时的充电电流应为 012C (C 为电池容量 ) ,充电时间 8h ,然而以 012C 的恒定放电电流放电至终止电压 ,要求最小放电时间不低于 4175h 。因此 ,图中充放电电流为 12mA。充电定时时间为 8h 。 (1)恒流放电控制线路 :图 5-5 中运放 A1 、 A2 采用 LM324 (一片 LM324 可用于二个放电控制线路 ) 。其中 A1 、 A2 的基准电压由工作电源 (当采 用 7812 稳压器稳压后的工作电源已有足够的稳压精度 ) 分压而成 ,A1 的基准电压为 112V ,通过 W2 调整 ,A2 的基准电压为 310V ,可通过 W3 调整。当 K 1 时 ,NiCd 电池接入放电回路 ,按下 AN1 ,当电池电压高于 310V 时 , 继电器动作 ,J K1 吸合自锁 ,L ED1 亮 ,表示放电开始 ,当电池电压低于 310V 时 ,继电器断开 ,nts12 电池终止放电 ,同时其常闭触点闭合 ,蜂鸣器鸣响 ,提示放电终止 ,只有当 K 2或切断工作电源时蜂鸣才停止蜂鸣。若按下 AN1 蜂鸣器一直鸣响 ,说明电池电压已低于 310V ,不用再进行放电。 (2)恒流定时充电控制线路 :图 5-5 中 W3 为充电电流调节电阻 ,调整 W3 使充电电流为12mA。图中 C2 、 R8 及 C3 、 R10 为 4020 上电复位线路 ,C4 、 C5 、 C6 为旁路电容 ,可提高定时线路的干扰性能。 555 选择电压、温度漂移较小的 SE555 ,L ED2 用于充电状态指示 ,当K 2 时 ,电池接入充电回路 ,按下 AN2 ,电池便开始充电 ,同时 L ED2 闪烁 ,当充电时间到 8h 时 ,线路自动切断并停止充电。 线路用于电池容量检测时 ,首先对电池剩余容量放电 ,当放电至终止电 压时 ,转入 8 小时充电 ,充电完毕后 ,再进行放电 ,记录开始放电至终止放电的时间 t (h) ,即可计算出电池的容量 :实际容量 = t 额定容量 / 5h (mAh)一般出租车计价器关机时 , 静态电流小于 50 A ,而计价器要求断电一个月其内存数据及时钟线路仍能正常工作 ,可计算出备用电池容量不得低于 36mAh ,因此若实际容量仍能达到 36mAh ,则可继续使用。图 5-5 为单路充放电控制线路。多路可按图复制 ,但定时控制线路只需一路。控制线路电压可由220V 交流经变压、整流、滤波后由 7812 提供 ,若变压器次级电 流为 1A(电压可选 15V) ,而继电器的线包电流小于 100mA ,则最多可驱动 8 路充放电控制线路 ,可同时对 8 节 316V/ 60mAh 时 NiCd 电池进行充放电。 5.4 里程计算、计价单元的设计 1 车轮转动里程检测电路 该电路的主要作用是敏感路程,产生计程脉冲;在具体实现时采用 霍尔传感器 A44E 来作为里程传感器,将安装在与车轮相连接的涡轮变速器的磁铁上,使汽车每前进 10 m 传感器产生 一次 脉冲 ,即向里程计数器电路发出一个计数脉冲,以使得计数电路进行里程计数。车速传感器测控系统框图如图 5-6所示 图 5-6 车速传感器测控系统框图 89S51 单片机计价系统 D/A 转换 A/D 转换 测速采集卡 车速传感器 nts13 2 里程计数中断电路 当车轮转动里程检测电路提供了计程脉冲信号后,里程计数中断电路则根据该脉冲信号定时向微机系统发出计数中断请求信号,使系统根据一定的算法对里程数据进行计数计算。 里程计算是通过安装在车轮上的霍尔传感器 A44E 检测到的信号,送到单片机,经处理计算 ,送给显示单元的。其原理如图 5 6 所示。 图 5 7 传感器测距示意图 由于 A44E 属 于 开关 型的霍尔器件,其工作电压范围比较宽( 4.5 18V),其输出的信号符合 TTL 电平标准,可以直接接到单片机的 IO 端口上,而且其最高检测频率可达到 1MHZ。 集成开关型霍耳传感器原理 如图 5-8, A44E 集成霍耳开关由稳压器 A、霍耳电势发生器 (即硅霍耳片 )B、差分放大器 C、施密特触发器 D 和 OC 门输出 E 五个基本部分组成。在输入端输入电压 CC V ,经稳压器稳压后加在霍耳电势发生器的两端,根据霍耳效应原理,当霍耳片处在磁场中时,在垂直于磁场的方向通以电流,则与这二者相垂直的方向上将会产生霍耳电势差 H V 输出,该 HV 信号经放大器放大后送至施密特触发器整形,使其成为方波输送到 OC 门输出。当施加的磁场达到 .工作点 .(即 OP B )时,触发器输出高电压 (相对于地电位 ),使三极管导通,此时 OC 门输出端输出低电压,通常称这种状态为 .开 .。当施加的磁场达到 .释放点 .(即 rP B )时,触发器输出低电压,三极管截止,使 OC 门输出高电压,这种状态为 .关 .。这样两次电压变换,使霍耳开关完成了一次开关动作。 89S51 单片机 霍尔传感器 小磁铁 车轮 nts14 图 5 8 集成开关型霍耳传感器原理图 其集成霍耳开关外形及接线如图 5 9 所示。 图 5 9 集成霍耳开关外形及接线 nts15 我们选择了 P3.2 口作为信号的输入端,内部采用外部中断 0(这样可以减少程序设计的麻烦),车轮每转一圈(我们设车轮的周长是 1 米),霍尔开关就检测并输出信号,引起单片机的中断,对脉计数,当计数达到 1000 次时,也就是 1 公里,单片机就控制将金额自动的加增加,其计算公式: 当前单价 公里数 =金额。 5.5 数据显示单元的设计 设计使用一个定时 /计数器每 1/10 s 向主机发一次中断请求信号,并利用并行接口电路完成对时钟的实时显示功能。同时,利用动态扫描电路完成对出租车的起价和 当前累计价的显示。 由于设计要求有单价( 2 位)、路程( 2 位)、总金额( 3 位)显示输出,加上我们另外扩 展了时钟显示(包含时分秒的显示),采用 LCD 液晶段码显示,在距离屏幕 1 米之外就无法 看清数据,不能满足要求,而且在白天其对比度也不能够满足要求,因此我们采用 6 位 LED 数码管的分屏显示,如图 5 10 所示: 图 5 10 a 时钟显示(图中显示为 12 点 34 分 46 秒) 图 5 10 b 总金额和单价显示(图中显示为总金额 12.3 元 ,每公里 4.6 元) nts16 图 5 10 c 路程和单价显示(图中显示为总路程 12 公里 ,当前单价 4.6 元) 图 5 10 d 单价调整显示(图中显示为右起白天单价 4.6元 /晚上 7.8/中途等待 1.2 元) 数据的分屏的显示是通过按键 S1 来实现切换的,如图 5 11所示。 nts17 图 5 11 S1切换显示屏 在出租车不走的时候,按下 S1,可以实现数据的分屏显示;车在行走的时候只有总金额和单价显示屏在显示,当到达目的地的时候,客户要求查看总的里程的时候,就可以按下S1 切换到里程和单价显示屏,供客户查询。显示电路的电路原理图 见附 图 二所 示。 从单片机串口输出的信号先送到左边的移位寄存器( 74HC164) ,由于移位脉冲的作用,使数据向右移,达到显示的目的。移位寄存器 74HC164 还兼作数码管的驱动,插头 1( header1)接电源,插头 2( header2)接数据和脉冲输出端。电路中的三个整流管 D1D3 的作用是降低数码管的工作电压,增加其使用寿命。 nts18 5.6 AT24C02 掉电存储单元的设计 掉电存储单元的作用是在电源断开的时候,存储当前设定的单价信息。 AT24C02 是ATMEL 公司的 2KB 字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到 2.5V,额定电流为 1mA,静态电流 10Ua(5.5V),芯片内的资料可以在断电的情况下保存 40 年以上,而且采用 8 脚的 DIP 封装,使用方便。其电路如图 5-12所示。 NC1NC2NC3GND4S D A5S C L6WP7V C C8U4A T 2 4C 02AGNDV C C串行存储模块R85.1kR 105.1k接 P 2.5接 P 2.6图 5 12 掉电存储电路原理图 图中 R8、 R10 是上拉电阻,其作用是减少 AT24C02 的静态功耗,由于 AT24C02 的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线 SCL(移位脉冲)和 SDA(数据 /地址)与单片机传送数据。每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。 nts19 5.7 启动及清除电路 在系统电路中,设计一 个启动 /清除按钮,用来作为启动里程计数或清除里程数计数的开关。将该按钮开关接到微机系统的某个中断请求线上,当开关被按下一次时就作为计程启动中断请求;再按下一次时,就作为系统的计程清 0 中断处理。 5.8 按键单元的设计 电路共采用了四个按键, S1、 S2、 S3、 S4,其功能分别是: S1 分屏显示切换按键, S2功能设定按键, S3 . ./白天晚上切换按键, S4 . ./中途等待开关。 nts20 第六章 软件设计 6.1 软件 设计 该系统软件采用汇编语言编制,模块化设计,分为 主程序,脉 j巾中断程序,空车牌中断程序,键盘中断程序,日历时钟芯片中断程序,打印及显示程序。在空车牌中断程序中完成对出租车营运状态的判断;在脉冲中断程序中完成计量计价工作;日历时钟芯片每秒钟向80C31发中断请求,在中断程序中完成等候计时工作或者时钟显示工作。键盘中断程序用于完成各次营运数据的查寻工作。结构框图如 6-1图所示 图 6-1 系 统软件结构框图 该计程计价系统的软件设计分为以下几个模块: 1 主程序模块 在主程序 模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设计以及开中断、循环等待等工作。另外,在主程序模块中还需要设置启动 /清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。 当主程序判断出有“启动计程中断”发生时,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计主程序 定时中断服务程序 里程计数中断服务程序 中途等待中断服务程序 启动/清除计程中断服务程序 显示子程序服务程序 键盘服务程序 nts21 算出当前的累计价格,并将结果存于价格寄存器中,然后将已行走的里程数和当 前累计价格送显示电路显示出来。 当主程序判断出有“清除计程中断”产生时,将显示电路中的当前行驶里程数和运行累计价格清 0,并重新进行初始化过程。 其程序流程如 图 6-5 所示 .当按下 S1 时,就启动计价,将根据里程寄存器中的内容计算和判断出行驶里程是否已超过起价公里数。若已超过,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将时间和当前累计价格送显示电路显示出来。当到达目的地的时候,由于霍尔开关没有送来脉冲信号,就停止计价,显示当前所应该付的金额和对应的单价,到下次启动计 价时,系统自动对显示清零,并重新进行初始化过程。 2 定时中断服务程序 在定时中断服务程序中,需要完成对行车时间的累加计数,并将该时间数据和当前时钟送显示电路进行实时显示。 在定时中断服务程序中,每 100ms 产生一次中断,当产生 10 次中断的时候,也就到了一秒,送数据到相应的显示缓冲单元,并调用显示子程序实时显示。 如图 6-2 所示 nts22 图 6-2 定时中断服务程序流程图 3 里程计数中断服务程序 当里程计数器对里程脉冲计满一定数值时,就由里程计数中断电路向微机发出中断请求,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数的累加操作,并将结果存入里程寄存器中。 每当霍尔传感器输出一个低电平信号就使单片机中断一次,当里程计数器对里程脉冲计满 1000 次时,就有程序将当前总额,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数和总额的累加操作,并将结果存入里程和总额寄存器中。 如图 6-3所示 定时中断 定时 处理 键码分析 功能键 分别执行各自模块 显示 中断返回 有按键否? 有 无 有 无 nts23 图 6-3 里程计数中断服务程序 流程图 4 中途等待中断服务程序 当在计数状态下霍尔开关没有输出信号,片内的 T1 定时器便被启动,每当计时到达 10分钟,就对当前金额加上中途等待的单价,以后每十分钟都自动加上中途等待的单价。当中途等待结束的时候,也就自动切换到正常的计价。 如图 6-4 所示 传感器产生中断信号 中断信号 处理 键码分析 功能键 分别执行各自模块 显示 中断返回 有按键否? 有 无 有 无 nts24 图 6-4 中途等待中断服务程序 流程图 5 启动 /清除计程中断服务程序 当系统有启动 /清除中断请求产生时,我们可以设定第一次中断为启动中断,第二次中断为清除中断,并在中断服务程序中将标志寄存器的内容相应置“ 1”或清“ 0”。其中,标志为“ 1”时表示本次中断是启动中断;为“ 0”时表示是清除中断。 6 显示子程序服务程序 由于是分屏显示数据,所以就要用到 4 个显示子程序,分别是:时分秒显示子程序( HMS_DIS)、金额单价显示子程序( CP_DIS)、路程单价显示子程序 (DP_DIS)、单价调节子程序 (PA_DIS)。 7 键盘服务程序 键盘采用查询的方式,放在主程序中,当没有按键按 下的时候,单片机循环主程序,一旦右按键按下,便转向相应的子程序处理,处理结束再返回。 中途等待 产生 中断 定时器启动 中途等待结束 正常计价 显示 中途等待中断服务程序 nts25 6.2 流程图 1 主程序流程图 主程序流程图 如图 6 5 所示 : 图 6 5 主程序流程图 nts26 2 计价流程图 计价流程图如图 6 6 所示 : 图 6 6 计价流程图 nts27 3 单价时间调整流程图 单价时间调整流程图如图 6 7所示: 图 6 7 单价时间调整流程图 nts28 第 七章 程 序 设 计 7.1 主 程序清单 出租 车计 价器程序 ORG 0000H Z8279 EQU 0FF82H D8279 EQU 0FF80H INII8279:MOV DPTR,#Z8279 MOV A, #0D1H MOVX DPTR,A WAIT:MOVX A, DPTR JB ACC.7, WAIT MOV A,#00H MOVX DPTR,A MOV A,#2AH MOVX DPTR,A ; -8279 初始化 MOV A,#00H PUSH PSW PUSH DPH PUSH DPL PUSH ACC KK: MOV DPTR,#Z8279 nts29 MOVX A,DPTR ANL A,#07H JNZ READ MOV A,#00H SJMP KK-是否有键按下; READ: MOV A,#40H MOVX DPTR,A MOV DPTR,#D8279 MOVX A,DPTR CJNE A,#0EH,KK -是否是开车键 0E POP ACC POP DPL POP DPH POP PSW MOV R4,#00H AG:MOV A,#00H-再次启动 TT: MOV R6,#8 DL3: MOV R7,#200 DL2: MOV R5,#250 DL1: NOP DJNZ R5,DL1 nts30 DJNZ R7,DL2 DJNZ R6,DL3-产生一个延时 ADD A,#01H-路程自动加一 PUSH ACC MOV DPTR,#Z8279 MOVX A,DPTR ANL A,#07H JNZ READ1 SJMP GO1 READ1:MOV A,#40H MOVX DPTR,A MOV DPTR,#D8279 MOVX A,DPTR CJNE A,#0FH,GO1-是否是停车键 0F LJMP OVER GO1: POP ACC PUSH ACC PUSH ACC MOV B,#100 DIV AB nts31 MOV 76H,A MOV A,#10 XCH A,B DIV AB-数值转换为非压缩 BCD 码 MOV 74H,B MOV 75H,A MOV 77H,#00H POP ACC CJNE A,#2,LL LL: JC L2 SUBB A,#2 MOV B,#2 MUL AB ADD A,#5 MOV R3,A AJMP L4 L2: MOV A,#5 ; -由 路程算出票价 L4: MOV B,#100 DIV AB MOV 72H,A nts32 MOV A,#10 XCH A,B -数值转换为非压缩 BCD 码 DIV AB MOV 70H,B MOV 71H,A MOV 73H,#0 DISLED: PUSH DPH-显示 PUSH DPL MOV DPTR, #Z8279 MOV A,#90H MOVX DPTR,A MOV R0,#70H MOV R7,#08H MOV DPTR,#D8279 DL0: MOV A,R0 ADD A,#0CH MOVC A,A+PC MOVX DPTR,A INC R0 DJNZ R7,DL0 nts33 POP DPL POP DPH POP ACC AJMP TT LEDSEG:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H OVER:MOV R1,#70H-如果停车把路程和票价以压缩的 BCD 码保存起来 MOV R0,#60H BC: MOV A,R0 MOV R3,#4 ADD A,R4 MOV R0,A TOG1: MOV B,R1 ANL B,#0FH INC R1 MOV A,R1 ANL A,#0FH SWAP A ORL A,B nts34 MOV R0,A INC R1 INC R0 DJNZ R3,TOG1 INC R4 INC R4 INC R4 INC R4 WAIT1: MOV DPTR,#Z8279 MOVX A,DPTR ANL A,#07H NZ READ2 SJMP GO2 READ2: MOV A,#40H MOVX DPTR,A MOV DPTR,#D8279 MOVX A,DPTR CJNE A,#0EH,GO2-等待再次拉客 LJMP AG-等待是否回放 GO2:CJNE A,#07H,WAIT1 nts35 AJMP HFF HFF: MOV R0,#60H HF1: MOV R4,#4 MOV R1,#70H HF: MOV A,R0 MOV A R0 MOV B,R0 ANL A,#0FH MOV R1,A ANL B,#0F0H MOV A,B SWAP A INC R1 MOV R1 A INC R0 INC R1 DJNZ R4,HF MOV A,R0 DISLED1: PUSH ACC PUSH DPH nts36 PUSH DPL MOV DPTR,#Z8279 MOV A,#90H MOVX DPTR,A MOV R0,#70H MOV R7,#08H MOV DPTR,#D8279 DL: MOV A,R0 ADD A,#0BH MOVC A,A+PC MOVX DPTR,A INC R0 DJNZ R7,DL POP DPL POP DPL LJMP DD LEDSEG1:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H DD: MOV DPTR,#Z8279 nts37 MOVX A,DPTR ANL A,#07H JNZ READ4 SJMP DD READ4: MOV A,#40H MOVX DPTR,A MOV DPTR,#D8279 MOVX A,DPTR CJNE A,#07H,AGG POP ACC MOV R0,A AJMP HF1 AGG: LJMP AG 等待再次拉客 END 这 段 程序完成的功能是:用单片机实现出租车记价器 计价功能 。它的 功能 要求如下:按开车键后,显示路程和票价,按停车键,显示总的路程和票价,并将存储。再按下开车键,记价器附初值,重新显示当前路程和票价,再按停车键,显示总的路程和票价,并再次存储。多次存储后, 按一次回放键,显示第一次的票价和路程,按两次停车键,显示第二次的票价和路程,依次按回放键,依次显示跑过的路程和票价。 nts38 7.2 计价器子 程序 清单 DAY_PRICEEQU 6FH NIGHT_PRICEEQU 6EH MIDWAY_PRICEEQU 6DH START_PRICEEQU 6CH COUNTL EQU 6BH COUNTH EQU 6AH M100 EQU 69H ;-外部中断次数 DISTANCE EQU 68H ;-行车距离 MS100 EQU 67H SEC EQU 66H MIN EQU 65H HOUR EQU 64H LEDSL EQU 63H ;-时分钞显示缓冲区 LEDSH EQU 62H LEDML EQU 61H LEDMH EQU 60H LEDHL EQU 5FH LEDHH EQU 5EH LEDDANJIAL EQU 5DH ;-总额,单价显示缓冲区 LEDDANJIAH EQU 5CH LINE_ EQU 5BH LEDCOUNT1 EQU 5AH LEDCOUNT2 EQU 59H LEDCOUNT3 EQU 58H LEDDANJIA2L EQU 57H ;-路程,单价显示缓冲区 LEDDANJIA2H EQU 56H LINE_ EQU 55H LINE_ EQU 54H LEDDISTANCEL EQU 53H LEDDISTANCEH EQU 52H LEDDAY_PL EQU 51H ;-中途,晚上,白天显示缓冲区 LEDDAY_PH EQU 50H nts39 LEDNIG_PL EQU 4FH LEDNIG_PH EQU 4EH LEDW_PL EQU 4DH LEDW_PH EQU 4CH S1 BIT P1.0 S2 BIT P1.1 S3 BIT P1.2 S4 BIT P1.3 S11 EQU 4BH S22 EQU 4AH S33 EQU 49H S44 EQU 48H M1 EQU 47H H1 EQU 46H M2 EQU 45H H2 EQU 44H PRICE EQU 43H ORG 0000H AJMPMAIN ORG 0003H AJMPTO ORG 000BH AJMPTOTIME ORG 001BH AJMPTOSTART ORG 0030H MAIN: MOV SP,#70H MOV TMOD, #11H MOV TH0, #3CH MOV TL0, #0B0H MOV TH1, #3CH MOV TL1, #0B0H MOV 22H, #0AH nts40 SETBEA SETBTR0 SETBEX0 SETBIT0 SETBET0 SETBET1; -RAM单元初始化 MOV R7,#34 MOV R0,#69H LOOPL:MOV R0,#0 DEC R0 DJNZR7,LOOPL MOV COUNTL, #00H ; -起步价 MOV COUNTH, #05H MOV DAY_PRICE,#25H ; -白天价格初始化 MOV NIGHT_PRICE,#30H ; -晚上价格初始化 MOV MIDWAY_PRICE,#10H ; -中途等待初始化 MOV START_PRICE, #50H ; -起步价初始化 MOV S11, #0 MOV S22, #0 MOV S33, #0 MOV S44, #0 MOV DISTANCE, #02H MOV HOUR, #12H - * *键盘第一层扫描程序 ;(键盘扫描主程序) * * KEY_MAIN: SETB TR0 ACALL HMS_DIS ACALL T100MSD ACALL T100MSD ACALL T100MSD JB S1, KEY_MAIN nts41 ACALL T10MSD JB S1, KEY_MAIN JNB S1,$ SJMP WAI1 WA1: JB S1, K1 ACALL T10MSD JB S1, K1 WAIT1: JNB S1, WAIT1 WAI1: ;INC S11; MOV A, S11; CJNE A, #1, N1; MOV M1, MIN; MOV H1, HOUR MOV R0, #LEDDANJIAL MOV R2, #6 CLR A MOV COUNTL,A MOV COUNTH,A MOV M100, A MOV DISTANCE,A BK1: MOV R0, A DEC R0 DJNZ R2, BK1; -起动初始化 MOV PRICE,DAY_PRICE MOV COUNTL, #00H; -起步价 MOV COUNTH, #05H ;MOV DISTANCE,#02H LCALL CP_DIS; -总金额和单价显示 K1: JB S2, K2 ACALL T10MSD JB S2, K2 WAIT2: JNB S2, WAIT2 INC S22 nts42 MOV A, S22 CJNE A, #1, NEXT1 LCALL PA_DIS LJMP KEY_DJ NEXT1:
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:机械毕业设计468出租车计价器系统设计
链接地址:https://www.renrendoc.com/p-553722.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知人人文库网,我们立即给予删除!