Sie sind auf Seite 1von 34

+INSTRUCCIONES DEL PIC18F4550

COMPATIBLES CON GAMA MEDIA

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 o MOVF Mueve informacin contenida en un registro


hacia el registro de Trabajo (W)

movfw REGISTRO

movf REGISTRO,W (GAMA ALTA)

Notas: MOV move ( mover )


L literal ( dato de 8 bits )
W work ( registro de trabajo )
F registro ( especial o general )
P01. Encender los 8 leds que se encuentran conectados al Puerto
D.
MOVLW B11111111
MOVWF PORTD
P02. FLASH LEDs conectados al Puerto D.

P03. Leer las llaves elctricas (switches) conectadas al Puerto C y


mostrar su estado por los LEDs conectados al Puerto D.

MOVFW PORTC
MOVWF PORTD
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 REGISTRO , BIT

Notas: B bit ( digito binario )


S set ( poner a 1 )
C clear ( borra un bit, 0 )
F registro ( especial o general )
P04. Encender el foco conectado en el bit 3 del Puerto D.

BSF PORTD , 3
RRF Rota los bits de un registro hacia la derecha, incluyendo el
carry, GAMA MEDIA

rrf REGISTRO , DESTINO

RLF Rota los bits de un registro hacia la izquierda, incluyendo el


carry, GAMA MEDIA

rlf REGISTRO , DESTINO

RRCF Rota los bits de un registro hacia la derecha, incluyendo el


carry, GAMA ALTA

rrcf REGISTRO , DESTINO

RLCF Rota los bits de un registro hacia la izquierda, incluyendo el


carry, GAMA ALTA

rlcf REGISTRO , DESTINO


RRNCF Rota los bits de un registro hacia la derecha, no
incluyendo el carry, GAMA ALTA

rrncf REGISTRO , DESTINO

RLNCF Rota los bits de un registro hacia la izquierda, no


incluyendo el carry, GAMA ALTA

rlncf REGISTRO , DESTINO

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

P05. Encender los leds alternadamente de derecha a izquierda,


conectados en el Puerto D.

I) PARA GAMA MEDIA

MOVLW .1
MOVWF PORTD
RLF PORTD,F
RLF PORTD,F
RLF PORTD,F
RLF PORTD,F
RLF PORTD,F
RLF PORTD,F
RLF PORTD,F
II) GAMA ALTA
Rutina alternativa:
SWAPF Intercambia los 4 bits menos significativos

con los 4 bits ms significativos del registro

swapf REGISTRO , DESTINO

Notas: 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.

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


significativos, conectados en el Puerto D.

MOVLW 0x0F
MOVWF PORTD ;( portd = 00001111 )
SWAPF PORTD,F ;( portd = 11110000 )
SWAPF PORTD,F ;( portd = 00001111 )
SWAPF PORTD,F ;( portd = 11110000 )
SWAPF PORTD,F ;( portd = 00001111 )
.
.
.
BTFSS Brinca una lnea de programa si el bit es 1.

btfss REGISTRO , BIT

BTFSC Brinca una lnea de programa si el bit es 0.

btfsc REGISTRO , BIT

Notas: B bit
T test ( pregunta por su estado )
F registro ( especial o general )
S skip ( brinco )
S set 1
C clear 0

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


Puerto D y si est en 1 encender el foco conectado en el bit
6 del Puerto D.

SENSA: BTFSS PORTD , 3 ; est en 1 el sensor?


GOTO SENSA ; no, vuelve a sensar
BSF PORTD , 6 ; si, foco on
III) Operaciones Aritmticas

ADDLW Suma un dato a W

addlw LITERAL

ADDWF Suma el contenido del registro de trabajo a otro


registro

addwf REGISTRO , DESTINO

Notas: ADD adder ( sumar )


LITERAL dato de 8 bits
W registro de trabajo

F registro ( especial o general )

DESTINO W o F
el resultado se almacena en el registro de
trabajo o el registro en uso.

P08. Sumar los datos 13 y 46 ; y que se muestre el resultado en los


leds conectados en el Puerto D.

MOVLW .13
ADDLW .46
MOVWF PORTD
SUBLW Resta un dato a W

sublw LITERAL

La resta es: LITERAL - W

SUBWF Resta el contenido del registro de trabajo a otro


registro

subwf REGISTRO , DESTINO

La resta es: REGISTRO - W

Notas: LITERAL dato de 8 bits


W registro de trabajo

F 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 REGISTRO , DESTINO

INCF Incrementa el contenido de un registro

incf REGISTRO , DESTINO

Notas: DEC incrementa


INC decrementa
F registro ( especial o general )
DESTINO 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: MOVLW .0
MOVWF PORTB
OTRO: 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 REGISTRO , DESTINO

INCFSZ Incrementa el contenido de un registro y si resulta 0


brinca una lnea de programa.

incfsz REGISTRO , DESTINO

Notas: DEC incrementa


INC decrementa
F registro ( especial o general )
S skip ( brinco )
Z zero ( cero )
DESTINO 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.


CBLOCK 0X20
T ; Variable de tiempo
ENDC

T1MSEG: MOVLW .N 1C
MOVWF T 1C
LAZO: NOP 1C
DECFSZ T,F 1(2)C
GOTO LAZO 2C
RETURN 2C

Tiempo = 1C + 1C + N*(1C) + (N-1)*(1C + 2C) + 2C + 2C

Tiempo = C* (3+4N), C=4T, T= 1/F

N = { [ ( tiempo * F ) / 4] 3 } / 4 , tiempo = 1 mseg. F = 4 Mhz.

N = 249
IV) Operaciones Lgicas

COMF Complementa o niega el contenido de un registro

comf REGISTRO , DESTINO

ANDLW Producto lgico de un dato con W

andlw LITERAL

ANDWF Producto lgico entre W y otro registro

andwf REGISTRO , DESTINO

IORLW Suma lgica de un dato con W

iorlw LITERAL

IORWF Suma lgica entre W y otro registro

iorwf REGISTRO , DESTINO

XORLW Suma exclusiva de un dato con W

xorlw LITERAL

XORWF Suma exclusiva entre W y otro registro

xorwf REGISTRO , DESTINO

Notas: L literal
W registro de trabajo
F registro ( especial o general )
DESTINO 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.
V) Control del Flujo del Programa

GOTO Va a la lnea de programa indicada

goto LABEL

CALL Llama a una subrutina o una tabla de datos

call LABEL

RETLW Retorna con un dato en W

retlw LITERAL

RETURN 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 REGISTRO , BIT

BTFSC Brinca una lnea de programa si el bit es 0.

btfsc REGISTRO , BIT

DECFSZ Decrementa el contenido de un registro y si resulta 0


brinca una lnea de programa.

decfsz REGISTRO , DESTINO


INCFSZ Incrementa el contenido de un registro y si resulta 0
brinca una lnea de programa.

incfsz REGISTRO , DESTINO

VI) 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 ; direccion inicial ROM

BSF STATUS,RP0 ; Bank 1

BCF STATUS,RP1

MOVLW .0

MOVWF TRISB ; Portb de salida

BCF STATUS,RP0 ; 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 ; direccion inicial ROM

BSF STATUS,RP0 ; 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 ; direccion inicial ROM

BSF STATUS,RP0 ; 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