Professional Documents
Culture Documents
Microcontroladores
Reyes Olgun Arturo
Matricula 1313083134
Mecatrnica 180501
18/02/2015
Marco terico
Instrucciones de suma
La suma se realiza de forma aritmtica binaria pura sin signo y afecta a los flags
del STATUS de la siguiente forma
Addlw k (add literal to W). Suma el contenido del registro W con el literal o
constante k, almacena el resultado en W. si se produce acarreo el flag C se pone a
1
Addwf f,d (add W and f). Suma el contenido en el registro W al contenido del
registro f almacena el resultado en W si d = 0 y en el registro f si d = 1. Se produce
un acarreo en flag C se pone a 1.
Iorlw, Poner a uno varios bits del registro W sin alterar el resto, se usa la operacin
OR, poniendo en la operacin inmediato un 1 en aquellos bits que se desea poner
a 1, mientras que los restantes se ponen a 0. A la contante con la que se hace la
operacin OR se llama mascara.
Xorlw, Invertir varios bits de W sin alterar el resto, se usa la operacin lgica XOR
poniendo en el operador inmediato un 1 en aquellos bits que se desea invertir
mientras que los restantes se ponen a 0. A la constante con la que se hace la
operacin XOR se la llama mascara
Instruccin
Elemental_01.asm; Por el puerto B se obtiene el dato de las cinco lneas del
puerto A, al que se esta conectando un array de interruptores, sumndole un valor
constante, por ejemplo 74 decimal. Es decir: (PORTB) = (PORTA)+Constante.
Programa y Diagrama de flujo
__CONFIG _HS_OSC
LIST P=16F877A
INCLUDE <P16F877A.INC>
ORG 0x000
Inicio bsf
STATUS,RP0
CONF_ADCON1 equ b'00000110'
clrf
TRISB
bsf
STATUS,RP0
bcf
STATUS,RP1
movlw CONF_ADCON1
movwf ADCON1
clrf
TRISB
clrf
TRISC
movlw
b'11111111'
movwf
TRISA
bcf
STATUS,RP0
bcf
STATUS,RP1
Principal
movf PORTA,W
addlw d'74'
movwf
PORTB
goto Principal
END
Evidencias
Elemental_01.as
m
Configura
PORTA como
entrada
PORTB como salida
Declara PORTA
como W
Suma W ms
Mueve W a PORTB
Instruccin
Elemental_03.asm Por el puerto B se obtiene el dato introducido por el puerto A,
pero los bits pares de la salida se fijan siempre en 1.
Codigo y digrama de flujo
__CONFIG _HS_OSC
LIST P=16F877A
INCLUDE <P16F877A.INC>
Elemental_03.as
m
ORG 0x000
Inicio bsf
STATUS,RP0
CONF_ADCON1 equ b'00000110'
clrf
TRISB
bsf
STATUS,RP0
bcf
STATUS,RP1
movlw CONF_ADCON1
movwf ADCON1
clrf
TRISB
clrf
TRISC
movlw
b'11111111'
movwf
TRISA
bcf
STATUS,RP0
bcf
STATUS,RP1
Declara
PORTA como entrada
PORTB como salida
Mueve el PORTA a W
Solo cambia datos
declarados 0
Principal
movf PORTA,W
iorlw b'01010101'
movwf
PORTB
movwf
PORTC
goto Principal
Mueve w a
PORTB
END
END
Evidencias
Instruccion
Elemental_05.asm: Por el Puerto se obtiene el dato del Puerto A invertidos los
unos y los ceros
Programa y diagram de flujo
__CONFIG _HS_OSC
LIST P=16F877A
INCLUDE <P16F877A.INC>
ORG 0x000
Inicio bsf
STATUS,RP0
CONF_ADCON1 equ b'00000110'
clrf
TRISB
bsf
STATUS,RP0
bcf
STATUS,RP1
movlw CONF_ADCON1
movwf ADCON1
clrf
TRISB
clrf
TRISC
movlw
b'11111111'
movwf
TRISA
bcf
STATUS,RP0
bcf
STATUS,RP1
principa
movf PORTA,W
xorlw b'11111111'
movwf
PORTB
movwf
PORTC
goto Principal
END
Elemental_05.as
m
Declara
PORTA como
entrada
PORTB como salida
Mueve PORTA a
Invierte W
Mueve W a
PORTB
END
Evidencia
Cuando PORTA = b00000000 la salida PORTB = b11111111