La Red de Conocimientos Pedagógicos - Conocimientos matemáticos - Diagrama principal de aprendizaje de la luz de control remoto por infrarrojos basado en AT89C52

Diagrama principal de aprendizaje de la luz de control remoto por infrarrojos basado en AT89C52

Función de pin y voltaje de pin

AT89C52 es un microprocesador de uso general de 8 bits que adopta el diagrama de pin AT89C52 del paquete PDIP estándar industrial

El C51. El núcleo 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 el registro interno 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 puertos de entrada y salida del oscilador y se pueden conectar a un oscilador de cristal externo de 12 MHz. 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 (40? pin) y VSS (20? pin) son puertos de fuente de alimentación, que están conectados a los extremos positivo y negativo de la fuente de alimentación de 5V respectivamente. P0~P3 son pines de E/S programables de uso general y sus funciones están definidas por software. En este diseño, los puertos P0 (pines 32~39) se definen como puertos de control de funciones N1, correspondientes a N1. El pin 13 se define como el terminal de entrada IR. Los pines 10 y 11 se definen como puertos de control del bus I2C. Están conectados a los puertos SDAS (18 pines) y SCLS (19 pines) de N1 respectivamente. ? y 28? se definen como puertos de función de señal de intercambio, conectados a los terminales de función correspondientes de la CPU de la placa base, para la detección del formato actual y la función de control de entrada 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 son puertos de multiplexación de bus de direcciones/datos. Cuando se usa como puerto de salida, cada bit puede controlar 8 circuitos de puerta lógica TTL absorbiendo corriente. Cuando se escribe "1" en el puerto P0, se puede usar como 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 de conversión de direcciones (8 bits inferiores) y 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.

Puerto P1

P1 es un puerto de E/S bidireccional de 8 bits con una resistencia pull-up interna. La etapa de búfer de salida de P1 puede controlar (disipador o corriente de salida) 4. Circuitos de puerta lógica TTL. 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 utilizar como entrada de conteo externa (P1.0/T2) y entrada (P1.1/T2EX) del temporizador/contador 2 respectivamente. . ? Durante la programación Flash y la verificación del programa, P1 recibe los 8 bits inferiores de la dirección. ? Tabla. ¿Funciones secundarias de P1.0 y P1.1? ¿Número de pin?

¿P1.0?T2, ¿salida de reloj?

P1.1?T2EX (Temporizador). /Contador 2)?

¿Puerto P2?

¿P2? es un puerto de E/S bidireccional de 8 bits con una resistencia pull-up interna. La etapa puede controlar (sumidero o fuente de corriente) 4 puertas lógicas 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 de conexión, un determinado pin está bloqueado por una señal externa. Cuando se baja, 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 (como al ejecutar la instrucción MOVX@DPTR), el puerto P2 envía datos de dirección de 8 bits altos.

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 de 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 resistencias pull-up internas. 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 el puerto P3, la resistencia pull-up interna los eleva y se pueden usar como puerto de entrada. En este momento, el puerto P3 que está bajado externamente utilizará una resistencia pull-up para generar corriente (IIL). Además de ser una línea de puerto de E/S general, el puerto P3 es más importante como su segunda función. 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 los 8 bits inferiores 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? en la unidad 8EH en el área de 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 ejecuta un programa externo, el bit de prohibició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. PSEN? es válido dos veces por ciclo de máquina, 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 alto nivel (conectado al terminal Vcc), la CPU ejecutará las instrucciones en la memoria interna del programa. Al programar la memoria Flash, este pin se acopla con la fuente de alimentación Vpp permitida de programación de 12 V. Por supuesto, esto debe ser que el dispositivo utilice 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? el SFR? El mapeo del espacio de direcciones se muestra en la Tabla 2?. ? No todas las direcciones están definidas. Sólo una parte de los bytes desde 80H hasta FFH***128 están definidas y una parte considerable no está definida. ¿Leer y escribir 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 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 (ver Tabla 3) y T2MOD (ver Tabla 4). El par de registros (RCAO2H, RCAP2L) es el temporizador 2 en modo de captura de 16 bits o automático de 16 bits. Registro de captura/recarga automática en modo de recarga.

Editar esta sección de la memoria de datos

AT89C52 tiene 256 bytes de RAM interna, 80H-FFH tiene 128 bytes y la dirección del registro de función especial (SFR) es La superpuesta, es decir, Los 128 bytes superiores de RAM y los registros de funciones especiales tienen la misma dirección, pero están físicamente separados. 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 de RAM superiores 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 la RAM. Por ejemplo, en la siguiente instrucción de direccionamiento indirecto, el contenido de R0 es 0A0H, en su lugar. de P2? Puerto (0A0H). ? MOV? @R0, #data? La operación de pila también es un método de direccionamiento indirecto, por lo que los 128 bits superiores de la RAM de datos también se pueden 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, ya que un ciclo de la máquina consta de 12 relojes de oscilación que constituyen, por tanto, el conteo. La velocidad es 1/12 de la frecuencia de oscilación. ? 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 aumenta en 1. En este modo de trabajo, durante el 5SP2? muestreo de entrada externa. 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 ciclos de oscilación) para reconocer una transición de 1 a 0, la velocidad de conteo máxima es 1/24 de la frecuencia de oscilación. 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? 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?. Además, la transición de la señal del pin T2EX? hace que se establezca EXF2? en T2CON? 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. ) para seleccionar mediante el bit DCEN? (permitiendo el conteo regresivo). Al restablecerse, el bit DCEN se establece en "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? El bit de control EXEN2 en T2CON tiene dos opciones. Si EXEN2 = 0, el temporizador 2 cuenta hasta 0FFFFH y se desborda, configurando TF2 para activar la interrupción y, al mismo tiempo, se recargan los registros de conteo de 16 bits RCAP2H y RCAP2L. ¿Los valores de RCAP2H? y RCAP2L? se pueden preestablecer mediante 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 y, si la interrupción está habilitada, también se genera una interrupción. La dirección de entrada de interrupción del temporizador 2 es: 002BH-0032H. ? Cuando DCEN=1?, el temporizador 2 puede contar 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? Cuando los valores en TH2? y TL2? y 0FFFFH se establece al mismo tiempo. El valor se recarga en el registro de temporización. ? Cuando el temporizador/contador 2? se desborda o se desborda, el bit EXF2? ? Generador de velocidad en baudios: Cuando se configuran TCLK? y RCLK? en T2CON (Tabla 3), ¿el temporizador/contador 2? Si el temporizador/contador 2 actúa 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 están configurados RCLK? y TCLK?, ¿el temporizador 2? 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 los modos 1 y 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 en los modos 1 y 3 = la velocidad de desbordamiento del temporizador/16. El temporizador puede funcionar. También funciona en el modo de sincronización y en el modo de conteo. En la mayoría de las aplicaciones, funciona en el 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 Cuando se utiliza como generador de velocidad en baudios, el valor del registro se incrementa en 1 en cada momento del estado (1/2? frecuencia del oscilador). 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 16 en RCAP2H y RCAP2L ?bit número sin firmar. 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 solo es válido cuando RCLK? o TCLK=1 en T2CON?. En el modo de funcionamiento del generador de velocidad en baudios, TH2?flip no puede configurar TF2?, por lo que no se genera ninguna interrupción.

Sin embargo, si EXEN2 está configurado y el terminal T2EX produce 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 TH2 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 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, para RCAP2? es legible pero no escribible, porque la operación de escritura será una recarga y la operación de escritura puede causar un error de escritura y/o recarga. ¿Se debe apagar el temporizador (borrar TR2) antes de acceder al registro Timer2 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 que sirva como entrada de reloj externo y pulso de reloj de salida del temporizador/contador 2 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, debe iniciarse o detenerse mediante el temporizador TR2 (T2CON.2). La frecuencia de salida del reloj depende de la frecuencia del oscilador y del 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, el giro del 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 modo de trabajo UART del AT89C52 es el mismo que el modo de trabajo del AT89C51.

Oscilador de Reloj

AT89C52 ¿Hay un amplificador inversor de alta ganancia que se utiliza para formar el oscilador interno? ¿Los pines XTAL1 y XTAL2 son los terminales de entrada y salida? 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, el tamaño del condensador afectará ligeramente la frecuencia de oscilación, la estabilidad del oscilador, la dificultad de iniciar la oscilación y la estabilidad de la temperatura. Recomendamos que el condensador sea de 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 a la derecha en 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 del reloj externo se utiliza como señal del reloj interno después de pasar por un flip-flop dividido en 2", no existen requisitos especiales para el ciclo de trabajo de la señal del reloj externo, pero ¿la duración mínima de alto nivel y la duración máxima? duración de bajo nivel Debe cumplir con los requisitos de las condiciones técnicas 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 serie interrupción del puerto. 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? 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? Los programadores no deben escribir "1" en estos bits, son extensiones para 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. Al pasar a la rutina de servicio de interrupción, el hardware no puede borrar estos bits de indicador. De hecho, la rutina de servicio necesita determinar si es TF2 o EXF2. ? genera una interrupción y el software borra el bit de indicador 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 en sí está en estado de suspensión y todo el chip está en El periférico permanece activo de forma generada 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. Solo se necesitan dos ciclos de la máquina para terminar el estado inactivo mediante un reinicio del hardware con una señal de reinicio válida. 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 está en modo inactivo. termina con un reinicio, para evitar posibles En caso de una escritura inesperada en un puerto, la instrucción que sigue a la instrucción que activa el modo inactivo no debe ser una instrucción de escritura en el puerto o la 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 ejecutada, ¿la RAM en el chip y? el registro de función especial 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, todos los registros de funciones especiales se redefinirán, pero el contenido de la RAM no cambiará. Antes de que Vcc vuelva al nivel operativo normal, el reinicio debería ser inválido y. debe mantenerse durante un cierto período de tiempo. Haga que el oscilador se reinicie y funcione de manera estable.

Editar esta sección Programación y Cifrado

Programación de memoria Flash

El microcontrolador AT89C52 tiene 8k bytes de Flash PEROM en su interior. Esta matriz de almacenamiento Flash sale de fábrica. en estado borrado (es decir, el contenido de todas las celdas de memoria es FFH) y el usuario puede programarlo en cualquier momento. La interfaz de programación puede recibir una señal de programación de habilitació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 circuito 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 a partir del número de 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, se debe escribir un byte no nulo en la memoria del programa PEROM en todo el chip y se debe utilizar el método de borrado del chip para borrar el contenido. de toda la memoria.

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. ? ?Agregue los bytes de datos que se escribirán en la línea de datos. ? ?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. "Agregue un pulso de programación ALE/PROG" por cada byte escrito en la matriz de memoria Flash o cada bit de cifrado del programa escrito. Cada ciclo de escritura de bytes es autotemporizado, normalmente alrededor de 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 los 3 bits de cifrado LB1, LB2 y LB3 en el chip (P) o No programar ( U) para conseguirlo. ? 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 número aleatorio se guardará hasta el reinicio real. Para que el microcontrolador funcione correctamente, el valor del nivel de EA bloqueado debe ser coherente 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, si necesita leer el último byte escrito, entonces. El bit más alto de los datos leídos (P0.7) es el complemento del bit más alto del byte escrito original. 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, ¿Datos?Palling? ?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? alcance el nivel alto "H", el nivel del terminal P3.4 (RDY/BSY) baja , que indica 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 pueden pasar a través de la dirección. y línea de datos para volver a leer los datos escritos originalmente, utilizando el circuito que se muestra en la Figura 12. El bit de cifrado no se puede verificar directamente y la verificación del bit de cifrado se puede verificar verificando y escribiendo el estado de la memoria. borrado: use el control. La combinación correcta de señales (Tabla 6) y el mantenimiento del ancho de pulso de bajo nivel del pin ALE/PROG? de 10 mS pueden borrar la matriz PEROM? La matriz de códigos se borra en el chip. Además de escribir "1" en cualquier unidad que no esté vacía durante la operación, este paso debe realizarse antes de la programación. Lea el byte de firma en el chip: hay 3 bytes de firma en el AT89C52. microcontrolador, las direcciones son 030H, 031H y 032H. Se utilizan para declarar el fabricante, el modelo y el voltaje de programación del dispositivo. Para leer el byte de firma AT89C52, ¿es necesario configurar P3.6 y P3.7? nivel bajo. El proceso de lectura del byte de firma y las unidades 030H, 031H? La verificación normal de 032H? es similar, solo que el significado del valor devuelto es el siguiente: ? (030H) = 1EH? ATMEL ? (031H) = 52H? ¿Voltaje de programación declarado? (032H) = 5V.