micro control adores pics i-luis urdaneta
DESCRIPTION
Microcontroladores PIC ILuis UrdanetaTRANSCRIPT
Diseño
Programación
Simulación
Diseño
Programación
Simulación
Por Luis D. Urdaneta G.
Sistemas de µControlad
ores
Sistemas empotradosµCs de propósito general
2
Desarrollo de aplicaciones con lenguajes de alto nivel
Desarrollo de aplicaciones con lenguajes de alto nivel
El usuario rara vez realiza diseño de hardware
El usuario rara vez realiza diseño de hardware
Procesan cantidades relativamente grandes datos
Procesan cantidades relativamente grandes datos
Fabricados por empresas establecidas. Ejm:: PC, Macintosh...
Fabricados por empresas establecidas. Ejm:: PC, Macintosh...
Microcomputador de Propósito General
3
Sistema Empotrado
Uno o más µPs o µCtrls son incorpora-dos al sistema en forma tal que el (los) dispositivo (s) no son accesibles directa-mente por el usuario del sistema.
Uno o más µPs o µCtrls son incorpora-dos al sistema en forma tal que el (los) dispositivo (s) no son accesibles directa-mente por el usuario del sistema.
Presentan todas las características propias de un µC, pero tienen poca potencia para procesar datos.
Presentan todas las características propias de un µC, pero tienen poca potencia para procesar datos.
La arquitectura y programación del sistema es diseñada para realizar una tarea específica
La arquitectura y programación del sistema es diseñada para realizar una tarea específica
Se programan usando lenguajes de propósito específico.
Se programan usando lenguajes de propósito específico.Tablero de automovil
4
Sistema Empotrado
5
• Se mide la presión del aceite, la temperatura del agua y la velocidad del automóvil.
• Una conexión al distribuidor permite medir las RPM del motor.
• Se controla el encendido y arranque sustituyendo la llave por una cerradura de combinación.
• Comandos al servofreno permite realizar el control de navegación del vehículo.
• Los indicadores pueden usarse como medidor de velocidad, tacómetro, o para presentar la presión del aceite o la temperatura del agua, de acuerdo con la preferencia del conductor.
• Es posible usar líneas de los puertos para control de la cadencia de los limpiaparabrisas o para retardo de las luces internas.
• Se mide la presión del aceite, la temperatura del agua y la velocidad del automóvil.
• Una conexión al distribuidor permite medir las RPM del motor.
• Se controla el encendido y arranque sustituyendo la llave por una cerradura de combinación.
• Comandos al servofreno permite realizar el control de navegación del vehículo.
• Los indicadores pueden usarse como medidor de velocidad, tacómetro, o para presentar la presión del aceite o la temperatura del agua, de acuerdo con la preferencia del conductor.
• Es posible usar líneas de los puertos para control de la cadencia de los limpiaparabrisas o para retardo de las luces internas.
Sistema Empotrado Genérico
6
Aplicaciones de Sistemas Empotrados
7
APLICACIONES
Control deprocesosControl deprocesos
Sistemas de fabricaciónSistemas de fabricación
Sistemas decomunicación, mando, ycontrol
Sistemas decomunicación, mando, ycontrol
AutomatismosAutomatismos
RobóticaRobótica
Equipos del hogar
Equipos del hogar
Sistemas Empotrados
8
µCS para aplicaciones de Medición Control e Instrumentación
µCS para aplicaciones de Medición Control e Instrumentación
9
Sistema de Control Digital Genérico
r(t)
CAD
Algoritmo deControl
CDA
Sensor ActuadorPlanta
y(t) u(t)
CAD
controlador
uk
yk
rk
10
Sistema de Control Digital Genérico
Para realizar el controlador digital con un µP, el sistema empotrado resultante debe
disponer de:
11
Sistema de Control Digital Genérico
12
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.
13
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.
14
Sistema de Control de Temperatura con µP
15
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.
16
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)
17
Sistema de Control de Temperatura con µP
18
Sistema de Control de Temperatura con µP
µP
Unidad Central de Procesamiento
19
Sistema de Control de Temperatura con µP
0000H
07FFH
0FFFH
17FFH
FFFFH
Memoria de programa
Memoria de datos
Puertos de E/S
Mapa de Memoria
20
Sistema de Control de Temperatura con µP
Decodificador de Direcciones
21
Sistema de Control de Temperatura con µP
Sección de Memoria y E/S
22
Sistema de Control de Temperatura con µP
23
Sistema de Control de Temperatura con µP
24
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.
Sistema de Control de Temperatura con µP
25
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.
26
El µControlador
PUERTOS
RWMFLASH
µP
El dispositivo resultado de la integración de recursos se denomina µControlador.
TIMERS
27
El µControlador
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
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.
30
Ejemplo de un Proceso Industrial
BOMBA
CONTROLADOR
SENSORVÁLVULA
31
Ejemplo de un Proceso Industrial
32
Ejemplo de un Proceso Industrial
Simulación del Sistema con
PROTEUS
ic=0
1 + Tn.p
1 + Td.pK.
H1
1° ORD : POLY 1
yV=
3.0
021
3
- t .pe
R1
OP : DELAY
MCLR/VPP1
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA3/AN3/VREF+5
RA4/T0CKI6
RA5/AN4/SS/LVDIN7
RE0/RD/AN58
RE1/WR/AN69
RE2/CS/AN710
OSC1/CLKI13
RA6/OSC2/CLKO14
RC0/T1OSO/T1CKI15
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP528
RD6/PSP629
RD7/PSP730
RC4/SDI/SDA23
RC5/SDO24
RC6/TX/CK25
RC7/RX/DT26
RB0/INT033
RB1/INT134
RB2/INT235
RB3/CCP2B36
RB437
RB5/PGM38
RB6/PGC39
RB7/PGD40
RC1/T1OSI/CCP2A16
U1
PIC18F452
X1
4 MHZ
OS
C1
OSC2
OS
C2
OSC1MCLR
uV=1.48682
y
y
40%
RV1
1k
+2.5v
MAN
+5
v
RxDTxD
RxDTxD
RL1W172DIP-19
Q12N3053
+12V
D1
DIODE
R2
1k
R3
10k +5
V
MAN
R4220
R5220
LALM
D2MANUAL
M/ALMLA
3
21
411
U2:A
LM324
R6
10k
R7
10k
C410uF
C5
22uF
GN
DV
DD
M/ASW1
MANUAL
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM018L
B0
B2
B1
B7
B6
B5
B4
B7B6B5B4
B0B1B2
R820k
C32.2uF
T1IN11
R1OUT12
T2IN10
R2OUT9
T1OUT14
R1IN13
T2OUT7
R2IN8
C2+
4
C2-
5
C1+
1
C1-
3
VS+2
VS-6
U4
MAX232C7
0.1uF
C6
0.1uF
C80.1uF
1 6 2 7 3 8 4 9 5
RXD
RTS
TXD
CTSC90.1uF
C1
22pF
C2
22pF
RST
R9470
R1047k
MCLR
D4CONTROLANDO
R11220
ON
+5V
ON
D3AUTOMÁTICO
um
SCK3
CS2
SDI4
LDAC5
VOUTA8
VREFA6
U3
MCP4921
+5
V
D0D1D2
D4
D4D2D0D1
+12V
-12V
um
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V
RL2+5V/125 ohmios
1 2
U5:A
7406
SW2
SW-SPDT
D61N4148
SEL
SW3
SW-SPST
R1310k
SEL
+5V
R143.9k
+5
V
KPKIKD
KPKIKD
C100.1uF
R15200
S1OP : ADD
S1(IN2)
BUZ1
BUZZER
R12220
+5VS
EL
D5 CONECTADO
32
µcontrolador
cristal
reset filtro pasa bajo
pantalla LCD
alarma
plantaCDA
man/autpuerto serie
PC
perturbación
333333
ic=0
1 + Tn.p
1 + Td.pK.
H1
1° ORD : POLY 1
yV=
1.9
999
9
- t .pe
R1
OP : DELAY
MCLR/VPP1
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA3/AN3/VREF+5
RA4/T0CKI6
RA5/AN4/SS/LVDIN7
RE0/RD/AN58
RE1/WR/AN69
RE2/CS/AN710
OSC1/CLKI13
RA6/OSC2/CLKO14
RC0/T1OSO/T1CKI15
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP528
RD6/PSP629
RD7/PSP730
RC4/SDI/SDA23
RC5/SDO24
RC6/TX/CK25
RC7/RX/DT26
RB0/INT033
RB1/INT134
RB2/INT235
RB3/CCP2B36
RB437
RB5/PGM38
RB6/PGC39
RB7/PGD40
RC1/T1OSI/CCP2A16
U1
PIC18F452
X1
4 MHZ
OS
C1
OSC2
OS
C2
OSC1MCLR
uV=0.999995
y
y
40%
RV1
1k
+2.5v
MAN
+5
v
RxDTxD
RxDTxD
RL1W172DIP-19
Q12N3053
+12V
D1
DIODE
R2
1k
R3
10k +5
V
MAN
R4220
R5220
LALM
D2MANUAL
M/ALMLA
3
21
411
U2:A
LM324
R6
10k
R7
10k
C410uF
C5
22uF
GN
DV
DD
M/ASW1
MANUAL
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM018L
B0
B2
B1
B7
B6
B5
B4
B7B6B5B4
B0B1B2
R820k
C32.2uF
T1IN11
R1OUT12
T2IN10
R2OUT9
T1OUT14
R1IN13
T2OUT7
R2IN8
C2+
4
C2-
5
C1+
1
C1-
3
VS+2
VS-6
U4
MAX232C7
0.1uF
C6
0.1uF
C80.1uF
1 6 2 7 3 8 4 9 5
RXD
RTS
TXD
CTSC90.1uF
C1
22pF
C2
22pF
RST
R9470
R1047k
MCLR
D4CONTROLANDO
R11220
ON
+5V
ON
D3AUTOMÁTICO
um
SCK3
CS2
SDI4
LDAC5
VOUTA8
VREFA6
U3
MCP4921
+5
V
D0D1D2
D4
D4D2D0D1
+12V
-12V
um
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V
RL2+5V/125 ohmios
1 2
U5:A
7406
SW2
SW-SPDT
D61N4148
SEL
SW3
SW-SPST
R1310k
SEL
+5V
R143.9k
+5
V
KPKIKD
KPKIKD
C100.1uF
R15200
S1OP : ADD
S1(IN2)
BUZ1
BUZZER
SW1
MANUAL
RXD
RTS
TXD
CTS
R12220
+5V
SE
L
D5 CONECTADO
manual
estado
34343434
ic=0
1 + Tn.p
1 + Td.pK.
H1
1° ORD : POLY 1
yV=
1.9
999
9
- t .pe
R1
OP : DELAY
MCLR/VPP1
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA3/AN3/VREF+5
RA4/T0CKI6
RA5/AN4/SS/LVDIN7
RE0/RD/AN58
RE1/WR/AN69
RE2/CS/AN710
OSC1/CLKI13
RA6/OSC2/CLKO14
RC0/T1OSO/T1CKI15
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP528
RD6/PSP629
RD7/PSP730
RC4/SDI/SDA23
RC5/SDO24
RC6/TX/CK25
RC7/RX/DT26
RB0/INT033
RB1/INT134
RB2/INT235
RB3/CCP2B36
RB437
RB5/PGM38
RB6/PGC39
RB7/PGD40
RC1/T1OSI/CCP2A16
U1
PIC18F452
X1
4 MHZ
OS
C1
OSC2
OS
C2
OSC1MCLR
uV=2.92115
y
y
40%
RV1
1k
+2.5v
MAN
+5
v
RxDTxD
RxDTxD
RL1W172DIP-19
Q12N3053
+12V
D1
DIODE
R2
1k
R3
10k +5
V
MAN
R4220
R5220
LALM
D2MANUAL
M/ALMLA
3
21
411
U2:A
LM324
R6
10k
R7
10k
C410uF
C5
22uF
GN
DV
DD
M/ASW1
MANUAL
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM018L
B0
B2
B1
B7
B6
B5
B4
B7B6B5B4
B0B1B2
R820k
C32.2uF
T1IN11
R1OUT12
T2IN10
R2OUT9
T1OUT14
R1IN13
T2OUT7
R2IN8
C2+
4
C2-
5
C1+
1
C1-
3
VS+2
VS-6
U4
MAX232C7
0.1uF
C6
0.1uF
C80.1uF
1 6 2 7 3 8 4 9 5
RXD
RTS
TXD
CTSC90.1uF
C1
22pF
C2
22pF
RST
R9470
R1047k
MCLR
D4CONTROLANDO
R11220
ON
+5V
ON
D3AUTOMÁTICO
um
SCK3
CS2
SDI4
LDAC5
VOUTA8
VREFA6
U3
MCP4921
+5
V
D0D1D2
D4
D4D2D0D1
+12V
-12V
um
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V
RL2+5V/125 ohmios
1 2
U5:A
7406
SW2
SW-SPDT
D61N4148
SEL
SW3
SW-SPST
R1310k
SEL
+5V
R143.9k
+5
V
KPKIKD
KPKIKD
C100.1uF
R15200
S1OP : ADD
S1(IN2)
BUZ1
BUZZER
SW1
MANUAL
RXD
RTS
TXD
CTS
R12220
+5V
SE
L
D5 CONECTADO
KpKiKd
KpKiKd
3535353535
ic=0
1 + Tn.p
1 + Td.pK.
H1
1° ORD : POLY 1
yV=
1.9
999
9
- t .pe
R1
OP : DELAY
MCLR/VPP1
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA3/AN3/VREF+5
RA4/T0CKI6
RA5/AN4/SS/LVDIN7
RE0/RD/AN58
RE1/WR/AN69
RE2/CS/AN710
OSC1/CLKI13
RA6/OSC2/CLKO14
RC0/T1OSO/T1CKI15
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP528
RD6/PSP629
RD7/PSP730
RC4/SDI/SDA23
RC5/SDO24
RC6/TX/CK25
RC7/RX/DT26
RB0/INT033
RB1/INT134
RB2/INT235
RB3/CCP2B36
RB437
RB5/PGM38
RB6/PGC39
RB7/PGD40
RC1/T1OSI/CCP2A16
U1
PIC18F452
X1
4 MHZ
OS
C1
OSC2
OS
C2
OSC1MCLR
uV=0.999995
y
y
40%
RV1
1k
+2.5v
MAN
+5
v
RxDTxD
RxDTxD
RL1W172DIP-19
Q12N3053
+12V
D1
DIODE
R2
1k
R3
10k +5
V
MAN
R4220
R5220
LALM
D2MANUAL
M/ALMLA
3
21
411
U2:A
LM324
R6
10k
R7
10k
C410uF
C5
22uF
GN
DV
DD
M/ASW1
MANUAL
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM018L
B0
B2
B1
B7
B6
B5
B4
B7B6B5B4
B0B1B2
R820k
C32.2uF
T1IN11
R1OUT12
T2IN10
R2OUT9
T1OUT14
R1IN13
T2OUT7
R2IN8
C2+
4
C2-
5
C1+
1
C1-
3
VS+2
VS-6
U4
MAX232C7
0.1uF
C6
0.1uF
C80.1uF
1 6 2 7 3 8 4 9 5
RXD
RTS
TXD
CTSC90.1uF
C1
22pF
C2
22pF
RST
R9470
R1047k
MCLR
D4CONTROLANDO
R11220
ON
+5V
ON
D3AUTOMÁTICO
um
SCK3
CS2
SDI4
LDAC5
VOUTA8
VREFA6
U3
MCP4921
+5
V
D0D1D2
D4
D4D2D0D1
+12V
-12V
um
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V
RL2+5V/125 ohmios
1 2
U5:A
7406
SW2
SW-SPDT
D61N4148
SEL
SW3
SW-SPST
R1310k
SEL
+5V
R143.9k
+5
V
KPKIKD
KPKIKD
C100.1uF
R15200
S1OP : ADD
S1(IN2)
BUZ1
BUZZER
R12220
+5VS
EL
D5 CONECTADO
operadorconectado
363636363636
ic=0
1 + Tn.p
1 + Td.pK.
H1
1° ORD : POLY 1
yV=
2.7
397
1
- t .pe
R1
OP : DELAY
MCLR/VPP1
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA3/AN3/VREF+5
RA4/T0CKI6
RA5/AN4/SS/LVDIN7
RE0/RD/AN58
RE1/WR/AN69
RE2/CS/AN710
OSC1/CLKI13
RA6/OSC2/CLKO14
RC0/T1OSO/T1CKI15
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP528
RD6/PSP629
RD7/PSP730
RC4/SDI/SDA23
RC5/SDO24
RC6/TX/CK25
RC7/RX/DT26
RB0/INT033
RB1/INT134
RB2/INT235
RB3/CCP2B36
RB437
RB5/PGM38
RB6/PGC39
RB7/PGD40
RC1/T1OSI/CCP2A16
U1
PIC18F452
X1
4 MHZ
OS
C1
OSC2
OS
C2
OSC1MCLR
uV=1.32202
y
y
40%
RV1
1k
+2.5v
MAN
+5
v
RxDTxD
RxDTxD
RL1W172DIP-19
Q12N3053
+12V
D1
DIODE
R2
1k
R3
10k +5
V
MAN
R4220
R5220
LALM
D2MANUAL
M/ALMLA
3
21
411
U2:A
LM324
R6
10k
R7
10k
C410uF
C5
22uF
GN
DV
DD
M/ASW1
MANUAL
D7
14D
613
D5
12D
411
D3
10D
29
D1
8D
07
E6
RW
5R
S4
VS
S1
VD
D2
VE
E3
LCD1LM018L
B0
B2
B1
B7
B6
B5
B4
B7B6B5B4
B0B1B2
R820k
C32.2uF
T1IN11
R1OUT12
T2IN10
R2OUT9
T1OUT14
R1IN13
T2OUT7
R2IN8
C2+
4
C2-
5
C1+
1
C1-
3
VS+2
VS-6
U4
MAX232C7
0.1uF
C6
0.1uF
C80.1uF
1 6 2 7 3 8 4 9 5
RXD
RTS
TXD
CTSC90.1uF
C1
22pF
C2
22pF
RST
R9470
R1047k
MCLR
D4CONTROLANDO
R11220
ON
+5V
ON
D3AUTOMÁTICO
um
SCK3
CS2
SDI4
LDAC5
VOUTA8
VREFA6
U3
MCP4921
+5
V
D0D1D2
D4
D4D2D0D1
+12V
-12V
um
SISTEMA DE SUPERVISIÓN Y CONTROL DIGITAL
+5V
RL2+5V/125 ohmios
1 2
U5:A
7406
SW2
SW-SPDT
D61N4148
SEL
SW3
SW-SPST
R1310k
SEL
+5V
R143.9k
+5
V
KPKIKD
KPKIKD
C100.1uF
R15200
S1OP : ADD
S1(IN2)
BUZ1
BUZZER
R12220
+5VS
EL
D5 CONECTADO
373737373737
383838383838
393939393939
Periféricos comunes en µctrl y sus aplicaciones
Control de presión de aire
FUNCIÓN AUTOMÓVIL CONSUMIDOR PERIFÉRICOS
CPU 4-8 BITS Radio Audio Teclado
CPU 16 BITS Sistemas ABS Controlador de disco
CPU 32 BITS Control de motores Controlador inteligente de disco
EEPROM Odometro Programación de televisores Configuración de modem
TIMERSControl de inyec- ción de gasolina
Velocidad de obturador de cámaras
Codificador de ejes en ratones ópticos
SERIE ASINCRÓNICO
Comunicación en el auto Comunicación en alarmas Lazo RS232 con modem
SERIE SINCRÓNICO
Controlador de luces
Comunicación entre componentes
Reloj de tiempo real en PC
CADSensor de temperatura en
termostato de AAVoltaje de la batería en
laptops
E/S PARALELA Tablero indicador Panel frontal de VCR Estado de teclados
404040404040
Los Microcontroladore
s PIC
414141414141
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.
424242424242
Los Microcontroladores PIC
434343434343
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.
444444444444
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.
454545454545
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
464646464646
Los Microcontroladores PIC
(a) Arquitectura Von Neumann (b) Arquitectura Harvard
474747474747
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
484848484848
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.
494949494949
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.
505050505050
Los Microcontroladores PIC
Familias de µControladores PIC de 8 bits
Familia Arquitectura Tamaño Pila (Palabras)
Tamaño de Palabra de Instrucción (Bits)
Número de Instrucciones
Vectores de 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 58Multiplicación por Hardware
4
18CXXX/18FXXX Rendimiento Alto 32 16 75Multiplicación por Hardware
2(Con Prioridad)
515151515151
Los Microcontroladores PIC
Microcontroladores a usar en ejemplos:
Serie 16
16F84A
16F877Serie 18
18F452
525252525252
Los Microcontroladores PIC
Introducción a los
PICs de la Serie 16
535353535353
Los Microcontroladores PIC
Algunos Miembros de la Serie 16
545454545454
Los Microcontroladores PIC
El PIC16F84A
555555555555
Los Microcontroladores PIC
PIC16F84AEs 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.
565656565656
Distribución de terminales y Entradas y Salidas del PIC16F84A
575757575757
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 8EEPROM 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.
Los Microcontroladores PIC
585858585858
Organización del PIC16F84A
595959595959
La CPU del PIC16F84A
606060606060
La CPU del PIC16F84A
616161616161
La CPU del PIC16F84A
En un µP el resultado se carga en el acumulador
En un PIC el resultado puede cargarse en el registro W o en un registro F de la RAM
626262626262
La CPU del PIC16F84A
El CONJUNTO DE INSTRUCCIONES DEL
PIC16F84A
636363636363
La CPU del PIC16F84A
646464646464
La CPU del PIC16F84A
656565656565
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)
666666666666
La CPU del PIC16F84A
676767676767
La CPU del PIC16F84A
Operandos de la ALU y lugar de carga del resultado de una operación
686868686868
La CPU del PIC16F84A
addlw k ; k desde la instrucción
movwf 0x20 ; por direccionamiento directo.
; segundo operando desde la dirección 0x20 de RAM
En las instrucciones de la ALU siempre un operando está en el acumulador. El segundo operando se obtiene:
696969696969
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 RAMmovwf INDF ; cargar valorincf FSR ; apuntador = apuntador +1btfss 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)
707070707070
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
717171717171
La CPU del PIC16F84A
El Registro STATUS
727272727272
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
737373737373
CDCZPDTORP0RP1IRP
Sin uso Acarreo
Fin de Temporización
Bajo Consumo
Acarreo de Dígito
RP1 RP0 Selección 0 0 Banco 0 (00H-7FH) 0 1 Banco 1 (80H-FFH)
Cero
La CPU del PIC16F84A
747474747474
La CPU del PIC16F84A
IRP: Register Bank Select BitBit 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)
757575757575
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.
767676767676
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.
777777777777
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.
787878787878
La CPU del PIC16F84A
Ejemplos de Instrucciones:
clrfw ; El registro W a ceroclrf status ; Selecciona el banco 0clrf porta ; Líneas del puerto A en cerobsf status,RP0 ; Selecciona el banco 1bsf status,5 ; Selecciona el banco 1bcf status,RP0 ; Selecciona el banco 0
797979797979
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;*************************************************************************************
808080808080
La CPU del PIC16F84A
Ejemplos de Instrucciones:
SEL_BANCO_1 movlw b'00011000’
movwf OPTION_REG SEL_BANCO_0
btfsc CARRYbtfsc STATUS,C
bcf RS bsf E
818181818181
La CPU del PIC16F84A
Ejemplos de directivas de ensamblador:
;*************************************************************************************estado equ 0x03 ; Registro STATUS puerto_b equ 0x06 ; Puerto Btemp1 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 temp1xorlw 3 ; ¿Están ambas cerradas? btfsc estado,2goto esp ; Ambas cerradas, esperar movf temp1,0
828282828282
La CPU del PIC16F84A
La Memoria del PIC16F84A
838383838383
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
848484848484
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 VOLÁTIL
ESPECIFICACIÓN
Memoria de Programa
FLASH 1K x 14 bits No Volátil Hasta 10000 ciclos de borrado/escritura
Memoria de Datos
(Registros de Archivo f)
SRAM 68 Bytes Volátil Conserva datos para voltajes de
alimentación por debajo de 1.5V
Memoria de Datos
(EEPROM)
EEPROM 64 Bytes No Volátil Hasta 10000000 ciclos de borrado/escritura
Pila (Stack) SRAM 8 x 13 bits Volátil
858585858585
La Memoria del PIC16F84A
La Memoria de Programa
868686868686
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
878787878787
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
888888888888
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>
898989898989
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>
909090909090
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.
919191919191
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…
929292929292
La Memoria del PIC16F84A
Ejemplos de lectura de
Tabla de Datos
939393939393
La Memoria del PIC16F84A
; Programa principal…err call mens ; Mensaje de error…;*******************************************************************; Rutina mensaje;******************************************************************* mens clrf desplmens_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
949494949494
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…
959595959595
La Memoria del PIC16F84A
;*************************************************************; Presenta mensaje en LCD; Entrada: Cargar en W (dir inicio de la cadena); La cadena debe terminar con cero. ;*************************************************************mens movwf contdb
decf contdbmovlw 0x02movwf PCLATH
xxq movf contdb,0call textoiorlw 0
btfsc CERO return
bcf lcd_modo,0call lcd_enviarincf contdb,1goto xxq
;*******************************************************************; Escribe texto en LCD;*******************************************************************
org 0x200texto addwf PCL,1;*******************************************************************; Area de mensajes;*******************************************************************
ide dt "Voltimetro DC",0nombre dt "Br. J Salas",0
969696969696
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
979797979797
La Memoria del PIC16F84A
La Pila o Stack
989898989898
La Memoria del PIC16F84A
Llamada a subrutina
Las direcciones mostradas no corresponden a la memoria de programa del PIC16F84A
999999999999
La Memoria del PIC16F84A
Subrutinas Anidadas y Niveles de la Pila
Las direcciones mostradas no corresponden a la memoria de programa del PIC16F84A
100100100100100100
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.