Escolar Documentos
Profissional Documentos
Cultura Documentos
CIRCUITOS DIGITALES II
MICROCONTROLADORES
DOCENTE: ING. Luis Pacheco Cribillero
2012- I
TEMA 1:
INTRODUCCIN A LOS MICROCONTROLADORES
Los microcontroladores se encuentran presentes en muchas
tareas, artefactos y procesos que realizamos y/o utilizamos a diario. Un
ejemplo de ello son: las antiguas tarjetas telefnicas, un reloj
despertador, una alarma de autos y casas, el Mouse de una computadora,
las lavadoras modernas, televisores, microondas, telfonos celulares,
sistemas de control de acceso, controladores de temperatura, juguetes,
etc. Resumiendo estn presentes en las siguientes reas: industriales,
telecomunicaciones, automviles, entretenimiento, seguridad, entre
otras.
Los microcontroladores son una evolucin de los
microprocesadores, nacidos en la dcada de los 70's, presentando en la
actualidad completas utilidades y aplicaciones, integrndose en un chip,
funciones electrnicas que antes eran posibles por circuitos externos
separados.
Imaginmonos un circuito integrado que controla externamente los
siguientes circuitos: memoria RAM, EPROM, convertidor
Analgico/Digital, comunicacin serial, mdulos temporizadores, entre
otros. Esto en la actualidad se encuentra contenido en un solo circuito
integrado de 18, 28 y 40 pines, lo que potencia las posibilidades de
aplicaciones.
Lgica de
ALU
Control
Memoria Memoria
de Datos de Programa
Perifricos
Bus de Direcciones
Bus de Datos
P
Bus de Control
Perifricos Perifricos
C
Perifricos
Bus comn de
direcciones
Memoria
CPU Instrucciones
8
+
Datos
Bus de datos e
instrucciones
Proceso
Microcontrolador
que se desea controlar
Microcontrolador
Informacin
20/02/17 ING. Luis Pacheco Cribillero 8
MICROCONTROLADORES PIC DE MICROCHIP
ARQUITECTURA RISC
La arquitectura RISC (Reduced Instructions Set Computer)
o Juego de Instrucciones Reducidas para Computadoras, posee
un total de 35 instrucciones en lenguaje de mquina o
ensamblador (assembler), con las que se pueden realizar
infinidades de programas para el microcontrolador, lo que
simplifica su uso. Los microprocesadores utilizan arquitectura
CISC (Complex Instructios Set Computers) y estn por el orden
de 80 instrucciones.
SEGMENTACIN (PIPELINE)
Esta caracterstica se conoce como paralelismo implcito, segmenta
separa las funciones del CPU, producto de la arquitectura Harvard,
permitindole realizar en etapas, instrucciones diferentes en cada una
de ellas y operar varias a la vez. Aumenta el rendimiento del CPU, lo que
hace que sus operaciones y procesamiento sean ms rpidas que la gran
mayora de los otros microcontroladores.
COMPATIBILIDAD
Existen productos de software y hardware, que no pertenecen a
Microchip, pero que son totalmente compatibles con sus productos.
Podemos "bajar" programas adicionales gratis de Internet y realizar
circuitos para programarlos a un bajo coste, exitosamente.
ALGUNOS CONCEPTOS
Un ciclo de instruccin tarda en ejecutarse cuatro perodos de
reloj.
Todas las instrucciones del PIC se realizan en un ciclo de
instruccin, exceptuando las de "salto" que tardan dos ciclos.
Los impulsos de reloj entran por FOSC1/CLKIN y se dividen en
cuatro seales internamente, dando lugar a Q1, Q2, Q3 y Q4.
El ciclo de instruccin se logra al realizarse las siguientes
operaciones:
Q1 incrementa el contador de programa (PC)
Q4 busca el cdigo de la instruccin en la memoria del
programa y se carga en el registro de instrucciones
Q2 - Q3 decodifican y ejecutan la instruccin respectiva
Con Display
Con Rel
Con optoacoplador
REGISTROS, INSTRUCCIONES Y
BANCOS DE MEMORIA
ESTRUCTURA DE DATOS
BIT: Unidad mnima de
x
informacin
x x x x x x x x
BYTE: Grupo de 8 bits
INCLUDE .INC
El uso del INCLUDE, nos permite incluir en nuestro proyecto, una
plantilla que nos ahorra el trabajo de declarar todos los registros de
Funciones Especiales (SFR) de la memoria RAM de registros.
Es importante destacar, que en esta plantilla, todos los registros
estn declarados en mayscula. Por lo que durante la elaboracin de un
programa, se debe respetar este formato.
Ejemplo:
INCLUDE <P16F84.INC> INCLUDE P16F84.INC
20/02/17 ING. Luis Pacheco Cribillero 35
ESTRUCTURA DE UN PROGRAMA
Encabezado
En general un programa est
estructurado en tres grandes partes:
Configuracin, a) Encabezado: Define el tipo de PIC con
Declaracin de que se est trabajando, Bloque de
Registros, declaraciones de variables y
Datos, constantes,
Constantes. b) Configuracin de registros especiales:
Registro OPTION, INTCON, TMR0,
org puertos A y B, EECON, STATUS.
b) Cuerpo del programa: Aqu estn
Cuerpo del
contenidas todas las instrucciones
Programa
relacionadas a la ejecucin de un
programa bajo un diseo individual,
end realizado por el programador.
Una Tarea.
La condicin puede venir
Condicin NO internamente como
Proceso A
X=1? externamente.
SI
Interna Externa
btfss STATUS,0 ; C=1? btfss PORTA,0 ; RA0=1?
goto ProcesoA goto ProcesoA
goto SIGUE goto SIGUE
Dos Tareas.
NO La condicin puede venir
Condicin internamente como
Proceso A
X=1? externamente.
SI
Proceso B
Interna Externa
btfss STATUS,0 ; C=1? btfss PORTA,0 ; RA0=1?
goto ProcesoA goto ProcesoA
goto ProcesoB goto ProcesoB
20/02/17 ING. Luis Pacheco Cribillero 64
TOMA DE DECISIONES. EJEMPLO
NO Activar LED en
RA0=1?
RB0
Externa
SI
btfss PORTA,0 ; RA0=1?
goto ProcesoA
Activar LED en goto ProcesoB
RB1 ProcesoA bsf PORTB,0
goto SIGUE
ProcesoB bcf PORTB,1
goto SIGUE
SIGUE ------
------
------
20/02/17 ING. Luis Pacheco Cribillero 66
TOMA DE DECISIONES. CERROJO
VALIDACIN
Se queda esperando que
la condicin ocurra.
Condicin NO
X=1?
Interna
ESPERA btfss INTCON,0
SI goto ESPERA
goto ProcesoA
Proceso A
Externa
EXPLORA btfss PORTA,0 ; RA0=1?
goto EXPLORA
goto ProcesoA
Condicin NO Condicin NO
Proceso A
X=1? Y=1?
SI SI
Proceso B
NO
Condicin
Proceso C
Y=1?
Multitareas.
Dos condiciones permiten
elegir entre uno a cuatro
SI procesos distintos.
Proceso D
SI btfss STATUS,2
Z=1? goto ProcesoA
goto Carga
NO
ProcesoA
SI
DELAY 10 ms
PROCESO A
Tecla NO
Soltada?
SI
Retardo 10 ms
Proceso A
PCL INICIO
INSTRUCC A PROX
27H
INSTRUCC B INSTRUCC 1
28H
INSTRUCC C INSTRUCC 2
29H
CALL PROX RETURN RETLW K
2AH
INSTRUCC D
2BH SUBRUTINA
FIN
PROGRAMA PRINCIPAL
T (40H)
U=0
D=0 SI SI
C=0 C=0? C=0? MOSTRAR EN
DISPLAY
RESP= RESP-100
NO NO
FIN
incf D,1 incf U,1
SI
C=0?
NO
incf C,1
20/02/17 ING. Luis Pacheco Cribillero 82
RUTINA DE CONVERSIN DE
BCD A BINARIO (8 BITS)
INICIO
DEC=DEC-1 UNI=UNI-1
UNI=X
DEC=Y
CEN=Z
SI SI
C=0? C=0? RETURN
DAT=0
NO NO
CEN=CEN-1
DAT=DAT+10 DAT=DAT+1
SI
C=0?
NO
DAT=DAT+100
TECLA1 NO TECLA2 NO
Proceso A
ACT? ACT?
SI SI
Proceso B
TECLA2 SI
Proceso C
ACT?
NO
NO TECLA3 SI
Proceso D
ACT?
MOSTRAR
DIG1W
WPORTA
HABI DISP1
RETARDO 1ms
DIG2W
WPORTA
HABI DISP2
RETARDO 1ms
RETURN
CONTADOR=0
MOSTRAR
MOSTRAR 1
NO
INCF CONTADOR,1 CONTADOR
=9?
SI
CONTADOR=0
1 MOSTRAR
COMPLEJO
DEC=0
MOSTRAR
1
NO
RA0=1?
SI
MOSTRAR
RETARDO
NO MOSTRAR
INCF DEC,1
DEC=9? NO
INCF UNI,1 UNI=9?
SI
CONTADOR=0
MOSTRAR
MOSTRAR 1
NO
DECF CONTADOR,1 CONTADOR
=0?
SI
CONTADOR=9
1 MOSTRAR
UNI=0
NO
RA0=1?
SI
MOSTRAR
RETARDO
NO MOSTRAR
DECF DEC,1
DEC=0? NO
DECF UNI,1 UNI=0?
SI
00H
(28 N10)
00H
Si el TMR0 se carga con un valor, FFH
ste comenzar a contar desde el
valor cargado hasta que se
desborda (cuando pasa a 00H) Valor cargado
En el TMR0
00H
20/02/17 ING. Luis Pacheco Cribillero 102
CLCULOS CON EL TMR0
Cuando se carga en el registro TMR0 un valor XXH, l mismo
contar: (FFH XXH) impulsos y el tiempo que tarda en hacerlo
viene dado por la expresin:
Temporizacin= 4 * TOSC * Valor Real TMR0 * Rango del
divisor de Frecuencia
Valor Real TMR0 = (28 N10) = (256 N10)
N10= Valor a cargar en el TMR0
Paso 2. Debemos de
estructurar el programa
para que vigile e informe
cuando el TMR0 se ha
desbordado, y el bit que nos
da esta informacin es el
TOIF, del Registro
INTCON. Adicional a esto
debemos configurar el
registro OPTION para que
este trabaje con el
prescaler que hemos
seleccionado para nuestros
clculos, as como de
asignarlo al TMR0. As como
la rutinaria configuracin
de los puertos.
20/02/17 ING. Luis Pacheco Cribillero 110
LIST P=16F84A
INCLUDE P16F84A.INC
ORG 00H
GOTO INICIO
INICIO BSF STATUS,5
CLRF TRISA
Paso 3. Programa
MOVLW B11010110
MOVWF OPTION_REG
BCF STATUS,5
CLRF INTCON
LEDON BSF PORTA,0
CALL RETARDO
LEDOFF BCF PORTA,0
CALL RETARDO
GOTO LEDON
;***RUTINA DE RETARDO***
RETARDO MOVLW D139
MOVWF TMR0
ESPERA BTFSS INTCON,TOIF
GOTO ESPERA
BCF INTCON,TOIF
RETURN
END
Programa Principal
20/02/17 ING. Luis Pacheco Cribillero 112
20/02/17 ING. Luis Pacheco Cribillero 113
OTRA FORMA DE HACER LOS CLCULOS?
Instruccin 2 Instruccin 1
Instruccin 3 Instruccin 2
RETFIE
Instruccin 24
Instruccin 25
Nota: Una Rutina de Servicio
de Interrupcin puede ser
igual de extensa e incluso
Instruccin N ms que el mismo programa
principal.
Fin de programa
20/02/17 ING. Luis Pacheco Cribillero 118
DIAGRAMA DE
FLUJO RSI
REGISTRO INTCON
Este registro se encuentra ubicado en la posicin 0BH del banco
0 de los registros de funciones especiales (SFR). A continuacin
se describirn cada uno de sus bits:
Programa Principal
RSI
20/02/17 ING. Luis Pacheco Cribillero 125
CUANDO UTILIZAR UNA
INTERRUPCIN?
Una interrupcin es muy importante cuando deseamos realizar
una tarea que no dependa de una exploracin constante del
programa sobre la misma.
Tambin cuando deseamos que nuestro programa responda de
forma inmediata y automtica a determinados eventos.
Ejemplo del uso de Interrupcin:
En los sistemas de control, cuando se necesita un pulsador de
parada de emergencia (PARE).
En un diseo, cuando se requiere que nuestro circuito cumpla con
determinadas tareas, al pulsarse una tecla (LAMP TEST).
En el manejo de teclados, se recomienda su uso, ya que se puede
meter al microcontrolador en un estado de reposo, ahorrando
energa y esperando a que se pulse una tecla para iniciar una
rutina de servicio (CLAVE).
Cuando almacenamos informacin en la EEPROM y deseamos ser
advertidos de que sta se ha terminado (ALMACENAMIENTO).
Etc...
20/02/17 ING. Luis Pacheco Cribillero 126