Red de conocimiento informático - Conocimiento sistemático - Programación digital automotriz

Programación digital automotriz

Contenidos y requisitos del diseño del curso

1. Utilice botones de cambio para representar pulsos, cada pulso representa 100 m, 10 pulsos por 1 km, 1,4 yuanes por kilómetro, el kilometraje y el costo se pueden mostrar simultáneamente;

> 2. Si son menos de 2 km, se cobrarán 5 yuanes. Si son más de 2 km, el costo total = tarifa inicial + (kilometraje - 2 km) * precio unitario del kilometraje +.

Tiempo de espera * precio unitario después de la espera

3. Si el tiempo de espera supera los 2 minutos, se cobrará 1,3 yuanes por minuto. Puede establecer el precio del punto de partida y el precio unitario del kilometraje.

1. Principios de diseño y métodos técnicos:

Incluyendo: análisis del principio de funcionamiento del circuito y diagrama esquemático, selección de componentes y cálculo de parámetros, método de depuración del circuito y explicación de resultados;

Instrucciones de diseño de software y diagramas de flujo, código fuente de software, métodos de depuración de software y descripciones de resultados de operación.

De acuerdo con los requisitos de diseño, el sistema ingresa la señal clk, la señal de inicio de precio, la señal de espera de parada y la señal de pulso de kilometraje fin. Las señales de salida del sistema incluyen: coste total C0-C3, distancia de conducción K0-K1, tiempo de espera M0-M1, etc. El sistema tiene dos señales de entrada de pulsos, clk_750k y FIN, entre las cuales CLK_750K se dividirá en 14 hz, 15 hz y 1 hz según los requisitos de diseño, que se utilizan como pulsos para la carga de kilómetros y la carga de horas extra, respectivamente. Dos interruptores de entrada de control inician y detienen; el proceso de control es el siguiente: el inicio actúa como un interruptor para comenzar a cargar. Cuando el inicio es alto, el sistema comienza a cargar según las condiciones de entrada. Cuando un pasajero sube al autobús y comienza a conducir, el pulso de aleta se utiliza para cargar y conducir. En este momento, la parada debe establecerse en 0, si necesita detenerse y esperar, gire la parada a un nivel alto;

Y quitar las aletas para introducir pulsos y esperar la carga; cuando los pasajeros se bajan del coche y no esperan, se pone start directamente en 0 y el sistema deja de funcionar; precio de 5,0 yuanes.

Todo el diseño consta de cinco partes: módulo divisor de frecuencia, módulo de medición, módulo de carga, módulo de control y módulo de visualización.

El módulo de medición es una parte importante de todo el sistema, ya que realiza el conteo de kilometraje y el conteo de tiempo; el módulo de control es un componente selectivo para realizar diferentes métodos de carga. Según el terminal habilitante diseñado, elija si desea cobrar en función del kilometraje o en función del tiempo de espera. Al mismo tiempo, se diseña un módulo de división de frecuencia para generar señales de pulso de diferentes frecuencias para lograr la carga del sistema. El módulo de medición utiliza una señal de accionamiento de 1 Hz y el módulo de carga utiliza una señal de accionamiento de 1,4 Hz y 1,3 Hz. Cada vez que el módulo de medición cuenta, el módulo de medición contará 14 o 13 veces, es decir, 1,3 yuanes/minuto para cronometrar y 1,4 yuanes/km para la tala.

El diagrama de bloques es el siguiente:

1. Módulo decimal:

Para realizar la señal de conducción de un pulso de 100 m, su diagrama de bloques se muestra en la Figura 3:

Figura 3 Diagrama de bloques del módulo del módulo decimal

El programa fuente es el siguiente:

Biblioteca ieee

Usando IEEE_1164.all;

Usando IEEE .std_logic_unsigned .all;

entity_parking_is

port(start, clk2: in std_logic; - segundo pulso

a: out std_logic_vector( 3 gotas 0));

Duanbaijinzhi;

El edificio rt1 de Platinum es

Recuento de señales _ 1: STD _ lógica _ vector (3 hasta 0);

Iniciar

un & lt= recuento_1;

Proceso(Inicio, reloj 2)

iniciar

if(start='0 ')entonces

count _ 1 <="0000";

elsif(clk2 'Suma de eventos clk2='1 ') entonces

si (count_1 = "0111") entonces

count_1 & lt;="0000";

Otros

count_1< ;= count_1+' 1';

finalizar si;

finalizar si;

Finalizar proceso;

Fin rt1

2. Módulo de carga

; Implementar facturación de kilometraje y tiempo de espera y salida a la pantalla.

El diagrama de bloques de los componentes es el siguiente:

Figura 4 Diagrama de bloques del módulo de contabilidad

El programa fuente es el siguiente:

Biblioteca IEEE

Usando IEEE . STD _ logic_1164.all;

Usar IEEE.STD_logic_arith.all;

Usar IEEE.STD_logic_unsigned.all;

Qi Fi es una entidad

Puerto (clk2: en std_logic; - señal de unidad de carga

inicio: en std_logic; - señal de inicio de carga

c0, c1 , c2, C3: buffer STD _ logic _ vector (3 hasta 0));

Duan Jifei

La arquitectura rt1 de Qi Fei es

Iniciar

Proceso (clk2, inicio)

Inicio

Si inicio='0 ', entonces c3 & lt="0000"; c2 & lt=" 0000";c 1 <= "0101";c0 <="0000";-El precio inicial es 5 yuanes

elsif clk2 'evento, y clk2='1' entonces

Si c0="1001 ", entonces c0 & lt="0000";

Si c1="1001 ", entonces c 1 & lt;="0000";

Si c2="1001 ", entonces c2 & lt="0000";

Si c3="1001 ", entonces c3 & lt="0000";

de lo contrario c3 & lt= C3+1;

Fin si;

si no c2 & lt= C2+1

Fin si

si no c 1 & lt;= c 1+1 ;

Fin si;

else c0 & lt= c1;

Fin si;

Fin si;

Finalizar proceso;

Fin rt 1;

3. Módulo de kilómetros

Implementar proceso de conteo y carga de salida de pulsos, el diagrama de bloques es el siguiente :

Figura diagrama de bloques del módulo de 5 km

El programa fuente es el siguiente:

Biblioteca ieee

Utilice IEEE_logic_1164.all;

Utilice IEEE.STD_logic_unsigned.all;

La entidad Gong Li es

puerto(clk1, inicio: en STD _ logic; pulso de -100 metros

k1, k2, k3, k4: salida STD _ logic _ vector (3 hasta 0 - visualización de kilometraje

temp 2: salida STD_logic);

Fin de Gong Li;

El edificio rt1 de Gong Li es

Recuento de señales_1:STD_logic_vector(3 hasta 0);

Recuento de señales_2:STD_logic_vector(3 hasta 0) );

Recuento de señales_3:STD_logic_vector(3 hasta 0);

Recuento de señales_4:STD_logic_vector(3 hasta 0);

Inicio

k 1 <= cuenta_1;

p>

k2 & lt= cuenta_2

k3 & lt= cuenta_3; p>

k4 & lt= recuento _ 4;

proceso(inicio, clk1)

inicio

si(inicio='0 ')entonces

cuenta_1 & lt;="0000";

cuenta_2 & lt="0000";

cuenta_3 & lt="0000";

count _ 4 & lt="0000";km despejado

elsif(clk1 'evento y clk1='1') entonces

if(count _ 1 = " 1001 ") luego - contador de kilómetros

cuenta _ 1 & lt;="0000"; cuenta _ 2 & lt= cuenta _ 2+1; temp2 & lt='1';

si(count_2="1001 ")entonces

count_ 2 & lt="0000";count_ 3 & lt= count_ 3+' 1 ';

si (count_3="1001 ")entonces

count_3 & lt="0000";count_4<= count_4+' 1';

Finalizar si

Finalizar si;

Otro

count _ 1 & lt; = count _ 1+' 1 '; temp2 & lt='0';

p>

Finalizar si;

Finalizar si;

Finalizar proceso

finalizar rt 1; 4. Módulo de salida

Para realizar la salida de todos los datos, el diagrama de bloques de componentes es el siguiente:

Figura 6 Diagrama de bloques del módulo de salida

El El programa fuente es el siguiente:

Biblioteca ieee

Utilice IEEE.STD_logic_1164.all;

Utilice IEEE.STD_logic_unsigned.all;

La biblioteca física es

p>

port(y:in STD _ logic _ vector(3 hasta 0);

e:out STD _ logic _ vector(6 hasta 0));

Oficina de Duan Shu;

Shuchu Architecture rt 1 es

Inicio

Proceso

Inicio

Caso y es

Cuando "0000"=>;e & lt="0111111";

Cuando "0001"=>;e< ="0000110";

Cuando " 0010" = >; e & lt="1011011";

Cuando " 0011" = >; /p>

Cuando" 0100"= >e & lt="1100110";

Cuando" 0101"= >e & lt="1101101";

Cuando" 0110"= > e & lt="1111101";

Cuando " 0111" = >; e & lt="0000111";

Cuando " 1000" = >e & lt ="1111111 ";

Cuando " 1001" = >e & lt="1100111";

Cuando otros = & gte & lt="0000000";

Finalizar caso;

Finalizar proceso;

Fin rt 1;

5. Componente de visualización

Para realizar la visualización. De todos los datos, el diagrama de bloques de componentes es el siguiente:

La Figura 7 muestra el diagrama de bloques de este módulo.

El programa fuente es el siguiente:

Biblioteca ieee

Usando IEEE.STD_logic_1164.all;

Usando IEEE.STD_logic _ unsigned . all;

La piedra física ahora

puerto (inicio: en std_logic;

Respuesta: en STD _ logic _ vector (3 hasta 0); - señal de selección

c1, c2, c3, c4, out1, out2, out3, out 4: en STD _ logic _ vector (3 hasta 0 - visualización de kilometraje, entrada de visualización de tiempo);

y:out STD _ logic _ vector(3 hasta 0)); - Visualización de kilometraje, salida de visualización de tiempo

Aparece la piedra final;

Edificio de Ishigen rt1 es

iniciar

proceso

iniciar

si(inicio='0 ')entonces

y & lt="0000";

De lo contrario, el caso a es

Cuando " 0000" = >; y & lt= c 1;

Cuando " 0001" = >; y & lt= c2

Cuando " 0010" = >; y & lt= c3

Cuando " 0011" = >;

Cuando " 0100"= >y & lt= out 1;

Cuando " 0101"= >y & lt= out2

Cuando " 0110"= >y & lt = out3

Cuando " 0111"= >;y & lt= out4

Cuando otros= & gty & lt= "0000";

Fin mayúscula;

Finalizar si;

Finalizar proceso;

finalizar rt 1;

Módulo 6.dian

Figura Diagrama de bloques de 8 módulos dian

El programa fuente es el siguiente:

Biblioteca ieee

Usando IEEE all;

Usando IEEE. IEEE.STD_logic_unsigned.all;

Los puntos de entidad son

puertos (a: en std_logic_vector (3 hasta 0);

e:out STD_logic );

Duandian;

la arquitectura rt1 de dian es

Inicio

Proceso

Inicio

El caso a es

Cuando "0001"= >;e<='1';

Cuando "0101" = >e & lt='1';

Cuando otros = & gte & lt='0';

Finalizar caso;

Finalizar proceso;

Fin rt 1;

En tercer lugar, análisis del diseño de cada módulo.

El diagrama de bloques general de nivel superior del sistema es el siguiente:

El diagrama de bloques general de nivel superior del sistema

La función final del El programa es implementar la simulación de forma de onda.

1. Módulo de división de frecuencia

Dado que no hay señales de reloj múltiples enteras de 14 hz y 13 hz en la caja experimental, se utiliza la frecuencia de 750 kHz para la división de frecuencia, obteniendo así aproximadamente 14 hz. , Frecuencia de reloj de 13hz y 1hz. A través de las señales de pulso de las tres frecuencias diferentes anteriores, el taxi es conducido y espera una facturación diferente en las dos situaciones.

Los elementos del módulo son los siguientes:

Diagrama de bloques del módulo de división de frecuencia

El programa fuente es el siguiente:

Biblioteca IEEE

Uso IEEE . STD _ logic _ 1164. todos;

Usar IEEE_logic_arith.all;

Usar IEEE.STD_logic_unsigned.all;

Asignación de entidad Sí

Puerto (clk_750k: en std_logic; - reloj del sistema

clk_14: buffer STD_logic; -dividir por 14

clk_13: buffer STD_logic;-13 división de frecuencia

clk _ 1:buffer STD _ logic);-1 división de frecuencia

Fin de división;

División La arquitectura de rt1 es

Señal q_14: rango de enteros 0 a 53570; - Definir semáforo intermedio

Señal q_13: rango de enteros 0 a 57691

Señal q_1: rango de enteros 0 a 749999;

Iniciar

Proceso(clk_750k)

Iniciar

Si (clk_750k 'evento y clk_750k=' 1 '), entonces

Si q_14=53570, entonces q_14 <=0;clk_14<= not clk_14;

else q_14 <= q_14+1;

Finalizar si: obtiene señal de frecuencia de 14 hz.

Si q_13=57691, entonces q_13<=0;clk_13<= not clk_13;

si no q_13<= q _ 13+1;

Finalizar si ; - Obtener señal de frecuencia de 13hz.

Si q_1=749999, entonces q_1<=0;clk_1<= no clk_1;

si no q_1<= q _ 1+1;

Finalizar si ; - Obtener señal de frecuencia de 1hz

Finalizar si;

Finalizar proceso;

Fin rt 1 ;

Módulo de medición

p>

El módulo de medición completa principalmente funciones de sincronización y grabación.

Parte de tiempo: Calcula el tiempo de espera acumulado de los pasajeros. Cuando el tiempo de espera supera los 2 minutos, la señal de habilitación en1 en este módulo cambia a 1 cuando llega cada flanco ascendente de clk1, el temporizador se incrementará automáticamente en 1, su rango es de 59 minutos y volverá automáticamente a cero después de la escala completa; .

Parte de registro: Calcula el número de kilómetros recorridos por los pasajeros. Cuando el kilometraje supera los 2 km, la señal de habilitación en0 en este módulo se convertirá en 1; cuando llegue cada flanco ascendente de clk, el registro aumentará en 1. El alcance del registro es de 99 km y volverá automáticamente a cero después de la escala completa.

El diagrama de bloques de los componentes es el siguiente:

Diagrama de bloques del módulo de medición

La forma de onda analógica del módulo de medición es:

El El programa fuente es el siguiente:

Biblioteca ieee

Utilice IEEE.STD_logic_1164.all;

Utilice IEEE.STD_logic_arith.all;

Utilice IEEE . STD _ logic _ unsigned

La entidad Ji Liang es

Puerto (inicio: en std_logic; - Señal de inicio de contabilidad

fin: En std_logic; - Señal de pulso de kilometraje

parada: En std_logic - Esperando señal durante la conducción

clk1: En std_logic - Pulso de conducción

en1, en0: buffer STD_logic - señal de habilitación del precio unitario de facturación

k1, k0: buffer STD_logic_vector(3 hasta 0); )); - recuento del tiempo de espera

Fin de Ji Liang;

El edificio rt2 de Ji Liang es

Señal w: rango de números enteros de 0 a 59 - rango de tiempo 0; ~59

Iniciar

Proceso (clk1)

Iniciar

Si (clk1 'evento y clk1='1'), entonces

Si inicio='0', entonces

w & lt=0;en 1 & lt;= '0';en0 & lt='0';m 1 & lt ;="0000";

m0 & lt="0000";k 1 & lt;="0000";k0 & lt ="0000";

Elsif parada =' 1 'Entonces la señal de inicio de cronometraje

Si w=59, entonces

w & lt=0;

p>

de lo contrario w & lt= w+1 ;

Finalizar si;

Si m0="1001 ", entonces

m0 & lt= "0000";

Si m1 ="0101 ", luego

m 1 & lt;="0000";

si no m 1 & lt;= m 1+1

Fin if;

else m0 & lt= m1;

Fin

Si stop ='1', entonces en0<='0';

si m 1&m0>"00000001" entonces en 1<='1'; -si el tiempo de espera es mayor a 2 minutos, en1 se establece en 1.

else en 1 <='0';

Finalizar si;

Finalizar si

Elsefin =' 1 ' Entonces empieza a contar millas.

Si k0="1001", entonces k0 & lt="0000";

Si k1="1001", entonces k 1 & lt="0000"; 0~99

else k 1 & lt;= k 1+1;

Finalizar si;

else k0 & lt= k1;

p>

Finalizar si;

Si stop='0', entonces

en 1 & lt;='0';

Si k 1 &k0>Entonces "00000001"

en0 <='1' - Si el kilometraje es mayor a 2 km, en0 es 1.

else en0 & lt='0';

Finalizar si;

Finalizar si

Finalizar

Finalizar si;

Finalizar proceso;

Fin rt2

3. Módulo de control

Este módulo utiliza principalmente el módulo de medición. Las dos señales de habilitación de entrada diferentes en0 y en1 se generan para seleccionar y emitir los pulsos de 14 hz y 13 hz emitidos por cada módulo divisor de frecuencia. Este módulo realiza la selección de pulsos dobles; el objetivo final es calcular los precios para diferentes períodos de tiempo durante el proceso de conducción en el módulo de carga.

Los elementos del módulo son los siguientes:

Diagrama de bloques del módulo de control

La forma de onda analógica del módulo de control es:

La fuente El programa es el siguiente:

Biblioteca IEEE

Usar IEEE.STD_logic_1164.all;

Usar IEEE.STD_logic_arith.all;

Usar IEEE .STD_logic_unsigned .all;

Control de entidad sí

puerto(en0, en1: en std_logic; - habilitar señal de selección

clk_ en 1: en STD _ lógica; -14 señal de entrada de división de frecuencia

clk_in2: in std_logic; -13 señal de entrada de división de frecuencia

clk_out:out STD_logic -Señal de salida

Puerta Chi;

El edificio vacío rt3 es

Inicio

Proceso (en0, en1)

Inicio

Ifen0 =' 1 'Entonces, realice la función de elegir uno de los dos.

clk_out & lt= clk_in 1

elsif en1='1' luego

clk_out & lt= clk_in2

p>

Finalizar si;

Finalizar proceso;

Finalizar rt3

4. Cuando la señal de carga comienza siempre cuando está en un nivel alto, es decir, en el estado de carga, el módulo carga por diferentes períodos de precio unitario según la señal seleccionada por el módulo de control. Es decir, si el viaje es de 2 kilómetros y el tiempo de espera acumulativo es inferior a 2 minutos, el precio inicial es de 5 yuanes más allá de los 2 kilómetros, la tarifa es de 1,4 yuanes por kilómetro y el tiempo de espera acumulativo supera los 2 minutos; el precio es de 1,3 yuanes por minuto. C0, c1, c2 y c3 representan respectivamente la visualización de costos.

Los elementos del módulo incluyen:

Diagrama de bloques del módulo de facturación

La forma de onda analógica del módulo de carga es:

El programa fuente es el siguiente: siguiente:

Biblioteca IEEE

Usar IEEE.STD_logic_1164.all;

Usar IEEE.STD_logic_arith.all;

Usar IEEE.STD_logic_unsigned .all;

Qifei es entidad

Puerto (clk2: en std_logic; - señal de unidad de carga

inicio: en std_logic; - señal de inicio de facturación

c0, c1, c2, C3: buffer STD _ logic _ vector (3 hasta 0));

Duan Ji Fei

La arquitectura rt4 de Jifei es

p>

Inicio

Proceso (clk2, inicio)

Inicio

Si inicio ='0 ', entonces c3 & lt="0000"; c2 & lt="0000";c 1 & lt;="0101";c0 & lt="0000"; - precio inicial 5 yuanes

elsif clk2 'evento, y clk2='1 'luego

Si c0="1001 "entonces c0 & lt="0000";

Si c1="1001 ", entonces c 1 <="0000";

Si c2="1001", entonces c2 & lt="0000";

Si c3="1001", entonces c3 & lt="0000";-El rango de valoración es 0~999,9

else c3 & lt= C3+1;

Fin si;

else c2 & lt= C2+1;

Fin if;

else c 1 & lt;= c 1+1;

Finalizar si;

else c0 & lt= c1

Terminar si;

Terminar si;

Terminar proceso;

Terminar rt4

5. >

El módulo de visualización completa la visualización de precios, tiempos y datos de registro. Los datos de facturación se envían al módulo de visualización para su decodificación y finalmente se envían a los tubos digitales correspondientes en unidades de 100 yuanes, 10 yuanes, yuanes y jiao para su visualización. Los datos de sincronización se envían al módulo de visualización para su decodificación y finalmente se envían a la pantalla del tubo digital correspondiente a la unidad de división. Los datos del registro se envían al módulo de visualización para su decodificación y finalmente se envían a la pantalla del tubo digital en km.

Los elementos del módulo incluyen:

Diagrama de bloques del módulo de visualización

El programa fuente es el siguiente:

Biblioteca ieee

Usado IEEE.STD_logic_1164.all;

Usar IEEE.STD_logic_unsigned.all; - definir paquete de biblioteca

Definir entidades.

Puerto(

clk_scan: en std_logic; - Escanear la configuración del puerto de señal de reloj

c3, c2, c1, c0: en std_logic_vector(3 hasta 0) en ; - puerto de entrada de costo total

k0, k 1: en STD _ lógica _ vector (3 hasta 0); - puerto de entrada de kilometraje

m0, m 1: en STD _ logic _ vector(3 hasta 0);-tiempo de espera del puerto de entrada

sel:out STD _ logic _ vector(2 hasta 0);-controla la señal de selección de posición del tubo digital de la salida de señal de escaneo puerto .

led:out STD _ logic _ vector(6 hasta 0);-El puerto de control del tubo digital

led _ DP:out STD _ logic-La salida del punto decimal Puerto del tubo digital.

);

Fin de Ishigen;

El edificio rt5 de Ishigen es

Segmento de señal: STD _ logic _ vector(6 hasta 0 );-Variable intermedia del tubo de visualización digital

Señal Shu ju:STD _ logic _ vector(3 hasta 0);-Seleccione la variable intermedia en el extremo de entrada.

Señal CNT: STD_logic_vector (2 hasta 0) - variable intermedia que controla el tubo digital

Señal circuito pequeño: std_logic - variable intermedia con punto decimal

Iniciar

proceso(clk_scan): inicia el proceso.

Iniciar

Si el evento clk_scan y clk_scan='1' entonces

cnt & lt= CNT+1: cada señal de escaneo tiene un flanco ascendente, implemente. 1 escaneo.

Finalizar si;

Finalizar proceso; - finalizar este proceso

Proceso (cnt) - iniciar proceso (seleccione tubo digital de pantalla de escaneo)

Inicio

Asigne un valor a cada tubo digital durante el proceso de escaneo.

Cuando " 000" = >; Shuju& lt= c0

Cuando " 001" = >; >cuando; Shuju& lt= c2

Cuando" 011"= >Shuju& lt= c3

Cuando" 100"= >Shuju& lt= k0

Cuando" 101"= >Shuju& lt= k 1;

Cuando" 110"= >Shuju& lt= m0

Cuando " 111 " = > Shuju & lt = m 1;

Cuando otros = & gtnull

Fin de caso;

if (cnt="001 " o cnt="110 ")

Entonces Xiaodian<= '1';-muestra puntos decimales en unidades de kilometraje y costo total.

else Xiaodian& lt='0';

Finalizar si;

Finalizar proceso - Finalizar este proceso

Proceso (shuju) - Iniciar el proceso (visualización de decodificación)

Inicio

El árbol de casos es

Cuando "0000" = >; 0

Cuando " 0001" = >; segmento & lt="0000110";- 1

Cuando " 0010" = >; segmento & lt="1011011" ;- 2

Cuando " 0011" = >; segmento & lt="1001111";- 3

Cuando " 0100" = > segmento & lt="1100110";- 4

Cuando" 0101"= >Duan& lt="1101101";- 5

Cuando" 0110"= >Duan& lt="1111101";- 6

Cuando " 0111 " = >; segmento & lt="0000111"; - 7

Cuando " 1000" = > segmento & lt="1111111"; - 8

Cuando "1001"=> segmento<="1101111";- 9

Cuando otros=>null

Finalizar caso;

Finalizar proceso

sel & lt= cnt

led & lt=segment;

led _ dp & lt=小电;

Fin rt5

2. registros de trabajo:

Incluyendo: pasos de diseño y cronograma, pasos de depuración y cronograma, y ​​descripción de los resultados de finalización del proyecto.

2. Descripción de los resultados de finalización del proyecto:

El precio inicial que puede alcanzar este medidor es de 5 yuanes; el precio unitario requerido para el experimento es 1 km. Cuando la distancia de conducción es superior a 2 km, la tarifa es de 1,4 yuanes por kilómetro y se puede mostrar el kilometraje y el coste total. Después de conducir 6 kilómetros y esperar 4 minutos, la tarifa era de 15,8 yuanes. El costo total de la fórmula de cálculo = costo inicial + (kilometraje - 2 km) * precio unitario del kilometraje + tiempo de espera * y así sucesivamente, es decir, 15,8 = 5+(6-2)* 1,4+4 * 1,3; Los resultados experimentales son completamente consistentes con los resultados teóricos y el diseño experimental es exitoso.