Post on 23-Nov-2015
Introduccin a losIntroduccin a los microcontroladores
Jos Miguel Gil-Garca
Microprocesador (MPU)Microprocesador (MPU) Dispositivo electrnico que ejecuta Dispositivo electrnico que ejecuta
instrucciones
Microprocesador (MPU)Microprocesador (MPU) Cdigo (firmware) Cdigo (firmware)
Datos
Interfaz - Perifricos
MemoriasMemorias
Memorias no-voltilesMemorias no voltiles
Memorias voltilesMemorias voltiles
BloquesBloques
ALECOP P2000ALECOP P2000
Microcontroladores (MCU)Microcontroladores (MCU) C C
DSP
BloquesBloques
RAM
ROM
PERIFRICO #0
PERIFRICO #nPERIFRICO #n
80518051
Para qu un PC?Para qu un PC?
Para ayudarle a proteger su privacidad, PowerPoint evit que esta imagen externa se descargara automticamente. Para descargar y mostrar esta imagen, haga clic en Opciones en la barra de mensajes y, a continuacin, haga clic en Habilitar contenido externo.
Dnde?Dnde? Dnde no? Dnde no?
CORECORE Define el juego de instruccionesDefine el juego de instrucciones
8051ARM ARM Cortex-Mx
Diferentes fabricantes
# de bits# de bits
4,8,16 32 bits
RelojReloj Ciclo de instruccin Ciclo de instruccin
CISC vs RISCCISC vs. RISC
Harvard vs Von NeumannHarvard vs. Von Neumann Harvard Harvard
Von Neumann
Big endian vs Little endianBig endian vs. Little endian Viajes de Gulliver Viajes de Gulliver Big endian (Motorola)
Little endian (Intel) Little endian (Intel)
Ej: 0x01234567
Perifricos IPerifricos I ComunicacionesComunicaciones
UART (serie, COM) USB LIN CAN
ETHERNET ETHERNET I2C SPISPI Zigbee Bluetooth
Perifricos IIPerifricos II Timers Timers LCDs ADC y DACs Moduladores de anchura de pulso Moduladores de anchura de pulso Comparadores analgicosg Controladores de teclado
Bajo consumoBajo consumo
Tecnologag
http://en.wikipedia.org/wiki/File:Comparison_semiconductor_process_nodes.svghttp://www.eetimes.com/electronics-news/4155153/Managing-leakage-power-at-90-nm-and-belowhttp://www.eetimes.com/design/power-management-design/4012184/Minimizing-power-consumption-at-the-chip-level
XBOXXBOX Tecnologas ms pequeas requieren Vdd Tecnologas ms pequeas requieren Vdd
ms bajas
Core PerifricosCore < >Perifricos Polling Polling Interrupciones DMA
Polling (sondeo)Polling (sondeo)
InterrupcinInterrupcin
Ejecucin secuencialEjecucin secuencial0000H
FFFFH
IRQIRQ0000H
SJMP INI
LJMP ISRx VECTORES DE INTERRUPCIN
INI:
IRQ
INTERRUPCIN
1
INTERRUPCINIRQ
INTERRUPT REQUEST
FCN2:
RET
FCN1:
RETISRx:
RETI
FFFFH
ISRISR0000H
SJMP INI
LJMP ISRx VECTORES DE
INI:
LJMP ISRx C O SINTERRUPCIN
FCN1:
ISRx: PUSH PSW PUSH ACC .
.
2Salvar el contexto
FCN2:
RET
RET
ISRx: RUTINA DE SERVICIODE INTERRUPCIN
. POP ACC POP PSW RETI
Restaurar el contexto
FFFFH
RETI
DE INTERRUPCIN(ISR)
FFFFH
ContinuacinContinuacin0000H
SJMP INI
LJMP ISRx
INI:
IRQIRQ
FCN2:
RET
FCN1:
3
RETISRx:
RETI
RUTINA DE SERVICIODE INTERRUPCIN(ISR)
FFFFH
Proceso completoProceso completo0000H
SJMP INI
LJMP ISRx VECTORES DE INTERRUPCIN
Habilitacin (mascara)
INTERRUPCIN
INI:
IRQ
INTERRUPCIN
1
- Individual- Global
NMIP i id d INTERRUPCINIRQ
ISRx: PUSH PSW PUSH ACC
.
2
Prioridad
FCN2:
RET
FCN1:
. . POP ACC POP PSW RETI
3
RETISRx:
RETI
RUTINA DE SERVICIODE INTERRUPCIN(ISR)
FFFFH
DesarrolloDesarrollo Firmware Firmware
Tool chainTool chain
IDEIDE
Ensamblador-compiladorEnsamblador compiladorCdigo fuente.C, .PAS...
Cdigo fuente.ASM
Compilar
Cdigo fuente.ASM
Ensamblar
Cdigo objeto.OBJ
Cdigo objeto.OBJ
EnsamblarCdigo objeto
.OBJCdigo objeto
.OBJ
Enlazar-Linkar Libreras.LIB
Enlazar-Linkar Libreras.LIB
Cdigo objetoejecutable
Cdigo objetoejecutable
A fomato Intel Hex
A fomato Intel Hex
OH
Intel HexOH
Cod ejecutable en Intel
Hex
Cod ejecutable en Intel
Hex
DepuracinDepuracin Starter kits Starter kits 8 bits 28 32bits 15
Kits de desarrolloKits de desarrolloPandaboard 174$Pandaboard 174$
Kits de desarrolloKits de desarrollo
ProgramadorProgramador Externo Externo ISP
Emulador
80518051
80518051 En modo microcontrolador En modo microcontrolador
80518051 En modo microprocesador En modo microprocesador
80518051
8051 pinout8051 pinout
MemoriaMemoriaFFFFH FFFFH
MOVC MOVX
EXTERNAL ROMUpto 64KB
EXTERNAL RAMUpto 64KB
MOVMOVCUpto 64KB Upto 64KB
SPECIAL FUNCTION REGISTERSRAM
FFH FFH
INTERNAL ROM4K,8K,12KB..
RAM(128)
7FH80H80H
0000H 0000H00H
Memoria
T
A
C
C
E
S
S
C
T
A
C
C
E
S
S
D
I
R
E
C
T
I
N
D
I
R
E
C
T
&
A
C
C
E
S
S
D
I
R
E
C
T
I
N
D
I
R
E
C
T
A
SFRsB
P3
IPPSW
ACCB
SBUF
P2
IE
P3
TH0
TH1P1
SCON
TMOD
TL0
TL1
TH0
DPL
PCON
DPH
TCON
P0
SP
DPL
Tipos de direccionamientoTipos de direccionamiento Inmediato Inmediato
DirectoDirecto
Tipos de direccionamientoTipos de direccionamientoIndirectoIndirecto
Tipos de direccionamientoTipos de direccionamiento Registro base ms ndice Registro base ms ndice
Matrices
TABLA DB: 23H,15H,22H,0FEH,00H,AAH
Instrucciones aritmticas
Instrucciones lgicasInstrucciones lgicas
Instrucciones transferencia
Instrucciones booleanasInstrucciones booleanas
Instrucciones control flujoInstrucciones control flujo
Instrucciones control flujoInstrucciones control flujo
Aspecto de un programaAspecto de un programa[Etiqueta:] INSTR OP1,OP2 ;Comentario
INSTR OP1INSTR ;Comentario;
[Etiqueta:] INSTR OP1INSTRINSTR OP1,OP2 ;ComentarioINSTR OP1INSTR ;Comentario
[EtiquetaDeNombreMuyLargo:]INSTR OP1INSTR
EjemplosEjemplos If then else (BITs) If then else (BITs)
If then else (BYTE)If then else (BYTE)
if (R0==15){if (R0==15){//unas cosas
}else{//u otras//u otras
}
If then else (BYTE)If then else (BYTE)
if (R0
If then else (BYTE)If then else (BYTE)
if (R0
forfor
for (R0=0;R0
Relacin temporalRelacin temporal
Relacin temporalRelacin temporal
Direccionamiento indirectoDireccionamiento indirecto Poner a 0 la memoria RAM interna Poner a 0 la memoria RAM interna
!?
AritmticasAritmticas ACC= ACC= B= R0= R1= R1= R7=
LgicasLgicas ACC= ACC= R0= R1= P3= P3= C=
ACC= (hex) ACC= (hex) B= R1= (oct)
Feb 11-12
B= B= R1= ??=(oct)
?? Para que no cambie P2 Jul 11-12