Professional Documents
Culture Documents
PROGRAMA:
Ahora considerando que los datos que salen al puerto deben estar decodificados
en 7 segmentos, se debe elaborar la tabla de datos decodificados para manejar por
software y obtener los nmeros respectivos.
La tabla 2.8, muestra los valores para activar los segmentos de un display nodo
comn, recuerde que el display de nodo comn con un nivel alto (1) el segmento se
desactiva y con un nivel bajo (0) el segmento se activa.
Los datos mostrados en la tabla 2.8 deben ser enviados directamente al puerto
para activar los segmentos segn el nmero indicado. Para esto en el programa en una
constante tipo array se almacenan los valores codificados:
PROGRAMA:
En la figura 2.9, RD0 controla al display de las decenas y RD1 al display de las
unidades, por tanto, cuando se ejecuta la instruccin port_d= 1; RD0=1 y RD1= 0, con
lo cual el transistor Q1 se apaga y el transistor Q2 se prende, los datos del puerto
corresponden a las unidades port_b= unidad. En el caso de port_d= 2; RD0=0 y RD1=
1, en este caso el transistor Q1 se prende y el transistor Q2 se apaga, los datos del
puerto corresponden a las decenas port_b= decenas. Recuerde que en los transistores
PNP con un 0 lgico en la base conduce y con un 1 lgico en la base el transistor est
abierto.
La figura 2.9, muestra las conexiones para manejar por el mismo puerto y un
solo decodificador dos display de 7 segmentos simultneamente.
PROGRAMA:
//Funcin display. Muestra los datos en los display y genera un retardo de 1segundo.
void display()
{
for (x= 1; x<= 25; ++x){ //Repite 25 veces.
port_d = 1; //Habilita display unidad y apaga display decena.
port_b= unidad; //Asigna al Puerto b el dato de unidad.
delay_ms(20); //El dato de unidad permanece el Puerto b 20 ms.
port_d = 2; //Habilita el display decena y apaga display unidad.
port_b= decena; //Asigna al Puerto b el dato de decena.
delay_ms(20); //El dato de decena permanece el Puerto b 20 ms.
}
return; //Retorna al programa principal.
}