Está en la página 1de 2

3

PRÁCTICA 2
“DECODIFICADOR BINARIO A DEC Y HEX DE 4 BITS”
OBJETIVO:

Practicar con la estructura de control SWITCH, así como con el concepto de la conversión entre los sistemas de
numeración binario a decimal y hexadecimal de 4 bits.

MATERIAL:

1 Microcontrolador PIC16F887 (PIC16F887)

8 Interruptores en el Puerto A (LOGIC STATE)

3 Display de 7 Segmentos de Cátodo o Ánodo (7SEG-MPX1-CC)

Común en los Puertos B, C y D (7SEG-MPX1-CA)

DESARROLLO DE LA PRACTICA:

1. Considerar la siguiente conexión de los segmentos de los display con los bits de los puertos del
microcontrolador:
MSB LSB
a b c d e f g h
A7 A6 A5 A4 A3 A2 A1 A0
2. Conforme se vaya modificando el valor binario de los interruptores de los 4 bits menos significativos
del Puerto A, en los display de 7 segmentos conectados los puertos C y D deberá mostrarse el valor
en decimal en un rango del 00 al 15, mientras que en el display de 7 segmentos conectado al puerto
B deberá mostrase el valor en hexadecimal en un rango de 0 a F.

3. Si se llega a presionar uno o varios interruptores conectados a los 4 bits más significativos del Puerto
A, en todos los display de 7 segmentos deberá mostrarse un guión medio encendido (segmento “g”),
indicando que es un valor incorrecto o de error.

INGENIERÍA MECATRÓNICA MICROCONTROLADORES MTRO. LUIS ANTONIO YAÑEZ MARTINEZ


4

EJEMPLO:

Valor en Decimal en Puertos C y D 00  15 Valor en Hexadecimal en Puerto B 0F

RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 DECIMAL HEXADECIMAL

0 0 0 0 0 0 0 0 00 0
0 0 0 0 0 0 0 1 01 1
0 0 0 0 0 0 1 0 02 2
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
0 0 0 0 1 0 0 1 09 9
0 0 0 0 1 0 1 0 10 A
0 0 0 0 1 0 1 1 11 B
0 0 0 0 1 1 0 0 12 C
0 0 0 0 1 1 0 1 13 D
0 0 0 0 1 1 1 0 14 E
0 0 0 0 1 1 1 1 15 F
Cualquier otra combinación -- -
0 0 0 1 1 0 1 0 -- -

SWITCH(INPUT_A( ))
{
CASE 0: //El número del caso se puede escribir en decimal, hexadecimal o binario
-------- //0 = 0X00 = 0B00000000
--------
BREAK;

CASE 1:
OUTPUT_C(0XFC); //Valor en hexadecimal para escribir un 0 en un display de 7 segmentos de CC
OUTPUT_C(0X60); //Valor en hexadecimal para escribir un 1 en un display de 7 segmentos de CC
BREAK;
.
.
.
CASE 15:
--------
--------
BREAK;

DEFAULT: //Para todos los casos no considerados anteriormente se ejecuta lo de DEFAULT


-------- //el cual es opcional
--------
}

INGENIERÍA MECATRÓNICA MICROCONTROLADORES MTRO. LUIS ANTONIO YAÑEZ MARTINEZ

También podría gustarte