PRÁCTICA-1 Microcomputadoras FI
PRÁCTICA-1 Microcomputadoras FI
PRÁCTICA-1 Microcomputadoras FI
FACULTAD DE INGENIERA
SEMESTRE 2017-2
LABORATORIO DE MICROCOMPUTADORAS
M. I. RUBEN ANAYA GARCA
PRCTICA 1. INTRODUCCIN GENERAL A UN
MICROCONTROLADOR PIC16F877
ALUMNOS:
OCAA CASILLAS ANDREA JYHAN
YAEZ CADENA CRISTIAN DAVID
FECHA DE ENTREGA:
16-MARZO-2017
DESARROLLO
Para cada uno de los siguientes ejercicios, realizar los programas solicitados
y simular el funcionamiento de ellos.
1. Siguiendo las indicaciones previas, escribir el siguiente programa,
ensamblar y simular el funcionamiento de este:
PROGRAMA
processor 16f877
include <p16f877.inc>
K equ h'26'
R1 equ h'27'
org 0
goto INICIO
org 5
2. Modificar el programa anterior, para que ahora los datos que operar
se encuentren en las localidades reservadas para J y K
respectivamente y el resultado almacenarlo en otras direcciones,
reservadas para C1 y R1 donde C1 representar el valor de la
bandera de acarreo y R1 el resultado.
PROGRAMA
processor 16f877
include <p16f877.inc>
org 0
goto INICIO
org 5
PROGRAMA
processor 16f877
include<p16f877.inc>
org 0
goto INICIO
org 5
PROGRAMA
processor 16f877
include<p16f877.inc>
org 0
goto INICIO
org 5
LIMPIA: clrf h'20' ;Limpia la localidad 20h
INICIO: incf h'20',1 ;Incrementa el valor que haya en 20h
movlw h'9' ;Carga en W el valor de 9h
xorwf h'20',w ;Realiza XOR del contenido de W con contenido
de 20h
btfss STATUS,Z ;Verifica si el resultado de Xor=0 (z=1)
goto INICIO ;No,Repite el ciclo Si, entocess llegamos a 9
DIEZ: movlw h'7' ;Carga en W el valor de 7
addwf h'20' ;Suma W+Loc h'20' para obtener el numero siguiente
para seguir la secuencia de nmeros decimales
INC: movlw h'20' ;Carga el valor de 20h en W
xorwf h'20',w ;Realiza XOR del contenido de W con el
contenido de 20h
btfsc STATUS,Z ;Verifica si el resultado de Xor!=0 (z=0)
goto LIMPIA ;NO,entonces llegamos al 20 y vuelve
aempezar la cuenta
incf h'20' ;Si,incrementa
movlw h'19' ;Carga el valor de 19h en W
xorwf h'20',w ;Realiza XOR del contenido de W con el
contenido de 20h
btfsc STATUS,Z ;Verifica si el resultado de Xor!=0 (z=0)
goto DIEZ ;No,ve a DIEZ
goto INC ;Si,repite el ciclo
end
inicio:
movlw h'21' ;w=21hex
movwf FSR ;FSR=w
movf k,0 ;w=k
movwf h'41' ;[0x41]=w
evalua:
btfss FSR,6 ;salta si bit 6 de FSR es 0 (si llego a
la dirr 40)
goto sigue
btfss FSR,0
goto sigue
goto fin ;Falso va a inicio
sigue subwf INDF,0 ;w=INDF-w
btfsc STATUS,C ;salta si acarrero es 1 (si la resta
fue negativa)
goto incrementa ;salta a incrementa
goto nuevo_menor ;salta a nuevo menor
nuevo_menor:
movf INDF,0 ;w=INDF
incf FSR,1 ;FSR=FSR+1
movwf h'41' ;[0x41]=w
movwf k ;k=w
goto evalua ;salta a evalua
incrementa:
incf FSR,1 ;FSR=FSR+1
movf k,0 ;w=k
goto evalua ;salta a evalua
fin:
end ;fin
CONCLUSIONES
En esta prctica tuvimos la oportunidad de familiarizarnos tanto con el IDE
que se estar ocupando a lo largo del curso, MPLAB, as como con la lista de
mnemnicos para el PIC16F877.
Los ejercicios realizados fueron tiles para recordar los conocimientos que
ya tenamos sobre ensamblador y para analizar a fondo las instrucciones de
este controlador.