Sistemas Digitales Programables I - Inicio de Tecnología Electrónica. SDP I 13/11/2007 7 Tema 10....
Transcript of Sistemas Digitales Programables I - Inicio de Tecnología Electrónica. SDP I 13/11/2007 7 Tema 10....
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.