Professional Documents
Culture Documents
de Oviedo
6. Microcontroladores. PIC
Introduccin
Tecnologa Electrnica
Universidad
de Oviedo
6. Microcontroladores. PIC
Microcontroladores
Tecnologa Electrnica
Universidad
de Oviedo
Sistema mnimo
El
microprocesador
Elsistema
sistemamnimo
mnimoest
estbasado
basadoen
enla
laestructura
estructurade
devon
vonNewman.
Newman.
Sus bloques bsicos son los siguientes:
6. Microcontroladores. PIC
Bus de Direcciones
CPU
MEMORIA
UDS. E / S
Bus de Datos
Bus de Control
Reloj
Los tres mdulos estn conectados entre s por medio de los Buses de
Comunicacin. Cada bus est formado por un conjunto de conductores por
los cuales se transmite la informacin digital.
Tecnologa Electrnica
Universidad
de Oviedo
Microprocesadores y
microcontroladores
6. Microcontroladores. PIC
Tecnologa Electrnica
Universidad
de Oviedo
Microprocesadores y
microcontroladores
6. Microcontroladores. PIC
Tarjeta de Sistema
Microprocesador para
control
C.I. Microcontrolador
Tecnologa Electrnica
Sistemas empotrados
Universidad
de Oviedo
6. Microcontroladores. PIC
6. Microcontroladores. PIC
Sistemas empotrados
Evolucin Microprocesadores:
Computadores
75
MillonesElectrnica
Microprocesadores/ao
Tecnologa
Universidad
de Oviedo
Evolucin Microcontroladores:
Sistemas Empotrados
o
a
/
es
r
o
lad
o
r
nt
o
c
ro
c
i
sM
e
n
il lo
M
0
250
7
Universidad
de Oviedo
Microcontroladores PIC
6. Microcontroladores. PIC
Universidad
de Oviedo
6. Microcontroladores. PIC
ARQUITECTURA HARVARD
Microcontroladores PIC.
Caractersticas
Universidad
de Oviedo
6. Microcontroladores. PIC
Tecnologa Electrnica
10
Familias de PIC
Universidad
de Oviedo
6. Microcontroladores. PIC
Familia PIC16C5X
Encapsulados de 14, 18, 20 y 28 pines
Instrucciones de 12 bits
Juego de 33 instrucciones
Es la familia base de partida de los PIC
Familia PIC16CXXX/16FXXX
Encapsulados desde 18 hasta 68 pines (DIP, SSOP, PLCC,
QFP)
Instrucciones de 14 bits en Memoria de Programa
Juego de 35 instrucciones
Gran variedad de mdulos integrados
Tecnologa Electrnica
11
Familia
PIC16CXXX/16FXXX
Puertos de Entrada/Salida
Universidad
de Oviedo
6. Microcontroladores. PIC
12
8K x 14
Microcontrolador
Microcontrolador
PIC16F877
PIC16F877
(gama
(gamamedia)
media)
368 x 8
Puertos de E/S
6. Microcontroladores. PIC
Familia
PIC16CXXX/16FXXX
Universidad
de Oviedo
Temporizadores
Puerto Esclavo
Paralelo
Tecnologa Electrnica
256 x 8
Conversor A/D
USART
13
Universidad
de Oviedo
6. Microcontroladores. PIC
14
6. Microcontroladores. PIC
Universidad
de Oviedo
PIC 16F877
ORGANIZACIN DE LA
MEMORIA
Copyright ATE
Tecnologa Electrnica
15
Universidad
de Oviedo
Organizacin de la memoria
El PIC16F877 dispone de tres tipos de memoria:
Memoria de programa
6. Microcontroladores. PIC
16
Universidad
de Oviedo
Memoria
6. Microcontroladores. PIC
Memoria de programa
Memoria EEPROM
Tecnologa Electrnica
EEPRO
M
156 X 8
17
Memoria de programa
Universidad
de Oviedo
6. Microcontroladores. PIC
18
Universidad
de Oviedo
6. Microcontroladores. PIC
Memoria de programa.
Contador de programa, PC.
Tecnologa Electrnica
19
Universidad
de Oviedo
Memoria de programa.
Contador de programa, PC.
6. Microcontroladores. PIC
Lneas de
datos
de la
memoria
de programa
ACCESO
ACCESOAALA
LAMEMORIA
MEMORIADE
DE
PROGRAMA
PROGRAMA
Tecnologa Electrnica
20
Universidad
de Oviedo
6. Microcontroladores. PIC
Memoria de programa.
Contador
de programa, PC.
Los 8K de memoria de programa
disponible estn divididos en 4
pginas de
2K cada una (0h7FFh, 800h-FFFh,
1000h17FFh y 1800h-1FFFh). Esto se debe a
que las instrucciones de salto y
llamada a
subprograma permiten cargar slo 11
bits
en el PC (desplazamiento en 211 = 2K)
Si se estn ejecutando instrucciones
secuencialmente, el contador de
programa
pasar de una pgina a otra.
Para saltar entre pginas de la
memoria
Tecnologa Electrnica
21
Universidad
de Oviedo
Memoria de programa.
Contador de programa, PC.
6. Microcontroladores. PIC
CONTADOR DE PROGRAMA
El contador de programa (PC) es un
registro de 13 bits que se descompone en
2 registros: PCH y PCL
El byte bajo PC<0:7> se denomina PCL y
est disponible en la memoria de datos.
Es un registro que se puede leer y escribir
directamente desde el programa.
El cuasibyte alto PC<12:8> se
denomina PCH y no est disponible en la
memoria de datos. Este registro no se
puede leer ni escribir directamente. La
escritura debe realizarse usando como
registro intermedio el registro PCLATH que
s es un registro de 8 bits accesible en la
memoria de datos del microcontrolador. El
contenido del registro PCLATH se
transfiere a la parte alta del PC en el
momento en que se escribe en el registro
PCL. Tambin aporta dos bits al PC en los
saltos o llamadas a subprogramas.
Tecnologa Electrnica
22
Universidad
de Oviedo
La pila
6. Microcontroladores. PIC
23
Universidad
de Oviedo
Memoria RAM de
datos
La memoria de datos est distribuida en 4 posibles bancos de 128
6. Microcontroladores. PIC
Tecnologa Electrnica
24
Universidad
de Oviedo
Memoria RAM de
Sirve para almacenar todos los datos que se manejan en un
datos
programa.
6. Microcontroladores. PIC
25
STATUS
STATUS
STATUS
STATUS
PORTB
6. Microcontroladores. PIC
PORTB
La memoria de datos
Universidad
de Oviedo
Tecnologa Electrnica
26
Memoria de datos
Universidad
de Oviedo
MODOS DE DIRECCIONAMIENTO
6. Microcontroladores. PIC
27
Memoria de datos:
Direccionamiento.
Universidad
de Oviedo
6. Microcontroladores. PIC
DIRECCIONAMIENT
O
DIRECTO
Tecnologa Electrnica
BANCO
RP1:RP0
00
01
10
11
28
Universidad
de Oviedo
6. Microcontroladores. PIC
Direccionamiento indirecto
1)
2)
3)
Sencillo
ejemplo
de
direccionamiento indirecto
donde se limpian las
posiciones de memoria de
datos comprendidas entre
la posicin 20h y la 2Fh
(ambas incluidas)
Tecnologa Electrnica
NEXT
CONTINUE
:
29
6. Microcontroladores. PIC
Registro de estado
Universidad
de Oviedo
Tecnologa Electrnica
30
6. Microcontroladores. PIC
Registro option
Universidad
de Oviedo
Tecnologa Electrnica
31
6. Microcontroladores. PIC
Registro
intcon
Universidad
de Oviedo
Tecnologa Electrnica
32
6. Microcontroladores. PIC
PIE1
Universidad
de Oviedo
Tecnologa Electrnica
33
6. Microcontroladores. PIC
PIR
1
Universidad
de Oviedo
Tecnologa Electrnica
34
6. Microcontroladores. PIC
Universidad
de Oviedo
CARACTERSTICAS
ESPECIALES DE LOS PIC
Tecnologa Electrnica
35
Universidad
de Oviedo
6. Microcontroladores. PIC
36
PALABRA DE
CONFIGURACIN
Universidad
de Oviedo
6. Microcontroladores. PIC
37
Universidad
de Oviedo
OSCILADO
RLos PIC16F87X pueden funcionar con 4 modos
6. Microcontroladores. PIC
Tecnologa Electrnica
38
Universidad
de Oviedo
CICLO DE
INSTRUCCIN
Un ciclo de instruccin es el tiempo que se tarda en
6. Microcontroladores. PIC
Tecnologa Electrnica
39
Universidad
de Oviedo
MODO
SLEEP
Los microcontroladores PIC pueden trabajar en dos modos
6. Microcontroladores. PIC
distintos:
Modo Normal: ejecutando las instrucciones
Modo Dormido o de bajo consumo: se suspende la ejecucin
El consumo de un microcontrolador depende de su
frecuencia de trabajo, a ms frecuencia ms consumo.
El modo dormido supone un ahorro de consumo porque el
oscilador del microcontrolador deja de oscilar, por tanto no
se ejecutan instrucciones.
En este modo dormido se entra por software cuando se
ejecuta la instruccin SLEEP
Tecnologa Electrnica
40
6. Microcontroladores. PIC
MODO SLEEP
Universidad
de Oviedo
Tecnologa Electrnica
41
RESET DEL
MCU
Universidad
de Oviedo
6. Microcontroladores. PIC
Tecnologa Electrnica
42
Universidad
de Oviedo
6. Microcontroladores. PIC
Tecnologa Electrnica
43
Universidad
de Oviedo
6. Microcontroladores. PIC
Tecnologa Electrnica
100:
101:
110:
111:
44
6. Microcontroladores. PIC
INTERRUPCIONES
Universidad
de Oviedo
Interrupcin por cambio en los valores de los pines RB4 a RB7 del
PORTB (RBIF).
Tecnologa Electrnica
45
6. Microcontroladores. PIC
INTERRUPCIONES
Universidad
de Oviedo
46
6. Microcontroladores. PIC
Lgica de interrupciones
Universidad
de Oviedo
Tecnologa Electrnica
47
Universidad
de Oviedo
6. Microcontroladores. PIC
SALVANDO EL CONTEXTO
Tecnologa Electrnica
48
Universidad
de Oviedo
6. Microcontroladores. PIC
movwf W_tmp
swapf STATUS,W
bcf STATUS,RP0
bcf STATUS,RP1
movwf STATUS_tmp
movf PCLATH,W
movwf PCLATH_tmp
Tecnologa Electrnica
;Salvamos el registro W
; y el registro STATUS "girado" en W
;Aseguramos el paso al banco 0
;poniendo a 0 los dos bits de seleccin de
;banco
;Guardamos en el banco 0 STATUS girado
;Salvamos tambin PCLATH en W
;y ahora en una posicin auxiliar del
;banco 0
49
Universidad
de Oviedo
6. Microcontroladores. PIC
Tecnologa Electrnica
50
6. Microcontroladores. PIC
Universidad
de Oviedo
Programacin en
ensamblador
Copyright ATE
Tecnologa Electrnica
51
6. Microcontroladores. PIC
Ensamblador
Universidad
de Oviedo
Tecnologa Electrnica
52
Cdigo
fuente
6. Microcontroladores. PIC
Universidad
de Oviedo
Tecnologa Electrnica
53
Campo de cdigo
Universidad
de Oviedo
6. Microcontroladores. PIC
54
Universidad
de Oviedo
Campo de operandos y
datos
6. Microcontroladores. PIC
TIPO
SINTAXIS
Decimal
D<valor>
d<valor>
.<valor>
Hexadecima
l
H<valor>
h<valor>
0x<valor>
<valor>H
<valor>h
Octal
O<valor>
o<valor>
Binario
B<valor>
b<valor>
ASCII
A<carcter>
Cadena
a<carcter>
<carcter>
<cadena>
55
Universidad
de Oviedo
Juego de instrucciones
6. Microcontroladores. PIC
Instrucciones de CARGA
NEMNICO
clrf
clrw
movf
f,d
DESCRIPCIN
FLAGS AFECTADOS
00 (f)
00 (W)
(f) (destino)
movlw k
k (W)
Ninguno
movwf f
(W) (f)
Ninguno
Tecnologa Electrnica
56
Universidad
de Oviedo
Juego de instrucciones
Instrucciones de BIT
6. Microcontroladores. PIC
NEMNICO
DESCRIPCIN
FLAGS AFECTADOS
bcf
f,b
Ninguno
bsf
f,b
Ninguno
Instrucciones ARITMTICAS
NEMNICO
DESCRIPCIN
FLAGS AFECTADOS
(W) + k (W)
C DC - Z
addwf f,d
C DC - Z
decf
f,d
(f) - 1 (destino)
incf
f,d
(f) + 1 (destino)
sublw
K - (W) (W)
C DC - Z
subwf
f,d
C DC - Z
addlw
Tecnologa Electrnica
57
Universidad
de Oviedo
Juego de instrucciones
Instrucciones LGICAS
NEMNICO
FLAGS AFECTADOS
andwf f,d
comf
f,d
(/f) (destino)
iorlw
(W) OR k (W)
iorwf
f,d
rlf
f,d
rrf
f,d
swap
f,d
xorlw
xorwf
f,d
andlw
6. Microcontroladores. PIC
DESCRIPCIN
Tecnologa Electrnica
Ninguno
58
Universidad
de Oviedo
Juego de instrucciones
6. Microcontroladores. PIC
Instrucciones de SALTO
NEMNICO
DESCRIPCIN
FLAGS AFECTADOS
btfsc
f,b
Salta si el bit b de f es 0
Ninguno
btfss
f,b
Salta si el bit b de f es 1
Ninguno
decfsz f,d
Ninguno
incfsz
f,d
Ninguno
goto
Salta a la direccin k
Ninguno
Tecnologa Electrnica
59
Universidad
de Oviedo
Juego de instrucciones
6. Microcontroladores. PIC
call
retfie
retlw
return
DESCRIPCIN
FLAGS AFECTADOS
Llamada a subrutina
Ninguno
Ninguno
Ninguno
Ninguno
Tecnologa Electrnica
60
Universidad
de Oviedo
Juego de instrucciones
6. Microcontroladores. PIC
Instrucciones ESPECIALES
NEMNICO
DESCRIPCIN
FLAGS AFECTADOS
clrwdt
/TO - /PD
nop
No operacin
Ninguno
sleep
/TO - /PD
Tecnologa Electrnica
61
6. Microcontroladores. PIC
Directivas
Universidad
de Oviedo
END
Es la nica directiva obligatoria. Indica al ensamblador dnde debe
detener el proceso. Debe colocarse en la ltima lnea del programa.
Tecnologa Electrnica
62
Directivas
Universidad
de Oviedo
6. Microcontroladores. PIC
LIST P=16F877
Indica el tipo de microcontrolador utilizado.
INCLUDE <p16F877.inc> o INCLUDE p16F877.inc
Incluye en el programa un fichero donde se definen las etiquetas
con las que se nombra a los diferentes registros y sus bits. Este
fichero se encuentra en el directorio principal del programa
ensamblador. Puede usarse esta directiva para incluir cualquier
otro fichero (El fichero de inclusin no puede terminar con
una directiva END).
Tecnologa Electrnica
63
6. Microcontroladores. PIC
Universidad
de Oviedo
MANEJANDO LAS
INSTRUCCIONES
Luca Marcos
Tecnologa Electrnica
64
Universidad
de Oviedo
6. Microcontroladores. PIC
PORTA
PORTB
PORTC
PORTD
PORTE
TMR0
STATUS (en los dos bancos)
INTCON (en los dos bancos)
PCLATH (en los dos bancos)
TRISA
TRISB
TRISC
TRISD
TRISE
OPTION_REG
65
6. Microcontroladores. PIC
Inicializacin
Universidad
de Oviedo
Tecnologa Electrnica
66
Universidad
de Oviedo
6. Microcontroladores. PIC
Ejemplo: Queremos que los bits del puerto A <7:5> sean salidas y
los bits
<4:0> sean entradas
bsf
movlw
movwf
STATUS,RP0
b'00011111'
TRISA
Tecnologa Electrnica
;pasamos al banco 1
;configuramos PORTA<7:5> como
;salidas y PORTA<4:0> como entradas,
;aunque esto ltimo no es necesario.
67
Universidad
de Oviedo
6. Microcontroladores. PIC
2- Se carga W en el registro F.
Tecnologa Electrnica
68
Universidad
de Oviedo
6. Microcontroladores. PIC
REG, W
0xF0
0xF0
REG, 0
Otra forma:
MOVLW
ANDWF
Tecnologa Electrnica
69
Universidad
de Oviedo
6. Microcontroladores. PIC
Se utiliza la instruccin XORWF, por lo que se hace la XOR entre W y uno de los
registros.
Ejemplo: saber si el registro CONTADOR que es un registro que se inicializa a 0 y se
va
incrementando es igual al registro FIN, en cuyo caso se termina el
programa; si no, incrementamos CONTADOR.
MOVF CONTADOR,W ; cargamos W con el contenido de CONTADOR
XORWF FIN ; hacemos la XOR entre W y FIN
BTFSS STATUS,Z
; miramos si el resultado ha sido cero;
INCF CONTADOR
; si no, se incrementa CONTADOR
GOTO END
; si s, salta la siguiente instruccin y va a GOTO END
Otra opcin es restar ambos registros utilizando el registro W; en este ejemplo slo
nos
interesa saber
si son oW
no son iguales.
MOVF
CONTADOR,
;cargamos W con el valor de CONTADOR
SUBWF
BTFSC
GOTO
GOTO
En este
FIN, W
STATUS,Z
Iguales
NoIguales
caso hemos utilizado la
70
Interrupciones
6. Microcontroladores. PIC
Universidad
de Oviedo
Tecnologa Electrnica
71
Universidad
de Oviedo
Interrupciones
6. Microcontroladores. PIC
PTI
Hay que tener en cuenta que al principio de la interrupcin hay que salvaguardar los
registros W y STATUS, a veces tambin el PCLATH.
movwf W_tmp
swapf STATUS,W
bcf STATUS,RP0
bcf STATUS,RP1
movwf STATUS_tmp
movf PCLATH,W
movwf PCLATH_tmp
;Salvamos el registro W
; y el registro STATUS "girado" en W
;Aseguramos el paso al banco 0
;poniendo a 0 los dos bits de seleccin de banco
;Guardamos en el banco 0 STATUS girado
;Salvamos tambin PCLATH en W
;y ahora en una posicin auxiliar del banco 0
Tecnologa Electrnica
72
TMR0
6. Microcontroladores. PIC
Universidad
de Oviedo
Tecnologa Electrnica
73
Interrupcin RBI
6. Microcontroladores. PIC
Universidad
de Oviedo
Tecnologa Electrnica
74
Universidad
de Oviedo
6. Microcontroladores. PIC
Inicio
Stop
List
include
p=16F877
P16F877.INC
Resultado
org
goto
org
equ
0x00
Inicio
0x05
movlw
addlw
movwf
nop
end
0x0C
0x07
Resultado
Tecnologa Electrnica
0x20
;tipo de procesador
;incluye fichero de smbolos y
;etiquetas
;para almacenar el resultado
;vector de Reset
;saltamos el vector de
;interrupcin
;carga el 1er. sumando en W
;le sumamos el 2 sumando
;guardamos el resultado
;ponemos punto de parada
;fin del programa fuente
75