Cualquiera que conozca los parámetros técnicos del microcontrolador AT89C52 puede decírmelo.
AT89C52 es un microcontrolador CMOS de 8 bits de bajo voltaje y alto rendimiento. Contiene 8k bytes de memoria de programa Flash regrabable de solo lectura y 256 bytes de memoria de datos de acceso aleatorio (RAM). Utilizando la tecnología de almacenamiento no volátil de alta densidad de ATMEL, compatible con el sistema de instrucción estándar MCS-51 y con un procesador central de 8 bits de uso general incorporado y una unidad de memoria Flash, el microcontrolador AT89C52 se usa ampliamente en la electrónica. industria.
Edite las principales características funcionales de esta sección
1. Compatible con el sistema de comando MCS51 2. ROM flash de 8k que se puede borrar y escribir repetidamente (más de 1000 veces); 32 puertos de E/S bidireccionales; 4. RAM interna de 256x8 bits; 5. 3 interrupciones de temporizador/contador programables de 16 bits; 8. 2 fuentes de interrupción externas; , ***8 fuentes de interrupción; 9. 2 líneas de interrupción de lectura y escritura, bits de cifrado de 3 niveles 10. Modos de inactividad y apagado de bajo consumo, funciones de suspensión y activación del software 11. PDIP, PQFP; , TQFP y PLCC y otras formas de embalaje para satisfacer las necesidades de diferentes productos.
Edite las funciones de los pines y los voltajes de los pines de esta sección
AT89C52 es un microprocesador de uso general de 8 bits que utiliza el diagrama de pines AT89C52 del paquete PDIP estándar industrial.
El núcleo C51 preciso es el mismo que el 8xc52 general en términos de funciones internas y disposición de pines. Se utiliza principalmente para el control de funciones durante el ajuste de convergencia. Las funciones incluyen la inicialización de componentes funcionales como los registros internos del IC principal de convergencia, RAM de datos e interfaces externas, control de ajuste de convergencia, control de patrón de prueba de convergencia, recepción y decodificación de señal de control remoto por infrarrojos IR y comunicación con la CPU de la placa base, etc. Los pines principales son: XTAL1 (pin 19) y XTAL2 (pin 18) son los puertos de entrada y salida del oscilador y se pueden conectar a un oscilador de cristal externo de 12MHz. RST/Vpd (pin 9) es el puerto de entrada de reinicio y está conectado a un circuito de reinicio compuesto por resistencias y condensadores externos. VCC (pin 40) y VSS (pin 20) son puertos de fuente de alimentación, que están conectados a los terminales positivo y negativo de la fuente de alimentación de 5 V respectivamente. P0~P3 son pines de E/S programables de uso general y sus funciones están definidas por software. En este diseño, el puerto P0 (pines 32~39) se define como el puerto de control de función N1 y está conectado al pin de función correspondiente. de N1, el pin 13 se define como el terminal de entrada IR, los pines 10 y 11 se definen como el puerto de control del bus I2C, que están conectados a los puertos SDAS (pin 18) y SCLS (pin 19) de N1 respectivamente, y los pines. 12, 27 y 28 se definen como señales de intercambio. El puerto de función, conectado al terminal de función correspondiente de la CPU de la placa base, se utiliza para la detección del formato actual y la función de control para ingresar al estado de ajuste de convergencia.
Puerto P0
El puerto P0 es un conjunto de puertos de E/S bidireccionales de drenaje abierto de 8 bits, que también es un puerto de multiplexación de bus de dirección/datos. Cuando se usa como puerto de salida, cada bit puede controlar 8 circuitos de puerta lógica TTL absorbiendo corriente. Al escribir "1" en el puerto P0, se puede usar como terminal de entrada de alta impedancia. Al acceder a la memoria de datos externa o a la memoria de programa, este grupo de líneas de puerto comparte el tiempo la dirección (8 bits inferiores) y la multiplexación del bus de datos, y activa la resistencia pull-up interna durante el acceso. Durante la programación Flash, el puerto P0 recibe el byte de instrucción y durante la verificación del programa, se emite el byte de instrucción. Durante la verificación, se requiere una resistencia pull-up externa.
Puerto P1
P1 es un puerto de E/S bidireccional de 8 bits con resistencia pull-up interna. La etapa de búfer de salida de P1 puede controlar (disipador o corriente de salida) 4 TTL. Circuito de puerta lógica. Escriba "1" en el puerto y lleve el puerto a un nivel alto a través de la resistencia pull-up interna. En este momento, se puede utilizar como puerto de entrada. Cuando se usa como puerto de entrada, debido a que hay una resistencia pull-up interna, se emitirá una corriente (IIL) cuando una señal externa baja un determinado pin.
La diferencia con AT89C51 es que P1.0 y P1.1 también se pueden usar como entrada de conteo externa (P1.0/T2) y entrada (P1.1/T2EX) del temporizador/contador 2 respectivamente, consulte la Tabla 1. Durante la programación Flash y la verificación del programa, P1 recibe la dirección inferior de 8 bits. Tabla. Características funcionales del número de pin de la segunda función de P1.0 y P1.1
P1.0 T2, salida de reloj
P1.1 T2EX (temporizador/contador 2) < /p >
Puerto P2
P2 es un puerto de E/S bidireccional de 8 bits con resistencia pull-up interna. La etapa de búfer de salida de P2 puede controlar (sumidero o corriente de salida) 4 circuitos de puerta lógica TTL. . Escriba "1" en el puerto P2 y lleve el puerto a un nivel alto a través de la resistencia pull-up interna. En este momento, se puede usar como puerto de entrada cuando se usa como puerto de entrada, porque hay un pull-up interno. resistencia, un determinado pin es tirado por una señal externa. Cuando está bajo, se emitirá una corriente (IIL). Al acceder a la memoria de programa externa o a la memoria de datos externa con una dirección de 16 bits (por ejemplo, al ejecutar la instrucción MOVX @DPTR), el puerto P2 envía los datos de la dirección alta de 8 bits. Al acceder a la memoria de datos externa con una dirección de 8 bits (como al ejecutar la instrucción MOVX @RI), el puerto P2 genera el contenido del pestillo P2. Durante la programación o verificación Flash, P2 también recibe direcciones de orden superior y algunas señales de control.
Puerto P3
El puerto P3 es un conjunto de puertos de E/S bidireccionales de 8 bits con resistencia pull-up interna. La etapa de búfer de salida del puerto P3 puede controlar (sumidero o corriente de salida) 4 circuitos de puerta lógica TTL. Cuando se escribe "1" en los puertos P3, las resistencias pull-up internas los elevan y pueden usarse como puertos de entrada. En este momento, el puerto P3 que está bajado externamente utilizará una resistencia pull-up para generar corriente de salida (IIL). Además de ser una línea de puerto de E/S general, el puerto P3 es más importante en su función secundaria. El puerto P3 también recibe algunas señales de control para la programación de la memoria Flash y la verificación del programa.
RST
Restablecer entrada. Cuando el oscilador está funcionando, un nivel alto en el pin RST durante más de dos ciclos de la máquina restablecerá el microcontrolador.
ALE/PROG
Al acceder a la memoria de programa externa o a la memoria de datos, el pulso de salida ALE (Address Latch Enable) se utiliza para bloquear el byte inferior de 8 bits de la dirección. En circunstancias normales, ALE todavía emite una señal de pulso fija a 1/6 de la frecuencia de oscilación del reloj, por lo que puede emitir un reloj externamente o usarse con fines de temporización. Tenga en cuenta que se omitirá un pulso ALE cada vez que se acceda a la memoria de datos externa. Durante la programación de la memoria Flash, este pin también se utiliza para ingresar el pulso de programación (PROG). Si es necesario, la operación ALE se puede desactivar configurando el bit D0 de la unidad 8EH en el área del registro de función especial (SFR). Una vez establecido este bit, sólo una instrucción MOVX y MOVC puede activar ALE. Además, este pin se elevará débilmente cuando el microcontrolador ejecute un programa externo, el bit de desactivación ALE debe configurarse como no válido.
PSEN
La salida de habilitación de almacenamiento de programa (PSEN) es la señal estroboscópica de lectura de la memoria de programa externa. Cuando el AT89C52 recupera instrucciones (o datos) de la memoria de programa externa, cada una. El ciclo de máquina PSEN es válido dos veces, es decir, se emiten dos impulsos. Durante este período, al acceder a la memoria de datos externa, la señal PSEN se omitirá dos veces.
EA/VPP
Acceso externo permitido. Para que la CPU solo acceda a la memoria de programa externa (dirección 0000H-FFFFH), el terminal EA debe permanecer en nivel bajo (conectado a tierra). Cabe señalar que si se programa el bit de cifrado LB1, el estado del terminal EA se bloqueará internamente durante el reinicio. Si el terminal EA es de nivel alto (conectado al terminal Vcc), la CPU ejecuta las instrucciones en la memoria interna del programa. Al programar la memoria Flash, agregue la fuente de alimentación de permiso de programación de 12 V Vpp a este pin. Por supuesto, este debe ser el dispositivo que utiliza el voltaje de programación de 12 V Vpp.
XTAL1
La entrada del amplificador inversor del oscilador y del generador de reloj interno.
XTAL2
La salida del amplificador inversor del oscilador.
Edite los registros de funciones especiales en esta sección
En la memoria en chip AT89C52, las unidades 80H-FFH ***128 son registros de funciones especiales (SFE) y el espacio de direcciones mapa de SFR Como se muestra en la Tabla 2. No todas las direcciones están definidas, solo una parte de los 128 bytes desde 80H hasta FFH está definida y una parte considerable no está definida. La lectura y escritura de unidades indefinidas no será válida, los valores leídos serán inciertos y los datos escritos se perderán. Los datos "1" no deben escribirse en unidades no definidas, ya que a estas unidades se les pueden dar nuevas funciones en productos futuros. En este caso, los valores de estas unidades siempre serán "0" después del reinicio. Además de todo el temporizador/contador 0 y el temporizador/contador 1 de AT89C51, AT89C52 también agrega un temporizador/contador 2. Los bits de control y estado del temporizador/contador 2 están ubicados en T2CON (consulte la Tabla 3) y T2MOD (consulte la Tabla 4). El par de registros (RCAO2H, RCAP2L) son los registros de captura/recarga automática.
Editar esta sección de la memoria de datos
AT89C52 tiene 256 bytes de RAM interna, los 128 bytes superiores de 80H-FFH se superponen con la dirección del registro de función especial (SFR), y también eso es decir, las direcciones de los 128 bytes superiores de RAM y los registros de funciones especiales son las mismas, pero están físicamente separadas. Cuando una instrucción accede a una unidad de dirección interna superior a 7FH, el modo de direccionamiento utilizado en la instrucción es diferente, es decir, el modo de direccionamiento determina si se accede a los 128 bytes superiores de RAM o al registro de función especial. Si la instrucción está en modo de direccionamiento directo, accede al registro de función especial. Por ejemplo, la siguiente instrucción de direccionamiento directo accede a la unidad de dirección del registro de función especial 0A0H (es decir, el puerto P2). MOV 0A0H, #data La instrucción de direccionamiento indirecto accede a los 128 bytes superiores de RAM. Por ejemplo, en la siguiente instrucción de direccionamiento indirecto, el contenido de R0 es 0A0H, entonces la dirección del byte de datos a la que se accede es 0A0H, no el puerto P2 (0A0H). . MOV @R0, #data La operación de pila también es un método de direccionamiento indirecto, por lo que la RAM de datos superior de 128 bits también se puede utilizar como área de pila. ·Temporizador 0 y temporizador 1: El temporizador 0 y el temporizador 1 de AT89C52 funcionan de la misma manera que AT89C51.
Edite esta sección de recursos del chip
Temporizador 2
Características básicas: El temporizador 2 es un temporizador/contador de 16 bits. Se puede utilizar como temporizador o contador de eventos externo. Su modo de funcionamiento se selecciona mediante el bit C/T2 del registro de función especial T2CON (como se muestra en la Tabla 3). El temporizador 2 tiene tres modos de trabajo: modo de captura, modo de recarga automática (conteo ascendente o descendente) y modo de generador de velocidad en baudios. El modo de trabajo se selecciona mediante el bit de control de T2CON. El temporizador 2 consta de dos registros de 8 bits TH2 y TL2. En el modo de funcionamiento del temporizador, el valor del registro TL2 se incrementa en 1 para cada ciclo de la máquina. Dado que un ciclo de la máquina consta de 12 relojes de oscilación, la tasa de conteo es la oscilación. frecuencia 1/12. En el modo de conteo, cuando la señal de entrada externa en el pin T2 genera un flanco descendente de 1 a 0, el valor del registro se incrementa en 1. En este modo de operación, la entrada externa se muestrea durante 5SP2 de cada ciclo de la máquina. . Si el valor tomado en el primer ciclo de la máquina es 1 y el valor tomado en el siguiente ciclo de la máquina es 0, entonces el registro se incrementa en 1 durante S3P1 del siguiente ciclo. Dado que se necesitan 2 ciclos de máquina (24 períodos de oscilador) para reconocer una transición de 1 a 0, la tasa de conteo máxima es 1/24 de la frecuencia del oscilador.
Para garantizar la precisión del muestreo, es necesario mantener el nivel de entrada durante al menos un ciclo completo antes de cambiar para garantizar que la señal de entrada se muestree al menos una vez. Modo de captura: En el modo de captura, se seleccionan dos modos a través del bit de control T2CON EXEN2. Si EXEN2=0, el temporizador 2 es un temporizador o contador de 16 bits. Cuando el conteo se desborda, se activa el indicador de desbordamiento TF2 de T2CON y la interrupción se activa al mismo tiempo. Si EXEN2=1, el temporizador 2 completa la misma operación, y cuando la señal de entrada externa del pin T2EX sufre una transición negativa de 1 a 0, los valores en TH2 y TL2 se capturan en RCAP2H y RCAP2L respectivamente. Además, la transición de la señal del pin T2EX hace que se establezca EXF2 en T2CON. De manera similar a TF2, EXF2 también activará la interrupción. El método de captura se muestra en la Figura 4. Modo de recarga automática (contador ascendente o descendente): Cuando el temporizador 2 funciona en modo de recarga automática de 16 bits, se puede programar en modo de conteo ascendente o descendente. Esta función se puede pasar a través del registro de función especial T2CON (consulte la Tabla 5) seleccionado. por el bit DCEN (permitiendo un conteo descendente). Al restablecerse, el bit DCEN es "0" y el temporizador 2 está configurado para contar de forma progresiva. Cuando se configura DCEN, el temporizador 2 puede contar hacia arriba o hacia abajo, dependiendo del valor del pin T2EX, consulte la Figura 5. Cuando DCEN = 0, el temporizador 2 se configura automáticamente para contar hacia arriba. En este caso, en el modo, el bit de control EXEN2. en T2CON tiene dos opciones si EXEN2 = 0, el temporizador 2 cuenta hasta 0FFFFH y se desborda. Configure TF2 para activar la interrupción. Al mismo tiempo, los registros de conteo de 16 bits RCAP2H y RCAP2L se recargan. ser preestablecido por software. Si EXEN2=1, la recarga de 16 bits del temporizador 2 se activa por un desbordamiento o el flanco descendente de la entrada externa T2EX de 1 a 0. Este pulso establece EXF2, que también genera una interrupción si las interrupciones están habilitadas. La dirección de entrada de interrupción del temporizador 2 es: 002BH - 0032H. Cuando DCEN = 1, se permite que el temporizador 2 cuente hacia arriba o hacia abajo, como se muestra en la Figura 6. En este modo, el pin T2EX controla la dirección del contador. Cuando el pin T2EX es "1" lógico, el temporizador cuenta hacia arriba. Cuando el conteo 0FFFFH se desborda hacia arriba, se establece TF2 y los registros de conteo de 16 bits RCAP2H y RCAP2L se recargan en TH2 y TL2. Cuando el pin T2EX es "0" lógico, el temporizador 2 cuenta hacia atrás. Cuando los valores en TH2 y TL2 son iguales a los valores en RCAP2H y RCAP2L, el conteo se desborda, se configura TF2 y se recarga el valor 0FFFFH. en el registro de tiempos. Cuando el temporizador/contador de eventos 2 se desborda o se desborda por defecto, se establece el bit EXF2. Generador de velocidad en baudios: cuando se configuran TCLK y RCLK en T2CON (Tabla 3), el temporizador/contador 2 se utiliza como generador de velocidad en baudios. Si se utiliza el Temporizador/Contador 2 como transmisor o receptor, sus velocidades en baudios de transmisión y recepción pueden ser diferentes, y el Temporizador 1 se utiliza para otras funciones, como se muestra en la Figura 7. Si se configuran RCLK y TCLK, el temporizador 2 funciona en modo generador de velocidad en baudios. El modo del generador de velocidad en baudios es similar al modo de recarga automática. En este modo, una reinversión TH2 hace que el registro del temporizador 2 se recargue con el valor de 16 bits en RCAP2H y RCAP2L, que se configura mediante software. En el modo 1 y el modo 3, la velocidad en baudios está determinada por la velocidad de desbordamiento del temporizador 2 de acuerdo con la siguiente fórmula: La velocidad en baudios de los modos 1 y 3 = la velocidad de desbordamiento del temporizador/16 El temporizador puede funcionar en ambos modos de temporización y Para el modo de conteo, en la mayoría de las aplicaciones, funciona en modo de sincronización (C/T2=0).
Cuando el Temporizador 2 se utiliza como generador de velocidad en baudios, su funcionamiento es diferente al de un temporizador. Normalmente, cuando se utiliza como temporizador, el valor del registro aumenta en 1 en cada ciclo de la máquina (1/12 de frecuencia de oscilación). y como velocidad en baudios Cuando se utiliza el generador, el valor del registro se incrementa en 1 en cada momento del estado (1/2 frecuencia de oscilación). La fórmula de cálculo de la velocidad en baudios es la siguiente: La velocidad en baudios de los modos 1 y 3 = frecuencia de oscilación/{32*[65536-(RCP2H, RCP2L)]} donde (RCAP2H, RCAP2L) es el valor sin signo de 16 bits en Número RCAP2H y RCAP2L. El circuito utilizado por el temporizador 2 como generador de velocidad en baudios se muestra en la Figura 7. El modo de trabajo de velocidad en baudios sólo es válido cuando RCLK o TCLK=1 en T2CON. En el modo de generador de velocidad en baudios, un cambio TH2 no puede configurar TF2, por lo que no se genera ninguna interrupción. Sin embargo, si se configura EXEN2 y el terminal T2EX genera una transición negativa de 1 a 0, se configurará EXF2. En este momento, el contenido de (RCAP2H, RCAP2L) no se puede volver a cargar en TH2 y TL2. Por lo tanto, cuando se utiliza el Temporizador 2 como generador de velocidad en baudios, T2EX se puede utilizar como fuente de interrupción externa adicional. Cabe señalar que cuando el Temporizador 2 funciona como un dispositivo de velocidad de baudios y se ejecuta como un temporizador (TR2=1), no se puede acceder a TH2 y TL2. Debido a que cada temporizador de estado se incrementará en 1 en este momento, leerlo y escribirlo dará como resultado un valor incierto. Sin embargo, RCAP2 se puede leer pero no escribir, porque la operación de escritura será una recarga y la operación de escritura puede causar errores de escritura y/o recarga. El temporizador debe apagarse (borrar TR2) antes de acceder al registro del Temporizador 2 o RCAP2. Salida de reloj programable: el temporizador 2 se puede programar para emitir una señal de reloj con un ciclo de trabajo de 50 desde P1.0, como se muestra en la Figura 8. Además de ser un puerto de E/S estándar, el pin P1.0 también se puede programar para funcionar como entrada de reloj externo del temporizador/contador 2 y para generar un pulso de reloj con un ciclo de trabajo de 50. Cuando la frecuencia de oscilación del reloj es de 16 MHz, el rango de frecuencia del reloj de salida es de 61 Hz a 4 MHz. Al configurar el temporizador/contador 2 como generador de reloj, C/T2 (T2CON.1) = 0, T2OE (T2MOD.1) = 1, el temporizador debe iniciarse o detenerse mediante TR2 (T2CON.2). La frecuencia de salida del reloj depende de la frecuencia de oscilación y el valor de recarga del registro de captura del Temporizador 2 (RCAP2H, RCAP2L), la fórmula es la siguiente: Frecuencia de reloj de salida = frecuencia del oscilador/{4*[65536-(RCP2H, RCP2L)] } En el modo de salida de reloj, girar el temporizador 2 no generará una interrupción. Esta característica es similar a cuando se usa como generador de velocidad en baudios. Cuando el Temporizador 2 se usa como generador de velocidad en baudios, también se puede usar como generador de reloj, pero debe tenerse en cuenta que la velocidad en baudios y la frecuencia de salida del reloj no se pueden determinar por separado porque usan RCAP2L y RCAP2L juntos.
Puerto serie UART
El UART del AT89C52 funciona de la misma forma que el AT89C51.
Oscilador de Reloj
AT89C52 tiene un amplificador inversor de alta ganancia utilizado para formar el oscilador interno. Los pines XTAL1 y XTAL2 son los terminales de entrada y salida del amplificador respectivamente. Este amplificador, junto con un cristal de cuarzo fuera del chip o un resonador cerámico como elemento de retroalimentación, forma un oscilador autoexcitado. Consulte la Figura 10 para ver el circuito de oscilación. El cristal de cuarzo externo (o resonador cerámico) y los condensadores C1 y C2 están conectados en el circuito de retroalimentación del amplificador para formar un circuito de oscilación paralelo. Aunque no existen requisitos muy estrictos para los condensadores externos C1 y C2, la capacitancia afectará ligeramente la frecuencia de oscilación, la estabilidad del oscilador, la dificultad de iniciar la oscilación y la estabilidad de la temperatura. Si se utiliza cristal de cuarzo, nosotros. El condensador recomendado es 30pF±10pF, y si se utiliza un resonador cerámico, se recomienda elegir 40pF±10pF. Los usuarios también pueden utilizar un reloj externo.
El circuito que utiliza un reloj externo se muestra en el lado derecho de la Figura 10. En este caso, el pulso del reloj externo se conecta al terminal XTAL1, que es el terminal de entrada del generador de reloj interno, y XTAL2 se deja flotando. Dado que la señal de reloj externo se utiliza como señal de reloj interno después de pasar por un flip-flop dividido por 2, no existen requisitos especiales para el ciclo de trabajo de la señal de reloj externo, pero sí la duración mínima de alto nivel y la duración máxima. La duración de bajo nivel debe cumplir con los requisitos técnicos del producto.
Editar esta sección de interrupciones
AT89C52 *** tiene 6 vectores de interrupción: dos interrupciones externas (INT0 e INT1), 3 interrupciones de temporizador (temporizador 0, 1, 2) y puerto serie interrumpir. Todas estas fuentes de interrupción se muestran en la Figura 9. Estas fuentes de interrupción se pueden controlar para habilitar o deshabilitar cada interrupción configurando o borrando el registro especial IE respectivamente. IE también tiene un bit de desactivación total EA, que controla si todas las interrupciones están habilitadas o deshabilitadas. Tenga en cuenta que IE.6 en la Tabla 5 es un bit reservado y IE.5 también es un bit reservado en AT89C51. Los programadores no deben escribir "1" en estos bits, ya que se utilizan para la expansión de futuros productos de la serie AT89. La interrupción del temporizador 2 es generada por el OR lógico de TF2 y EXF2 en T2CON. Cuando se pasa a la rutina de servicio de interrupción, el hardware no puede borrar estos bits de bandera. De hecho, la rutina de servicio necesita determinar si TF2 o EXF2 generan la. interrupción, y la interrupción es generada por el software. Borre el bit de bandera de interrupción. Los bits de indicador TF0 y TF1 del temporizador 0 y el temporizador 1 se configuran en el estado S5P2 del ciclo de la máquina cuando el temporizador se desborda, y el indicador de interrupción no se consultará hasta el siguiente ciclo de la máquina. Sin embargo, el bit de bandera TF2 del temporizador 2 se establece en el estado S2P2 del ciclo de la máquina cuando el temporizador se desborda, y la bandera se consulta en el mismo ciclo de la máquina.
Editar esta sección modo de bajo consumo
Modo de ahorro de energía inactivo
En el modo de trabajo inactivo, la CPU misma está en estado de suspensión y todos los periféricos del chip Aún activo, este modo es generado por software. En este momento, el contenido de la RAM del chip y todos los registros de funciones especiales se congelan al mismo tiempo. El modo inactivo puede finalizarse mediante cualquier solicitud de interrupción habilitada o reinicio del hardware. Terminar el estado inactivo mediante un reinicio del hardware solo requiere una señal de reinicio válida durante dos ciclos de la máquina. En este estado, el hardware en el chip prohíbe el acceso a la RAM interna, pero puede acceder a los pines del puerto cuando el modo inactivo finaliza con un reinicio. , para evitar posibles daños al puerto por escritura inesperada, la instrucción que sigue a la instrucción que activa el modo inactivo no debe ser una instrucción de escritura en un puerto o memoria externa.
Modo de apagado
En el modo de apagado, el oscilador deja de funcionar. La instrucción que ingresa al modo de apagado es la última instrucción que se ejecuta en la RAM del chip. y registros de funciones especiales. El contenido se congela antes de finalizar el modo de apagado. La única forma de salir del modo de apagado es reiniciando el hardware. Después del reinicio, se redefinirán todos los registros de funciones especiales, pero el contenido de la RAM no cambiará. El reinicio no debería ser válido antes de que Vcc vuelva al funcionamiento normal. nivel, y debe mantenerse durante un cierto período de tiempo. El oscilador se reinicia y opera de manera estable.
Editar esta sección Programación y cifrado
Programación de memoria flash
El microcontrolador AT89C52 tiene un PEROM Flash de 8k bytes en su interior. Esta matriz de almacenamiento Flash ya está en fábrica. estado cuando sale de fábrica en el estado borrado (es decir, el contenido de todas las celdas de memoria es FFH), el usuario puede programarlos en cualquier momento. La interfaz de programación puede recibir señales de habilitación de programación de alto voltaje (12 V) o bajo voltaje (Vcc). El modo de programación de bajo voltaje es adecuado para sistemas de programación en línea de usuario, mientras que el modo de programación de alto voltaje es compatible con programadores EPROM de uso general. Entre los microcontroladores AT89C52, algunos son métodos de programación de bajo voltaje, mientras que otros son métodos de programación de alto voltaje. Los usuarios pueden obtener esta información del modelo en el chip y leyendo el byte de firma en el chip.
La matriz de memoria de programa del AT89C52 se programa mediante escritura de bytes. Cada vez que se escribe un byte, para escribir un byte no nulo en la memoria del programa PEROM en todo el chip, se debe borrar toda la memoria mediante el borrado del contenido del chip.
Método de programación
Antes de programar, la dirección, los datos y las señales de control deben configurarse como se muestra en la Tabla 9 y la Figura 11. El método de programación del AT89C52 es el siguiente: 1. Agregue la señal de dirección de la unidad a programar en la línea de dirección. 2. Agregue los bytes de datos que se escribirán en las líneas de datos. 3. Activar la señal de control correspondiente. 4. En el modo de programación de alto voltaje, agregue un voltaje de programación de 12 V al terminal EA/Vpp. 5. Cada vez que se escribe un byte en la matriz de memoria Flash o se escribe un bit de cifrado de programa, se agrega un pulso de programación ALE/PROG. Cada ciclo de escritura de bytes es autotemporizado, normalmente de aproximadamente 1,5 ms. Repita los pasos 1-5 para cambiar la dirección de la unidad de programación y los datos escritos hasta que se complete toda la programación del archivo.
Cifrado de la memoria del programa
AT89C52 tiene 3 bits de cifrado de programa, que pueden programar (P) o no programar (U) los 3 bits de cifrado LB1, LB2 y LB3 en el chip. . ) Llegar. Cuando se programa el bit de cifrado LB1, durante el período de reinicio, el nivel lógico del terminal EA se muestrea y se bloquea. Si el microcontrolador no se reinicia después del encendido, el valor inicial del bloqueo es un número aleatorio, y este es aleatorio. El número siempre se guardará hasta el reinicio real. Para que el microcontrolador funcione correctamente, el valor del nivel EA bloqueado debe ser consistente con el nivel lógico actual del pin. Además, los bits de cifrado sólo se pueden borrar borrando todo el chip.
Consulta de datos
El microcontrolador AT89C52 utiliza Data Palling para indicar el final de un ciclo de escritura. En un ciclo de escritura, si necesita leer el último byte escrito, lea el bit más alto. los datos (P0.7) son el complemento del bit más alto del byte escrito originalmente. Una vez completado el ciclo de escritura, los datos de salida son datos válidos y se puede ingresar el siguiente ciclo de escritura de bytes. Una vez que comienza el ciclo de escritura, Data Palling puede ser válido en cualquier momento. Listo/Ocupado: El progreso de la programación de bytes se puede monitorear a través de la señal de salida "RDY/BSY". Durante la programación, después de que ALE cambia al nivel alto "H", el nivel de P3.4 (RDY/BSY) baja, lo que indica que el estado de Programación (estado ocupado) Una vez completada la programación, P3.4 pasa al nivel alto para indicar el estado listo. Verificación del programa: Si los bits de cifrado LB1 y LB2 no están programados, los datos del código se pueden volver a leer a través del. líneas de dirección y datos Los datos escritos utilizan el circuito que se muestra en la Figura 12. El bit de cifrado no se puede verificar directamente. La verificación del bit de cifrado se puede verificar verificando la memoria y el estado de escritura: usando la combinación correcta de control. señales (Tabla 6) y mantener el ancho de pulso de bajo nivel del pin ALE/PROG de 10 ms para borrar toda la matriz PEROM (4k bytes) y tres bits de cifrado. La matriz de código escribe cualquier celda que no esté vacía durante el chip. operación de borrado "1", este paso debe realizarse antes de la programación. Lea el byte de firma en el chip: hay 3 bytes de firma en el microcontrolador AT89C52, cuyas direcciones son 030H, 031H y 032H. , modelo y voltaje de programación del dispositivo. La lectura del byte de firma AT89C52 requiere configurar P3.6 y P3.7 en un nivel lógico bajo. El proceso de lectura del byte de firma es similar a la verificación normal de las unidades 030H, 031H y 032H. Solo el valor de retorno tiene el siguiente significado: (030H) = 1EH El producto se declara fabricado por ATMEL (031H) = 52H se declara como microcontrolador AT89C52 (032H) = FFH se declara como voltaje de programación de 12 V