Download Microcontroladores Parte3 [Modo de

Document related concepts
no text concepts found
Transcript
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
SISTEMAS ELECTRÓNICOS DIGITALES
BLOQUE 3
MICROCONTROLADORES
(PARTE 3)
DESARROLLO DE SISTEMAS ELECTRÓNICOS
DIGITALES BASADOS EN UN MICROCONTROLADOR
HERRAMIENTAS HARDWARE Y SOFTWARE
Enrique Mandado Pérez
María José Moure Rodríguez
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
Los microcontroladores son sistemas digitales complejos que se caracterizan por el
hecho de que, en general, antes de realizar un prototipo es conveniente comprobar su
funcionamiento de acuerdo con las especificaciones. Esto da lugar a que su proceso de
diseño se pueda dividir de forma simplificada en cuatro fases:
Descripción del sistema
Es la fase en la que se especifica la función que debe realizar el sistema. En ella hay que
utilizar métodos que faciliten la documentación del sistema y la posterior verificación
de su funcionamiento.
Diseño del hardware y del software
Utilización de herramientas de hardware y software para desarrollar el sistema
Verificación del funcionamiento del sistema
Fase en la que se comprueba el correcto funcionamiento del sistema y se optimiza su
diseño sin que sea imprescindible proceder a la realización de un prototipo.
Implementación del sistema
Fase en la que se lleva a cabo el tratamiento de la información obtenida en la fase de
descripción y se realiza físicamente el sistema mediante alguno de los tipos de circuitos
integrados que los fabricantes de los mismos ponen a disposición de los diseñadores de
sistemas electrónicos.
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
INICIO
DESCRIPCIÓN FUNCIONAL
DEL SISTEMA
REALIZACIÓN DEL
ESQUEMA DEL HARDWARE
EDICIÓN DEL PROGRAMA
Microcontroladores
DESARROLLO DE SISTEMAS
ELECTRÓNICOS BASADOS EN
MICROCONTROLADORES
SIMULACIÓN DEL PROGRAMA
¿Resultado
Correcto?
NO
SI
IMPLEMENTACIÓN EN UNA
PLACA DE DESARROLLO
GRABACIÓN DEL PROGRAMA
EN EL MICROCONTROLADOR
VERIFICACIÓN
NO
Ordinograma del proceso de diseño e implementación de un
¿Resultado
Correcto?
sistema electrónico basado en microcontroladores.
SI
SI
MÍNIMO
HARDWARE
NO
IMPLEMENTACIÓN DEL
PROTOTIPO EN
CIRCUITO IMPRESO
VERIFICACIÓN
NO
¿Resultado
Correcto?
SI
FABRICACIÓN
INSTALACIÓN
EN UNA CAJA
FIN
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
Sistema o Entorno de desarrollo de un microcontrolador
Conjunto de recursos utilizados para desarrollar el sistema físico y el programa,
transferir éste a la memoria del microcontrolador y verificar su funcionamiento.
Está formado por un conjunto de herramientas de hardware y herramientas de
software.
Herramientas de hardware
Facilitan la prueba real de los programas y el desarrollo rápido de prototipos en
aquellos casos en los que no es imprescindible minimizar la complejidad del hardware.
Las principales herramientas hardware son:
– Placas de prototipos o entrenadores
– Grabadores o programadores
– Depuradores en el sistema
– Emuladores
Herramientas de software
Facilitan el diseño del programa, la verificación de su funcionamiento y su
transferencia a la memoria del microcontrolador.
Las principales herramientas de software son:
– Editores y compiladores
– Simuladores
– Grabadores o programadores
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
Placas de prototipos o entrenadores
Son sistemas electrónicos de los que
forma parte el microcontrolador.
Pueden tener o no un conjunto de
periféricos adecuados para realizar
operaciones de entrada/salida.
Si no los tienen se le debe poder conectar
una placa con periféricos. Un ejemplo
de placa de prototipos que no posee
periféricos es la placa de la figura.
Un ejemplo de placa con periféricos es
SiDePIC- USB cuyo esquema de bloques
se presenta en la figura de la diapositiva
siguiente.
PLACA DE PROTOTIPOS O
ENTRENADOR DEL
MICROCONTROLADOR CY7C68013
DEL DEPARTAMENTO DE
TECNOLOGÍA ELECTRÓNICA
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
SISTEMAS DE DESARROLLO
Conector de
expansión
Barra de expansión
RB7_P
Amplificadores
(Drivers)
m
Periféricos
internos
m
m
RB6_P
n
Comunicación
vía USB
RB7
RB7_U
Interfaz USB
(PIC 16C745)
RB6_U
Circuito de
control
RB6
MCLR/Vpp
Zócalos para
microcontroladores
PIC 16F84 y 16F87x
RB4 – RB5
2
12VCA
ó
15VCC
Fuente de
Alimentación
13VCC 5VCC
13VCC
5VCC
Puesta
a cero
5VCC
m = n + RB6_P + RB7_P + masa + 5VCC
ESQUEMA DE BLOQUES DEL ENTRENADOR SiDePIC-USB
de los microcontroladores PIC.
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
SISTEMAS DE DESARROLLO
ENTRENADOR SiDePIC-USB
de los microcontroladores PIC.
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
Grabadores o programadores
Son sistemas electrónicos que transfieren el
programa a la memoria de instrucciones del
microcontrolador. Suelen estar asociados a un
programa grabador que se ejecuta en un
computador personal
Cuando la memoria de instrucciones utilizada
es del tipo EPROM, son siempre sistemas
independientes que poseen un zócalo en el que
se inserta el microcontrolador.
Cuando la memoria de instrucciones es de tipo
FLASH, el grabador puede ser también
independiente o estar incorporado en el
sistema de desarrollo, como es el caso de la
placa del microcontrolador CY7C68013
adjunta o el sistema SiDePIC-USB de la
fotografía de la siguiente diapositiva.
PLACA DE PROTOTIPOS O
ENTRENADOR DEL
MICROCONTROLADOR CY7C68013
QUE TAMBIÉN ES UN GRABADOR
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
GRABADORES O PROGRAMADORES
ENTRENADOR SiDePIC-USB
de los microcontroladores PIC que
también es un grabador
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
GRABADORES O PROGRAMADORES
Conector de
expansión
Barra de expansión
RB7_P
Amplificadores
(Drivers)
m
Periféricos
internos
m
m
RB6_P
n
Comunicación
vía USB
RB7
RB7_U
Interfaz USB
(PIC 16C745)
RB6_U
Circuito de
control
RB6
MCLR/Vpp
Zócalos para
microcontroladores
PIC 16F84 y 16F87x
RB4 – RB5
2
12VCA
ó
15VCC
Fuente de
Alimentación
13VCC 5VCC
13VCC
5VCC
Puesta
a cero
5VCC
m = n + RB6_P + RB7_P + masa + 5VCC
PLACA DE PROTOTIPOS SiDePIC-USB
de los microcontroladores PIC que también es un grabador.
Depuradores en el sistema (In-System Debuggers)
Escuela
Técnica
de Ingenieros
de de
Telecomunicación
Son
sistemas
que facilitan
la prueba real
un sistema digital basado en microcontroladores. Se pueden realizar de dos formas principales:
Departamento de Tecnología Electrónica
Microcontroladores
Universidad de Vigo
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
Depuradores en el sistema (In-System Debuggers)
Son sistemas que facilitan la prueba real del
funcionamiento del programa de un sistema
digital basado en un microcontrolador.
Los dos sistemas electrónicos indicados
anteriormente se pueden utilizar como
depuradores. Los terminales de
entrada/salida del microcontrolador de la
placa adjunta se pueden conectar a distintos
periféricos. La placa SiDePIC-USB tiene
varios perifericos incorporados y además es
expansible.
En ambas placas se puede grabar y borrar el
programa del microcontrolador
innumerables veces y probar de esta forma
diferentes programas inmediatamente.
PLACA DESARROLLO DEL
MICROCONTROLADOR CY7C68013
QUE TAMBIÉN ES UN GRABADOR
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
Editores y compiladores
Los lenguajes de programación de los microcontroladores más utilizados son el
ensamblador y el C. La programación en lenguaje ensamblador resulta ardua
para el principiante pero permite desarrollar programas muy eficientes, porque
proporciona al programador el dominio absoluto del sistema. La programación
en un lenguaje de alto nivel (como por ejemplo C) disminuye el tiempo de
desarrollo pero el programa en lenguaje máquina obtenido suele ser menos
eficiente que el obtenido a partir del ensamblador.
Para el desarrollo del programa del microcontrolador se utilizan programas
editores que constituyen herramientas que facilitan la utilización de los lenguajes
de programación. Los programas editores suelen ser distribuidos de forma
gratuita por el fabricante.
Los compiladores son programas que se encargan de traducir el programa
escrito en un lenguaje de alto nivel a lenguaje máquina. Las versiones más
potentes suelen ser caras, aunque para las familias de los microcontroladores más
populares se suelen encontrar compiladores gratuitos.
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
Simuladores
Son programas capaces de ejecutar en un computador personal programas
diseñados para ser ejecutados en un microcontrolador. Proporcionan información
sobre la ejecución del programa y son ideales para depurarlo como paso previo a su
introducción en la memoria del microcontrolador de un modo seguro y poco costoso.
Su gran inconveniente es la dificultad para simular la entrada y salida de datos del
microcontrolador. Además, no proporcionan información de los problemas que
surgen al ejecutar el programa en el prototipo real.
La combinación de un simulador con un un entrenador que posea un
microcontrolador con memoria Flash y un circuito de programación incorporado es
una herramienta de diseño de sistemas basados en un microcontrolador de gran
eficacia.
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
ÓRDENES DEL LENGUAJE ENSAMBLADOR ASM51
Las órdenes o pseudoinstrucciones (Directives) de un lenguaje ensamblador
especifican las acciones que debe ejecutar el programa ensamblador cuando traduce
el programa fuente.
ORG valor : actualiza el contador de programa.
Símbolo EQU valor: Asocia el símbolo con un valor numérico u otro símbolo ya
definido.
Símbolo BIT valor : Dirección de bit.
Símbolo DATA valor: Dirección de dato en la RAM interna con direccionamiento
directo.
Símbolo XDATA valor: Dirección de un dato en la RAM externa.
Símbolo CODE valor: Dirección del programa.
DB valor : genera la combinación binaria equivalente al valor indicado.
DB ‘c’: genera la combinación binaria equivalente al carácterASCII indicado entre
comillas.
DB “cadena”: genera la combinación binaria correspondiente a la cadena indicada.
DB ‘c’, valor, “cadena”: genera la combinación binaria correspondiente a los
parámetros separados mediante comas.
END : final del archivo.
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
ESTRUCTURA DEL PROGRAMA
EN LENGUAJE ENSAMBLADOR
tabla XDATA 0
valor EQU FFh
ORG 0
AJMP inicio
ORG 100h
Inicio:
clr a
mov DPTR,#tabla
movx a,@DPTR
sjmp inicio
END
;definición de etiquetas
;primera instrucción que se ejecuta
; dirección de comienzo del programa
; programa cíclico
; fin
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
PROGRAMACIÓN DE LOS PUERTOS
DE ENTRADA/SALIDA
Los puertos de E/S se pueden direccionar de dos formas:
• Completa (byte)
Cada puerto tiene asignada una dirección dentro del conjunto de registros
especiales (SFR). Se accede a ellos mediante una instrucción de
transferencia de datos.
• Bit a bit
Se puede trabajar con cada bit de los puertos por separado mediante las
instrucciones de manejo de bits. Para direccionar un bit la sintaxis es Px.y
en la que "x" es el número del puerto e "y" el bit seleccionado (0 a 7).
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
PROGRAMACIÓN DE LOS PUERTOS
DE ENTRADA/SALIDA
Durante la inicialización del microcontrolador, el contenido de los puertos de
E/S semibidireccionales es FFh y los bidireccionales se ponen en el tercer
estado. La situación de los bidireccionales se ha de tener en cuenta cuando se
utilice uno de los puertos como salida ya que la salida está en estado alto al
menos todo el tiempo de la fase de "RESET" del microcontrolador y no pasa al
estado deseado por el usuario hasta que se ejecuta una instrucción de escritura
en el registro correspondiente al puerto del que forma parte esa salida.
Por el contrario, cuando el terminal de un puerto semibidireccional debe ser
utilizado como entrada, este estado inicial es indispensable para una buena
recepción de la información externa. Si por el contrario se encuentra en estado
bajo, impide los cambios de nivel de la señal externa. Por tanto, para utilizar
un terminal de un puerto semibidireccional de entrada, es imprescindible
asegurarse de que el bit que le corresponde en el registro del puerto está en el
estado 1, tal como es puesto en la inicialización del microntrolador.
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
ACOPLAMIENTO DE DIODOS LUMINISCENTES
Los diodos luminiscentes son dispositivos controlados por corriente.
Para que se iluminen se pueden conectar a un puerto bidireccional
del microcontrolador como indican las figuras:
R
µC
R
El diodo se ilumina cuando la
salida está en el nivel “1” lógico
µC
El diodo se ilumina cuando la
salida está en el nivel “0” lógico:
+Vcc
Si la corriente que debe pasar a través del diodo
luminiscente es superior a la máxima que puede
proporcionar el microcontrolador hay que utilizar
un transistor
RC
µC
Al conectar un diodo a un puerto semibidireccional no hay que poner
Una resistencia en serie con el diodo.
RB
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
ACOPLAMIENTO DE INTERRUPTORES Y PULSADORES
•
Para detectar la activación de un pulsador éste debe generar un “0” lógico en un
puerto semibidireccional de entrada del microcontrolador.
+Vcc
R
µC
•
Los rebotes que se producen en la señal de entrada se pueden eliminar por:
– Software: el programa no responde a activaciones sucesivas de la misma
entrada hasta que transcurre un tiempo que debe ser superior a
la duración de los rebotes.
– Hardware: Utilizando un circuito antirrebotes que realice la función de un
filtro pasabajo .
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
VISUALIZADORES DE 7 SEGMENTOS
•
•
•
•
Están formados por diodos luminiscentes individuales, uno por cada
segmento.
Existen dos modelos:
– Cátodo común, que se debe conectar a masa (GND).
– Ánodo común, que se debe conectar a +Vcc.
Es necesaria una resistencia limitadora para cada diodo luminiscente.
Se suele utilizar un circuito decodificador del código BCD natural al de 7
segmentos pero la conversión se puede hacer por programa.
Terminal
del cátodo
Terminales
chip
LED
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
ACOPLAMIENTO DE
VISUALIZADORES DE 7
SEGMENTOS
Dos tipos de control
µC
Control estático
BCD/7seg
Cada segmento se controla
de forma independiente.
BCD/7seg
4
4
Control dinámico o multiplexado
Menor complejidad pero mayor
consumo para obtener la misma
intensidad de luz.
µC
BCD/7seg
4
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
ACOPLAMIENTO SERIE DE UN VISUALIZADOR LCD
•
•
•
•
Los circuitos controladores
utilizan un canal de comunicación
en serie con 3 señales:
– Una señal de datos (DAT)
– Una señal de reloj (CLK)
– Una señal de control (LOAD)
El dato presente en la señal DAT se
almacena en un registro de
desplazamiento del controlador en
cada flanco de bajada de la señal
de reloj CLK.
Un flanco de bajada en la señal
LOAD hace que el LCD visualice
el dato almacenado en el registro
de desplazamiento o ejecute una
órden (command).
Lista de órdenes
100a4a3a2a1a0
Pon el cursor en la posición a4a3a2a1a0. Posición inicial 0
1010
Oculta el cursor
1011
Muestra el cursor
1100
Activa el modo INSERTAR
1101
Desactiva el modo INSERTAR
1110
Borra el carácter apuntado por el cursor y desplaza los que se
encuentran a la derecha
1111
Borra toda la pantalla y pone el cursor en la dirección 0
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
PROGRAMACIÓN DE MÁQUINAS DE ESTADOS
Definición de variables
;Definición de estados
ESTADO0 EQU 0
ESTADO1 EQU 1
;Imagen de entrada/salida
MARCHA BIT 0
PARO BIT 1
Q BIT 3
; Estado interno
ESTADO DATA 40h
E0
Q=0
PARO=1
MARCHA=0
MARCHA=1
E1
Q=1
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
PROGRAMACIÓN MÁQUINAS DE ESTADOS
Programa principal
ORG 0
JMP inicio
ORG 100h
inicio:
MOV ESTADO,ESTADO0 ; Condiciones iniciales
bucle:
CALL ENT_SAL
CALL MAQ_EST
JMP bucle
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
PROGRAMACIÓN DE MÁQUINAS DE ESTADOS
Subrutina de entrada/salida
; Subrutina para actualizar salidas y leer entradas
; MARCHA=P0.0 PARO = P0.1 Q=P3.0
ENT_SAL:
MOV C,Q
MOV P3.0,C
MOV A,P0
MOV C,ACC.0
MOV MARCHA,C
MOV C,ACC.1
MOV PARO,C
RET
Escuela Técnica de Ingenieros de Telecomunicación
Departamento de Tecnología Electrónica
Universidad de Vigo
Microcontroladores
DESARROLLO DE SISTEMAS ELECTRÓNICOS
BASADOS EN MICROCONTROLADORES
PROGRAMACIÓN DE MÁQUINAS DE ESTADOS
Subrutina de la máquina de estados
MAQ_EST:
MOV A, ESTADO
CJNE A,#ESTADO0,NESTADO0
CLR Q
JNB MARCHA,SAL_MAQ
MOV ESTADO,#ESTADO1
JMP SAL_MAQ
NESTADO0:
CJNE A,#ESTADO1,SAL_MAQ
SETB Q
MOV C,MARCHA
CPL C
ANL C,PARO
JNC SAL_MAQ
MOV ESTADO,#ESTADO0
SAL_MAQ:
RET
END