Vous êtes sur la page 1sur 6

UNIVERSIDAD ANDINA NESTOR CACERES

VELASQUEZ
FACULTADA DE INGENERIAS Y CIENCIAS PURAS
ESCUELA PROFESIONAL DE INGENERIA
ELECTRONICA Y TELECOMUNICACIONES

ASIGNATURA: SISTEMAS DIGITALES II


PRACTICA DE LABORATORIO Nro. II

SALTOS CONDICIONALES Y SALTOS Y SALTOS INCONDICIONALES


CONVERSION DE BINARIO A CODIGO BCD
INTEGRANTES:

GLUDHER QUISPE COTACALLAPA


EDWIN FREDY CHAMBI MAMANI

DOCENTE: Mg. Ing. GIOVANNI JOSE HUACASI SUPO

SEMESTRE: V

JULIACA-PUNO-PERU
2016

UNIVERSIDAD ANDINA NESTOR CACERES VELASQUEZ


FACULTAD DE INGENIERIAS Y CIENCIAS PURAS
CARRERA ACADEMICO PROFESIONAL
INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

PRACTICA DE LABORATORIO II
CUESTIONRIO FINAL

a. Realice el diagrama de flujo del programa, presentar en el informe


final.

INICIO

Unidades= numero;
decenas=0

(Unidades)-10

W>=10

w.(decenas)

incrementa
n

Decenas>=10
s
Decenas=0;
incrementa
(centenas)

Resultado se
almacena en:
Unidades,
decenas y
centenas
End

b. Describa la sintaxis de las instrucciones empleadas en el programa.

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.

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).

INSTRUCCIONES ORIENTADAS A 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.

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.
clrf f: Se borra el contenido del registro "f" y el flag Z de estado se activa.
Incf f,d: Incrementa en una unidad el contenido del registro "f". Si "d" es 0, el resultado se
almacena en W. Si "d" es 1, el resultado se almacena en "f".
sleep: Al salir, activa el bit de estado TO y borra el PD. El WDT y el prescaler se borran. Al
entrar en el modo SLEEP, se detiene el oscilador.
END: Fin del programa.

__CONFIG _XT_OSC & _WDT_OFF & _CP_OFF & _PWRTE_OFF ; Palabra de


Configuracin

;Programa conversin de binario natural a formato BCD.


LIST

P = 16F84a; Procesador utilizado.

include

"P16F84a.inc"; Fichero donde se definen las etiquetas del PIC.

Centenas

EQU 0X0C

Decenas

EQU 0X0D

Unidades

EQU 0X0E

Numero

EQU .124 ; NUMERO A CONVERTIR

;--------------CUERPO DEL PROGRAMA------------ORG 0X00; El programa comienza en la direccin 0.


GOTO INICIO; ir a inicio
ORG 0X05
INICIO bsf

STATUS,RP0 ; ACCESO AL BANCO 1

clrf

TRISB

; LINEAS DEL PUERTO B COMO SALIDA

clrf

TRISA

bcf

STATUS,RP0 ;ACCESO AL BANCO 0

;.......PROG 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 numero binario a convertir

BCD_Resta10
movlw .10
subwf Unidades,W ;pasar a punto(w)=(unidades)
btfss STATUS,C
goto

;(C)=1?,(W)espositivo?,(unidades)>=10?

BIN_BCD_FIN ;No, es menor de 10. Se acabo

BCD_IncrementaDecenas
movwf Unidades
incf

;si,incrementa (decenas)

;Recupera lo que queda por restar

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
goto

;(c)=1?,(w)es positivo?,(decenas)>=10?

BCD_Resta10 ;no.vuelve a dar otra pasada,restandole 10.

BCD_IncrementaCentenas
clrf

Decenas

;ACERO LAS DECENAS

incf
goto

Centenas,F ;e incremente las centenas


BCD_Resta10 ;otra pasada,resta 10 al numero a convertir

BIN_BCD_FIN
swapf Decenas,W ;en el nibble alto de w tambien las decenas
addwf Unidades,W ;en el nible bajo de w las unidades
movwf PORTB

;SEVISUALIZA EN EL PUERTO DE SALIDA

movlw Centenas,w
movwf PORTA
sleep

;Se queda permanentemente en reposo

END

;FIN

c. Investigue sobre todas las instrucciones de salto que tiene el PIC


16F84A y describa su sintaxis.
Saltos en funcin de un bit.
Btfsc f,b;
Si el bit nmero b del registro f es 1 la instruccin que sigue a esta se ejecuta
normalmente.
Si el bit nmero b del registro f es 0 la instruccin que sigue a esta se ignora
y salta.
Btss f,b
Si el bit nmero b del registro f es 0 la instruccin que sigue a esta se ejecuta
normalmente.
Si el bit nmero b del registro f es 1 la instruccin que sigue a esta se ignora
y salta.
.
Saltos en funcin de un registro.
Decfsz f,d ; esta instruccin decremento en una unidad el contenido del
registro f si d = 0 (en cuyo caso f no varia) y en el registro f si d =1.
Despus de decremento
Pueden ocurrir dos casos
Si el resultado es distinto de cero la instruccin que sigue a esta se
ejecuta normalmente.
Si el resultado es cero la instruccin que sigue a esta se ignora y se
salta.

Incfsz f,d ;Esta instruccin incrementa en una unidad el contenido del registro
f. Almacena el resultado en W si d= 0(en cuyo caso f no vara) y en el registro
f si d =1. Despus de incrementar puede ocurrir dos casos.

Si el resultado es distinto de cero la instruccin que sigue a esta se


ejecuta normalmente.
Si el resultado es cero (porque al incrementar se ha desbordado y ha
pasado del nmero b11111111 al b00000000) la instruccin que sigue
a esta se ignora y se salta.
Incfsz Contador, F
Goto Bucle

d. Modificar el programa actual para que el resultado de la conversin


de un numero de tres dgitos se muestre en PORTA para las
centenas, es decir, en PORTB las unidades y decenas y en el
PORTA las centenas, presentar el diagrama de flujo del programa
desarrollado.

e. Conclusiones y recomendaciones.
En el presente trabajo usamos el PIC 16F84A y usamos el puerto A para
la salida de las centenas y el puerto B para las salidas de las decenas y
unidades.
Hemos visto conveniente trabajar con un TTLs por lo mismo que es muy
comercial y conocido a diferencia del CMOS.

Vous aimerez peut-être aussi