You are on page 1of 100

Sistemas de

µControladores
Diseño
Programación
Simulación

Por Luis D. Urdaneta G.


µCs de propósito general Sistemas empotrados

2
Microcomputador de Propósito General

Fabricados
Fabricadospor
por Procesancantidades
Procesan cantidades
empresas establecidas.
empresas establecidas. relativamentegrandes
relativamente grandes
Ejm::
Ejm::PC,
PC,Macintosh...
Macintosh... datos
datos

Desarrollode
Desarrollo de El
Elusuario
usuariorara
raravez
vez
aplicacionescon
aplicaciones con realiza diseño de
realiza diseño de
lenguajesde
lenguajes dealto
altonivel
nivel hardware
hardware

3
Sistema Empotrado

Uno
UnooomásmásµPs µPsoo
µCtrls
µCtrlsson
sonincorpora-
incorpora- Laarquitectura
La arquitecturayy
dos
dos al sistema en
al sistema en programacióndel
programación del
forma tal que el (los)
forma tal que el (los) sistemaes
sistema esdiseñada
diseñada
dispositivo
dispositivo(s)(s)nonoson
son pararealizar
para realizaruna
unatarea
tarea
accesibles
accesibles directa-
directa- específica
específica
mente
mentepor porelelusuario
usuario
del sistema.
del sistema.

Presentantodas
Presentan todaslas
las
características
características Se
Seprograman
programan usando
usando
propiasde
propias deununµC,
µC,
lenguajes
lenguajesdedepropósito
propósito
perotienen
pero tienenpoca
poca
Tablero de automovil específico.
específico.
potenciapara
potencia para
procesardatos.
procesar datos.
4
Sistema Empotrado

•• Se
Se mide
mide la
la presión
presión del
del aceite,
aceite, la
la temperatura
temperatura
del
del agua
agua yy la
la velocidad
velocidad del
del automóvil.
automóvil.
•• Una
Una conexión
conexión al
al distribuidor
distribuidor permite
permite medir
medir
las RPM del
las RPM del motor.
motor.
•• Se
Se controla
controla el
el encendido
encendido yy arranque
arranque
sustituyendo
sustituyendo la
la llave
llave por
por una
una cerradura
cerradura de
de
combinación.
combinación.
•• Comandos
Comandos al
al servofreno
servofreno permite
permite realizar
realizar el
el
control
control de
de navegación
navegación del
del vehículo.
vehículo.
•• Los
Los indicadores
indicadores pueden
pueden usarse
usarse como
como
medidor
medidor de
de velocidad,
velocidad, tacómetro,
tacómetro, oo para
para
presentar
presentar la
la presión
presión del
del aceite
aceite oo la
la
temperatura
temperatura del
del agua,
agua, de
de acuerdo
acuerdo con con la
la
preferencia del conductor.
preferencia del conductor.
•• Es
Es posible
posible usar
usar líneas
líneas de
de los
los puertos
puertos para
para
control
control de
de la
la cadencia
cadencia de
de los
los
limpiaparabrisas
limpiaparabrisas o para retardo de
o para retardo de las
las luces
luces
internas.
internas.

5
Sistema Empotrado Genérico

6
Aplicaciones de Sistemas Empotrados

Control
Controlde
de Robótica
Robótica
procesos
procesos

Automatismos APLICACIONES Equiposdel


Equipos del
Automatismos Sistemas Empotrados hogar
hogar

Sistemasde
Sistemas de
Sistemas
Sistemasdede comunicación,
comunicación,
fabricación
fabricación mando,yy
mando,
control
control

7
µCS para aplicaciones de Medición
Control e Instrumentación

8
Sistema de Control Digital Genérico

controlador

r(t) rk
CAD
Algoritmo de uk
CDA
Control
yk
CAD

y(t) u(t)

Sensor Planta Actuador

9
Sistema de Control Digital Genérico

Para realizar el controlador digital con un


µP, el sistema empotrado resultante debe
disponer de:

10
Sistema de Control Digital Genérico

11
Sistema de Control Digital Genérico

Un microprocesador responsable del procesamiento.

Un generador de reloj y un circuito de reset.

Memoria EPROM y RWM para almacenar el programa y los


resultados de los cálculos.

Un puerto de entrada para que el µP reciba señales desde el ex-


terior.

Un convertidor analógico-digital para convertir a formato bina-


rio las variables externas de naturaleza analógica. El conversor
A/D procesa la salida y(t) y la señal r(t) de referencia. 12
Sistema de Control Digital Genérico

Al menos un puerto de salida para que el µP envíe señales al


sistema controlado.

Un convertidor digital-analógico para tornar en una tensión


análoga, la señal digital de control uk emitida por el µP.

La fuente de alimentación.

13
Sistema de Control de Temperatura con µP

14
Sistema de Control de Temperatura con µP

Adquirir datos de la temperatura en 8 puntos de un


proceso.

Calcular la temperatura promedio.

Retornar este valor al proceso como información


analógica.

Debe existir un canal serie para comunicación con un


PC.
15
Sistema de Control de Temperatura con µP

Se requiere:

1. Un Microprocesador de 8 bits (Z80, 8085,...)


2. 2 K de memoria EPROM. (2716)
3. Algo de memoria RWM. (6116 o de menor
capacidad)
4. Un PPI 8255 (24 líneas E/S)

16
Sistema de Control de Temperatura con µP

17
Sistema de Control de Temperatura con µP

Unidad Central de Procesamiento

µP

18
Sistema de Control de Temperatura con µP

Mapa de Memoria

FFFFH

17FFH

Puertos de E/S
0FFFH
Memoria de datos

07FFH
Memoria de programa
0000H
19
Sistema de Control de Temperatura con µP

Decodificador de Direcciones

20
Sistema de Control de Temperatura con µP

Sección de Memoria y E/S


21
Sistema de Control de Temperatura con µP

22
Sistema de Control de Temperatura con µP

23
Sistema de Control de Temperatura con µP

No se muestra:
1.- La etapa analógica de acoplamiento de entrada: amplificador y filtro anti aliasing.

2.- La etapa de salida de potencia.

3.- El puerto de comunicación serie, el cual requiere : un UART y circuitos transceptores TTL/RS232.

4.-Si se necesita presentación local de la temperatura usando una pantalla incandescente o de


cristal líquido ,debe añadirse líneas de E/S para el control de la presentación. 24
Sistema de Control de Temperatura con µP

Los componentes y la organización del


µC se mantiene invariable en cualquier aplicación de
medición, instrumentación y control.

Para simplificar el diseño, aumentar la fiabilidad


y disminuir los costos de desarrollo de las
aplicaciones, lo componentes del µC se integran
en el interior del encapsulado.

25
El µControlador

PUERTOS
µP
TIMERS

FLASH RWM

El dispositivo resultado de la integración de recursos


26
se denomina µControlador.
El µControlador

27
El µControlador

Un microcontrolador es un µC monopastilla, dirigido a


operar en ambiente industrial.

A diferencia del microprocesador, el cual es diseñado para


un amplio espectro de aplicaciones, los µCtrls se diseñan
para aplicaciones específicas.

Estos tienden a incluir todos periféricos de la sección del


computador del sistema empotrado.

28
El µControlador

Un microcontrolador es un µC monopastilla, dirigido a


operar en ambiente industrial.

A diferencia del microprocesador, el cual es diseñado para


un amplio espectro de aplicaciones, los µCtrls se diseñan
para aplicaciones específicas.

Estos tienden a incluir todos periféricos de la sección del


computador del sistema empotrado.

29
Ejemplo de un Proceso Industrial

BOMBA

VÁLVULA
SENSOR

CONTROLADOR

30
Ejemplo de un Proceso Industrial

31
ON
LM

LA
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V C1 X1 C2
cristal
R4 R5 R11

perturbación
220 220 220
22pF 22pF

Ejemplofiltro
de un pasaProceso Industrial
4 MHZ

R10
reset bajo

OSC1

OSC2
47k D2 D3 D4
C5 U1 MANUAL AUTOMÁTICO CONTROLANDO
13 15

µcontrolador
OSC1 OSC1/CLKI RC0/T1OSO/T1CKI KPKIKD
1 16
MCLR MCLR MCLR/VPP RC1/T1OSI/CCP2A
22uF 17
-12V RC2/CCP1
R8 2
RA0/AN0 RC3/SCK/SCL
18
20k U2:A um
3
RA1/AN1 RC4/SDI/SDA
23
+5V
R9 4 24

11
S1 5
RA2/AN2/VREF- RC5/SDO
25
470 RA3/AN3/VREF+ RC6/TX/CK RxD

+5v
OP : ADD 2 6 26
SEL RA4/T0CKI RC7/RX/DT TxD
R6 R7 1 7
ON RA5/AN4/SS/LVDIN
ic=0 3 14 19
y OSC2 RA6/OSC2/CLKO RD0/PSP0 D0
RST 10k 10k RD1/PSP1
20
D1 RL2
B0
33
RB0/INT0 RD2/PSP2
21
D2 D6 +5V/125 ohmios
C3 C4

4
10uF 34 22 1N4148
LM324 B1 RB1/INT1 RD3/PSP3
2.2uF 35 27
B2 RB2/INT2 RD4/PSP4 D4
S1(IN2) 36 28

pantalla LCD
+12V MAN RB3/CCP2B RD5/PSP5
B4
37
RB4 RD6/PSP6
29
SW2 U5:A
38 30
B5 RB5/PGM RD7/PSP7
LCD1 B6
39
RB6/PGC
1 2 BUZ1
40 8
B7 RB7/PGD RE0/RD/AN5 M/A

Simulación del Sistema


LM018L 9 SW-SPDT
RE1/WR/AN6 LM 7406
10

alarma
RE2/CS/AN7 LA
BUZZER
PIC18F452

V=3.00213
CDA
VDD
VSS

VEE

planta
RW
RS

D0
D1
D2
D3
D4
D5
D6
D7

U3
E

V=1.48682

y
5

con PROTEUS
D4 LDAC
R1 H1
1
2
3

4
5
6

7
8
9
10
11
12
13
14

4
D2 SDI

+5V
2 6
D0 CS VREFA - t .p 1 + Tn.p
3 8

man/aut
+5V D1 SCK VOUTA e K. y
1 + Td.p

puerto serie
MCP4921
B1
B2
B0

B4
B5
B6
B7

OP : DELAY
1° ORD : POLY 1
GND
VDD

+2.5v
um

R12 +12V +5V


220
RV1

C6 R13
40%
D5 RL1
1
6
2
7
3
8
4
9
5

CONECTADO 10k
U4 D1 W 172DIP-19 SW3
1 0.1uF 3
1k DIODE SEL

PC
C1+ C1- SW-SPST

+5V
11 14
SEL

RxD T1IN T1OUT


12 13
TxD R1OUT R1IN
10
T2IN T2OUT
7
SW1 R14
9
R2OUT R2IN
8
RXD M/A R2 Q1 R3 3.9k
2N3053

+5V
2 1k 10k
VS+ TXD
6
VS- KPKIKD
RTS MANUAL MAN
C2+ C2-
C8 C9 CTS C10 R15
0.1uF 0.1uF 0.1uF 200
4 C7 5 MAX232

0.1uF
32
ON
LM

LA
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V C1 X1 C2
R4 R5 R11
220 220 220
22pF 22pF
4 MHZ

R10

OSC1

OSC2
47k D2 D3 D4
C5 U1 MANUAL AUTOMÁTICO CONTROLANDO
13 15
OSC1 OSC1/CLKI RC0/T1OSO/T1CKI KPKIKD
1 16
MCLR MCLR MCLR/VPP RC1/T1OSI/CCP2A
22uF 17
-12V RC2/CCP1
R8 2
RA0/AN0 RC3/SCK/SCL
18
20k U2:A um
3
RA1/AN1 RC4/SDI/SDA
23
+5V
R9 4 24

11
S1 5
RA2/AN2/VREF- RC5/SDO
25
470 RA3/AN3/VREF+ RC6/TX/CK RxD

+5v
OP : ADD 2 6 26
SEL RA4/T0CKI RC7/RX/DT TxD
R6 R7 1 7
ON RA5/AN4/SS/LVDIN
ic=0 3 14 19
y OSC2 RA6/OSC2/CLKO RD0/PSP0 D0
RST 10k 10k RD1/PSP1
20
D1 RL2
B0
33
RB0/INT0 RD2/PSP2
21
D2 D6 +5V/125 ohmios
C3 C4

4
10uF 34 22 1N4148
LM324 B1 RB1/INT1 RD3/PSP3
2.2uF 35 27
B2 RB2/INT2 RD4/PSP4 D4

estado
S1(IN2) 36 28
+12V MAN RB3/CCP2B RD5/PSP5
B4
37
RB4 RD6/PSP6
29
SW2 U5:A
38 30
B5 RB5/PGM RD7/PSP7
LCD1 B6
39
RB6/PGC
1 2 BUZ1
40 8
LM018L B7 RB7/PGD RE0/RD/AN5 M/A
9 SW-SPDT
RE1/WR/AN6 LM 7406
10
RE2/CS/AN7 LA
BUZZER
PIC18F452

V=1.99999
VDD
VSS

VEE

u
RW
RS

D0
D1
D2
D3
D4
D5
D6
D7

U3
E

V=0.999995

y
5
D4 LDAC
R1 H1
1
2
3

4
5
6

7
8
9
10
11
12
13
14

4
D2 SDI

+5V
2 6
+5V D0 CS VREFA - t.p 1 + Tn.p
3 8 K.
D1 SCK VOUTA e y
1 + Td.p
MCP4921
B1
B2
B0

B4
B5
B6
B7

OP : DELAY
1° ORD : POLY 1
GND
VDD

+2.5v
um
R12
220 +12V +5V
RV1

C6 D5 R13
40%
CONECTADO RL1
1
6
2
7
3
8
4
9
5

10k
U4 D1 W 172DIP-19 SW3
1 0.1uF 3

manual
1k DIODE SEL
C1+ C1- SW-SPST

+5V
SEL

11 14
RxD T1IN T1OUT
12 13
TxD R1OUT R1IN SW1
10
T2IN T2OUT
7
RXD SW1 R14
9
R2OUT R2IN
8
RXD M/A R2 Q1 R3 3.9k
2N3053

+5V
2 TXD
VS+ TXD 1k 10k
6
VS- RTS MANUAL KPKIKD
RTS MANUAL MAN
C2+ C2- CTS
C8 C9 CTS C10 R15
0.1uF 0.1uF 0.1uF 200
4 C7 5 MAX232

0.1uF
33
ON
LM

LA
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V C1 X1 C2
R4 R5 R11
220 220 220
22pF 22pF
4 MHZ

R10

OSC1

OSC2
47k D2 D3 D4
C5 U1 MANUAL AUTOMÁTICO CONTROLANDO
13 15
OSC1 OSC1/CLKI RC0/T1OSO/T1CKI KPKIKD
1 16

KpKiKd
MCLR MCLR MCLR/VPP RC1/T1OSI/CCP2A
22uF 17
-12V RC2/CCP1
R8 2
RA0/AN0 RC3/SCK/SCL
18
20k U2:A um
3
RA1/AN1 RC4/SDI/SDA
23
+5V
R9 4 24

11
S1 5
RA2/AN2/VREF- RC5/SDO
25
470 RA3/AN3/VREF+ RC6/TX/CK RxD

+5v
OP : ADD 2 6 26
SEL RA4/T0CKI RC7/RX/DT TxD
R6 R7 1 7
ON RA5/AN4/SS/LVDIN
ic=0 3 14 19
y OSC2 RA6/OSC2/CLKO RD0/PSP0 D0
RST 10k 10k RD1/PSP1
20
D1 RL2
B0
33
RB0/INT0 RD2/PSP2
21
D2 D6 +5V/125 ohmios
C3 C4

4
10uF 34 22 1N4148
LM324 B1 RB1/INT1 RD3/PSP3
2.2uF 35 27
B2 RB2/INT2 RD4/PSP4 D4
S1(IN2) 36 28
+12V MAN RB3/CCP2B RD5/PSP5
B4
37
RB4 RD6/PSP6
29
SW2 U5:A
38 30
B5 RB5/PGM RD7/PSP7
LCD1 B6
39
RB6/PGC
1 2 BUZ1
40 8
LM018L B7 RB7/PGD RE0/RD/AN5 M/A
9 SW-SPDT
RE1/WR/AN6 LM 7406
10
RE2/CS/AN7 LA
BUZZER
PIC18F452

V=1.99999
VDD
VSS

VEE

u
RW
RS

D0
D1
D2
D3
D4
D5
D6
D7

U3
E

V=2.92115

y
5
D4 LDAC
R1 H1
1
2
3

4
5
6

7
8
9
10
11
12
13
14

4
+5V D2 SDI

+5V
2 6
D0 CS VREFA - t.p 1 + Tn.p
3 8 K.
D1 SCK VOUTA e y
1 + Td.p
MCP4921
B1
B2
B0

B4
B5
B6
B7

OP : DELAY
1° ORD : POLY 1
GND
VDD

+2.5v
R12 um

KpKiKd
220
+12V +5V
RV1

C6 D5 CONECTADO R13
40%
RL1
1
6
2
7
3
8
4
9
5

10k
U4 D1 W 172DIP-19 SW3
1 0.1uF 3
1k DIODE SEL
C1+ C1- SW-SPST
SEL

+5V
11 14
RxD
12
T1IN T1OUT
13 SW1
TxD R1OUT R1IN RXD
10
T2IN T2OUT
7
SW1 R14
9
R2OUT R2IN
8
TXD RXD M/A R2 Q1 R3 3.9k
2N3053

+5V
2
VS+
6 RTS TXD MANUAL 1k 10k
VS- KPKIKD
CTS RTS MANUAL MAN
C2+ C2-
C8 C9 CTS C10 R15
0.1uF 0.1uF 0.1uF 200
4 C7 5 MAX232

0.1uF
34
ON
LM

LA
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V C1 X1 C2
R4 R5 R11
220 220 220
22pF 22pF
4 MHZ

R10

OSC1

OSC2
47k D2 D3 D4
C5 U1 MANUAL AUTOMÁTICO CONTROLANDO
13 15
OSC1 OSC1/CLKI RC0/T1OSO/T1CKI KPKIKD
1 16
MCLR MCLR MCLR/VPP RC1/T1OSI/CCP2A
22uF 17
-12V RC2/CCP1
R8 2
RA0/AN0 RC3/SCK/SCL
18
20k U2:A um
3
RA1/AN1 RC4/SDI/SDA
23
+5V
R9 4 24

11
S1 5
RA2/AN2/VREF- RC5/SDO
25
470 RA3/AN3/VREF+ RC6/TX/CK RxD

+5v
OP : ADD 2 6 26
SEL RA4/T0CKI RC7/RX/DT TxD
R6 R7 1 7
ON RA5/AN4/SS/LVDIN
ic=0 3 14 19
y OSC2 RA6/OSC2/CLKO RD0/PSP0 D0
RST 10k 10k RD1/PSP1
20
D1 RL2
B0
33
RB0/INT0 RD2/PSP2
21
D2 D6 +5V/125 ohmios
C3 C4

4
10uF 34 22 1N4148
LM324 B1 RB1/INT1 RD3/PSP3
2.2uF 35 27
B2 RB2/INT2 RD4/PSP4 D4
S1(IN2) 36 28
+12V MAN RB3/CCP2B RD5/PSP5
B4
37
RB4 RD6/PSP6
29
SW2 U5:A
38 30
B5 RB5/PGM RD7/PSP7
LCD1 B6
39
RB6/PGC
1 2 BUZ1
40 8
LM018L B7 RB7/PGD RE0/RD/AN5 M/A
9 SW-SPDT
RE1/WR/AN6 LM 7406
10
RE2/CS/AN7 LA
BUZZER
PIC18F452

V=1.99999
VDD
VSS

VEE

u
RW
RS

D0
D1
D2
D3
D4
D5
D6
D7

U3
E

V=0.999995

y
5
D4 LDAC
R1 H1
1
2
3

4
5
6

7
8
9
10
11
12
13
14

4
D2 SDI

+5V
2 6
D0 CS VREFA - t.p 1 + Tn.p
3 8 K.
+5V D1 SCK VOUTA e y
1 + Td.p
MCP4921
B1
B2
B0

B4
B5
B6
B7

OP : DELAY
1° ORD : POLY 1
GND
VDD

+2.5v

conectado
um

R12 +12V +5V

operador
220
RV1

C6 R13
40%
D5 RL1
1
6
2
7
3
8
4
9
5

CONECTADO 10k
U4 D1 W 172DIP-19 SW3
1 0.1uF 3
1k DIODE SEL
C1+ C1- SW-SPST

+5V
11 14
SEL

RxD T1IN T1OUT


12 13
TxD R1OUT R1IN
10
T2IN T2OUT
7
SW1 R14
9
R2OUT R2IN
8
RXD M/A R2 Q1 R3 3.9k
2N3053

+5V
2 1k 10k
VS+ TXD
6
VS- KPKIKD
RTS MANUAL MAN
C2+ C2-
C8 C9 CTS C10 R15
0.1uF 0.1uF 0.1uF 200
4 C7 5 MAX232

0.1uF
35
ON
LM

LA
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V C1 X1 C2
R4 R5 R11
220 220 220
22pF 22pF
4 MHZ

R10

OSC1

OSC2
47k D2 D3 D4
C5 U1 MANUAL AUTOMÁTICO CONTROLANDO
13 15
OSC1 OSC1/CLKI RC0/T1OSO/T1CKI KPKIKD
1 16
MCLR MCLR MCLR/VPP RC1/T1OSI/CCP2A
22uF 17
-12V RC2/CCP1
R8 2
RA0/AN0 RC3/SCK/SCL
18
20k U2:A um
3
RA1/AN1 RC4/SDI/SDA
23
+5V
R9 4 24

11
S1 5
RA2/AN2/VREF- RC5/SDO
25
470 RA3/AN3/VREF+ RC6/TX/CK RxD

+5v
OP : ADD 2 6 26
SEL RA4/T0CKI RC7/RX/DT TxD
R6 R7 1 7
ON RA5/AN4/SS/LVDIN
ic=0 3 14 19
y OSC2 RA6/OSC2/CLKO RD0/PSP0 D0
RST 10k 10k RD1/PSP1
20
D1 RL2
B0
33
RB0/INT0 RD2/PSP2
21
D2 D6 +5V/125 ohmios
C3 C4

4
10uF 34 22 1N4148
LM324 B1 RB1/INT1 RD3/PSP3
2.2uF 35 27
B2 RB2/INT2 RD4/PSP4 D4
S1(IN2) 36 28
+12V MAN RB3/CCP2B RD5/PSP5
B4
37
RB4 RD6/PSP6
29
SW2 U5:A
38 30
B5 RB5/PGM RD7/PSP7
LCD1 B6
39
RB6/PGC
1 2 BUZ1
40 8
LM018L B7 RB7/PGD RE0/RD/AN5 M/A
9 SW-SPDT
RE1/WR/AN6 LM 7406
10
RE2/CS/AN7 LA
BUZZER
PIC18F452

V=2.73971
VDD
VSS

VEE

u
RW
RS

D0
D1
D2
D3
D4
D5
D6
D7

U3
E

V=1.32202

y
5
D4 LDAC
R1 H1
1
2
3

4
5
6

7
8
9
10
11
12
13
14

4
D2 SDI

+5V
2 6
D0 CS VREFA - t.p 1 + Tn.p
3 8 K.
+5V D1 SCK VOUTA e y
1 + Td.p
MCP4921
B1
B2
B0

B4
B5
B6
B7

OP : DELAY
1° ORD : POLY 1
GND
VDD

+2.5v
um

R12 +12V +5V


220
RV1

C6 R13
40%
D5 RL1
1
6
2
7
3
8
4
9
5

CONECTADO 10k
U4 D1 W 172DIP-19 SW3
1 0.1uF 3
1k DIODE SEL
C1+ C1- SW-SPST

+5V
11 14
SEL

RxD T1IN T1OUT


12 13
TxD R1OUT R1IN
10
T2IN T2OUT
7
SW1 R14
9
R2OUT R2IN
8
RXD M/A R2 Q1 R3 3.9k
2N3053

+5V
2 1k 10k
VS+ TXD
6
VS- KPKIKD
RTS MANUAL MAN
C2+ C2-
C8 C9 CTS C10 R15
0.1uF 0.1uF 0.1uF 200
4 C7 5 MAX232

0.1uF
36
37
38
Periféricos comunes en µctrl y sus aplicaciones

FUNCIÓN AUTOMÓVIL CONSUMIDOR PERIFÉRICOS

CPU 4-8 BITS Radio Audio Teclado

CPU 16 BITS Sistemas ABS   Controlador de disco

Control de motores Controlador inteligente de


CPU 32 BITS disco

EEPROM Odometro Programación de televisores Configuración de modem

Control de inyec- Velocidad de obturador de Codificador de ejes en


TIMERS ción de gasolina cámaras ratones ópticos

SERIE Comunicación en el Lazo RS232 con modem


ASINCRÓNICO auto Comunicación en alarmas

SERIE Controlador de Comunicación entre Reloj de tiempo real en PC


SINCRÓNICO luces componentes

Control de presión Sensor de temperatura en Voltaje de la batería en


CAD de aire termostato de AA laptops

E/S PARALELA Tablero indicador Panel frontal de VCR Estado de teclados

39
Los Microcontroladores
PIC

40
Los Microcontroladores PIC

Microchip Technology se presenta como el proveedor principal de


microcontroladores y dispositivos análogos dirigidos al desarrollo
de sistemas empotrados para uso doméstico e industrial. Ofrece
µCtrls con el desempeño necesario para aplicaciones basadas en
µCtrls de 4, 8 y 16 bits. Recientemente incursiona en el campo de los
procesadores digitales de señal.

Los µCtrls PIC están disponibles en encapsulados desde a 6 a 80


terminales y ofrecen la mejor relación costo/desempeño en la
industria. Las opciones de memoria de programa en el chip son
diversas: FLASH, OTP, ROM y sin ROM, lo cual asegura la existencia
de un PIC para cada aplicación.

41
Los Microcontroladores PIC

42
Los Microcontroladores PIC

Microchip ofrece más de 290 tipos de microcontroladores y puede


proveer soluciones para aplicaciones en todo el rango de 8 bits.

El costo bajo, la presencia de memoria FLASH, el reducido número


de instrucciones, la disponibilidad de herramientas de bajo costo
para desarrollo de programas y una excelente y completa
documentación, hacen que estos dispositivos sean excelentes para
un curso introductorio de sistemas empotrados.

La familia de µCtrls PIC ofrece una fácil migración dentro del rango
completo de productos. Los µCtrls PIC son compatibles pin a pin
para dispositivos de igual número de terminales, existiendo además
compatibilidad de código entre las diferentes arquitecturas.

43
Los Microcontroladores PIC

Los µCtrls PIC están diseñados con una arquitectura Harvard


modificada y un conjunto de instrucciones RISC, lo cual permite una
migración fácil desde dispositivos de 6 hasta 80 pines y desde
memorias de programa de 384 bytes hasta 128 Kbytes.

44
Los Microcontroladores PIC

Organización de la memoria interna


Los buses de direcciones y de datos de la CPU deben estar
conectados a todas las áreas de memoria en el interior del
microcontrolador.
Existen dos estructuras generales para interconectar el µP y
la memoria, éstas son:
Arquitectura Von Neumann
Arquitectura Harvard

45
Los Microcontroladores PIC

(a) Arquitectura Von Neumann (b) Arquitectura Harvard

46
Los Microcontroladores PIC

La Arquitectura Von Neumann es simple y flexible al no


distinguir entre datos y código y puede ser dividida sin
condiciones entre secciones de programa y de datos.

Una desventaja es que al compartirse el único bus entre


todas las áreas de memoria, el ancho del bus es común,
independientemente que un área maneje palabras largas
y otra trata con palabras de menor número de bits.

También si la CPU interactúa con la memoria de


programa por ejemplo, las áreas de memoria restantes
deben estar deshabilitadas

47
Los Microcontroladores PIC

La Arquitectura Harvard es de hardware más complejo


pero permite que al ser distintos, los buses de datos
pueden ser de diferentes tamaños de acuerdo con el
tipo de información que se transfiere en el área de
memoria correspondiente. Por ejemplo se puede tener
una palabra de instrucción de 14 bits y una palabra de
datos de 8 bits.

Se puede tener acceso simultáneo a la memoria de


programa y a la de datos, incrementándose la velocidad
de ejecución del programa

Presenta cierta dificultad para el acceso a datos que


residan en la memoria de código. Es usual que la
memoria de programa contenga tablas que deban ser
tratadas como datos. 48
Los Microcontroladores PIC

Microcontroladores PIC de 8 bits

Estos dispositivos se presentan dentro de tres categorías de productos:

Arquitectura de Línea Base: Palabra de Programa de 12 bits.

Arquitectura de Línea Intermedia: Palabra de Programa de 14 bits

Arquitectura de Rendimiento Máximo: Palabra de Programa de 16 bits

Cada categoría ofrece una variedad de opciones para satisfacer las


especificaciones de cualquier aplicación.

49
Los Microcontroladores PIC

Familias de µControladores PIC de 8 bits

Familia Arquitectura Tamaño Pila Tamaño de Palabra de Número de Vectores de


(Palabras) Instrucción (Bits) Instrucciones Interrupción
10F200//12CXXX/12FXXX Línea Base 2 12 ó 14 33 Ninguno

16C5XX/16F5XX Línea Base 2 12 33 Ninguno

16CXXX/16FXXX Línea Intermedia 8 14 35 1

17CXXX 16 16 58 4
Multiplicación por Hardware
18CXXX/18FXXX Rendimiento Alto 32 16 75 2
Multiplicación por Hardware (Con Prioridad)

50
Los Microcontroladores PIC

Microcontroladores a usar en ejemplos:

Serie 16

16F84A
16F877
Serie 18

18F452

51
Los Microcontroladores PIC

Introducción a los
PICs de la Serie 16

52
Los Microcontroladores PIC

Algunos Miembros de la Serie 16

53
Los Microcontroladores PIC

El PIC16F84A

54
Los Microcontroladores PIC

PIC16F84A
Es uno de los miembros de mayor éxito de la serie 16. Es presentado
por Microchip como un microcontrolador pequeño, simple y fácil de
programar. Originalmente fue introducido como PIC16C84, siendo el
primer µCtrl con memoria de programa EEPROM. Posteriormente se usó
memoria FLASH en el PIC16F84. Existe una versión PIC16LF84 para
aplicaciones de bajo consumo.

Es un dispositivo fabricado con tecnología CMOS y presentados en


diferentes encapsulados y versiones. Por ejemplo la versión A del
PIC16F84 puede operar a 20 MHZ, en lugar de a 10 MHZ y el código
PIC16F84A-04P (PIC16F84A-04P) identifica al modelo de 4 MHZ.

En la practica, este µCtrl puede considerarse desde el punto de vista


funcional como un subconjunto de chips más avanzados como el
PIC16F873.
55
Distribución de terminales y Entradas y Salidas del PIC16F84A

56
Los Microcontroladores PIC

Recursos:
1. µP (CPU) de 8 bits con 35 instrucciones.

2. Memoria de Programa FLASH de 1Kbytes de 14 bits.


3. Memoria de Datos:
SRAM 68 x 8
EEPROM 64 x 8

4. Contador/Temporizador de 8 bits con Pre-escalador.


5. 13 líneas de E/S programables por bit.

Algunos terminales están multiplexados con otras funciones del µCtrl:


• Entrada de Interrupción Externa.
• Interrupción por cambios en el Puerto B.
• Entrada de Reloj del Timer 0. 57
Organización del PIC16F84A

58
La CPU del PIC16F84A

59
La CPU del PIC16F84A

60
La CPU del PIC16F84A

En un µP el En un PIC el
resultado se resultado puede
carga en el cargarse en el
acumulador registro W o en un
registro F de la
RAM

61
La CPU del PIC16F84A

El CONJUNTO DE
INSTRUCCIONES DEL
PIC16F84A

62
La CPU del PIC16F84A

63
La CPU del PIC16F84A

64
La CPU del PIC16F84A

Dependiendo del ensamblador, puede usarse


MOVLW d’255’ ; carga 255 en W (Sistema Decimal)
MOVLW 0xFF ; carga 255 en W (Sistema Hexadecimal)

65
La CPU del PIC16F84A

66
La CPU del PIC16F84A

Operandos de la ALU y lugar de carga del resultado de una operación


67
La CPU del PIC16F84A

En las instrucciones de la ALU siempre un operando está en el


acumulador. El segundo operando se obtiene:

addlw k ; k desde la instrucción

movwf 0x20 ; por direccionamiento directo. ; segundo


operando desde la dirección 0x20 de RAM

68
La CPU del PIC16F84A

; Ejemplo de direccionamiento indirecto. Cargar con el valor 67, ocho


posiciones de la memoria de datos, a partir de la dirección 32.
inicio movlw 0x20 ; iniciar apuntador
movwf FSR ; a memoria de datos
prox movlw 0x43 ; valor a cargar en RAM
movwf INDF ; cargar valor
incf FSR ; apuntador = apuntador +1
btfss FSR,3 ; ¿listo?
goto prox ; no, cargar siguiente

Ejemplo de segundo operando de la ALU en forma indirecta


addwf INDF ; direccionamiento indirecto.
; segundo operando desde la dirección ; de RAM que
indique el registro FSR ; (38)
69
La CPU del PIC16F84A

¿Quién indica donde se almacena el resultado?

movwf 0x34 ; la instrucción en forma implícita, en W

xorwf 0x34,0 ; el bit ‘d’ de la instrucción, en W

xorwf 0x34,1 ; el bit ‘d’ de la instrucción, en 0x34

xorwf 0x34 ; el bit ‘d’ de la instrucción, en 0x34

addlw 0x34 ; instrucción con literal, en W

70
La CPU del PIC16F84A

El Registro
STATUS

71
La CPU del PIC16F84A

El Registro STATUS contiene:

El estado aritmético de la ALU

Las causas del RESET y

Bits de selección para la memoria de datos

72
La CPU del PIC16F84A

IRP RP1 RP0 TO PD Z DC C

Sin uso Cero Acarreo


RP1 RP0 Selección
0 0 Banco 0 (00H-7FH)
0 1 Banco 1 (80H-FFH)
Bajo Consumo
Acarreo
Fin de de Dígito
Temporización

73
La CPU del PIC16F84A

IRP: Register Bank Select Bit


Bit de selección de banco de registros en direccionamiento
indirecto. No se usa en el PIC16F84A y debe mantenerse en cero.

RP1-RP0: Register Bank Select Bit


Bits de selección de banco de registros en direccionamiento
directo.

RP1 RP0 Selección


0 0 Banco 0 (00H-7FH)
0 1 Banco 1 (80H-FFH)

74
La CPU del PIC16F84A

TO: Time Out Bit

1: Al conectarse la alimentación o ejecutarse la instrucción


CLRWDT o SLEEP.

0: Al desbordarse el Perro guardián.

PD: Power Down Bit

1: Al conectarse la alimentación o ejecutarse la instrucción


CLRWDT.

0: Al Ejecutarse la instrucción SLEEP.

75
La CPU del PIC16F84A

Z: Bit de Cero

1: El resultado de una operación aritmética o lógica es cero.

0: El resultado de una operación aritmética o lógica es distinto de


cero.

DC: Digit Carry /Borrow

1: Cuando ocurre un acarreo desde el bit 3 del resultado.

0: No ocurre un acarreo desde el bit 3 del resultado.

76
La CPU del PIC16F84A

C: Digit Carry /Borrow

1: Cuando ocurre un acarreo desde el bit 7 del resultado.

0: No ocurre un acarreo desde el bit 7 del resultado.

Durante instrucciones de rotación, este bit es cargado con el bit


de mayor o de menor orden del registro fuente

Tanto DC como el bit C indican (negadas) la ocurrencia de un préstamo


durante operaciones de resta.

77
La CPU del PIC16F84A

Ejemplos de Instrucciones:

clrfw ; El registro W a cero


clrf status ; Selecciona el banco 0
clrf porta ; Líneas del puerto A en cero
bsf status,RP0 ; Selecciona el banco 1
bsf status,5 ; Selecciona el banco 1
bcf status,RP0 ; Selecciona el banco 0

78
La CPU del PIC16F84A

Ejemplos de directivas de ensamblador:

;*************************************************************************************
#define SEL_BANCO_0 bcf STATUS,RP0 ; Seleccione banco 0
#define SEL_BANCO_1 bsf STATUS,RP0 ; Seleccione banco 1
#define CERO STATUS,Z ; Prueba bandera de cero
#define CARRY STATUS,C ; Prueba bandera de cero
#define RS PORTA,0 ; Linea RS del LCD
#define RW PORTA,1
#define E PORTA,2 ; Linea enable del LCD
;*************************************************************************************

79
La CPU del PIC16F84A

Ejemplos de Instrucciones:
SEL_BANCO_1
movlw b'00011000’
movwf OPTION_REG
SEL_BANCO_0

btfsc CARRY
btfsc STATUS,C

bcf RS
bsf E

80
La CPU del PIC16F84A

Ejemplos de directivas de ensamblador:

;*************************************************************************************
estado equ 0x03 ; Registro STATUS
puerto_b equ 0x06 ; Puerto B
temp1 equ 0x11 ; Almacenamiento temporal
;*************************************************************************************
Es válido escribir:
bsf estado,5 ; Selecciona banco 1

También:
esp: movf puerto_b,0 ; Leer estado de las válvulas
movwf temp1
xorlw 3 ; ¿Están ambas cerradas?
btfsc estado,2
goto esp ; Ambas cerradas, esperar
movf temp1,0
81
La CPU del PIC16F84A

La Memoria del
PIC16F84A

82
La Memoria del PIC16F84A

Tecnologías de Memoria
RAM Estática (SRAM)

EPROM (Erasable Programmable Read Only Memory)

EEPROM (Electrically Erasable Programmable Read Only Memory)

FLASH

83
La Memoria del PIC16F84A

Existen cuatro áreas de memoria en el PIC16F84A


con funciones y modos de acceso particulares.

FUNCIÓN TECNOLOGÍA TAMAÑO VOLÁTIL/NO ESPECIFICACIÓN


VOLÁTIL
Memoria de FLASH 1K x 14 bits No Volátil Hasta 10000 ciclos de
Programa borrado/escritura
Memoria de SRAM 68 Bytes Volátil Conserva datos para
Datos voltajes de
(Registros de alimentación por
Archivo f) debajo de 1.5V

Memoria de EEPROM 64 Bytes No Volátil Hasta 10000000 ciclos


Datos de borrado/escritura
(EEPROM)
Pila (Stack) SRAM 8 x 13 bits Volátil

84
La Memoria del PIC16F84A

La Memoria de Programa

85
La Memoria del PIC16F84A

Con los 13 bits del contador de programa (PC) se


podría tener acceso a 8 Kbytes de memoria
FLASH, en el rango:
0000H-1FFFH
Como sólo se incluye 1Kbyte de memoria de
código, durante el acceso a la memoria FLASH se
ignoran los 3 bits de mayor peso del PC.

Esto implica que apuntar a la dirección 27H es


igual que hacerlo a :

427H, 827H, C27H, 1027H, 1427H o a la 1C27H


86
La Memoria del PIC16F84A

Al igual que todos los registros de funciones espe-


ciales SFR que controlan la operación del microcon--
trolador, el contador de programa PC está realizado
sobre dos posiciones de la memoria RAM. Esta son

PCL 0x02

PCLATH 0x0A

87
La Memoria del PIC16F84A

En las instrucciones GOTO y CALL de la gama media los 11 bits de


menos peso del PC provienen del código de la instrucción y los otros 2
de los bits PCLATH <4 :3>

88
La Memoria del PIC16F84A

Con los 11 bits que se cargan en el PC desde el


código de las instrucciones GOTO y CALL, se
puede tener acceso a toda la memoria de
programa (1K) del PIC16F84.

Los bits restantes PC< 12 :11> tienen la misión


de apuntar una de cuatro páginas del mapa de
memoria de programa y, en los modelos de PIC
que tienen más de una página, dichos bits
proceden de PCLATH<4 :3>
89
La Memoria del PIC16F84A

Cuando se escribe en el PC como resultado de una operación de la ALU,


(Ejem. movwflos 8 bits de menos peso del PC residen en el registro PCL.
Los bits de más peso, PC< 12 :8>, residen en los 5 bits de menos peso del
registro PCLATH.

90
La Memoria del PIC16F84A

Lo anterior es importante cuando se realiza


lecturas de tablas de datos almacenadas en la
FLASH. Los PICs no tienen instrucciones para
direccionamiento indirecto de la memoria de
programa.

En tal caso debe garantizarse que toda la tabla esté


contenida en un bloque de memoria de 256 bytes.
De 0x00-0xFF, 0x100-0x1FF…

91
La Memoria del PIC16F84A

Ejemplos de
lectura de
Tabla de Datos

92
La Memoria del PIC16F84A

; Programa principal

err call mens ; Mensaje de error

;*******************************************************************
; Rutina mensaje
;*******************************************************************
mens clrf despl
mens_1 movlw 0
addwf despl,w
call datos
iorlw 0
btfsc STATUS,2
return
call lcd_dato
incf despl,f
goto mens_1
;*******************************************************************
; Mensaje de error
;*******************************************************************
datos addwf PCL,1
retlw 'E'
retlw 'r'
retlw 'r‘
retlw 'o‘
retlw 'r'
retlw 0x00 93
La Memoria del PIC16F84A

Otro ejemplo
; Programa principal

movlw ide ; Carga en W dirección del primer carácter del mensaje ide call
mens ; Presenta mensaje
movlw 0x03 ; Carga 3 en W
call lcd_y2_xw ; Cursor a fila 2 columna 3
movlw nombre
call mens

94
La Memoria del PIC16F84A

;*************************************************************
; Presenta mensaje en LCD
; Entrada: Cargar en W (dir inicio de la cadena) ;*******************************************************************
; La cadena debe terminar con cero. ; Escribe texto en LCD
;************************************************************* ;*******************************************************************
mens movwf contdb org 0x200
decf contdb texto addwf PCL,1
movlw 0x02 ;*******************************************************************
movwf PCLATH ; Area de mensajes
xxq movf contdb,0 ;*******************************************************************
call texto
iorlw 0 ide dt "Voltimetro DC",0
btfsc CERO nombre dt "Br. J Salas",0
return
bcf lcd_modo,0
call lcd_enviar
incf contdb,1
goto xxq

95
La Memoria del PIC16F84A

Instrucciones que usan la PILA

call k Llamada a subrutina


return Retorno desde subrutina
retlw Retorno con valor cargado en W
retfie Retorno desde interrupción

96
La Memoria del PIC16F84A

La Pila o Stack

97
La Memoria del PIC16F84A

Llamada a subrutina

Las direcciones mostradas no corresponden a la memoria de programa del PIC16F84A 98


La Memoria del PIC16F84A

Subrutinas Anidadas y Niveles de la Pila

Las direcciones mostradas no corresponden a la memoria de programa del PIC16F84A 99


La Memoria del PIC16F84A

Los PICs no tienen instrucciones PUSH ni


POP para acceso a la pila.

No existe un bit que indique cuando se


desborda la pila.

100

You might also like