Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Programables Digitales
Sistemas Programables Digitales
13/11/2007
ndice
Pautas para el diseo de programas para C
Ejemplo de programa
Herramientas de diseo
Herramientas de programacin
Herramientas de depuracin
13/11/2007
Dise
Diseo de programas
Consecuencia importante
13/11/2007
Dise
Diseo de programas
13/11/2007
Dise
Diseo de programas
33%
1/6 Programacin
17%
25%
25%
100%
13/11/2007
Dise
Diseo de programas
Difcil de modificar
Difcil de documentar
Conclusin
13/11/2007
Dise
Diseo de programas
PROBLEMA
(Software)
ANLISIS
(Planificacin)
no
OK
Lenguaje de programaci
programacin
Compilador de alto nivel
Ensamblador
Enlazador
PROGRAMACIN
(Codificacin y
Documentacin)
DEPURACIN
(Puesta a punto)
Simulador
Sistemas de desarrollo
Emulador, etc.
13/11/2007
Flujo de dise
diseo con microcontroladores: An
Anlisis
PROBLEMA
(Software)
ANLISIS
(Planificacin)
no
OK
Lenguaje de programaci
programacin
Compilador de alto nivel
Ensamblador
Enlazador
PROGRAMACIN
(Codificacin y
Documentacin)
DEPURACIN
(Puesta a punto)
Simulador
Sistemas de desarrollo
Emulador, etc.
13/11/2007
Flujo de dise
diseo con microcontroladores: An
Anlisis
Modelos a estudiar
13/11/2007
10
Flujo de dise
diseo con microcontroladores: An
Anlisis
Inicio
Iniciar puerto
serie
RI=1
Dato = SBUF
Dato par
si
P1 = Dato
no
P0 = Dato
13/11/2007
11
Flujo de dise
diseo con microcontroladores: An
Anlisis
13/11/2007
12
Flujo de dise
diseo con microcontroladores: An
Anlisis
Ai=1
Diagrama o grafo de
estados
Ai=0
s1
Si: Estados
Ai: Entrada(s)
Bi: Salida(s)
s2
Bi=1
Tabla de transiciones
Estado
actual
Descripcin
Evento
(entrada)
Accin
(salida)
Prximo
estado
13/11/2007
13
Flujo de dise
diseo con microcontroladores: An
Anlisis
13/11/2007
14
Flujo de dise
diseo con microcontroladores: An
Anlisis
n Rutina de atenci
atencin a una interrupci
interrupcin: Se trata de una rutina
asociada a la entrada en cuesti
cuestin, la que coloca la se
seal en el espacio de
memora reservado, cada vez que se active dicha entrada.
o Rutina de interrupci
interrupcin de un reloj: Se trata de una interrupci
interrupcin
peri
peridica que se ejecuta cada cierto tiempo (ej.
(ej. 20ms) y se encarga de
consultar si alguna entrada est
est activa. En caso de que as
as sea, coloca
dicho evento en la memoria reservada, para que el programa principal
principal
proceda seg
segn convenga.
13/11/2007
15
Flujo de dise
diseo con microcontroladores: An
Anlisis
s1.
s2.
s3.
s4.
Ascensor
Ascensor
Ascensor
Ascensor
Entradas al sistema
(eventos)
Flujo de dise
diseo con microcontroladores: An
Anlisis
13/11/2007
16
13/11/2007
17
Flujo de dise
diseo con microcontroladores: An
Anlisis
Estado actual
transici
n de estados
Tabla de transici
Descripcin
Evento (entrada)
Ascensor parado en
planta baja
P_SUBIR
Ascensor subiendo
Ascensor bajando
Cerrar puerta
Activar motor subir
Apagar LED P_BAJA
Prximo estado
2
P_BAJAR
P_SUBIR
P_BAJAR
S_BAJA
Error
S_ALTA
Parar motor
Abrir puerta
Encender LED P_ALTA
Cerrar puerta
Activar motor bajar
Apagar LED P_ALTA
P_BAJAR
Ascensor parado en
planta alta
Accin (salida)
P_SUBIR
P_SUBIR
P_BAJAR
S_ALTA
Error
S_BAJA
Parar motor
Abrir puerta
Encender LED P_ALTA
13/11/2007
18
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
PROBLEMA
(Software)
ANLISIS
(Planificacin)
no
OK
Lenguaje de programaci
programacin
Compilador de alto nivel
Ensamblador
Enlazador
PROGRAMACIN
(Codificacin y
Documentacin)
DEPURACIN
(Puesta a punto)
Simulador
Sistemas de desarrollo
Emulador, etc.
13/11/2007
19
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
Lenguajes de programacin
Ensamblador
Ventajas:
Permite desarrollar programas muy eficientes:
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
13/11/2007
20
Lenguajes de programacin
Lenguajes de alto nivel: C, Pascal, BASIC, Java
Ventajas:
13/11/2007
21
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
13/11/2007
22
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
INT1
Inicializacin
Subrutinas que se
ejecutarn cada vez que se
ejecuta el lazo
Subrutinas de interrupcin
Programa principal
Reset
Subrutina de
servicio
RETI
INTn
Subrutina de
servicio
RETI
13/11/2007
23
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
VCC
13/11/2007
24
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
teclado.src
Declaraci
Declaracin de variables,
constantes, etc.
Inicializaci
Inicializacin de variables,
registros, etc.
Kb_scan
13/11/2007
25
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
si
no
kb_scan.src
Rota m
mscara a
la derecha
Busca c
cdigo
ndice = 0
mscara =
0111 1111
si
1
P0 = m
mscara
kb_in = 0
ret
kb_in = c
cdigo
no
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
ret
13/11/2007
26
fichero: teclado.src.
teclado.src.
;Interfaz de un teclado matricial
;Definici
;Definicin de variables
origen
EQU 0H
puerto
EQU P0
indice
DATA 61H
Kb_in
DATA 62H
ORG origen
jmp inicio
ORG origen+100H
;Programa principal
inicio: call kb_scan
jmp inicio
Departamento de Tecnologa Electrnica. SDP I
;Definici
;Definicin de subrutinas
;Subrutina de exploraci
exploracin el teclado
kb_scan:
kb_scan: mov indice,
indice, #0
mov A,#01111111B
A,#01111111B
scan:
mov puerto,A
scan:
nop
nop
jb puerto.3,bit2
jmp codigo
bit2:
inc indice
jb puerto.2,bit1
jmp codigo
bit1:
inc indice
jb puerto.1,bit0
jmp codigo
bit0:
inc indice
jnb puerto.0,codigo
puerto.0,codigo
inc indice
rr A
cjne A,#11110111B,scan
A,#11110111B,scan
mov kb_in,#0
kb_in,#0
13/11/2007
ret
27
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
;Subrutina de identificaci
identificacin de c
cdigo
codigo:
codigo: mov A,indice
mov DPTR,#tabla
DPTR,#tabla
movc A,@A
+DPTR
A,@A+DPTR
mov kb_in,A
ret
;Definici
;Definicin de una tabla en memoria de programa
ORG origen+200H
tabla: DB
'123A456B789C*0#D
'123A456B789C*0#D
13/11/2007
28
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
13/11/2007
29
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
MCSMCS-51)
LOC
0000
0000
0100
0100
0103
0105
0108
010A
010C
010D
010E
0111
0114
0116
OBJ
020100
120105
80FB
756100
747F
F580
00
00
208303
020133
0561
208203
LINE
SOURCE
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
ORG origen
jmp
inicio
ORG origen+100H
inicio: call kb_scan
jmp inicio
;Subrutina de exploraci"n del teclado
kb_scan:mov indice,#0
indice,#0
mov A,#01111111B
A,#01111111B
mov
puerto,A
scan:
:
scan
nop
nop
jb puerto.3,bit2
jmp codigo
bit2:
inc indice
jb puerto.2,bit1
13/11/2007
30
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
13/11/2007
31
Flujo de dise
diseo con microcontroladores: Programaci
Programacin
:03000000020100FA
:1001000012010580FB756100747FF580000020837B
:10011000030201330561208203020133056120815E
:1001200003020133056130800A056103B4F7DB7512
:0C013000620022E56190020093F562225B
:0F02000031323341343536423738432A302344C4
:00000001FF
13/11/2007
32
Flujo de dise
diseo con microcontroladores: Depuraci
Depuracin
PROBLEMA
(Software)
ANLISIS
(Planificacin)
no
OK
Lenguaje de programaci
programacin
Compilador de alto nivel
Ensamblador
Enlazador
PROGRAMACIN
(Codificacin y
Documentacin)
DEPURACIN
(Puesta a punto)
Simulador
Sistemas de desarrollo
Emulador, etc.
13/11/2007
33
Flujo de dise
diseo con microcontroladores: Depuraci
Depuracin
13/11/2007
34
Flujo de dise
diseo con microcontroladores: Depuraci
Depuracin
la aplicaci
aplicacin para provocar su interrupci
interrupcin y poder visualizar el contenido de
los registros del C.
DEPURADOR EN EL SISTEMA
(puerto de comunicaci
comunicacin,
interrupci
interrupcin y memoria) y
PROGRAMA
MONITOR
COMPUTADOR
PERSONAL
ralentiza la ejecuci
ejecucin del
programa de la aplicaci
aplicacin
(acceso a memoria y
registros y comunicaci
comunicacin).
Departamento de Tecnologa Electrnica. SDP I
INTERFAZ
PROGRAMA
DE CONTROL
MICROCONTROLADOR
Zcalo del
Microcontrolador
PROTOTIPO
13/11/2007
35
Flujo de dise
diseo con microcontroladores: Depuraci
Depuracin
EMULADOR
RAM DE
COMPUTADOR
PERSONAL
ACCESO
DOBLE
MICROCONTROLADOR
ESPECIAL
Zcalo del
Microcontrolador
PROTOTIPO
13/11/2007
36
Flujo de dise
diseo con microcontroladores: Depuraci
Depuracin
13/11/2007
37
UVI51
UVIENS51
OH
UVIDEP51
UVISIM51
Departamento de Tecnologa Electrnica. SDP I
13/11/2007
38
Altair
13/11/2007
39
13/11/2007
40
13/11/2007
41
13/11/2007
42
13/11/2007
43
13/11/2007
44
13/11/2007
45
13/11/2007
46
13/11/2007
47
13/11/2007
48
13/11/2007
49
13/11/2007
50
13/11/2007
51
13/11/2007
52
13/11/2007
53
Bibliografa bsica
[PEAT 98]
13/11/2007