FAMILIA 80x1,80x2,89x1.

Comencemos:

El 8031 y 8032 se diferencian del 8051 y 8052 en que los primeros no tienen rom interna.Y luego el numero xxx1 del xxx2 se diferencian en los TIMER.
Todos ellos funcionan bajo las mismas instrucciones que detallaremos mas adelante.
Estos micros pueden funcionar como microcontroladores o microprocesadores.
Los 89xx pueden llegar a funcionar hasta con cristal de 24 Mhz, mientras los 80xx lo hacen a 12 Mhz.

Veamos el patillaje:
Pat 1 a la 8: Puerto 1, de entrada o salida segun nos interese.
Pat 9: Reset, puesta a uno genera una inicialización del micro.
Pat 10: Pin 0 del puerto 3, pero ademas tiene otra funcion, la de recepción serie (RXD).
Pat 11: Pin 1 del puerto 3, pero como la anterior tambien es la transmisión serie(TXD).
Pat 12: Pin 2 del puerto 3, y la interrupción externa 0 (INT0).
Pat 13: Pin 3 del puerto 3, y la interrupción externa 1 (INT1).
Pat 14: Pin 4 del puerto 3, y entrada externa al TIMER 0 (T0).
Pat 15: Pin 5 del puerto 3, y entrada externa al TIMER 1 (T1).
Pat 16: Pin 6 del puerto 3, y cuando funcione como microprocesador esta sera WR (escritura).
Pat 17: Pin 7 del puerto 3, y cuando funcione como microprocesador esta sera RD (lectura).
Estas patillas pueden funcionar como Puerto o como la segunda función que tiene cada una.
Pat 18: Conexión del cristal de cuarzo 2 (XTAL2).Si se usa un reloj externo esta pat. no se conecta.
Pat 19: Conexión del cristal de cuarzo 1 (XTAL1).Si se usa reloj externo esta seria la entrada.
Pat 20: GND o tierra.
Pat 21 a la 28: Puerto 2 de entrada o salida.En caso de usarse como microprocesador este puerto seria la parte alta del BUS de DIRECCIONES, desde la A8 a la A15.
Pat 29: Salida acceso a memoria datos. A "1" el acceso es a memoria de datos y a "0" a memoria de programa.Es como una direccion mas, la A16.
Pat 30: Salida ALE para separar el BUS de datos del de direcciones que van multiplexados.
Pat 31: Puesta a "0" funcionara como microprocesador, a "1" como microcontrolador.
La diferencia entre que funcione como microprocesador o microcontrolador es que si lo hace como microprocesador al iniciarse buscara el programa en memoria externa y si lo hace como microcontrolador, se iniciara en la memoria interna dejando libre todos los puertos externos.
Pat 32 a la 39: Puerto 0 de entrada o salida. Si funciona como microprocesador este sera el BUS de Datos(D0-D7) multiplexado con la parte baja del BUS de Direcciones(A0-A7).
Pat 40: Vcc, + 5 voltios.

Todos los puertos tienen una dirección interna para acceder a cada patilla de cada puerto. Cada patilla tiene una dirección diferente y cada registro interno tambien:
Registro        dirección
B:                      0F0h               ;REGISTRO B
ACC:                0E0h               ;ACUMULADOR
PSW:                0D0h              ;PROGRAM STATUS WORD
IP:                     0B8h              ;INTERRUPT PRIORITY
P3:                    0B0h              ;PUERTO 3.0 HASTA LA 0B7h QUE SERA PUERTO 3.7
IE:                     0A8h              ;INTERRUPT ENABLE
P2:                    0A0h              ;PUERTO 2.0, HASTA LA 0A7h QUE SERA PUERTO 2.7
SBUF:                 99h              ;BUFFER DE ENVIO
SCON:                98h              ;CONTROL SERIE
P1:                       90h              ;PUERTO 1.0 HASTA LA 097h QUE SERA PUERTO 1.7
TH1:                    8Dh              ;TIMER 1 PARTE ALTA
TH0:                    8Ch              ;TIMER 0 PARTE ALTA
TL1:                     8Bh              ;TIMER 1 PARTE BAJA
TL0:                     8Ah              ;TIMER 0 PARTE BAJA
TMOD:                89h               ;MODO TIMER , BIT NO DIRECCIONABLE
TCON:                88h                ;CONTROL TIMER , BIT NO DIRECCIONABLE
PCON:                87h                ;REGISTRO POWER CONTROL,BIT NO DIRECCIONABLE
DPH:                   83h                 ;PUNTERO DE DATOS PARTE ALTA
DPL:                    82h                 ;PUNTERO DE DATOS PARTE BAJA
SP:                       81h                 ;PUNTERO DE STACK
P0:                       80h                 ;PUERTO 0.0 HASTA LA 87h QUE SERA PUERTO 0.7
 

BIT INTERNOS DIRECCIONABLES
;
CY:                     0D7h               ;CARRY FLAG
AC:                     0D6h               ;AUXILIARY-CARRY FLAG
F0:                      0D5h               ;USER FLAG 0
RS1:                    0D4h               ;REGISTER SELECT MSB
RS0:                    0D3h               ;REGISTER SELECT LSB
OV:                     0D2h               ;OVERFLOW FLAG
P:                         0D0h               ;PARITY FLAG
PS:                       0BCh              ;PRIORITY SERIAL PORT
PT1:                     0BBh              ;PRIORITY TIMER 1
PX1:                     0BAh             ;PRIORITY EXTERNAL 1
PT0:                     0B9h              ;PRIORITY TIMER 0
PX0:                    0B8h              ;PRIORITY EXTERNAL 0
EA:                      0AFh              ;ENABLE ALL INTERRUPT
ES:                      0ACh              ;ENABLE SERIAL INTERRUPT
ET1:                    0ABh              ;ENABLE TIMER 1 INTERRUPT
EX1:                   0AAh              ;ENABLE EXTERNAL 1 INTERR
ET0:                    0A9h              ;ENABLE TIMER 0 INTERRUPT
EX0:                   0A8h              ;ENABLE EXTERNAL 0 INTERR
SM0:                   09Fh              ;SERIAL MODE 0
SM1:                   09Eh              ;SERIAL MODE 1
SM2:                   09Dh              ;SERIAL MODE 2
REN:                   09Ch              ;SERIAL RECEPTION ENABLE
TB8:                    09Bh              ;TRANSMITT BIT 8
RB8:                    09Ah              ;RECEIVE BIT 8
TI:                      099h              ;TRANSMIT INTERRUPT FLAG
RI:                      098h              ;RECEIVE INTERRUPT FLAG
TF1:                   08Fh              ;TIMER 1 OVERFLOW FLAG
TR1:                  08Eh              ;TIMER 1 RUN CONTROL BIT
TF0:                   08Dh              ;TIMER 0 OVERFLOW FLAG
TR0:                   08Ch              ;TIMER 0 RUN CONTROL BIT
IE1:                   08Bh              ;EXT INTERR. 1 EDGE FLAG
IT1:                   08Ah              ;EXT INTERR. 1 TYPE FLAG
IE0:                   089h              ;EXT INTERR. 0 EDGE FLAG
IT0:                   088h              ;EXT INTERR. 0 TYPE FLAG
 
 

-Caracteristicas del 8051

-Todas las instrucciones del 8051

Vamos a la practica:

- Ensamblador,despues de haber escrito vuestro programa en un editor de texto denominarlo con la extension .a51 para el 8051(o para cualquier otro). Luego para ensamblarlo bajo D.O.S. poner: easm51 + nombre del fichero.a51; este generara los archivos con extenxiones .hex, .lst, .err si hay algun error, etc. Este programa se podra grabar en una memoria Eprom, EEprom, Prom o Rom a gusto de cada uno.Aqui teneis el circuito de la placa que he creado:Circuito con el 8051

-Y por que no este completito  Simulador para que probeis vuestros programas. Cuando se inicia el simulador cargar ficheros ya ensamblados ( .hex).(Atencion este fichero ocupa 4,29Mb).Eso si la ayuda esta muy bien, explica todas las instrucciones, interrupciones, etc.

Un Programador:

Para los 89C51,89C52 (Totalmente compatibles con la familia 80xx) y para 89C1051 y 89C2051, microcontroladores de 20 pines y 1 y 2 K de eeprom para el programa. Aquí esta.

Aplicaciones: (probadas y OK)

- Control de un LCD  ,con el que podeis mostrar letras en un LCD.
- Comunicación serie  ,con este programa podeis recibir y enviar datos a traves del puerto serie.
- Sirena ,sonido que imita una sirena.
-Manual para el HBASIC del micro 8051HB.(en construcción).