sistemas digitales programables i - inicio de tecnología electrónica. sdp i 13/11/2007 7 tema 10....

27
13/11/2007 Departamento de Tecnología Electrónica. SDP I 1 Tema 10. Métodos y herramientas de diseño Sistemas Digitales Programables I Sistemas Digitales Programables I Tema 10: M Tema 10: Mé todos y herramientas de dise todos y herramientas de diseñ o para o para microcontroladores microcontroladores 13/11/2007 Departamento de Tecnología Electrónica. SDP I 2 Tema 10. Métodos y herramientas de diseño Pautas para el dise Pautas para el diseñ o de programas para o de programas para μC Ejemplo de programa Ejemplo de programa Exploraci Exploració n de un teclado matricial n de un teclado matricial Herramientas de dise Herramientas de diseño Herramientas de programaci Herramientas de programación Herramientas de depuraci Herramientas de depuración Í ndice ndice

Upload: duongminh

Post on 08-May-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

13/11/2007Departamento de Tecnología Electrónica. SDP I

1

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño Sistemas Digitales Programables ISistemas Digitales Programables I

Tema 10: MTema 10: Méétodos y herramientas de disetodos y herramientas de diseñño para o para

microcontroladoresmicrocontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

2

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Pautas para el disePautas para el diseñño de programas para o de programas para µµCC

Ejemplo de programaEjemplo de programa

ExploraciExploracióón de un teclado matricialn de un teclado matricial

Herramientas de diseHerramientas de diseññoo

Herramientas de programaciHerramientas de programacióónn

Herramientas de depuraciHerramientas de depuracióónn

ÍÍndicendice

13/11/2007Departamento de Tecnología Electrónica. SDP I

3

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

DiseDiseñño de programas para microcontroladoreso de programas para microcontroladores

Idea de partida:Idea de partida:

Todos los microcontroladores tienen suficiente capacidad paraTodos los microcontroladores tienen suficiente capacidad paradesarrollar las tareas habituales de un sistema de control prdesarrollar las tareas habituales de un sistema de control prááctico.ctico.

Consecuencia importanteConsecuencia importante

Todos los micros son equivalentes y siempre existirTodos los micros son equivalentes y siempre existiráá alguno capaz alguno capaz de ejecutar las tareas solicitadas, por tanto:de ejecutar las tareas solicitadas, por tanto:

El programa puede ser diseEl programa puede ser diseññado ado ““independientementeindependientemente”” del del microcontrolador que lo va a ejecutar.microcontrolador que lo va a ejecutar.

DiseDiseñño de programaso de programas

13/11/2007Departamento de Tecnología Electrónica. SDP I

4

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

DiseDiseñño de programas para microcontroladoreso de programas para microcontroladores

DiseDiseñño de programaso de programas

Es fundamental Es fundamental ANALIZARANALIZAR (dise(diseññar) el programa primero y luego ar) el programa primero y luego

PROGRAMARPROGRAMAR (codificar):(codificar):

Un programa bien diseUn programa bien diseññado es fado es fáácil de trasladar a otro cil de trasladar a otro microcontrolador.microcontrolador.

Un cUn cóódigo disedigo diseññado para una CPU especado para una CPU especíífica puede ser de diffica puede ser de difíícil cil adaptaciadaptacióón a otra diferente.n a otra diferente.

Pasar a cPasar a cóódigo un programa bien disedigo un programa bien diseññado es mado es máás mets metóódico, fdico, fáácil cil y tiene mayores garanty tiene mayores garantíías de buen funcionamiento.as de buen funcionamiento.

13/11/2007Departamento de Tecnología Electrónica. SDP I

5

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

DiseDiseñño de programas para microcontroladoreso de programas para microcontroladores

DiseDiseñño de programaso de programas

Reparto de tareas en la realizaciReparto de tareas en la realizacióón de un programa:n de un programa:

1/3 1/3 AnAnáálisislisis ………………………………………………………………………………………………………………………… 33%33%

1/6 1/6 ProgramaciProgramacióónn ……………………………………………………………………………………………… 17%17%

1/4 1/4 DepuraciDepuracióón a nivel de bloquesn a nivel de bloques

y componentesy componentes …………………………………………………………………………....……………… 25%25%

1/4 1/4 DepuraciDepuracióón a nivel de todo el sistema n a nivel de todo el sistema …………………… 25%25%

1 1 Sistema completo a punto Sistema completo a punto ………………………………………………………… 100%100%

13/11/2007Departamento de Tecnología Electrónica. SDP I

6

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

DiseDiseñño de programas para microcontroladoreso de programas para microcontroladores

Comportamiento habitual:Comportamiento habitual: programar sin analizarprogramar sin analizar

SSóólo funciona para programas muy simples.lo funciona para programas muy simples.

En la prEn la prááctica ocasiona muchos retrasos:ctica ocasiona muchos retrasos:

DifDifíícil de depurar los errorescil de depurar los errores

DifDifíícil de modificarcil de modificar

DifDifíícil de documentarcil de documentar

DifDifíícil de mantener el ccil de mantener el cóódigo, digo, ……

ConclusiConclusióónn

DiseDiseñño de programaso de programas

Sin un Sin un ananáálisis y documentacilisis y documentacióón adecuadosn adecuados el trabajo realizado se el trabajo realizado se

pierde al no poder ser replicado, mantenido o depurado por otrospierde al no poder ser replicado, mantenido o depurado por otros..

13/11/2007Departamento de Tecnología Electrónica. SDP I

7

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Flujo de diseFlujo de diseñño con microcontroladoreso con microcontroladores

PROBLEMAPROBLEMA(Software)(Software)

ANANÁÁLISISLISIS(Planificaci(Planificacióón)n)

PROGRAMACIPROGRAMACIÓÓNN(Codificaci(Codificacióón yn y

DocumentaciDocumentacióón)n)

DEPURACIDEPURACIÓÓNN(Puesta a punto)(Puesta a punto)OKOK

nono

OrganigramaOrganigramaMMááquinas de estadoquinas de estadoRedes de Redes de PetriPetriSistema OperativoSistema Operativo

Lenguaje de programaciLenguaje de programacióónnCompilador de alto nivelCompilador de alto nivelEnsambladorEnsambladorEnlazadorEnlazador

SimuladorSimuladorSistemas de desarrolloSistemas de desarrollo

Emulador, etc.Emulador, etc.

Entorno de desarrolloEntorno de desarrollo

DiseDiseñño de programaso de programas

13/11/2007Departamento de Tecnología Electrónica. SDP I

8

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Flujo de diseFlujo de diseñño con microcontroladores: o con microcontroladores: AnAnáálisislisis

PROBLEMAPROBLEMA(Software)(Software)

ANANÁÁLISISLISIS(Planificaci(Planificacióón)n)

PROGRAMACIPROGRAMACIÓÓNN(Codificaci(Codificacióón yn y

DocumentaciDocumentacióón)n)

DEPURACIDEPURACIÓÓNN(Puesta a punto)(Puesta a punto)OKOK

nono

OrganigramaOrganigramaMMááquinas de estadoquinas de estadoRedes de Redes de PetriPetriSistema OperativoSistema Operativo

SimuladorSimuladorSistemas de desarrolloSistemas de desarrollo

Emulador, etc.Emulador, etc.

Entorno de desarrolloEntorno de desarrollo

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

Lenguaje de programaciLenguaje de programacióónnCompilador de alto nivelCompilador de alto nivelEnsambladorEnsambladorEnlazadorEnlazador

13/11/2007Departamento de Tecnología Electrónica. SDP I

9

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

Funciones de un programa de control de procesos:Funciones de un programa de control de procesos:

AdquisiciAdquisicióón y acondicionamiento de datosn y acondicionamiento de datosControl digital directoControl digital directoSupervisiSupervisióón del sisteman del sistemaControl de secuenciasControl de secuencias

Modelos a estudiarModelos a estudiar

Organigramas (diagramas de flujo)Organigramas (diagramas de flujo)Maquinas de estado finita (Maquinas de estado finita (FiniteFinite StateState MachineMachine--FSM)FSM)

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

13/11/2007Departamento de Tecnología Electrónica. SDP I

10

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

Organigramas:Organigramas:

Suelen utilizarse en aplicaciones Suelen utilizarse en aplicaciones sencillas o en la planificacisencillas o en la planificacióón de n de rutinas en las que se divide una rutinas en las que se divide una aplicaciaplicacióón mn máás complejas compleja

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

Inicio

Iniciar puerto serie

RI=1

Dato = SBUF

Dato par

P1 = Dato P0 = Dato

si no

Inicio

Iniciar puerto serie

RI=1

Dato = SBUF

Dato par

P1 = Dato P0 = DatoP1 = Dato P0 = Dato

si no

13/11/2007Departamento de Tecnología Electrónica. SDP I

11

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

MMááquina de estados finita (FSM):quina de estados finita (FSM):

EstEstáá compuesta por:compuesta por:

Estados:Estados: Son las diferentes situaciones en las que puede Son las diferentes situaciones en las que puede encontrarse el sistema.encontrarse el sistema.

Entradas (seEntradas (seññales de transiciales de transicióón de estados):n de estados): Constituyen Constituyen los acontecimientos que producen los cambios de estado.los acontecimientos que producen los cambios de estado.

Salidas:Salidas: Respuesta del sistema ante los cambios en las Respuesta del sistema ante los cambios en las entradas.entradas.

Funciones de transiciFunciones de transicióón de estado:n de estado: DescripciDescripcióón detallada, n detallada, para cada estado, de cupara cada estado, de cuáál es el siguiente estado y la salida del l es el siguiente estado y la salida del sistema, cuando se producen las distintas entradas.sistema, cuando se producen las distintas entradas.

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

13/11/2007Departamento de Tecnología Electrónica. SDP I

12

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

MMááquina de estados finita (FSM):quina de estados finita (FSM):

Las formas de representarlas son:Las formas de representarlas son:

Diagrama o grafo deDiagrama o grafo deestadosestados

Tabla de transicionesTabla de transiciones

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

s1 s2Ai=0

Ai=1

Bi=1

Si: EstadosAi: Entrada(s)Bi: Salida(s)

Próximo estado

Acción (salida)

Evento (entrada)

DescripciónEstado actual

Próximo estado

Acción (salida)

Evento (entrada)

DescripciónEstado actual

13/11/2007Departamento de Tecnología Electrónica. SDP I

13

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

MMááquina de estados finita (FSM):quina de estados finita (FSM):

Generación de eventos (atención a las entradas):

La traducción a código de la tabla de transición de estados es muy simple.

Problema: ¿Cuándo y cómo deben consultarse las entradas?

Consulta de la llegada de eventos en cierto espacio de memoria reservado.

Cuando ocurre un evento, “alguien” deja una señal en el espacio de memoria reservado (modifica un flag, una variable, etc.). Unavez atendido el evento, se desactiva la señal correspondiente.

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

13/11/2007Departamento de Tecnología Electrónica. SDP I

14

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

MMááquina de estados finita (FSM):quina de estados finita (FSM):

Alternativas en la detección de eventos:

Rutina de atenciRutina de atencióón a una interrupcin a una interrupcióón:n: Se trata de una rutina Se trata de una rutina

asociada a la entrada en cuestiasociada a la entrada en cuestióón, la que coloca la sen, la que coloca la seññal en el espacio de al en el espacio de

memora reservado, cada vez que se active dicha entrada.memora reservado, cada vez que se active dicha entrada.

Rutina de interrupciRutina de interrupcióón de un reloj:n de un reloj: Se trata de una interrupciSe trata de una interrupcióón n

periperióódica que se ejecuta cada cierto tiempo (dica que se ejecuta cada cierto tiempo (ej.ej. 20ms) y se encarga de 20ms) y se encarga de

consultar si alguna entrada estconsultar si alguna entrada estáá activa. En caso de que asactiva. En caso de que asíí sea, coloca sea, coloca

dicho evento en la memoria reservada, para que el programa princdicho evento en la memoria reservada, para que el programa principal ipal

proceda segproceda segúún convenga.n convenga.

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

13/11/2007Departamento de Tecnología Electrónica. SDP I

15

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

MMááquina de estados finita (FSM): quina de estados finita (FSM): EjemploEjemplo

DiseDiseñño de una FSM para el control de un ascensor (dos plantas)o de una FSM para el control de un ascensor (dos plantas)

Salidas del sistema(acciones)

Entradas al sistema(eventos)

Estados del sistema

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

s1. Ascensor en planta baja (PB)s2. Ascensor subiendo (SUBE)s3. Ascensor en planta alta (PA)s4. Ascensor bajando (BAJA)

Botón de subida pulsado (P_SUBIR)Botón de bajada pulsado (P_BAJAR)Sensor de llegada a planta baja activado (S_BAJA)Sensor de llagada a planta alta activado (S_ALTA)

Activar el motor para subir (M_SUBIR)Activar el motor para bajar (M_BAJAR)Parar el motor (M_STOP)Abrir puerta (OPEN)Cerrar puerta (CLOSE)Encender/Apagar botón planta baja (LED_B_ON/LED_B_OFF)Encender/Apagar botón planta alta (LED_A_ON/LED_A_OFF)

13/11/2007Departamento de Tecnología Electrónica. SDP I

16

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

MMááquina de estados finita (FSM): quina de estados finita (FSM): EjemploEjemplo

Diagrama de estados del sistemaDiagrama de estados del sistema

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

13/11/2007Departamento de Tecnología Electrónica. SDP I

17

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Modelos de programaciModelos de programacióón para microcontroladoresn para microcontroladores

Flujo de diseFlujo de diseñño con microcontroladores: Ano con microcontroladores: Anáálisislisis

2-P_BAJAR

2ErrorS_BAJA

3Parar motorAbrir puertaEncender LED P_ALTA

S_ALTA

4Cerrar puertaActivar motor bajarApagar LED P_ALTA

P_BAJARAscensor parado en planta alta

3

3-P_SUBIR

4-P_SUBIR

Ascensor bajando4

4-P_BAJAR

4ErrorS_ALTA

1Parar motorAbrir puertaEncender LED P_ALTA

S_BAJA

2-P_SUBIR

Ascensor subiendo2

1-P_BAJAR

2Cerrar puertaActivar motor subirApagar LED P_BAJA

P_SUBIRAscensor parado en planta baja

1

Próximo estadoAcción (salida)Evento (entrada)DescripciónEstado actual

MMááquina de estados finita (FSM): quina de estados finita (FSM): EjemploEjemploTab

la d

e t

ran

sici

Tab

la d

e t

ran

sici

óón

de e

stad

os

n d

e e

stad

os

13/11/2007Departamento de Tecnología Electrónica. SDP I

18

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Flujo de diseFlujo de diseñño con microcontroladores: o con microcontroladores: ProgramaciProgramacióónn

PROBLEMAPROBLEMA(Software)(Software)

ANANÁÁLISISLISIS(Planificaci(Planificacióón)n)

PROGRAMACIPROGRAMACIÓÓNN(Codificaci(Codificacióón yn y

DocumentaciDocumentacióón)n)

DEPURACIDEPURACIÓÓNN(Puesta a punto)(Puesta a punto)OKOK

nono

OrganigramaOrganigramaMMááquinas de estadoquinas de estadoRedes de Redes de PetriPetriSistema OperativoSistema Operativo

SimuladorSimuladorSistemas de desarrolloSistemas de desarrollo

Emulador, etc.Emulador, etc.

Entorno de desarrolloEntorno de desarrollo

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

Lenguaje de programaciLenguaje de programacióónnCompilador de alto nivelCompilador de alto nivelEnsambladorEnsambladorEnlazadorEnlazador

13/11/2007Departamento de Tecnología Electrónica. SDP I

19

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Lenguajes de programaciLenguajes de programacióónn

EnsambladorEnsamblador

Ventajas:Ventajas:

Permite desarrollar programas muy eficientes:Permite desarrollar programas muy eficientes:Uso eficiente de recursosUso eficiente de recursosCCóódigo compactodigo compacto

Control total sobre el tiempo de ejecuciControl total sobre el tiempo de ejecucióón de las instrucciones n de las instrucciones especialmente importante en aplicaciones en tiempo realespecialmente importante en aplicaciones en tiempo real

Desventajas:Desventajas:

ProgramaciProgramacióón costosa y difn costosa y difíícil de modificarcil de modificar

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

20

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Lenguajes de programaciLenguajes de programacióónn

Lenguajes de alto nivel: C, Pascal, BASIC, JavaLenguajes de alto nivel: C, Pascal, BASIC, Java

Ventajas:Ventajas:

Desarrollo de aplicaciones mDesarrollo de aplicaciones máás rs ráápido pido menor tiempo de menor tiempo de desarrollodesarrollo

ProgramaciProgramacióón mn máás cs cóómoda moda disponibilidad de funciones de disponibilidad de funciones de manejo de mmanejo de móódulos internosdulos internos

Mantenimiento de la aplicaciMantenimiento de la aplicacióón menos costoson menos costoso

Desventajas:Desventajas:

CCóódigo menos eficientedigo menos eficiente

Mayor ocupaciMayor ocupacióón del espacio de memorian del espacio de memoria

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

21

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Estructura de un programa en lenguaje ensambladorEstructura de un programa en lenguaje ensamblador

Los programas de los microcontroladores suelen dividirse en dos Los programas de los microcontroladores suelen dividirse en dos grandes grupos:grandes grupos:

La estructura de interrupciones, formada por las rutinas de La estructura de interrupciones, formada por las rutinas de servicio a las mismas.servicio a las mismas.

El programa principal, que consta de dos partes:El programa principal, que consta de dos partes:

La rutina de inicializaciLa rutina de inicializacióón del sistema.n del sistema.

Un lazo de ejecuciUn lazo de ejecucióón perpetua, en donde se ejecutan todas n perpetua, en donde se ejecutan todas aquellas tareas que no estaquellas tareas que no estéén ligadas a la estructura de n ligadas a la estructura de interrupciones: minterrupciones: mááquina de estados principal, rutinas no quina de estados principal, rutinas no crcrííticas, inicializaciticas, inicializacióón del circuito de vigilancia, n del circuito de vigilancia, ……

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

22

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Estructura de un programa en lenguaje ensambladorEstructura de un programa en lenguaje ensamblador

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

Reset

Inicialización

Subrutinas que se ejecutarán cada vez que se

ejecuta el lazo

Puesta a cero del temporizador

Pro

gra

ma p

rin

cip

al

Su

bru

tin

as

de i

nte

rru

pci

ón

INT1

Subrutina de servicio

RETI

INTn

Subrutina de servicio

RETI

13/11/2007Departamento de Tecnología Electrónica. SDP I

23

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

11 22 33 AA

44 55 66 BB

77 88 99 CC

** 00 ## DD

P0.0P0.0P0.3P0.3 P0.2P0.2 P0.1P0.1

P0.7P0.7

P0.6P0.6

P0.5P0.5

P0.4P0.4VCCVCC

Ejemplo de diseEjemplo de diseñño: o: ExploraciExploracióón de un teclado matricial n de un teclado matricial conectado al puerto 0 del 8051conectado al puerto 0 del 8051

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

24

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

AnAnáálisis del problema:lisis del problema:Organigrama del programa principalOrganigrama del programa principal

kb_scankb_scan: : Subrutina que ejecuta la Subrutina que ejecuta la exploraciexploracióón del tecladon del teclado

teclado.srcteclado.src

DeclaraciDeclaracióón de variables,n de variables,constantes, etc.constantes, etc.

Kb_scanKb_scan

InicializaciInicializacióón de variables,n de variables,registros, etc.registros, etc.

Ejemplo de diseEjemplo de diseñño: o: ExploraciExploracióón de un teclado matricial n de un teclado matricial conectado al puerto 0 del 8051conectado al puerto 0 del 8051

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

25

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

kb_scan.srckb_scan.src

kb_inkb_in = c= cóódigodigo

Busca cBusca cóódigodigo

ííndice = 0ndice = 0

mmááscara =scara =0111 11110111 1111

P0 = mP0 = mááscarascara

Tecla de fila actualTecla de fila actualpulsadapulsada

retret

Rota mRota mááscara ascara ala derechala derecha

mmááscara = 1111 0111scara = 1111 0111

kb_inkb_in = 0= 0

retret

1111

sisi

sisi

nono

nono

AnAnáálisis del problema:lisis del problema:Organigrama de laOrganigrama de laSubrutina Subrutina kb_scankb_scan

Ejemplo de diseEjemplo de diseñño: o: ExploraciExploracióón de un teclado matricial n de un teclado matricial conectado al puerto 0 del 8051conectado al puerto 0 del 8051

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

26

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

;Interfaz de un teclado matricial;Interfaz de un teclado matricial

;Definici;Definicióón de variablesn de variablesorigenorigen EQU 0HEQU 0Hpuerto puerto EQU P0EQU P0indiceindice DATA 61HDATA 61HKb_inKb_in DATA 62HDATA 62H

ORG origenORG origen

jmpjmp inicioinicio

ORG origen+100HORG origen+100H

;Programa principal;Programa principal

inicio: inicio: callcall kb_scankb_scanjmpjmp inicioinicio

;Definici;Definicióón de subrutinasn de subrutinas;Subrutina de exploraci;Subrutina de exploracióón el tecladon el teclado

kb_scankb_scan: : movmov indiceindice, #0, #0movmov A,A,#01111111B#01111111B

scanscan: : movmov puerto,Apuerto,Anopnopnopnopjbjb puerto.3,bit2puerto.3,bit2jmpjmp codigocodigo

bit2: bit2: incinc indiceindicejbjb puerto.2,bit1puerto.2,bit1jmpjmp codigocodigo

bit1: bit1: incinc indiceindicejbjb puerto.1,bit0puerto.1,bit0jmpjmp codigocodigo

bit0: bit0: incinc indiceindicejnbjnb puerto.0,puerto.0,codigocodigoincinc indiceindicerrrr AAcjnecjne A,A,#11110111B,scan#11110111B,scanmovmov kb_inkb_in,#0,#0retret

Ejemplo de diseEjemplo de diseñño: o: ExploraciExploracióón de un teclado matricial n de un teclado matricial conectado al puerto 0 del 8051conectado al puerto 0 del 8051

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

fichero: fichero: ““teclado.src.teclado.src.””

13/11/2007Departamento de Tecnología Electrónica. SDP I

27

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

;Subrutina de identificaci;Subrutina de identificacióón de cn de cóódigodigo

codigocodigo: : movmov A,indiceA,indicemovmov DPTR,DPTR,#tabla#tablamovcmovc A,A,@A@A+DPTR+DPTRmovmov kb_in,Akb_in,Aretret

;Definici;Definicióón de una tabla en memoria de programan de una tabla en memoria de programa

ORG origen+200HORG origen+200H

tabla: DB '123A456B789C*0tabla: DB '123A456B789C*0#D#D‘‘

;Fin del programa ;Fin del programa

ENDEND

Ejemplo de diseEjemplo de diseñño: o: ExploraciExploracióón de un teclado matricial n de un teclado matricial conectado al puerto 0 del 8051conectado al puerto 0 del 8051

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

28

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para la programaciHerramientas para la programacióónn

Compilador de lenguajes de alto nivel (Compilador de lenguajes de alto nivel (compilercompiler):):

Programas capaces de convertir un programa escrito en un Programas capaces de convertir un programa escrito en un

lenguaje de alto nivel (lenguaje C, Pascal, etc.) a lenguaje lenguaje de alto nivel (lenguaje C, Pascal, etc.) a lenguaje

mmááquina (ejecutable por el microcontrolador) o al lenguaje quina (ejecutable por el microcontrolador) o al lenguaje

ensamblador del mismo (lenguaje nemotensamblador del mismo (lenguaje nemotéécnico de nivel cnico de nivel

inmediatamente superior al minmediatamente superior al mááquina).quina).

Ensamblador (Ensamblador (assemblerassembler) o compilador:) o compilador:

Programas capaces de generar programas en lenguaje mProgramas capaces de generar programas en lenguaje mááquina quina

(generalmente ficheros objeto) partiendo de ficheros en lenguaje(generalmente ficheros objeto) partiendo de ficheros en lenguaje

ensambladorensamblador..

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

29

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

LOC LOC OBJOBJ LINELINE SOURCESOURCE

0000 0000 88 88 ORG origenORG origen0000 0000 020100 020100 89 89 jmpjmp inicioinicio

90 90 0100 0100 91 91 ORG origen+100HORG origen+100H0100 0100 120105 120105 92 92 inicio: inicio: callcall kb_scankb_scan0103 0103 80FB 80FB 93 93 jmpjmp inicioinicio

94 94 95 95 ;Subrutina de ;Subrutina de exploraci"nexploraci"n del tecladodel teclado96 96

0105 0105 756100 756100 97 97 kb_scan:movkb_scan:mov indiceindice,#0,#00108 0108 747F 747F 98 98 movmov A,A,#01111111B#01111111B010A 010A F580 F580 99 99 scanscan: : movmov puerto,Apuerto,A010C 010C 00 00 100 100 nopnop010D 010D 00 00 101 101 nopnop010E 010E 208303 208303 102 102 jbjb puerto.3,bit2puerto.3,bit20111 0111 020133 020133 103 103 jmpjmp codigocodigo0114 0114 0561 0561 104 104 bit2: bit2: incinc indiceindice0116 0116 208203 208203 105 105 jbjb puerto.2,bit1puerto.2,bit1

Fragmento del fichero Fragmento del fichero ““teclado.lstteclado.lst”” (generado por el ensamblador (generado por el ensamblador MCSMCS--51)51)

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

30

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para la programaciHerramientas para la programacióónn

Enlazador (Enlazador (linkerlinker):):

Se encargan de:Se encargan de:

Unir varios ficheros objeto (denominados mUnir varios ficheros objeto (denominados móódulos del programa) dulos del programa)

en un en un úúnico fichero de salida ejecutable por el microcontrolador.nico fichero de salida ejecutable por el microcontrolador.

Colocar los diferentes mColocar los diferentes móódulos y secciones definidas en el dulos y secciones definidas en el

programa en la memoria adecuada (RAM, ROM, EPROMprograma en la memoria adecuada (RAM, ROM, EPROM……) y en la ) y en la

secciseccióón adecuada (de cn adecuada (de cóódigo, de datos de registros, etc.)digo, de datos de registros, etc.)

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

31

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

:03000000020100FA:03000000020100FA:1001000012010580FB756100747FF580000020837B:1001000012010580FB756100747FF580000020837B:10011000030201330561208203020133056120815E:10011000030201330561208203020133056120815E:1001200003020133056130800A056103B4F7DB7512:1001200003020133056130800A056103B4F7DB7512:0C013000620022E56190020093F562225B:0C013000620022E56190020093F562225B:0F02000031323341343536423738432A302344C4:0F02000031323341343536423738432A302344C4:00000001FF:00000001FF

Fragmento del fichero Fragmento del fichero ““teclado.hexteclado.hex”” (generado por el enlazador OH)(generado por el enlazador OH)

Flujo de diseFlujo de diseñño con microcontroladores: Programacio con microcontroladores: Programacióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

32

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Flujo de diseFlujo de diseñño con microcontroladores: o con microcontroladores: DepuraciDepuracióónn

PROBLEMAPROBLEMA(Software)(Software)

ANANÁÁLISISLISIS(Planificaci(Planificacióón)n)

PROGRAMACIPROGRAMACIÓÓNN(Codificaci(Codificacióón yn y

DocumentaciDocumentacióón)n)

DEPURACIDEPURACIÓÓNN(Puesta a punto)(Puesta a punto)OKOK

nono

OrganigramaOrganigramaMMááquinas de estadoquinas de estadoRedes de Redes de PetriPetriSistema OperativoSistema Operativo

SimuladorSimuladorSistemas de desarrolloSistemas de desarrollo

Emulador, etc.Emulador, etc.

Entorno de desarrolloEntorno de desarrollo

Flujo de diseFlujo de diseñño con microcontroladores: Depuracio con microcontroladores: Depuracióónn

Lenguaje de programaciLenguaje de programacióónnCompilador de alto nivelCompilador de alto nivelEnsambladorEnsambladorEnlazadorEnlazador

13/11/2007Departamento de Tecnología Electrónica. SDP I

33

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para la depuraciHerramientas para la depuracióónn

Simulador (simulator):

El simulador ejecuta el programa de un microcontrolador en un computador de propósito general (p.e. un PC).

Los contenidos de las zonas de memoria, registros y algún periférico pueden ser observados y modificados.

No soporta interrupciones reales ni (generalmente) hardware adicional.

No funciona en tiempo real.

La velocidad de ejecución es menor que en el µC.

Flujo de diseFlujo de diseñño con microcontroladores: Depuracio con microcontroladores: Depuracióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

34

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para la depuraciHerramientas para la depuracióónn

Depurador en el sistema (In-System Debugger):

Generalmente el Generalmente el µµCC ejecuta un programa monitor que le permite comunicarse ejecuta un programa monitor que le permite comunicarse

con un PC para visualizar la ejecucicon un PC para visualizar la ejecucióón del programa de la aplicacin del programa de la aplicacióón.n.

El programa monitor coloca puntos de ruptura (El programa monitor coloca puntos de ruptura (breakpointsbreakpoints) en el programa de ) en el programa de

la aplicacila aplicacióón para provocar su interrupcin para provocar su interrupcióón y poder visualizar el contenido de n y poder visualizar el contenido de

los registros del los registros del µµCC..

Utiliza recursos del Utiliza recursos del µµCC

(puerto de comunicaci(puerto de comunicacióón,n,

interrupciinterrupcióón y memoria) yn y memoria) y

ralentiza la ejecuciralentiza la ejecucióón deln del

programa de la aplicaciprograma de la aplicacióónn

(acceso a memoria y(acceso a memoria y

registros y comunicaciregistros y comunicacióón).n). PROTOTIPO

DEPURADOR EN EL SISTEMA

COMPUTADOR

PERSONALINTERFAZ

MICROCONTROLADOR

Zócalo delMicrocontrolador

PROGRAMA

MONITOR

PROGRAMA

DE CONTROL

Flujo de diseFlujo de diseñño con microcontroladores: Depuracio con microcontroladores: Depuracióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

35

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para la depuraciHerramientas para la depuracióónn

Emulador en el sistema (In-Circuit Emulator):

Hardware que implementa todas las funciones del µC capaz de obtener información y actuar sobre la aplicación sin gastar recursos del µC.

Permite probar el programa de la aplicación a su velocidad real, incluyendo la gestión de las interrupciones.

Se comunica por una parte con un computador o terminal (vía RS232 o similar) y por otra con el sistema receptor del µC (mediante el POD).

EMULADOR

COMPUTADOR

PERSONAL

RAM DE

ACCESO

DOBLE

MICROCONTROLADOR

ESPECIAL

PROTOTIPO

Zócalo delMicrocontrolador

Flujo de diseFlujo de diseñño con microcontroladores: Depuracio con microcontroladores: Depuracióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

36

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para la depuraciHerramientas para la depuracióónn

Programadores (programmer):

Una vez comprobado el correcto funcionamiento del programa desarrollado hay que grabar el código en memoria no volátil.

Si se utiliza memoria de programa externa tipo EPROM seránecesario utilizar un programador externo.

En el caso de un µC con memoria de programa interna o memoria externa FLASH, se puede utilizar un programador externo o si se utiliza un depurador generalmente éste permite la programación del dispositivo.

Flujo de diseFlujo de diseñño con microcontroladores: Depuracio con microcontroladores: Depuracióónn

13/11/2007Departamento de Tecnología Electrónica. SDP I

37

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Entorno de desarrollo utilizado en las prEntorno de desarrollo utilizado en las práácticas: cticas: UVI51UVI51

UVIENS51UVIENS51

OHOH

UVIDEP51UVIDEP51

UVISIM51UVISIM51

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

38

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Sistema de desarrollo utilizado en las prSistema de desarrollo utilizado en las práácticas: cticas: AltairAltair

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

39

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo:Entorno de desarrollo: µµVision2 IDE Vision2 IDE (Project manager, editor & debugger)(Project manager, editor & debugger)

µVision2 IDE integra:Gestor de proyectos Editor de códigoSimulador/Depurador

en un mismo entorno

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

40

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo:Entorno de desarrollo: µµVision2 IDEVision2 IDE

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

41

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo:Entorno de desarrollo:µµVision2 Editor Vision2 Editor (editor de c(editor de cóódigo)digo)

El editor de código de µVision2dispone de un conjunto de facilidades optimizadas para el código C o ensamblador.

La edición está disponible durante la depuración por lo que se puede verificar la aplicación y modificarla de forma muy rápida.

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

42

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo:Entorno de desarrollo:Compilador Cx51Compilador Cx51

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

43

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo:Entorno de desarrollo:Enlazador Lx51Enlazador Lx51

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

44

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo:Entorno de desarrollo:µµVision2 DebuggerVision2 Debugger(simulador)(simulador)

El simulador de µVision2 permite simular el funcionamiento de los periféricos internos de más de 200 dispositivos. Incluye CAN, I2C, PWM, ADC, DAC, EEPROM, UART, temporizadores, etc.

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

45

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo: Entorno de desarrollo: µµVision2 Debugger Vision2 Debugger (simulador)(simulador)

Analizador de prestaciones (Performance Analyzer)

Almacena y muestra los tiempos de ejecución (tiempos de CPU) que requieren los diferentes bloques y funciones del programa.Esta información se puede utilizar para determinar los bloques más lentos del programa y centrar los esfuerzos en mejorarlos.

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

46

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo: Entorno de desarrollo: µµVision2 Debugger Vision2 Debugger (depurador)(depurador)

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

47

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

Entorno de desarrollo: Entorno de desarrollo: MCB517 MCB517 StarterStarter KitKit

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

48

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores 8051Herramientas para microcontroladores 8051

PPááginas ginas webweb de interde interéés: s:

8051 8051 DevelopmentDevelopment ToolsTools ((httphttp://://bit.kuas.edu.twbit.kuas.edu.tw/~8051/)/~8051/)

Paul's Free 8051 Tools, Code and Projects Paul's Free 8051 Tools, Code and Projects ((httphttp://://www.pjrc.comwww.pjrc.com//techtech/8051/)/8051/)

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

Desde estas pDesde estas pááginas se puede acceder a bibliografginas se puede acceder a bibliografíía, a, herramientas de libre distribuciherramientas de libre distribucióón, esquemn, esquemááticos de ticos de sistemas de desarrollo y programadores, assistemas de desarrollo y programadores, asíí como como ccóódigo fuente de diferentes aplicaciones.digo fuente de diferentes aplicaciones.

13/11/2007Departamento de Tecnología Electrónica. SDP I

49

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores PICHerramientas para microcontroladores PIC

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

50

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores PICHerramientas para microcontroladores PIC

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

51

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores PICHerramientas para microcontroladores PIC

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

52

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

Herramientas para microcontroladores PICHerramientas para microcontroladores PIC

Herramientas para el diseHerramientas para el diseñño con microcontroladoreso con microcontroladores

13/11/2007Departamento de Tecnología Electrónica. SDP I

53

Tem

a 10.

Mét

odos

y her

ram

ienta

s de

dis

eño

BibliografBibliografíía ba báásicasica

[PEAT 98] John Peatman J., Design with Microcontrollers, Editorial McGraw-Hill, 1998.

[GONZ 92] González J. A., Introducción a los microcontroladores, Editorial McGraw-Hill, 1992.

[MAND 07] Mandado E., Menéndez L. M., Ferreira L. F., Matos E. L., Microcontroladores PIC. Sistema Integrado para el Autoaprendizaje, Editorial Marcombo, 2007.

[PEAT 97] John Peatman J., Design with PIC Microcontrollers, Editorial Prentice Hall, 1997.