¿Cuáles son las funciones de cada uno de los cuatro registros de control del chip de reloj DS12C887 y cómo controlarlo con un microcontrolador 51? ¡Gracias!

Lo encontré, déjame mostrártelo

1 Características del dispositivo

El chip de reloj en tiempo real DS12C887 tiene funciones completas y se puede usar directamente reemplace el calendario del reloj en el chip IBM PC DS12887; al mismo tiempo, sus pines también son compatibles con MC146818B y DS12887. Dado que DS12C887 puede generar automáticamente información de tiempo como siglo, año, mes, día, hora, minuto y segundo, se agrega internamente un registro de siglo, utilizando así circuitos de hardware para resolver el problema del "milenio". DS12C887 tiene un litio incorporado; batería y una externa Cuando está apagado, su información de hora interna se puede mantener durante 10 años para registrar la hora dentro de un día, hay dos modos: formato de 12 horas y formato de 24 horas; En el modo de reloj de 12 horas, AM y PM se utilizan para distinguir la mañana y la tarde. También hay dos formas de expresar la hora, una se expresa mediante números binarios y la otra mediante código BCD. DS12C887 tiene 128 bytes de RAM; , De los cuales la RAM de 11 bytes se usa para almacenar información de tiempo, la RAM de 4 bytes se usa para almacenar la información de control del DS12C887, llamada registro de control, y el usuario usa la RAM de uso general de 113 bytes. Además, el usuario también puede programar el DS12C887 para implementar una variedad de salidas de ondas cuadradas y sus interrupciones internas de tres vías se pueden proteger mediante software.

Funciones de 2 pines

La disposición de los pines del DS12C887 se muestra en la Figura 1. La descripción de la función de cada pin es la siguiente: GND, VCC: fuente de alimentación de CC, donde se conecta VCC a la entrada de 5 V está conectada a tierra. Cuando la entrada VCC es de 5 V, el usuario puede acceder a los datos en la RAM en el DS12C887 y leerlos y escribirlos cuando la entrada VCC es inferior a 4,25 V. leyendo y escribiendo la RAM interna En este momento, el usuario no puede obtener correctamente la información de tiempo en el chip cuando la entrada VCC es inferior a 3 V, el DS12C887 cambiará automáticamente la fuente de alimentación a la batería de litio interna para garantizar que la interna. El circuito puede funcionar normalmente.

MOT: pin de selección de modo, DA12C887 tiene dos modos de trabajo, a saber, el modo Motorola y el modo Intel. Cuando MOT está conectado a VCC, el modo de trabajo seleccionado es el modo Motorola. Cuando MOT está conectado a GND, el modo seleccionado. El modo de trabajo es el modo Intel. Este artículo analiza principalmente el modo Intel.

SQW: pin de salida de onda cuadrada. Cuando el voltaje de la fuente de alimentación VCC es superior a 4,25 V, el pin SQW puede realizar una salida de onda cuadrada. En este momento, el usuario puede obtener la salida de 13 tipos de cuadrados. señales de onda programando el registro de control.

AD0~AD7: bus de datos de direcciones multiplexadas. Este bus adopta tecnología de multiplexación por división de tiempo. En la primera mitad del ciclo del bus, lo que aparece en AD0~AD7 es la información de dirección, que se puede utilizar para estroboscópicamente. la RAM DS12C887, la información de datos aparece en AD0 ~ AD7 en la segunda mitad del ciclo del bus.

AS: pin de entrada de luz estroboscópica de dirección Durante las operaciones de lectura y escritura, el flanco ascendente de AS retiene la información de dirección que aparece en AD0~AD7 en el DS12C887, y el siguiente flanco descendente borra AD0~AD7 independientemente de si. la información de dirección en el DS12C887 es válida o no, el DS12C887 realizará esta operación.

DS/RD: Selección de datos o pin de entrada de lectura. Este pin tiene dos modos de trabajo. Cuando MOT está conectado a VCC, se selecciona el modo de trabajo de Motorola. En este modo de trabajo, cada ciclo de bus. de DS es de alto nivel y se llama luz estroboscópica de datos. En la operación de lectura, el flanco ascendente de DS hace que el DS12C887 envíe los datos internos a los buses AD0~AD7 para lectura externa.

En la operación de escritura, el flanco descendente de DS hará que los datos en el bus AD0 ~ AD7 se bloqueen en el DS12C887; cuando MOT está conectado a GND, se selecciona el modo de operación Intel. En este modo, este pin es la lectura. habilitar el pin de entrada, es decir, habilitar lectura.

R/W: Terminal de entrada de lectura/escritura. Este pin también tiene 2 modos de trabajo. Cuando MOT está conectado a VCC, R/W funciona en modo Motorola. En este momento, la función de este pin es distinguir si se realiza una operación de lectura o una operación de escritura. Cuando R/W es de alto nivel, es una operación de lectura, y cuando R/W es de bajo nivel, es una escritura. Cuando MOT está conectado a GND, este pin funciona en modo Intle y se utiliza como entrada de habilitación de escritura, es decir, habilitación de escritura.

CS: Entrada de selección de chip, activa en nivel bajo.

IRQ: Entrada de solicitud de interrupción, activa en nivel bajo. Cuando este pin está activo, no tiene ningún efecto sobre el reloj, el calendario y el contenido de la RAM en el DS12C887. En general, solo afecta el registro de control interno. Aplicaciones, RESET se puede conectar directamente a VCC, lo que puede garantizar que los registros de control interno del DS12C887 no se vean afectados cuando se apaga la alimentación.

En DS12C887, se utilizan 11 bytes de RAM para almacenar información de tiempo y 4 bytes para almacenar información de control. Las direcciones y valores específicos se enumeran en la Tabla 1.

Se puede ver en la Tabla 1: DS12C887 tiene 4 registros de control, incluido A-B dentro del registro de control. Los usuarios pueden acceder a ellos en cualquier momento para controlar el DS12C887.

Tabla 1 Función de almacenamiento de DS12C887

Rango de valores

Número decimal del rango de valores de la función de dirección

Código BCD binario

0 segundos 0~59 00~3B 00~59

Alarma de 1 segundo 0~59 00~3B 00~59

2 minutos 059 00~3B 00~59

Alarma de 3 minutos 0~59 00~3B 00~59

Modo de 12 horas 0~12 01~0C AM,

81~8C PM

01~12AM,

4 81~92PM

Modo de 24 horas 0~23 00~17 00~23

Timbre de alarma de hora, 12 Reloj de horas 1~12 01~0C AM,

81~8C PM

01~12AM,

5 81~92PM

Alarma de hora, reloj de 24 horas 0~23 00~17 00~23

6 Día de la semana (domingo=1) 1~7 01~07 01~07

7 días 1~31 01~1F 01~31

Agosto 1~12 01~0C 01~12

9 años 0~99 00~63 00~99

10 Registro de control A

11 Registro de control B

12 Registro de control C

13 Registro de control D

Siglo 50 0 ~99 NA 19, 20

3 Aplicación

En diversos equipos, electrodomésticos, instrumentos y sistemas de control industrial, DS12C887 se puede utilizar fácilmente para formar la adquisición de tiempo

unidad para lograr diversas adquisiciones de tiempo.

La Figura 2 es un diagrama de circuito de adquisición de tiempo compuesto por el microcontrolador 8031 ​​y DS12C887.

La dirección base de DS12C887 es 7F00H y el programa correspondiente está escrito en lenguaje C51 (tomando el modo de trabajo Intel como ejemplo). ).

El programa de inicialización del circuito de adquisición de tiempo compuesto por el microcontrolador 8031 ​​y DS12C887

es el siguiente:

XBYTE[0x7F00 0x0B] =0x82 <; /p>

XBYTE[0x7F00 0x0A]=0xA0;

XBYTE[0x7F00 0x0A]=0x20

p>

/*Todas las interrupciones están deshabilitadas, 24- reloj horario,

modo código BCD*/

Se obtienen los siguientes programas horarios:

datos de caracteres sin firmar t-century;

datos de caracteres sin firmar t-año;

datos de caracteres sin firmar t-mes;

datos de caracteres sin firmar t-fecha;

datos de caracteres sin firmar t-semana;

datos de caracteres sin firmar t-hora;

datos de caracteres sin firmar t-minuto;

datos de caracteres sin firmar t -segundo;

if( (XBYTE[7F00 0x0A]amp;0x80)!=0){

t-century=XBYTE[0x7F00 0x32];/*Leer siglo* /

t-year=XBYTE [Ox7F00 0x09]; /*Leer el año*/

t-month=XBYTE[Ox7F00 0x08] /*Leer el mes*/

t-date=XBYTE[Ox7F00 0x07]; /*Leer fecha*/

t-week=XBYTE[Ox7F00 0x06] /*Leer día de la semana*/

t-hour=XBYTE[Ox7F00 0x04 ];/*Leer hora*/

t-minuto=XBYTE[DS12887 0x02];/*Leer minuto*/

t-segundo = Alta probabilidad y una buena elección de tiempo circuitos generadores.