Sie sind auf Seite 1von 2

INSTRUCCIONES PIC16F877A

Sintaxis Descripcin Ciclos


Instrucciones de carga
CLRF f Borra el contenido del registro f 1
CLRW Borra el contenido del registro W 1
MOVF f,d Mueve el contenido del registro f 1
MOVFW f Mueve el contenido del registro f y lo guarda en W 1
MOVWF f Mueve el contenido del registro W al registro f 1
MOVLW k Guarda en el registro W el valor k 1
Instrucciones de bit
BCF f,b Pone en "0" el bit b del registro f 1
BSF f,b Pone en "1" el bit b del registro f 1
Instrucciones aritmticas
ADDLW k Suma el valor k al registro W 1
ADDWF f,d Suma el contenido del registro W con el de f 1
DECF f,d Decrementa en una unidad el contenido del registro f 1
INCF f,d Incrementa en una unidad el contenido del registro f 1
SUBLW k Resta el valor k al registro W 1
SUBWF f,d Resta el contenido del registro W al registro f 1
Instrucciones lgicas
ANDLW k Realiza la operacin lgica AND entre el valor k y el registro W 1
ANDWF f,d Realiza la operacin lgica AND entre el contenido del registro W y el de f 1
COMF f,d Niega el valor del registro f 1
IORLW k Realiza la operacin lgica OR entre el valor k y el registro W 1
IORWF f,d Realiza la operacin lgica OR entre el contenido del registro W y el de f 1
RLF f,d Rota el contenido del registro f hacia la izquierda a travs del carry bit 1
RRF f,d Rota el contenido del registro f hacia la derecha a travs del carry bit 1
SWAPF f,d Intercambia los cuatro primeros bits con los cuatro ltimos del registro f 1
XORLW Realiza la operacin lgica XOR entre el valor k y el registro W 1
XORWF f,d Realiza la operacin lgica XOR entre el contenido del registro W con el de f 1
Instrucciones de salto
BTFSC f,b Lee el bit b del registro f y salta la instruccin siguiente si est en 0 1 (2 si salta)
BTFSS f,b Lee el bit b del registro f y salta la instruccin siguiente si est en 1 1 (2 si salta)
DECFSZ f,d Decrementa en una unidad el contenido del registro f y salta la instruccin siguiente si es 0 1 (2 si salta)
INCFSZ f,d Incrementa en una unidad el contenido del registro f y salta la instruccin siguiente si es 0 1 (2 si salta)
GOTO k Salto incondicional a la etiqueta k 2
Instrucciones de manejo de subrutinas
CALL k Llamada a la subrutina k 2
RETFIE Retorno de una interrupcin 2
RETLW Retorno de una subrutina con el valor k en el registro W 2
RETURN Retorno de una subrutina 2
Instrucciones especiales
CLRWDT Borra el temporizador del Watchdog 1
NOP No realiza ninguna operacin (pero consume tiempo de ejecucin) 1
SLEEP Se pone el PIC en estado de reposo (dormido) 1

En todas las instrucciones donde aparece una d como operando:


Si d = 0, el resultado de la operacin se guarda en W.
Si d = 1, el resultado de la operacin se guarda en el registro f. Es el valor por defecto.

M.C. Miguel ngel Ziga M.


REGISTROS INTERNOS PIC16F877A
BANK 0
00h(3) INDF Addressing this location uses contents of FSR to address data memory (not a physical register)
01h TMR0 Timer0 Module Register|
02h(3) PCL Program Counter (PC) Least Significant Byte0000
03h(3) STATUS IRP RP1 RP0 TO PD Z DC C
04h(3) FSR Indirect Data Memory Address Pointer
05h PORTA PORTA Data Latch When written: PORTA read
06h PORTB PORTB Data Latch when written: PORTB pins when read
07h PORTC PORTC Data Latch when written: PORTC pins when read
08h(4) PORTD PORTD Data Latch when written: PORTD pins when read
09h(4) PORTE RE2 RE1 RE0
0Ah(1,3) PCLATH Write Buffer for the upper
0Bh(3) INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF
0Ch PIR1 PSPIF(3) ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF
0Dh PIR2 CMIF EEIF BCLIF CCP2IF
0Eh TMR1L Holding Register for the Least Significant Byte of the 16-bit TMR1 Register
0Fh TMR1H Holding Register for the Most Significant Byte of the 16-bit TMR1 Register
10h T1CON T1CKPS1 T1CKPS0 T1OSCEN T1SYNC TMR1CS TMR1ON
11h TMR2 Timer2 Module Register
12h T2CON TOUTPS3 TOUTPS2 TOUTPS1 TOUTPS0 TMR2ON T2CKPS1 T2CKPS0
13h SSPBUF Synchronous Serial Port Receive Buffer/Transmit Register
14h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0
15h CCPR1L Capture/Compare/PWM Register 1 (LSB)
16h CCPR1H Capture/Compare/PWM Register 1 (MSB)
17h CCP1CON CCP1X CCP1Y CCP1M3 CCP1M2 CCP1M1 CCP1M0
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D
19h TXREG USART Transmit Data Register
1Ah RCREG USART Receive Data Register
1Bh CCPR2L Capture/Compare/PWM Register 2 (LSB)
1Ch CCPR2H Capture/Compare/PWM Register 2 (MSB)
1Dh CCP2CON CCP2X CCP2Y CCP2M3 CCP2M2 CCP2M1 CCP2M0
1Eh ADRESH A/D Result Register High Byte
1Fh ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE ADON
BANK 1
80h(3) INDF Addressing this location uses contents of FSR to address data memory (not a physical register)
81h OPTION_REG NOT_RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
82h(3) PCL Program Counter (PC) Least Significant Byte
83h(3) STATUS IRP RP1 RP0 TO PD Z DC C
84h(3) FSR Indirect Data Memory Address Pointer
85h TRISA PORTA Data Direction Register
86h TRISB PORTB Data Direction Register
87h TRISC PORTC Data Direction Register
88h(4) TRISD PORTD Data Direction Register
89h(4) TRISE IBF OBF IBOV PSPMODE PORTE Data Direction bits
8Ah(1,3) PCLATH Write Buffer for the upper
8Bh(3) INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF
8Ch PIE1 PSPIE(2) ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE
8Dh PIE2 CMIE EEIE BCLIE CCP2IE
8Eh PCON POR BOR
8Fh Unimplemented
90h Unimplemented
91h SSPCON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN
92h PR2 Timer2 Period Register
93h SSPADD Synchronous Serial Port (I2C mode) Address Register
94h SSPSTAT SMP CKE D/A P S R/W UA BF
95h Unimplemented
96h Unimplemented
97h Unimplemented
98h TXSTA CSRC TX9 TXEN SYNC BRGH TRMT TX9D
99h SPBRG Baud Rate Generator Register
9Ah Unimplemented
9Bh Unimplemented
9Ch CCPR2H Capture/Compare/PWM Register 2 (MSB)
9Ch CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0
9Dh CVRCON CVREN CVROE CVRR CVR3 CVR2 CVR1 CVR0
9Eh ADRESL A/D Result Register Low Byte
9Fh ADCON1 ADFM ADCS2 PCFG3 PCFG2 PCFG1 PCFG0
Note 1: The upper byte of the program counter is not directly accessible. PCLATH is a holding register for the PC<12:8>, whose contents are transferred to the
upper byte of the program counter.
2: Bits PSPIE and PSPIF are reserved on PIC16F873A/876A devices; always maintain these bits clear.
3: These registers can be addressed from any bank.
4: PORTD, PORTE, TRISD and TRISE are not implemented on PIC16F873A/876A devices, read as 0.
5: Bit 4 of EEADRH implemented only on the PIC16F876A/877A devices.

M.C. Miguel ngel Ziga M.

Das könnte Ihnen auch gefallen