Introducción detallada del microcontrolador 89S51
El microordenador de un solo chip MCS-51 es un producto lanzado por la empresa estadounidense INTE en 1980. Los productos típicos incluyen 80 31 (que no tiene memoria de programa interna y ha sido eliminado del mercado en uso real) y 8051 (el chip usa HMOS y el consumo de energía es de 630 mW, que es 5 veces mayor que el de 89C51). El uso real ha sido eliminado por el mercado) y 8751. Hasta ahora, el microcontrolador compatible de la serie MCS-5 de 1 núcleo sigue siendo una aplicación.
Los productos convencionales (como el popular 89S51, el 89C51 descontinuado, etc.), los materiales de capacitación en universidades y escuelas vocacionales todavía están aprendiendo la base teórica representada por MCS-51.
Alguna literatura incluso llama al 8051 la serie de microcontroladores MCS-51, el representante más típico. Debido a la influencia de gran alcance del microcontrolador MCS-51, muchas empresas han lanzado series de microcontroladores compatibles. En otras palabras, el núcleo MCS-51 se ha convertido en realidad en la configuración estándar de un microcontrolador de 8 bits.
51 productos de microcontroladores de otras empresas son compatibles con el núcleo MCS-51. El mismo programa se ejecuta en el hardware de varios fabricantes de microcontroladores y los resultados son los mismos, como 89C51 (descontinuado) de ATMEL, 89S51, PHILIPS (Philips), WINBOND (Winbond), etc. El 89C51 descontinuado al que a menudo nos referimos se refiere al AT89C56544 de ATMEL. Al mismo tiempo, se han mejorado muchas funciones sobre la base original, como el reloj. Aún mejor, la ROM original (escribir una vez) se toma de Flash (el contenido de la memoria del programa se puede reescribir al menos 1000 veces). El rendimiento de AT89C51 ya es excelente en 8051.
Pero en términos de comercialización, 89C51 ha sido desafiado por el campo PIC MCU. El defecto más grave del 89C51 es que no admite la función ISP (programa de actualización en línea). Se deben agregar nuevas funciones como la función ISP para continuar mejor con la leyenda del MCS-51. En este contexto, 89S51 reemplazó a 89C51. Ahora, 89S51 se ha convertido en el nuevo favorito en el mercado de aplicaciones prácticas. Atmel, que tiene la mayor cuota de mercado, ha sido descontinuado y será reemplazado por AT89S51 pulgadas
Se ha mejorado el proceso. 89S51 adopta un nuevo proceso 0,35, que reduce costos, mejora las funciones y aumenta la competitividad. 89SXX es compatible con chips de la serie 51 como el 89CXX. El 89C51 que se ve en el mercado es en realidad un enorme inventario de la producción inicial de Atmel. Sin duda, Atmel puede reanudar la producción del AT89C51 si el mercado lo exige.
El microcontrolador AT89S51/LS51 es un microcontrolador de bajo consumo con memoria flash de programación de cursos en línea de 4 KB. Es compatible con el sistema de instrucciones y pines del microcontrolador general de la serie 80C51. La memoria flash en chip se puede reprogramar en línea o mediante memoria no volátil. Integra una CPU de uso general y Flash programable en línea en un chip para formar un microcontrolador potente, flexible y rentable.
AT89S51/LS51 tiene las siguientes características:
-La memoria de programa en chip contiene memoria flash de 4 KB, lo que permite programación en línea y ciclos de escritura de hasta 1000 veces;
- La memoria de datos en el chip contiene 128 bytes de RAM;
-Los puertos de E/S tienen 32 líneas de E/S programables;
-Con dos líneas de E/S de 16 bits ;
-La estructura de interrupción del sistema de interrupción tiene seis fuentes de interrupción, cinco vectores terminales y dos prioridades de interrupción;
-El puerto serie es un puerto de comunicación serie full-duplex;
-Con dos punteros de datos DPTR0 y dptr 1;
-Los modos de bajo consumo y ahorro de energía incluyen modo de ahorro de energía y modo de apagado;
- Incluye nivel 3 bits de bloqueo de programa;
-El voltaje de la fuente de alimentación del AT89S 51 es de 4,0-5,5 V, y el voltaje de la fuente de alimentación del AT89LS51 es de 2,7-4,0 V;;
-Frecuencia del oscilador 0- 33 MHz (AT89S51), 0-16 MHz (a 89ls 51);
-Con temporizador de vigilancia en el chip;
-Modos de programación flexibles en el chip (byte y página Modo de programación);
-Fibra óptica de plástico; con modo de indicador de apagado;
En comparación con 89C51, las nuevas características de 89S51 incluyen:
-A muchas más nuevas funciones, rendimiento muy mejorado, básicamente el mismo precio, ¡incluso más bajo que el 89C51!
Descripción detallada: Función de programación online ISP, la ventaja de esta función es que al reescribir el programa en la memoria del microcontrolador, no es necesario sacar el chip del trabajo
Separarlo del entorno. es una característica poderosa y fácil de usar.
-La frecuencia máxima de funcionamiento es de 33MHz. Como todos sabemos, la frecuencia operativa límite del 89C51 es 24M, lo que significa que el S51 tiene una frecuencia operativa más alta, por lo que tiene una velocidad de cálculo más rápida.
-Con canal serie UART dúplex.
-El temporizador de vigilancia está integrado internamente y no es necesario conectar el circuito de la unidad del temporizador de vigilancia como el 89C51.
-Indicador de doble dato.
-Indicador de apagado.
-El nuevo algoritmo de cifrado imposibilita el descifrado de 89S51, lo que mejora enormemente la confidencialidad del programa.
Podemos proteger eficazmente los derechos de propiedad intelectual contra infracciones.
-Compatibilidad: Totalmente compatible con todos los productos de la serie 51. Como 8051, 89C51, etc.
Deja el producto. Es decir, todos los programas en libros de texto y tutoriales en línea (independientemente de si el microcontrolador utilizado en el libro de texto es 8051)
Ya sea 89C51 o MCS-51, etc. ), puede ejecutarse como de costumbre en 89S51, que es la llamada compatibilidad con versiones anteriores.
Pinout y funciones
AT89S51/LS está disponible en tres paquetes: PDIP, TQFP y PLCC. La distribución de pines del paquete PDIP se muestra en la figura.
Las funciones del pin son las siguientes:
- Puerto P0 - Puerto de E/S bidireccional de drenaje abierto de 8 bits.
El puerto P0 se puede utilizar como puerto de E/S de uso general, pero se debe conectar una resistencia pull-up externamente. Como puertos de salida, cada pin recibe 8 corrientes TTL. Como entrada, primero configure el pin en 1.
El puerto P0 también se puede utilizar como una línea multiplex para el bus de dirección/datos de ocho bits de orden inferior de la memoria de programa externa y la memoria de datos. En este modo, el puerto P0 contiene una resistencia pull-up interna.
Cuando se programa en Flash, el puerto Po acepta datos de código; durante la verificación de la programación, el puerto P0 genera datos de bytes de código (se requiere una resistencia pull-up externa).
-Puerto P1-Puerto de E/S bidireccional de 8 bits con resistencia pull-up de cable incorporada.
P1 se puede utilizar como un puerto de E/S normal. El búfer de salida puede controlar cuatro cargas TTL; cuando se usa como entrada, el pin cruzado se establece en 1 y se eleva a alto mediante una resistencia pull-up en el chip.
El pin del puerto P1 puede ser bajado por una carga externa y la resistencia pull-up proporciona la corriente pull-up.
Paralelo en Flash
Durante la programación y verificación, el puerto P1 puede ingresar la dirección de byte bajo.
Durante la programación y verificación en serie, P1.0/MOSI, P1.6/OSI y P1.7/SCK son los pines de entrada, salida y pulso de cambio de datos en serie, respectivamente.
E/S bidireccional de 8 bits con resistencias pull-up internas.
Cuando el puerto P2 se utiliza como puerto de salida, puede controlar cuatro cargas TTL. Cuando se utiliza como puerto de entrada, el pin primero se establece en 1 y se eleva a alto mediante una resistencia pull-up interna. Si la carga es baja, la corriente sale a través de la resistencia pull-up interna.
Cuando la CPU accede a la memoria externa con una dirección de 16 bits, el puerto P2 proporciona la dirección superior de 8 bits. Cuando la CPU usa una dirección de 8 bits para direccionar la memoria externa, el puerto P2 es el contenido del registro de función especial P2.
Al programar y verificar FLASH en paralelo, el puerto P2 puede ingresar la dirección de byte alto y algunas señales de control.
- Puerto P3 - Este puerto tiene un puerto bidireccional de 8 bits con resistencias pull-up internas.
Cuando el puerto P3 está a la izquierda y a la derecha, el buffer de salida puede absorber 4 TTL de corriente. Cuando se usa como puerto de entrada, configure manualmente el pin en 1 y eleve la resistencia pull-up interna a alto. Si la carga externa es baja, la corriente sale a través de la resistencia pull-up interna.
Cuando se utiliza FLASH para programación y verificación en paralelo, el puerto P3 puede ingresar algunas señales de control.
Además de las funciones generales de E/S, el puerto P3 tiene otras funciones, como se muestra en la siguiente tabla:
Pins
Flags
Explicación
P3.0
Recibir datos
Entrada de puerto serie
P3.1
TXD
Salida de puerto serie
P3.2
INT0
Interrupción externa 0
P3.3
INT1
Interrupción externa 0
P3.4
T0
Entrada de conteo externo del temporizador T0
p>P3.5
T1
Entrada de conteo externo del temporizador T1
P3.6
Reacción Fahrenheit (Wassermann reacción)
Puerta de escritura de la memoria de datos externa
P3.7
Ruta
Puerta de lectura del control de la memoria de datos externa
-ale/Prog-data latch permite/programar el terminal de señal de pulso.
Cuando la CPU accede a la memoria de programa externa o a la memoria de datos externa, ALE proporciona una señal de bloqueo de datos para bloquear la dirección inferior de 8 bits en el bloqueo de datos falsificado.
Al programar en paralelo con FLASH, este pin también es la entrada del pulso negativo de programación.
Durante el funcionamiento normal, el puerto pin emite un pulso con una frecuencia nominal, que es 1/6 de la frecuencia nominal y se puede utilizar para temporización externa u otras señales de disparo. Cabe señalar que cada vez que la CPU accede a la memoria de datos externa, perderá un pulso ALE.
Si es necesario, la operación ALE se puede desactivar configurando el bit 0 de SFR (8EH) en 1, pero ALE sigue siendo válido cuando se utilizan las instrucciones MOVC o MOVX. En otras palabras, el bit de desactivación de ALE no afecta el acceso a la memoria externa.
-psen-Memoria de programa externa lectura de señal estroboscópica, nivel bajo activo.
Cuando el AT89S51/LS51 ejecuta código de instrucción desde una memoria de programa externa, PSEN es válido dos veces por ciclo de máquina. No es válido al acceder a la memoria de datos externa.
-ea/VPP-habilitado por memoria de programa externa.
Cuando EA está conectado a tierra, la CPU solo ejecuta el programa en la memoria de programa externa; cuando EA está conectado a Vcc, la CPU primero ejecuta el programa en la memoria de programa en el chip (0000H - 0FFFH). ), y luego cambia automáticamente para ejecutar el programa de la memoria de programa externa (1000h-ffffh).
Si el bit de bloqueo de programación LB1 no está programado (P), el valor EA quedará bloqueado en el chip durante el reinicio.
Al programar en paralelo con FLASH, este pin puede participar en el voltaje de programación de 12V Vpp.
-Xtal1 y XTAL2-Xtal1 es la entrada del amplificador inversor del oscilador en chip y del generador de reloj, y XTAL2 es la salida del amplificador inversor del oscilador en chip.
-Primera sección de entrada de reinicio, el nivel alto está activo.
En el estado de funcionamiento estable y efectivo del oscilador, el terminal RST permanece alto durante dos ciclos de la máquina para restablecer el dispositivo. Cuando el temporizador de vigilancia desborda el terminal de salida, este pin generará un nivel alto durante 98 ciclos de oscilación.
-Vcc: el terminal de entrada del voltaje de la fuente de alimentación.
-GND...-Tierra de alimentación.
Memoria de funciones especiales
Memoria de funciones especiales de AT89S51/LS51
Número de serie
Dirección
Bandera
Valor de restablecimiento
Explicación
1
80H
proteína p0
familiar benigna hipercalcemia hipercalcemia benigna familiar
Pierno del puerto P0
2
81H
Tarjeta especial
07H
Indicador de pila
Tres
82H
DP0L
00H
Puntero de datos DPTR0 byte bajo
Cuatro
83H
DPoH
00H
Puntero de datos DPTR0 Byte alto
Cinco
84H
DP1L
00H
Byte bajo del puntero de datos DPTR1
p>Seis p>
85H
DP1H
00H
Byte alto del puntero de datos DPTR1
Siete
87H
PCON
0XXX0000B
Temporizador de control
Nueve
89H
TMOD
00H
Registro del modo temporizador
10
8AH
TL0
00H
Temporizador 0 byte bajo
11
8BH
TL1
00H
Temporizador 1 byte bajo
12
8CH
TH0
00H
Temporizador 0 byte alto
13
8DH
TH1
00H
Temporizador 1 byte alto
14 p>
8EH
AUXR
XXX00XX0B
Registro Auxiliar
15
90H
P1
hipercalcemia benigna familiar hipercalcemia benigna familiar
P1 Latch
16
98H
SCON
00H
Registro de control de puerto serie
17
99H
SBUF
XXXXXXXXB
Búfer de datos del puerto serie
18
0AOH
P2
Hipercalcemia benigna familiar
Pestillo del puerto P2
19
OA2H
AUXR1
XXXX XXX0B
Registro auxiliar 1
20
0A6H
WDTRST
XXXX XXXXB
Registro de restablecimiento de WDT
21
0A8H
Ingeniería Industrial
0XX00000B
Registro de habilitación de interrupción
22
0BOH
P3
hipo familiar benigno
ercalcemia hipercalcemia benigna familiar
P3 puerto de cierre
23
0B8H
Protocolo de Internet
p>XX00000B
Registro de prioridad de interrupción
24
0D0H
Visa de trabajo para graduados
00H
PacificSouthwest
25
0E0H
Centro de control aéreo (EE. UU.)
p>Je
Batería p>
26
0FOH
B
00H
Registro de dirección base
Indicador de fallo de alimentación
POF es PCON.4. Cuando se enciende, POF se establece en 1 y el bit POF se puede configurar y borrar mediante software. El reinicio no afecta el valor del bit POF.
Registros de terminales y interrupciones
AT89S51/LS51 contiene 6 fuentes de interrupción y 5 vectores de interrupción (direcciones de entrada de rutina de servicio de interrupción), como se muestra en la siguiente figura:
Los indicadores de interrupción TF0 y TF1 del temporizador 0 y el temporizador 1 en la figura se configuran en S5P2 de cada ciclo de la máquina (cuando se produce un desbordamiento) y luego son consultados por la línea en el chip en el siguiente ciclo de la máquina.
No se puede habilitar/deshabilitar ninguna fuente de interrupción configurando o borrando un bit en la memoria de función especial. IE contiene un bit de control maestro de interrupción EA que puede habilitar/deshabilitar todas las interrupciones.
es decir, su función es la siguiente:
Dirección IE = A8H valor de reinicio = 0xx0000b
Bits direccionables
MSB LSB
p>
Dirección de bit
AFH
AEH
Vasopresina
Intercambio automatizado
Lesiones personales
Helicóptero de ataque avanzado
A9H
A8H
Símbolo de bit
Juegos de artes electrónicas
—
—
El Salvador
ET1
EX1
ET0
EX0
Un 1 en cada posición indica que las interrupciones están habilitadas y borrar cada bit a 0 indica que las interrupciones están deshabilitadas.
Incluye:
Bit de control principal de interrupción EA. EA=0, deshabilita todas las interrupciones; EA=1. La habilitación de cada interrupción depende de los bits de control de las otras interrupciones.
Bit de habilitación de interrupción serie del puerto serie ES.
Bit de habilitación de interrupción del temporizador ET1 1.
EX1 interrupción externa 1 bit de habilitación de interrupción.
Bit de habilitación de interrupción del temporizador ET0 0.
EX0 interrupción externa 0 bit de habilitación de interrupción.