1、 出租车计程计价器的设计出租车计程计价器的设计 一课程设计目的与要求课程设计目的与要求 为了能够精确地测量出租车行驶的路程和计算出该路程所需的价格, 并显示出路程值和所需的钱值,基于单片机 MCS-51 能够完成该工作。 利用实验室提供的设配, 利用实验箱上LED显示器设计能够显示6位 (前 四位是价钱值,后两位路程值),利用实验箱上提供的外部脉冲作为车轮走 过的路程(设车轮直径为 D=60cm,S=D=2m),设起步价为 12.5 元,超过 3km,超出的每千米按 2.4 元计算,同时包含停车每超过 45s 又要加 6 角。 二设计方案设计方案 (1)设)设计原理计原理 1.利用发光二级管
2、L0 灭来辨识有乘客,亮时没有乘客。通过开关 K1 来控制。具体接线是将 P1.1 与 L0 相连,P3.3 与 K1 相连。利用实验箱上的 直流电机转速产生的脉冲作为 T0 的外来计数脉冲。 具体接线是将 P3.4 与实 验箱上的 CKMOT(CKMOT 即是直流电机转数产生脉冲输出端)相连。 2.规定如下:起始价为 12.5 元,若在 3Km以内则应付费 12.5 元, 如果超过了 3Km 则应按超过 3km 的另外以每千米 2.4 元计算,及总价为 JJ=12.5+(S-3)2.4元 。若途中因为红灯或塞车的原因停车则每停车 45 秒要另加 0.6 元即 JJ=JJ+0.6.如举个例子
3、S=85km,中途没有停车则 JJ=12.5+ (85-3)2.4=209.3(元)则 6 个数码管将显示“209.3 85” 3.具体过程叙述如下:程序一开始由于 CLR p1.1 知 L0 亮,并且开 始时开关 K1 置 1 档,直到有乘客上车时,把开关打向 0 档,L0 灭,同时显 示器开始计程计价(开始显示为“12.5 00“)之后车轮每转一圈相当于输出 一个外部脉冲到P3.4, 利用T0计数, T0每计125则T0中断一次, 由于1km=4 1252(车轮每转一圈则路程为 2m) ,即在 T0 中断程序中还有一个计中 断次数的。 在本设计中用到 6 个数码管分别为 百元,十元,元,角
4、,十千米,千米。 程序中用十进制 BCD 码来表示价钱和路程, 因此要用到将 BCD 码转换成 非压缩的 BCD 码来驱动数码管显示。 即用 30H 存储路程 S (压缩 BCD 码) 。另外用 31H,32H 来存储计价值 JJ 的压缩 BCD 码,高字节放在 32H 中(百元,十元) ,低字节放在 31H 中(元,角) ,开始计价时 30H 为 0,32H 中为 1(10 元)31H 中为 25(二元五角) 。调用 BCDZH 将 BCD 码转成非 压缩 BCD 码在调用 DISP 显示函数驱动数码管显示。 在 T0 中断中若 S3km 则调用 BCDJ24 即以后每千米加 2.4 元,在调用 BCDZH 和 DISP 显示路程和价钱。注意 30H32H 中对应的非压缩 BCD 码 存放在 40H45H(40H 存放一千米,41H 存放十千米,42H 存放角,43H 存 放元,44H 存放十元,45H 存放百元) 。 程序中还用 T1 定时器来检测是否处于停车状态,由晶振频率 fosc=12MHz,T1 定时为 5