Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OPERACIONES
- andlw k: efectúa la operación AND lógica entre el
contenido del registro W y el literal k, y almacena el
resultado en W.
INTEGRANTES: - andwf f,d: Efectúa la operación AND lógica entre el
● Daniel Eduardo Estevez Cardenas contenido del registro W y el contenido del registro “f”, y
almacena el resultado en W si d = 0, y en “f” si d=1.
I. INTRODUCCIÓN
- comf f,d: realiza el complemento del contenido del registro
En el siguiente informe se realizará una investigación más a fondo “f” bit a bit. El resultado se almacena en el registro “f” si d
sobre los distintos comandos para configurar los puertos y trabajar = 1 y o en el registro W si d = 0, en este caso “f” no varía.
con más características de los microcontroladores, además de esta
investigación se comprobará el funcionamientos de algunos códigos - iorlw k: realiza la operación lógica OR entre el contenido
ya creados y facilitados por la docente. del registro W y el literal k. El resultado se almacena en W.
LIST P = 16F877
- incf f,d: se incrementa el contenido del registro “f” en una
INCLUDE <P16F877.INC>
unidad y almacena el resultado en W si d = 0 y en el
RESULTADO EQU 0x20
registro “f” si d = 1.
ORG 0x00
Inicio por:
bsf STATUS,5
movlw b’11111111’ #include <xc.inc>
movwf TRISC CONFIG FOSC = XT
clrf TRISD CONFIG WDTE = OFF
bcf STATUS,5 CONFIG PWRTE = OFF
Ciclo CONFIG BOREN = OFF
movf PORTC,0 CONFIG LVP = OFF
addlw d’10’ CONFIG CPD = OFF
movwf PORTD CONFIG WRT = OFF
movwf RESULTADO CONFIG CP = OFF
goto Ciclo
END Posteriormente se cambió el comando ORG 0x00, el cual indica
donde arranca el código después de un reset a ORG 0x05, el cual
Código Corregido indica donde inicia el código del programa.
#include <xc.inc>;Se llaman las librerias Consecutivamente se añadió la acción “goto Inicio” y se corrigieron
CONFIG FOSC = XT ;Se configura el cristal XT y las demás los renglones en donde se encontraba la acción de Inicio y Ciclo,
opciones de configuración se dejan en OFF agregando al final de estos los :, para que su indicación fuera correcta.
CONFIG WDTE = OFF
CONFIG PWRTE = OFF Como cuarto y último aspecto a corregir del código inicial se
CONFIG BOREN = OFF modificó el formato que seguía los comandos movlw y addlw, dado
CONFIG LVP = OFF que el formato que indica que es binario ya no se indica con la b,y las
CONFIG CPD = OFF comillas sino con una B mayúscula al final del número, y el formato
CONFIG WRT = OFF decimal ya no se indica con una d y sino escribiendo el número
CONFIG CP = OFF normal..
RESULTADO EQU 0x20 ;Le da el valor numérico 32 a cada ● Evidencia funcionamiento del programa
aparición de RESULTADO dentro del código
ORG 0x05 ;Indica en donde inicia el código del programa
goto Inicio ;Va a la etiqueta Inicio
Inicio:
bsf STATUS,5 ;Se coloca en 1 en bit 5 de STATUS
movlw 11111111B ;Se mueve al registro de trabajo el literal 11111111
en binario
movwf TRISC ;Se mueve el contenido del registro de trabajo W al
registro TRISC
clrf TRISD ;Se colocan en 0 todos los bits del registro TRISD
bcf STATUS,5 ;Se coloca en 0 el bit 5 de STATUS
Ciclo: ;Se codifica el ciclo
movf PORTC,0 ;Se mueve el contenido del registro PORTC al
registro de trabajo W
addlw 10 ;Se suma el literal 10 en decimal al registro de trabajo W
movwf PORTD ;Se mueve el contenido del registro de trabajo W al
registro PORTD
movwf RESULTADO ;Se mueve el contenido del registro de trabajo
W al literal RESULTADO
goto Ciclo ;Se reinicia el ciclo
END
● Correcciones realizadas
LIST P = 16F877
INCLUDE <P16F877.INC>
Como se observa en la memoria del programa y en los bits de los ● Prueba de Escritorio
registros, el programa funciona correctamente posterior a las
correcciones realizadas. RESULTADO EQU
0x20 RESULTADO= 32 en decimal
● Diagrama de flujo del programa
ORG 0x05 Inico del código
goto Inicio Ir a línea inicio (6)
Inicio: Línea (6)
bsf STATUS,5 STATUS,5 = 1
movlw 11111111B WREG= 255 en decimal
WREG to TRISC; TRISC=255
movwf TRISC en decimal
clrf TRISD TRISD=0
bcf STATUS,5 STATUS,5 = 0
Ciclo: Línea(11)
movf PORTC,0 PORTC to WREG; WREG=0
WREG+10; WREG=10 en
addlw 10 decimal
movwf PORTD WREG to PORTD; PORTD=10
WREG to RESULTADO;
movwf RESULTADO RESULTADO=10
goto Ciclo Ir a línea Ciclo (11)
END