View
247
Download
4
Category
Preview:
Citation preview
2/22/2000 Dr. Alejandro Vega Salinas1
CURSO DE MICROCONTROLADORESPROGRAMACION E INTERCONEXIONADO DEL µµC-8051
* INTRODUCCION* CARACTERISTICAS DEL 8051* ARQUITECTURA DEL 8051* TERMINALES DEL 8051* REGISTROS INTERNOS DEL 8051* MODOS DE DIRECCIONAMIENTO DEL 8051* INSTRUCCIONES DEL 8051* INTERCONEXIONADO CON CIRC PERIFÉRICOS* MANEJO DEL SIMULADOR DEL 8051
2/22/2000 Dr. Alejandro Vega Salinas2
¿QUE ES
UN
MICROCONTROLADOR?
2/22/2000 Dr. Alejandro Vega Salinas3
Programasde aplicación
Microprocesador(µP)
Memorias Pasivaspara programasde aplicación(ROM, PROM, EPROM)
Memorias de acceso aleatorio para datos (RAM)
Módulosde entrada/salida
Lógica adicional
Periferia(memorias periféricas yequipos de entrada/salida)
Bus
Micro-computadora(MC)
Hardware
Software
Estructura de un sistemade microcomputadoras (MCS)
2/22/2000 Dr. Alejandro Vega Salinas4
Microprocesador ROM RAM
Módulo periféricode entrada/salida
(programable)
Interrupción delprograma porprioridades
Demanda HOLDInterrupt
Bus de datos
Bus de control
Bus de direccionamiento
La periferia del usuarioConexión de
Configuración técnica de los módulos en una microcomputadora completa
2/22/2000 Dr. Alejandro Vega Salinas5
AcumuladorRegistro
intermedio
Flipflopsde condición
Registro de instrucciones
Decodificadorde instrucciones
y control del ciclo de máquina
Control de tiempo y de ejecución Buffer de dirección Búffer de datos
Bus de datosBus dedireccionamiento
B C
D E
H L
Indicador de posición
Contadorde programa
Contador progresivo/regresivoMemoria de direcciones
Control de interrupción Control paraE/S en serie
Unidadaritmética/lógica
Bus de datos interno, 8 bits
Blo
que
de r
egis
tros
Alimentación
Estructura de un microprocesador tomado como ejemplo el µP 8085
2/22/2000 Dr. Alejandro Vega Salinas6
Impulsoreloj
Procesadorcentral
de 8 bits
Memoria deprogramasde 2Kbytes
Memoriade datos
de 128 bytesb
Contador/temporizador
de 8 bits
E/Sprogra-mables
ConvertidorA/D
de 8 bits
Contadoresde 4, 8 y12 bits
GeneradorMUX
Codificadorde 7
segmentos
Memoriade salida
Equipo de advertencia
HorasMinuto
Regulacióndela
luminosidad
Memoria deindicación
CronómetroHoras
Minuto
RelojHoras
Minuto
Entradade teclas
Esquema de bloques lógico SAP 80215
Bobina o cuarzo Corriente de reposo
Puertade E/Sen paralelo
Salida de lamatriz deindicación ydel teclado
Salida de lossegmentosde indicación
Salida de la matrizde indicación
Señalde conexión
Tensiónde referencia
Entradasanalógicas
Entradasde computo
Desdela matrizdel teclado
2/22/2000 Dr. Alejandro Vega Salinas7
MP(micro-procesador)
Decodificadorde direcciones
RAM(randomaccess memory)
ROMread-onlymemory)
Móduloperiféricode entrada/salida
Bus de datos
Bus de control
CS CS CS
Bus de direccionamiento
Funcionamiento de la microcomputadoray su estructura bus
2/22/2000 Dr. Alejandro Vega Salinas8
Procesador central de 8 bits
Procesador booleando
de 1 bit
Memoria de programasde 4 Kbytes
Memoriade datos
de 128 bytes
2 controladores/temporizadores
de 16 bits
Logicade interrupción
Entrada/ salidaen paralelo4 x 8 bits
Entrada/ salidaen serie
8 8 8 8
Esquemas de bloques µP 8051
2/22/2000 Dr. Alejandro Vega Salinas9
RelojMemoria
de programasMemoriade datos
Procesadorcentral
Contador/temporizador
Circuitosde entrada/salida
Sistema de microcomputadora en un chip
2/22/2000 Dr. Alejandro Vega Salinas10
TECHNOLOGY
Model ram rom addr SI/O PI/O C/T int. widthbytes
ADVENACED MICROSYSTEM80C521 256 8K 64K 1 32 2,16bit 2 8
DALLAS SEMICONDUCTORDS6000T 8-54K 4K 128K 1 32 2,16bit 6 8
HITACHI EUROPE LTD63L05F1 96 4K 20 1,8bit 6 8HD647180 512 16K 1M 3 54 3,16bit 15 8H8/532 1K 32K 1M 1 57 5,8bit 7 16
INMOS-LTDIMST245 4K 4G 4,links 2,32bit 2 32IMST222 4K 64K 4,links 2,16bit 2 1IMSM212 2K 4K 64K 4 2,16bit 2 16
INTEL CORPORATION (UK) LTD80C512 256 8K 128K 1, uart 56 2,16bit 2 880196KA 232 8K 64K 1, uart 40 4,16bit 16 1680C51BH 128 4K 64K uart 32 2,16bit 2 887C51 128 4K 64K uart 2 2,16bit 2 88096BH 232 8K 64K uart 40 6,16bit 8 1680C1196KB 232 8K 64K uart 40 6,16bit 16 16
MITSUBISHI ELECTRONIC (UK) LTDM50747 256 8K 64K 1 56 3,8bit 6 8M3700M4A 2K 32K 16M 3 68 8,16bit 7 16
2/22/2000 Dr. Alejandro Vega Salinas11
MOTOROLA LTD68HC05B6 176 6K 8K 1 32 4,16bit 4 868HC11E9 512 12K 64K 2 40 8,16bit 17 86804P3 124 1.7K 0 20 1,8bit 1 8146805G2 112 2K 8K 0 32 1,8bit 3 868HC05L6 176 6K 8K 1 58 4,16bit 468HC11 256 8K 64K 2 40 8,16bit 17 8
NATIONAL SEMICONDUCTOR (UK) LTDCOP420 64 1K 1 8 1,10bit 1 4
digitsCOP888CG 192 4K 32K 2 40 3,16bit 14 8HPC16083 256 8K 64K uart 52 8,16bit 8 16
NEC ELECTRONICS UK78214 512 16K 64K 1 60 1,16bit 18 *78322 640 16K 64K 1 55 1,16bit 19 16
1,12bitROCKWELL INTERNATIONALR6501 192 - 64K 1 32 2,16bit 10 836500/15 192 4K 16K 1 32 2,16bit 10 8
SGS THOMSON MICROELECTRONICSST6041 84 64 3,8K - 15 5 1 8Z86E21 240 8K 1 82 2,8bit 48 8
TEXAS INSTRUMENTS LTDTMS370 256 4K 112K 2 55 2 2 8TMS70C48 256 4K 64K 1 54 3 2 8TMS7000 128 4K to 64K 0 16 - 2 8
ZILOG UK LTDZ86E21 256 8K 120K 1 32 2,14bit 6 8Z8800 352 8K 128K 1 40 2,16bit 8 8Z86C11 128 4K to 120K uart 82 2,0bit 8 8
2/22/2000 Dr. Alejandro Vega Salinas12
FAMILIA DEL 68HC11
NUMERO ROM EPROM RAM CONF
68HC11A8 8K 512 256 $0F68HC11A1 0 512 256 $0D68HC11A0 0 0 256 $0C68HC11B8 8K 512 256 $0F68HC11B1 0 512 256 $0D68HC11B0 0 0 256 $0C68HC11E9 12K 512 512 $0F68HC11E1 0 512 512 $0D68HC11E0 0 0 512 $0C68HC811E2 0 2K 256 $FF68HC11D3 4K 0 192 N/A68HC11F1 0 512 1K $FF
2/22/2000 Dr. Alejandro Vega Salinas13
FAMILIA DEL 8051
ROM S-EPROM E PROM4K 8051 8031 87C518K 8052 80324K 83C451 80C451 87C4518K 83C552 83C552 83C5528K 83C652 83C652 83C6522K 83C751 83C7512K 83C752 83C752
2/22/2000 Dr. Alejandro Vega Salinas14
InterruptControl
4k
ROM
32k ROM
In 8XC528
16K ROM
In 8XC054,
8XC654
8K ROM
In 8052,
8XC52
8XC053
8XC552
8XC562
8XC652
2k ROMIn 83C751,83C752J
128
RAM
512 RAMIn 8XC528256 RAMIn 8052,8XC528XC552,8XC562,8XC652,8XC654
64 RAMIn 83C751,83C752
CPU
Osc
256 EEPROM83C851
Timer 2Capture/Compare
Array(8XC552,8XC562
Timer 0
Timer 2(8052,
8XC52,8Xc528)
Timer 1
CounterInputs
BusControl
Four I/O PortsI/OPort
A/D(8XC550,8XCC552,8XCC562,8XC752)
SerialPorts
SCL I2c
SDA Port
Serial
WatchdogTimer(8XC528,8XC550,8XC552,8XC562)
Fixed RateTimer(83c751/2)
PWM System(8XC552,8XC562,8XC752)
P0 P2 P1 P3 P4-P5-P6
Address/Data
TXD RXD
NOTES:P0-P3 for 8051, 8052, 8XC652, 8XC528, 8XC52, 8XC654, 8XCL410, 8XC551P0-P5 for 8XC552, 8XC562, 8XC592P0-P6 for 8XC451Part of P0, AND P1, P3 for 8XC751 and 8XC752
2/22/2000 Dr. Alejandro Vega Salinas15
CARACTERISTICAS DEL µC-8051
* UN CPU DE 8 BITS
* CAPACIDAD DE PROCESAR LAS FUNCIONES
* BOOLEANAS POR BIT
* 32 LINEAS DE ENTRADA/SALIDA
* 128 BYTES DE MEMORIA RAM
* 2 CONTADORES/TEMPORIZADORES DE 16B
* UN UART FULL DUPLEX
* 5 ESTRUCTURAS DE INTERRUPCIÓN
* UN OSCILADOR INTEGRADO
* 64KB DE ESPACIO DE PROGRAMA
* 64KB DE ESPACIO DE DATOS
* 4KB EN ROM (SOLO EN EL 8051)
2/22/2000 Dr. Alejandro Vega Salinas16
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
P3.0-RxD
Tx
INTO
INTI
T O
T 1
W R
P3.7 R D
X TAL 2
X TAL 1
VSS
1
2
3
4
5
6
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VCC
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
VPP/EA
PROG/ALE
PSEN
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
805180318751
2/22/2000 Dr. Alejandro Vega Salinas17
Leer el registro de salida
+5V
Pin del
Bus interno
Impulsode inscripciónde salidaAcceso de bus
Leer el pin
Pin E/S
T2
T1
&
1QØ
1DØ
1QØ
CLK
Circuito de salida de la puerta bidireccional Ø(esquema)
2/22/2000 Dr. Alejandro Vega Salinas18
Leer el registro de salida
+5V
Pin del
Bus interno
Impulsode inscripciónde salida
Refuerzodel flancoBAJO ALTO
Leer el pin
Pin E/S
T2
T1
&
1QØ
1DØ
ØQ1
CLK
Circuito de salida de las puertas cuasibidireccionales1, 2, 3, (esquema)
1Ø...4Ø kΩ
2/22/2000 Dr. Alejandro Vega Salinas19
LATCH
BUS DE DATOS
DIRECCIONBAJA
RAM
A0
A7
A8
A15
RD WR
A8
A15
E PROM
RD WR
P2P SEN
EA ALE
8051 P0
EJECUTANDO PROGRAMAS EXTERNOS
DIRECCION ALTA
OE
2/22/2000 Dr. Alejandro Vega Salinas20
LATCH
RD WR
P SEN
EA ALE
µC-8051
P0
Direcc. Bajas
Bus de direcciones altas
VccP1
P2
RAM
A0
A7
A9
A10
RD WR
A8
Bus de datos
2/22/2000 Dr. Alejandro Vega Salinas21
65535
4Ø964Ø95
Ø
Externa
Internao externa
127
Ø
255
128
65535
Ø
Memoriade programas
Memoriade datos interna
Registros SFR Memoriade datos externa
Relación de áreas de almacenamiento en el µP 8051
2/22/2000 Dr. Alejandro Vega Salinas22
Registros de funciones especiales (SFR)
Stack
Memoria de datosutilizable discrecionalmente
Area direccionable por bits(128 posiciones binarias)
Banco de registros 3(R0-R7)
Banco de registros 2(R0-R7)
Banco de registros 1(R0-R7)
Banco de registros 0(R0-R7)
Funciones de lamemoria de datosinterna µµC-8051
MemoriaMemoriaRAM noRAM nodisponible endisponible enel 8031el 8031
F8 FFF0 B F7E8 EFE0 ACC E7D8 DFD0 PSW D7C8 CFC0 C7B8 IP BFB0 P3 B7A8 IE AFA0 P2 A798 SCON SBUF 9F90 P1 9788 TCON TMOD TL0 TL1 TH0 TH1 8F80 P0 SP DPL DPH PCON 87
2/22/2000 Dr. Alejandro Vega Salinas23
B F7 F6 F5 F4 F3 F2 F1 F0 F0H30
7F 7C 78 2FH ACC 50 EDA77 74 706F 6C 68 PSW D0 DOH67 64 605F 5C 58 IP B8H57 54 50 2AH4F 4C 48 P3 B0H47 44 40 28H3F 3C 38 IE A8H37 34 302F 2C 28 P2 A0H27 24 201F 1C 18 SCON 9F 9E 9D 9C 9B 9A 99 98 98H17 16 15 14 13 12 11 10 22H0F 0E 0D 0C 0B 0A 9 8 21H P1 97 90H7 6 5 4 3 2 1 0 20H
BANCO 3 TCON 8F 8E 8D 8C 8B 8A 89 88 88HBANCO 2BANCO 1 P0 87 86 85 84 83 82 81 80 80HBANCO 0 SFRRAM INTERNA
2/22/2000 Dr. Alejandro Vega Salinas24
MODOS DE DIRECCIONAMIENTO
DEL MICROPROCESADOR 8051.
a) DIRECCIONAMIENTO INMEDIATO
b) DIRECCIONAMIENTO DIRECTO
c) DIRECCIONAMIENTO INDIRECTO
d) DIRECCIONAMIENTO INDEXADO
e) DIRECCIONAMIENTO POR REGISTRO
f) DIRECCIONAMIENTO POR BIT
2/22/2000 Dr. Alejandro Vega Salinas25
DIRECCIONAMIENTO INMEDIATOEL VALOR DE UNA CONSTANTE SIGUE AL CODIGO DE OPERACIÓNEN LA MEMORIA DEL PROGRAMA.
MOV A, #64H ; CARGA EL Acc CON 64hex
MOV DPTR, #1234H ; CARGA EL APUNTADOR
ADD A, #120 ; SUMA EL VALOR 120 decimal.
DIRECCIONAMIENTO DIRECTOEL OPERANDO ES ESPECIFICADO POR UNA DIRECCION DE 8 BITSEN DONDE SE ENCUENTRA EL DATO CON EL QUE SE DESEAHACER LA OPERACIÓN. (SOLO EN RAM int. Y SFR).
MOV A, 2EH ; EL ACC. SE CARGA CON EL -DATO QUE SEENCUENTRA EN LA DIREC. 2EH.
MOV 3DH, 4EH
ADD A, 7FH
2/22/2000 Dr. Alejandro Vega Salinas26
DIRECCIONAMIENTO INDIRECTOSE UTILIZA UN REGISTRO EN DONDE SE ENCUENTRA LADIRECCIÓN DEL DATO CON EL QUE SE DESEA REALIZARLA OPERACIÓN.
SE UTILIZAN LOS REGISTROS R0, R1 Y SP, PARA ELDIRECCIONAMIENTO DE 8 BITS.
PARA LAS DIRECCIONES DE 16 BITS SE UTILIZA EL DPTR. TANTORAM int COMO ext. PUEDEN SER DIRECCIONADAS INDIR.
ADD A, @RO ; SUMA AL ACC EL DATO APUNTADO POR R0.
MOV A, @R1 ; CARGA EL ACC. CON DATO APUNTADO R0
MOVX @DPTR, A ; CARGA ACC EN MEM. RAM EXTERNA
MOVX A, @R0
2/22/2000 Dr. Alejandro Vega Salinas27
DIRECCIONAMIENTO POR REGISTRO
SON LAS INSTRUCCIONES QUE UTILIZANCUALQUIERA DE LOS REGISTROS, PARAREALIZAR LA OPERACIÓN.
ADD A, R5
MOV R7, A
2/22/2000 Dr. Alejandro Vega Salinas28
TRANSFERENCIA DE DATOS
RAM INTERNA
MOV <Destino>, <fuente>
MOV A, <fuente> ; A <fuente>.
MOV <Destino> A ; <Destino> A.
MOV DPTR, #DATO ; DPTR 16 bits.
PUSH <fuente> ; INC SP, <@SP> <--f.
POP <Dest> ; <Dest> <- @SP>, DEC SP.
XCH A; <byte> ; ACC <--> <byte>.
XCHD A, @R1 ; ACC <--> @R1 NIBBLES BAJOS.
2/22/2000 Dr. Alejandro Vega Salinas29
DIRECCIONAMIENTO DE TABLAS
RAM EXTERNAMOVX A, @R1 ; A <-- <@Ri>.
MOVX @R1, A ; <@Ri> <--A.
MOVX A, @DPTR ; A <-- <@DPTR>
MOVX @DPTR, A ; <@DPTR> <--A
MEMORIA DEL PROGRAMAMOVC A, @A+DPTR
MOVC A, @A+PC
2/22/2000 Dr. Alejandro Vega Salinas30
INSTRUCCIONES BOOLEANASANL C, bit ; C <-- C. AND. Bit
ANL C, /bit ; C <-- C. AND. NOT.bit
ORL C, bit ; C <-- C. OR. Bit
ORL C, /bit ; C <-- C. OR..NOT. Bit
MOV C, bit ; C <-- bit
CLR C ; C <-- 0
CLR bit ; bit <--0
SETB C ; C <--1
SETB bit ; bit <--1
CPL C ; C <-- NOT.C
CPL bit ; BIT <-- NOT.bit
JC REL ; SI C=1 BRINCA A REL.
JB bit, REL ; SI bit=1, BRINCA A REL.
JBC bit, REL ; SI bit=1, BRINCA Y LIMPIA
2/22/2000 Dr. Alejandro Vega Salinas31
&≥1
& ≥1
P1.1
P2.2
P2.5
2ØH. Ø
21H.3
P1.6
FØ
P3.3
MOV C,P2.2 ;Introducir P2.2 en el acarreo
ORL C,P2.5 ;Relación O con P2.5
ANL C,P1.1 ;Relación Y con P1.1
CPL C ;Invertir el resultado
MOV FØ, C ; Almacenar transitoriamente el resultado
MOV C,2ØH.Ø ;Introducir el bit 2ØH.Ø en el acarreo
ANL C,/21H.3 ;Relación Y con el bit 21H.3 invertido
ORL C,FØ ;Relación O con el bit FØ
ORL C,/P1.6 ;Relación O con el bit P1.6 invertido
MOV P3.3, C ;Transferir a P3.3 el resultado final
Ejemplo del Procesador booleano µC-8051
2/22/2000 Dr. Alejandro Vega Salinas32
REGISTROS INTERNOS DE CONTROL DEL 8051
CY PSW.7 ACARREO
AC PSW.6 ACARREO AUX.
FO PSW.5 USOS GENERALES
RS1 PSW.4 SEL 1 DEL B. DE REG.
RS0 PSW.3 SEL 0. DEL B. DE REG.
OV PSW.2 OVERFLOW
- PSW.1 INDEFINIDA
P PSW.0 PARIDAD*
Si el #’s de bits en el Acc = 1, es Impar P=1, sino P=0
PSW (Palabra del estado del programa)
CYCY ACAC F0F0 RS1RS1 RS0RS0 OVOV -- PP
2/22/2000 Dr. Alejandro Vega Salinas33
PCON (CONTROL DE POTENCIA)
SMOD Dobla el baud rate en la Transmisiónserial cuando se utiliza el timer 1
GF1 Propósitos generales
GF2 Propósitos generales
PD Bajo consumo de energía
80C51BH
IDL Bajo consumo de energía
CMOS
SMODSMOD - - - - GF1 GF0 PD IDL - - GF1 GF0 PD IDL
2/22/2000 Dr. Alejandro Vega Salinas34
IE REG. HABILITADOR DE INTERRUPCIONES
IP REGISTRO DE PRIORIDAD DE INTERRUPCIONES
EA IE.7 DESACTIVA INTER.
ET2 IE.5 PERMITE INT. DEL TIMER2
ES IE.4 PERMITE INT. PTO. SERIAL
ET1 IE.3 PERMITE INT. DEL TIMER1
EX1 IE.2 PERMITE INTER EXTER.1
ET0 IE.1 PERMITE INT. DEL TIMER0
EX0 IE.0 PERMITE INTER. EXTER.0
EAEA - ET2 ES ET1 EX1 ET0 EX0 - ET2 ES ET1 EX1 ET0 EX0
- - PT2 PS- - PT2 PS PT1 PT1 PX1 PT0 PX0 PX1 PT0 PX0PT2 IP.5 ALTA PRIORIDAD PARA T2
PS IP.4 ALTA PRIORIDAD INTERSERIAL
PT1 IP.3 ALTA PRIORIDAD PARA T1
PX1 IP.2 ALTA PRIORIDAD PARA INT 1
PT0 IP.1 ALTA PRIORIDAD PARA T0
PX0 IP.0 ALTA PRIORIDAD PARA INT 0
2/22/2000 Dr. Alejandro Vega Salinas35
TCON REGISTRO DE CONTROL DE
TEMPORIZADORES Y CONTADORES
TF1 TCON.7 Sobreflujo del Timer 1
TR1 TCON.6 Bit de arranque Timer1
TF0 TCON.5 Sobreflujo del Timer0
TR0 TCON.4 Bit de arranque Timer0
IE1 TCON.3 Bit de Transición de INT1
IT1 TCON.2 Control del modo de control de la INT1
IE1 TCON.1 Bit de Transición de INT0
IT0 TCON.0 Control del modo de control de la
INTO
TF1 TF1 TR1 TR1 TF0 TF0 TRO TRO IE1 IE1 IT1 IT1 IE0 IE1IE0 IE1
Recommended