Professional Documents
Culture Documents
PIC 16F877
Carlos Romero D.
Ingeniero en Electrónica
Principales Características
Recursos auxiliares
Módulos especializados de los
microcontroladores en tareas
de:
Temporizadores
Arquitectura
interna
Arquitectura RISC,
juego reducido de
Arquitectura de Harvard, la memoria de
instrucciones datos e instrucciones son independientes
Ciclo de reloj,
En el siguiente
esquema
se presenta con más
detalle la arquitectura
correspondientes a los
modelos PIC 16F87x
La memoria FLASH de
8K x 14bit esta
direccionada
con el PC (de 13bit)
la pila es de tipo LIFO.
Con la instrucción CALL
e interrupciones el
valor del PC se salva
en el nivel superior Organización de la memoria de tipo
FLASH en los PIC 16F87x
Organización de la memoria de
datos
bcf REGISTRO,3
Resultado
Instrucciones
2.- Instrucción BSF bsf f,b
Coloca un 1 en una posición específica de un
registro f definida por b
bsf REGISTRO,5
Resultado
Ejemplo
Ejemplo :
Transformar
el contenido de
REGISTRO (0xF8) en
0x91
bcf REGISTRO,6
bcf REGISTRO,5
bcf REGISTRO,3
bsf REGISTRO,0
Instrucciones de salto
3.- Instrucción BTFSC btfsc f,b
Explora el bit cuya posición esta definida
por b, dentro del registro f y se salta la
siguiente instrucción si y solo si el valor de
dicho bit es cero.
Btfsc REGISTRO,3
bsf REGISTRO,0
bcf REGISTRO,5
Instrucciones de salto
4.- Instrucción BTFSS btfss f,b
Explora el bit cuya posición esta definida
por b,
dentro del registro f y se salta la
siguiente
instrucción si y solo si el valor de dicho
bit es
Btfss REGISTRO,3
uno.
bsf REGISTRO,0
bcf REGISTRO,5
Instrucciones de GOTO
bcf REGISTRO,3
bsf REGISTRO,2
goto SALTAR
bsf REGISTRO,0
bcf REGISTRO,1
bcf REGISTRO,4
SALTAR bsf REGISTRO,8
bsf REGISTRO,7
Ejemplo
btfss REGISTRO,0
goto SALIR
Ejemplo : Verificar
btfss REGISTRO,1
que el primer nible del goto SALIR
REGISTRO es igual a btfsc REGISTRO,2
goto SALIR
1011, de lo contrario
btfss REGISTRO,3
borrarlo goto SALIR
goto OK
SALIR bcf REGISTRO,0
bcf REGISTRO,1
bcf REGISTRO,2
bcf REGISTRO,3
OK RETURN
Instrucción DECFSZ
movlw 0x30
Resultado : en W se
almacena el número 30 en
notación hexadecimal
Instrucciones para manejo de
literales
addlw d’10’
movlw d’15’
sublw d’20’
movlw
b’10101010’
andlw
b’01010101’
Resultado : en W se almacena el
resultado final de la operación : 0
Instrucciones para manejo de
literales
12.- Instrucción IORLW iorlw l
Realiza la operación lógica OR entre el
acumulador y un número cualquiera.
Flags afectados: z
movlw b’10101010’
iorlw b’01010101’
Resultado : en W se almacena el
resultado final de la operación : 0xFF
Instrucciones para manejo de
literales
13.- Instrucción XORLW xorlw l
Realiza la operación lógica OR exclusiva
entre el acumulador y un número
cualquiera
movlw b’10101111’
xorlw b’10101111’
Resultado : en W se almacena el
resultado final de la operación : 0x00
Ejemplo
Ejemplo : Si el valor de W es igual a 0XAA,
entonces
borrar W, de lo contrario mantener el
valor
xorlw 0xAA
btfss STATUS,Z
goto SALIR
movlw 0X00
SALIR return
Instrucciones para manejo de
registros
14.- Instrucción MOVWF movwf f
Mueve el contenido del acumulador a un
registro cualquiera
movlw 0x55
movwf CUENTA
movwf CUENTA
bcf CUENTA,0
movf CUENTA,W
movwf CONTADOR
clrf CONTADOR
Resultado : 0X00 en W
Instrucciones para manejo de
registros
20.- Instrucción NOP nop
No ejecuta ninguna operación
nop
movlw b’00011000’
movwf ADC
compf ADC,1
Resultado : en ADC se almacena el valor
inicial negado.
Instrucciones para manejo de
registros
22.- Instrucción SWAPF swapf f,d
Intercambia el nible superior con el nible
inferior
movlw 0X0F
movwf ADC
swapf ADC,1
movwf PORTB
incf PORTB,1
movwf PORTB
decf PORTB,1
addwf PORTB,F1
subwf RESTA,1
andwf VALOR,1
movlw 0XDE
iorwf VALOR,1
xorwf VALOR,1
1 : Entrada Digital
0 : Salida Digital
Ejemplo
Configurar los
puertos de E/S
del uC para
trabajar con el
circuito de la
figura.
Solución
Registros asociados
1.- OPTION_REG (Configuración)
2.- TMR0 (Valor del contador), registro 8
bits.
3.- INTCON (Banderas)
Registro OPTION_REG
Es el encargado de configurar el timer 0 y el
watchdog.
REGISTRO PIR 1
REGISTRO PIE 1
…. …. …. ….. ….
1 1 1 1 1:16
REGISTRO PIE 1
BIT 1: TMR2IE, habilita interrupción si TMR2
coincide con PR2
1= habilita
0= deshabilita