Escolar Documentos
Profissional Documentos
Cultura Documentos
+
INTRODUCCIN AL ENSAMBLADOR
DIAGRAMA DE PINES Y
FUNCIONES
CONSIDERACIONES
BSICAS
DIAGRAMA DE PINES Y
FUNCIONES
CONSIDERACIONES
BSICAS
QU ES UN MICROCONTROLADOR?
Arquitectura Harvard
QU ES UN MICROCONTROLADOR?
Un microcontrolador es un circuito integrado, en cuyo
interior posee toda la arquitectura de un computador,
esto es CPU, memorias RAM, FLASH, EEPROM, y
circuitos de entrada y salida.
Un microcontrolador de fbrica, no realiza tarea
alguna, este debe ser programado para que realice
desde un simple parpadeo de un led hasta un
sofisticado control de un robot.
Un microcontrolador es capaz de realizar la tarea de
muchos
circuitos
lgicos
como
compuertas,
convertidores
A/D,
D/A,
temporizadores,
decodificadores, etc., simplificando todo el diseo de
una PCB.
QU ES UN MICROCONTROLADOR?
Uno de los microcontroladores ms populares
en la actualidad es el PIC16F628A y sus
variantes PIC16F627A y PIC16F648A, estos
modelos (serie A) soportan hasta 100.000 ciclos
de escritura en su memoria FLASH, y 1000.000
ciclos en su memoria eeprom.
Este est reemplazando rpidamente al
popular PIC16F84A, pues presenta muchas
ventajas como son:
ORGANIZACIN de la MEMORIA
Dentro del PIC16F628A se distinguen tres bloques de memoria.
Contiene el programa con las instrucciones que gobiernan la aplicacin. Es del tipo no voltil.
APLICACIONES DE UN
MICROCONTROLADOR
A) CONTROL DE MOTORES
Bombas industriales.
Lavadoras y aspiradoras.
Equipos de gimnasia.
Tensores de cinturones de seguridad.
Calefaccin, ventilacin y aire acondicionado
Refrigeracin.
Herramientas elctricas.
Apertura de puertas.
Control de estabilidad
APLICACIONES DE UN
MICROCONTROLADOR
B) CONTROL DE SENSORES
Sensores de torsin.
De presin
De vibraciones
De golpes
De lluvia.
De fallos en la red elctrica.
De rotura de cristales.
Sensores qumicos y de gases.
Deteccin PIR avanzada 2-D
APLICACIONES DE UN
MICROCONTROLADOR
C) AUTOMOCIN
Control de potencia.
Control de estabilidad y balanceo
Caja de cambios y embrague
Direccin hidrulica asistida
Airbag.
Control de ignicin.
Sensor de presencia de ocupantes
Control del combustible
APLICACIONES DE UN
MICROCONTROLADOR
D) CONECTIVIDAD EN INTERNET
Monitorizacin remota.
Contadores automticos de agua y gas.
Instrumentacin mdica remota.
Sistemas de seguridad.
Mquinas expendedoras.
Diagnstico industrial remoto
APLICACIONES DE UN
MICROCONTROLADOR
E) AUDIO
Reconocimiento de voz.
Altavoces telefnicos.
Redes distribuidas de megafona.
Efectos especiales en instrumentos musicales.
Cancelacin de ruidos.
Reproduccin de sonido digital.
Auriculares para la eliminacin de ruidos.
Puertos de comunicacin para manos libres.
Micrfono activado por la voz.
0000h
RESET
0001h
0002h
0003h
0004h
0005h
0006h
0007h
0008h
0009h
000Ah
000Bh
1FFCh
1FFDh
1FFEh
1FFFh
INT
La memoria de programa
Almacena todas las instrucciones del programa de
control, que debe estar grabado de forma
permanente.
La informacin contenida en esta memoria se graba
previamente mediante un equipo fsico denominado
programador o grabador.
El PIC16F628A tiene una memoria de programa no
voltil denominada ROM Flash que admite unas 1.000
grabaciones.
La memoria de programa est organizada en palabras
de 14 bits cada una.
Todas las instrucciones ocupan una posicin de
memoria de programa.
La memoria de datos
Almacena todos los datos que se manejan en un programa.
Se distinguen dos tipos de registro:
Registros de funciones especiales SFR. Son los primeros registros. Cada uno de ellos cumple un propsito especial en el control del PIC.
Registros de propsito general GPR. Se pueden usar para guardar datos temporales.
Los SFR aparecen de la direccin 00h a 1Fh del Banco 0, de 80h a 9Fh del Banco 1, de 100h a 10F en el Banco 2 y de 180h a 18Fh del Banco 3. Algunos son accesibles desde dos o ms bancos.
Los GPR ocupan 240 posiciones de memoria. Algunas posiciones de los Bancos 1 a 3 se mapean sobre el Banco 0.
LENGUAJE ENSAMBLADOR
El nico lenguaje que entienden los microcontroladores es el lenguaje
mquina formado por ceros y unos del sistema binario.
El lenguaje ensamblador expresa las instrucciones de una forma ms
natural al hombre, a la vez que muy cercana al microcontrolador, ya que
cada una de sus instrucciones se corresponde con otra en cdigo mquina.
El lenguaje ensamblador trabaja con nemnicos, que son grupos de
caracteres alfanumricos que simbolizan las rdenes o tareas a realizar.
La traduccin de los nemnicos a cdigo mquina entendible por el
microcontrolador la lleva a cabo un programa ensamblador.
El programa escrito en lenguaje ensamblador se denomina cdigo fuente
(*.asm). El programa ensamblador proporciona a partir de este fichero el
correspondiente cdigo mquina, que suele tener la extensin *.hex.
El juego de instrucciones
Es un juego reducido de 35 instrucciones muy simples y rpidas.
La mayora de las instrucciones se ejecuta en 4 ciclos de reloj; los saltos
se ejecutan en 8.
Todas las instrucciones tienen la misma longitud: 14 bits.
Instrucciones de CARGA
NEMNICO
DESCRIPCIN
FLAGS AFECTADOS
clrf f
00 (f)
clrw
00 (W)
Z
Z
movf
f,d
(f) (destino)
movlw
k (W)
Ninguno
movwf
(W) (f)
Ninguno
Instrucciones de BIT
NEMNICO
DESCRIPCIN
FLAGS AFECTADOS
bcf f,b
Ninguno
bsf f,b
Ninguno
Instrucciones ARITMTICAS
NEMNICO
DESCRIPCIN
FLAGS AFECTADOS
addlw
(W) + k (W)
C DC - Z
addwf
f,d
C DC - Z
decf
f,d
(f) - 1 (destino)
(f) + 1 (destino)
incf f,d
sublw
K - (W) (W)
C DC - Z
subwf
f,d
C DC - Z
Instrucciones LGICAS
NEMNICO
DESCRIPCIN
FLAGS AFECTADOS
andlw
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
Ninguno
xorlw
xorwf
f,d
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
DESCRIPCIN
FLAGS AFECTADOS
call k
Llamada a subrutina
Ninguno
retfie
Ninguno
Ninguno
Ninguno
retlw
return
Instrucciones ESPECIALES
NEMNICO
DESCRIPCIN
clrwdt
nop
No operacin
sleep
FLAGS AFECTADOS
/TO - /PD
Ninguno
/TO - /PD
El cdigo fuente
Est compuesto por una sucesin de lneas con instrucciones.
Cada lnea de programa puede estar compuesta de hasta cuatro campos o
columnas separados por uno o ms espacios o tabulaciones entre s.
Campo de etiquetas. Expresiones alfanumricas escogidas por el usuario para identificar una determinada instruccin del programa. Todas las etiquetas tienen asignado el valor de la posicin de memoria en la que se encuentra la instruccin a la que acompaan.
Campo de operandos y datos. Contiene los operandos que precisa el nemnico utilizado. Segn la instruccin, puede haber dos, uno o ningn operando.
Campo de comentarios. Dentro de una lnea, todo lo que se encuentre a continuacin de un punto y coma ( ; ) ser ignorado y considerado como comentario.
El campo del cdigo de operacin es el nico que nunca puede estar vaco; ste
siempre contiene una instruccin o una directiva del assembler.
El campo del operando o direccin puede contener una direccin o un dato, o
puede estar en blanco.
El campo de etiquetas o del comentario es opcional. El programador asignar
una etiqueta a una lnea de instruccin y/o agregar un comentario segn su
conveniencia; normalmente para hacer ms fcil el uso y la lectura de un
programa, por ejemplo si va a retomar el trabajo despus de un.
Delimitadores:
Los campos van separados slo con espacios y/o tabulaciones. No agregar nunca
otros caracteres (comas, puntos, etc ).
No utilice espacios extra, particularmente despus de comas que separan
operandos. ( Ej: movlw 5,w )
No use caracteres delimitadores (espacios y tabulaciones) en nombres o
etiquetas.
Etiquetas:
La etiqueta es el primer campo en una lnea en lenguaje assembler y puede no
existir.
Si una etiqueta est presente, el assembler la define como el equivalente a la
direccin del 1er byte correspondiente a esa instruccin.
Esta etiqueta puede volver a usarse en otro lugar pero como operando de una
instruccin.
- No pueden usarse como nombres de etiquetas a palabras ya reservadas por el
assembler ( ORG, EQU, etc. ) o nombres de instrucciones ( movlw, call, nop,
etc.)
Decimal
Hexadecimal
SINTAXIS
D<valor>
d<valor>
.<valor>
H<valor>
h<valor>
0x<valor>
<valor>H
<valor>h
Octal
O<valor>
o<valor>
Binario
B<valor>
b<valor>
ASCII
Cadena
A<carcter>
a<carcter>
<carcter>
<cadena>
Las constantes hexadecimales que empiecen por una letra deben ir precedidas de un
cero para no confundirlas con una etiqueta. Ejemplo: movlw 0F7h
Directivas
Controlan el proceso de ensamblado del programa, pero no son parte del
mismo (tambin se conocen como pseudo-instrucciones).
Hay ms de 50 directivas reconocidas por MPASM. A continuacin se
recogen algunas de las ms habituales
END
Set de Instrucciones.-
PORTA
Temporizador TMR0
Temporizador TMR0
Temporizador TMR0
Temporizador TMR0
Temporizador TMR0
Temporizador TMR0
Temporizador TMR0
Temporizador TMR0
Temporizador TMR0.-
Temporizador TMR0.-
Temporizador TMR0.-
Temporizador TMR0.-
bsf
bcf
bcf
Temporizador TMR0.-
Temporizador TMR0.-
Temporizador TMR0.-
http://www.mikroe.com/chapters/view/81/capitulo-3-microcontrolador-pic16f887/
Temporizador TMR0.Como hacer una temporizacin con el registro TMR0.El tiempo empleado en una temporizacin se puede calcular a partir de un ciclo de
instruccin (es decir 1 instruccin por cada microsegundo, si se est trabajando con
un XT de 4 Mhz), tambin se necesitar el valor del Divisor de Frecuencia (el que
se selecciona con los bit's PS2, PS1 y PS0), y finalmente con el complemento del
valor cargado en TMR0 (es decir 255-TMR0), la ecuacin que permite realizar el
clculo es la que sigue:
Temporizacin = Ciclo de instruccin * (255-TMR0) * Divisor de Frecuencia
Ejemplo:
Suponer que se desea una temporizacin de 10 ms (10 milisegundos), y que se est
trabajando con un XT de 4 Mhz, y que a dems se seleccion como Divisor de
Frecuencia 256 (es decir: PS2,PS1,PS0 = 1,1,1).
OSCILADOR. CONFIGURACIN.-
OSCILADOR. CONFIGURACIN.-
OSCILADOR. CONFIGURACIN.-
OSCILADOR. CONFIGURACIN.-
OSCILADOR. CONFIGURACIN.-
OSCILADOR. CONFIGURACIN.-
OSCILADOR. CONFIGURACIN.-
OSCILADOR. CONFIGURACIN.-
OSCILADOR. CONFIGURACIN.-
SYNC4 TXSTA
SPEN 7 RCSTA
RCIE 5 PIE1
RX9 6 TXSTA
CREN 4 RCSTA
RCIF 5 PIR1
OERR 1 RCSTA
Manejo de Interrupciones:
Modulos CCP:
COMUNICACIN ASNCRONA
http://robots-argentina.com.ar/Prueba_PIC628-RS232.htm
DIRECCIONAMIENTO INDIRECTO.-
DIRECCIONAMIENTO INDIRECTO.-
REGISTRO OPTION.-
REGISTRO OPTION.-