00 IntroALosMicrocontroladores VA
Transcript of 00 IntroALosMicrocontroladores VA
-
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