Sie sind auf Seite 1von 24

INSTRUCCIONES DEL PIC16F877

I)

Manejo de Informacin

MOVLW

Mueve informacin hacia el registro de Trabajo (W)


movlw

LITERAL

MOVWF Mueve informacin contenida en el registro de


Trabajo (W), hacia otro registro
movwf

REGISTRO

MOVFW Mueve informacin contenida en un registro hacia el


registro de Trabajo (W)
movfw
Notas:

MOV
L
W
F

REGISTRO

move ( mover )
literal ( dato de 8 bits )
work ( registro de trabajo )
registro ( especial o general )

P01. Encender los 8 leds que se encuentran conectados al


Puerto B.
MOVLW B11111111
MOVWF PORTB
P02. Leer las llaves elctricas (switches) conectadas al Puerto C
y mostrar su estado por los LEDs conectados al Puerto B.
MOVFW PORTC
MOVWF PORTB

II) Manejo de Bits


BSF Pone a 1 el bit de un registro

bsf

REGISTRO , BIT

BCF Pone a 0 el bit de un registro


bcf
Notas:

B
S
C
F

REGISTRO , BIT

bit ( digito binario )


set ( poner a 1 )
clear ( borra un bit, 0 )
registro ( especial o general )

P03. Encender el foco conectado en el bit 3 del Puerto B.


BSF PORTB , 3

RRF Rota los bits de un registro hacia la derecha


rrf

REGISTRO , DESTINO

RLF Rota los bits de un registro hacia la izquierda


rlf
Notas:

R
R
L
F
DESTINO

REGISTRO , DESTINO

rotacin
right ( derecha )
left ( izquierda )
registro ( especial o general )
W o F
el resultado se almacena en el registro de
trabajo o el registro en uso.

En las rotaciones se incluye el bit especial de carry ( acarreo )


P04. Encender los leds alternadamente de derecha a izquierda,
conectados en el Puerto B.
MOVLW .1
MOVWF PORTB
RLF PORTB,F
RLF PORTB,F
RLF PORTB,F
RLF PORTB,F
RLF PORTB,F
RLF PORTB,F
RLF PORTB,F

SWAPF

Intercambia los 4 bits menos significativos


con los 4 bits ms significativos del registro
swapf

Notas:

REGISTRO , DESTINO

SWAP
intercambio
F
registro ( especial o general )
DESTINO W o F
el resultado se almacena en el registro de
trabajo o el registro en uso.

P05. Conmutar el encendido de los 4 leds menos y ms


significativos, conectados en el Puerto B.
MOVLW
MOVWF
SWAPF
SWAPF
SWAPF
SWAPF

.
.
.

0x0F
PORTB
PORTB,F
PORTB,F
PORTB,F
PORTB,F

;(
;(
;(
;(
;(

portb = 00001111 )
portb = 11110000 )
portb = 00001111 )
portb = 11110000 )
portb = 00001111 )

BTFSS

Brinca una lnea de programa si el bit es 1.


btfss

BTFSC

Brinca una lnea de programa si el bit es 0.


btfsc

Notas:

REGISTRO , BIT

B
T
F
S
S
C

REGISTRO , BIT

bit
test ( pregunta por su estado )
registro ( especial o general )
skip ( brinco )
set 1
clear 0

P06. Preguntar por el estado del sensor conectado al bit 3 del


Puerto A y si est en 1 encender el foco conectado en el
bit 6 del Puerto B.
SENSA:

BTFSS PORTA , 3
GOTO SENSA
BSF PORTB , 6

; est en 1 el sensor?
; no, vuelve a sensar
; si, foco on

III) Operaciones Aritmticas


ADDLW

Suma un dato a W
addlw

ADDWF

Suma el contenido del registro de trabajo a otro


registro
addwf

Notas:

LITERAL

REGISTRO , DESTINO

ADD
LITERAL
W

adder ( sumar )
dato de 8 bits
registro de trabajo

registro ( especial o general )

DESTINO W o F
el resultado se almacena en el registro de
trabajo o el registro en uso.
P07. Sumar los datos 13 y 46 ; y que se muestre el resultado en
los leds conectados en el Puerto B.
MOVLW .13
ADDLW .46
MOVWF PORTB

SUBLW

Resta un dato a W
sublw
La resta es:

SUBWF

LITERAL - W

Resta el contenido del registro de trabajo a otro


registro
subwf
La resta es:

Notas:

LITERAL

REGISTRO , DESTINO
REGISTRO - W

LITERAL
W

dato de 8 bits
registro de trabajo

registro ( especial o general )

DESTINO W o F
el resultado se almacena en el registro de
trabajo o el registro en uso.
P08. Restar al dato ingresado en las llaves conectadas en el
Puerto C la cantidad 63; y que se muestre el resultado en
los leds conectados en el Puerto B.

MOVLW .63
SUBWF PORTC , W
MOVWF PORTB

DECF

Decrementa el contenido de un registro


decf

INCF

Incrementa el contenido de un registro


incf

Notas:

REGISTRO , DESTINO

DEC
INC
F
DESTINO

REGISTRO , DESTINO

decrementa
incrementa
registro ( especial o general )
W o F
el resultado se almacena en el registro de
trabajo o el registro en uso.

P09. Mostrar por en los leds conectados en el Puerto B una


cuenta binaria mdulo 100 ascendente ( up ).
INICIO:
OTRO:

MOVLW .0
MOVWF PORTB
INCF
PORTB , F
MOVLW .100
SUBWF PORTB,W
BTFSS STATUS,Z
GOTO OTRO
GOTO INICIO

DECFSZ

Decrementa el contenido de un registro y si resulta 0


brinca una lnea de programa.
decfsz

INCFSZ

Incrementa el contenido de un registro y si resulta 0


brinca una lnea de programa.
incfsz

Notas:

REGISTRO , DESTINO

DEC
INC
F
S
Z
DESTINO

REGISTRO , DESTINO

incrementa
decrementa
registro ( especial o general )
skip ( brinco )
zero ( cero )
W o F
el resultado se almacena en el registro de
trabajo o el registro en uso.

P10. Generar un tiempo de retardo de 1 mseg.

T1MS:

MOVLW .250
MOVWF

LAZO:

NOP
DECFSZ T,F
GOTO LAZO
GOTO $

IV) Operaciones Lgicas


COMF

Complementa o niega el contenido de un registro


comf

ANDLW

REGISTRO , DESTINO

Producto lgico de un dato con W


andlw

ANDWF

Producto lgico entre W y otro registro


andwf

IORLW

REGISTRO , DESTINO

Suma lgica de un dato con W


iorlw

IORWF

REGISTRO , DESTINO

Suma exclusiva de un dato con W


xorlw

XORWF

LITERAL

Suma exclusiva entre W y otro registro


xorwf

Notas:

LITERAL

Suma lgica entre W y otro registro


iorwf

XORLW

LITERAL

L
W
F
DESTINO

REGISTRO , DESTINO

literal
registro de trabajo
registro ( especial o general )
W o F
el resultado se almacena en el registro de
trabajo o el registro en uso.

P11.

Elabore el programa que halle la solucin a la siguiente


expresin lgica:
_
Y=A.B+C

Los datos A, B, C, ingresan por los puertos respectivos y el resultado


se muestra por el puerto D.

MOVLW .35
MOVWF A
MOVLW .82
MOVWF B
MOVLW .146
MOVWF C
COMF B,W
ANDWF A,W
IORWF C,W
MOVWF PORTB

Control del Flujo del Programa


GOTO

Va a la lnea de programa indicada


goto

CALL

Llama a una subrutina o una tabla de datos


call

RETLW

LABEL

Retorna con un dato en W


retlw

RETURN

LABEL

LITERAL

Retorna de una subrutina


return

RETFIE

Retorna de una interrupcin


retfie

OTROS YA VISTOS ( BRINCOS ):


BTFSS

Brinca una lnea de programa si el bit es 1.


btfss

BTFSC

Brinca una lnea de programa si el bit es 0.


btfsc

DECFSZ

REGISTRO , BIT

Decrementa el contenido de un registro y si resulta 0


brinca una lnea de programa.
decfsz

INCFSZ

REGISTRO , BIT

REGISTRO , DESTINO

Incrementa el contenido de un registro y si resulta 0

brinca una lnea de programa.


incfsz

REGISTRO , DESTINO

V) Especiales
CLRF

Borra un registro
clrf

CLRW

Borra el registro W
clrw

CLRWDT Borra el watchdog


clrwdt

NOP

No realiza ninguna operacin


nop

SLEEP

Modo se espera ( dormido )


sleep

LIST P=16F877A

; dispositivo

INCLUDE <P16F877A.INC> ; libreria


T1

EQU 0X20 ; Variable de tiempo

T2

EQU 0X21
ORG 0X2007

; configuracion del PIC

DW 0X3F7A
ORG 0X0000
BSF STATUS,RP0

; direccion inicial ROM


; Bank 1

BCF STATUS,RP1
MOVLW .0
MOVWF TRISB
BCF STATUS,RP0

; Portb de salida
; Bank 0

BCF STATUS,RP1
INICIO: MOVLW B'00000001'
MOVWF PORTB
CALL TIEMPO1
RLF PORTB,F
CALL TIEMPO1
RLF PORTB,F
CALL TIEMPO1
RLF PORTB,F
CALL TIEMPO1
RLF PORTB,F
CALL TIEMPO1
RLF PORTB,F
CALL TIEMPO1

RLF PORTB,F
CALL TIEMPO1
RLF PORTB,F
CALL TIEMPO1
GOTO INICIO

TIEMPO1: MOVLW .255


MOVWF T1
LAZO1: CALL TIEMPO2
DECFSZ T1,F
GOTO LAZO1
RETURN
TIEMPO2: MOVLW .255
MOVWF T2
LAZO2: NOP
DECFSZ T2,F
GOTO LAZO2
RETURN
END

LIST P=16F877A

; dispositivo

INCLUDE <P16F877A.INC> ; libreria

ORG 0X2007

; configuracion del PIC

DW 0X3F7A
ORG 0X0000
BSF STATUS,RP0

; direccion inicial ROM


; Bank 1

BCF STATUS,RP1
MOVLW .0
MOVWF TRISB

; Portb de salida

MOVLW .0
MOVWF TRISC

; Portc de salida

BCF STATUS,RP0

; Bank 0

BCF STATUS,RP1

INICIO: MOVLW .13


ADDLW .46
BTFSS STATUS,C ; Existe llevada?
GOTO NOLLEVA
SILLEVA:BSF PORTC,0
MOVWF PORTB
GOTO $
NOLLEVA:BCF PORTC,0
MOVWF PORTB
GOTO $
END

LIST P=16F877A

; dispositivo

INCLUDE <P16F877A.INC> ; libreria

ORG 0X2007

; configuracion del PIC

DW 0X3F7A
ORG 0X0000
BSF STATUS,RP0

; direccion inicial ROM


; Bank 1

BCF STATUS,RP1
MOVLW B'00000000'
MOVWF TRISB

; Portb de salida (leds)

MOVLW B'11111111'
MOVWF TRISC

; Portc de entrada (llaves)

BCF STATUS,RP0

; Bank 0

BCF STATUS,RP1

INICIO: MOVLW .63


SUBWF PORTC,W
MOVWF PORTB
GOTO INICIO

Das könnte Ihnen auch gefallen