Você está na página 1de 5

UNIVERSIDAD ANDINA NESTOR CACERES VELASQUEZ

FACULTAD DE INGENIERIAS Y CIENCIAS PURAS


CARRERA ACADEMICO PROFESIONAL
INGENIERIA ELECTRONICA Y TELECOMUNICACIONES
ASIGNATURA: SISTEMAS DIGITALES II
b

DOCENTE: Mg. Ing. Giovanni Jos HUACASI SUPO

PRACTICA DE LABORATORIO Nro. 2


SALTOS CONDICIONALES Y SALTOS INCONDICIONALES
CONVERSION DE BINARIO A CODIGO BCD
1.

OBJETIVOS

a.

Analizar e implementar aplicaciones empleando las instrucciones de salto


condicional y salto incondicional.

b.

Empleando las instrucciones de salto realizar una aplicacin de conversin de


cdigo binario de 8 bits a cdigo Decimal Codificado en Binario y el resultado mostrarlo en
PORTB del PIC 16F84A.

c.

Reconocer la sintaxis de las instrucciones en lenguaje Ensamblador para PIC de


Microchip.

2.

MATERIALES

Para la realizacin de prctica se necesitan los siguientes componentes y equipos:


a.

Microcontrolador PIC 16F84A de Microchip.

b.

Condensadores: 22pF (2)

c.

Resistencias: 330 (12), 10K (4).

d.

Cristal Oscilador de 4MHz (1).

e.

Diodos led (8).

f.

2 Decodificador de ctodo comn 7448 o equivalente.

g.

2 display de 7 segmentos de ctodo comn

h.

Fuente de alimentacin: 0V - 5V.

i.

Software MPLAB X.

j.

Programador de Microcontroladores PIC Microchip (PICKIT2, DPIC2 o similares).

3.

MARCO TERICO

El microcontrolador PIC 16F84A, es un circuito integrado programable que contiene todos los
componentes de un computador. Se emplea para controlar el funcionamiento de una tarea
determinada y, debido a su reducido tamao, suele ir incorporado en el propio dispositivo al que
gobierna. Esta ltima caracterstica es la que la confiere la denominacin de controlador
incrustado (embedded controller).
a.

INSTRUCCIONES EMPLEADAS EN EL PROGRAMA


i. INSTRUCCIONES DE TRANSFERENCIA DE INFORMACIN
swapf f,d: (Swap Nibbles in f). Los cuatro bits de ms peso del registro f , se intercambian
con los 4 bits de menor peso del mismo registro f . Si d = 0 el resultado se almacena en
W, si d = 1 el resultado se almacena en f
movf f,d: Mueve el contenido del operando fuente, que es una posicin de la memoria de
datos, al destino, que bien puede ser el registro W cuando d=0, o el propio fuente cuando d=1.
movwf f: Mueve el contenido del registro W a la posicin de la memoria de datos identifica por
f; realiza la transferencia W => f.
movlw k: Mueve el literal k incluido en el cdigo de la instruccin al registro W, k => W.
ii. INSTRUCCIONES ARITMTICAS
subwf f,d: (Subtract W from f): Resta (en complement a 2) el contenido del registro f menos
el contenido del registro W. Almacena el resultado en W si d es cero y en f si d es uno.
addwf f,d: Suma el contenido del registro W con el de f y deposita el resultado en W si el valor
de d=0, mientras que si d=1 lo deposita en f.
addlw k: Suma al contenido del registro W el literal que acompaa a la instruccin y deposita
el resultado en W (W+k =>W).
iii. INSTRUCCIONES ORIENTADAS S BIT
bsf f,b: Pone a 1 el bit b del operando fuente f que es una posicin de la memoria de datos
o registro.
bcf f,b: Pone a 0 el bit b del operando fuente f.
iv. INSTRUCCIN DE SALTO INCONDICIONAL Y CONDICIONAL
goto etiqueta: Provoca un salto incondicional en la ejecucin del programa hasta la
instruccin que vaya precedida por el nombre de la etiqueta.

4.

DESARROLLO EXPERIMENTAL

A.

ENUNCIADO

En la prctica se desea implementar un programa para el manejo de las instrucciones de salto


condicionales e incondicionales, para ello se realiza la conversin de cdigo del dato de origen se
encuentra en cdigo binario y se desea convertir a cdigo BCD y el resultado se muestra en

PORTB mediante la conexin de leds, que se ampliar con el uso del decodificador TTL 7447 y 2
display de 7 segmentos.
B.

CIRCUITO ESQUEMTICO

Fig. 02. Diagrama Esquemtico de la experiencia del laboratorio,


sustituir el 4055 por TTL 7448 de ctodo comn
B. CODIGO FUENTE
Escriba el cdigo fuente que se muestra en el Programa MPLAB X, creando un nuevo proyecto:
; ----------------- CONVERSION BINARIO A BCD ------------------------------------------------; Un nmero binario de 8 bits es convertido a BCD. El resultado se guarda en
; tres posiciones de memoria llamadas Centenas, Decenas y Unidades. Adems al
; final las unidades estarn en el nibble bajo del registro W y las decenas en
; el nibble alto. En los diodos Leds conectados al puerto de salida se vern
; las decenas y las unidades.
; El mximo nmero a converir ser el 255 que es el mximo valor que puede
; adquirir el nmero binario de entrada de 8 bits.
; El procedimiento utilizado mediante restas de 10 tal como se explica en el
; siguiente ejemplo que trata de la conversin del nmero 124 a BCD:
; ---------------- CABECERA DE PROGRAMA ----------------------------------; Aqui se define las librerias utilizadas, modelo de PIC y su configuracin
; los registros internos y los registros externos definidos por el usuario.
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _XT_OSC

LIST
#include
Centenas
Decenas
Unidades
Numero

P = 16F84a
"P16F84A.INC"
EQU 0x0C
EQU 0x0D
EQU 0x0E
EQU .124 ; Nmero a Convertir

; --------------------- CUERPO DEL PROGRAMA -------------------------------ORG 0x00


goto
INICIO
ORG 0x05
INICIO bsf
STATUS,RP0 ; Acceso al Banco 1
clrf
TRISB
; Lineas del Puerto B como salidas
bcf
STATUS,RP0 ; Acceso al Banco 0
Principal
clrf
Centenas
; Carga los registros con el resultado inicial
clrf
Decenas
; En principio (Centenas)=0 y (Decenas)=0
movlw Numero
movwf Unidades
; Se carga el nmero binario a convertir
BCD_Resta10
movlw .10
; A las unidades se les va restando 10 en casa
subwf Unidades,W
; pasada. (W) = (Unidades) - 10.
btfss STATUS,C
; (C)=1?, (W) es positivo?, (Unidades)>=10?
goto
BIN_BCD_Fin ; No, es menor de 10. Se acab
BCD_IncrementaDecenas
; Si, incrementa (Decenas)
movwf Unidades
; Recupera lo que queda por restar.
incf
Decenas,F
; Incrementa las decenas y comprueba si llega a 10
movlw .10
; Lo hace mediante una resta.
subwf Decenas,W
; (W) = (Decenas) - 10.
btfss STATUS,C
; (C) = 1?, (W) es positivo?, (Decenas)>=10?
goto
BCD_Resta10 ; No. Vuelve a dar otra pasada, restndole 10.
BCD_IncrementaCentenas
clrf
Decenas
; Pone a cero las decenas
incf
Centenas,F
; e incrementa las centenas
goto
BCD_Resta10 ; Otra pasada, resta 10 al nmero a convertir.
BIN_BCD_Fin
swapf Decenas,W
; En el nibble alto de W tambin las decenas
addwf Unidades,W
; En el nibble bajo de W las unidades.
movwf PORTB
; Se visualiza por el puerto de salida.
sleep
; Se queda permanentemente en reposo.
END
; Fin de Programa
5.
a.
b.
c.

CUESTIONARIO FINAL

Realice el diagrama de flujo del programa, presentar en el informe final


Describa la sintaxis de las instrucciones empleadas en el programa.
Investigue sobre todas las instrucciones de salto que tiene el PIC 16F84A y describa su
sintaxis
d.
Modificar el programa actual para que el resultado de la conversin de un nmero de tres
dgitos se muestre en PORTA para las centenas, es decir, en PORTB las unidades y decenas
y el PORTA las centenas, presentar el diagrama de flujo del programa desarrollado
e.
Conclusiones y recomendaciones

GJHS

Você também pode gostar