Red de conocimientos turísticos - Información de alquiler - Acerca del ensamblador de reloj del microcontrolador (preferiblemente "Estado Islámico" 7 principios) Correo electrónico: 545939772@qq.com

Acerca del ensamblador de reloj del microcontrolador (preferiblemente "Estado Islámico" 7 principios) Correo electrónico: 545939772@qq.com

Para la programación, primero configure la hora del calendario del DS1302 en 2011-6-29? 16:25:30, inicie y muestre la hora del calendario en tiempo real a través de la pantalla LCD.

Programación en lenguaje ensamblador:

T_RST? ¿Pedacitos? p 1.2;DS1302 restablecer pin de línea

T_CLK? ¿Pedacitos? ¿P1.3? ;¿Pin de línea de reloj DS1302?

¿T_IO? ¿Pedacitos? p 1.4; pin de línea de datos DS1302

bit RS P1.7? ; Definición de línea de control LCD1602

RW bit P1.6

e bit P1.5

; Almacenar "segundos, minutos, horas, día, mes, semana" , año" el valor inicial 40h ~ 46h se formatea según el formato del registro

; 30h~3fh almacena los segundos, minutos, horas, días, meses, semanas y años leídos por 1302; según el formato en el formato de registro

;*************************************** ***** *******

ORG? 0000 horas

Gerente General de AJMP

ORG? 00.30 horas

Principalmente: MOV SP, #50H

¿Llamar? Inicializar

MOV A, #80H escribe el búfer de visualización con la dirección inicial de la fila 1 y la columna 1 para comenzar a mostrar la fecha:

¿Llamar? WC51R

MOV A,#D?

¿Llamar? WC51DDR

MOV A, #A?

¿Llamar? WC51DDR

MOV A,# T'?

¿Llamar? WC51DDR

MOV A,#E?

¿Llamar? WC51DDR

¿Respuesta MOV, # ':'?

¿Llamar? WC51DDR

MOV A, #0C0H La dirección inicial del búfer de visualización de escritura es la fila 2, columna 1, y la hora se muestra como:

¿Llamar? WC51R

MOV A,# T'?

¿Llamar? WC51DDR

Respuesta MOV, ¿#yo?

¿Llamar? WC51DDR

MOV A,#M?

¿Llamar? WC51DDR

MOV A,#E?

¿Llamar? WC51DDR

¿Respuesta MOV, # ':'?

¿Llamar? WC51DDR

¿MOV? 40H, # 30h40 horas ~ 46 horas valor inicial

¿MOV? 41H, #25h

¿MOV? 42H, #16h

¿MOV? 43H, #29h

¿MOV? 44H, #06h

¿MOV? 45H, #03?

¿MOV? 46H, #11h

LCALL SET1302? ;Escribir la fecha 11-06-29 y hora 16:25:30 en DS1302? Miércoles

Representante de ventas: llamé al 1302

MOV A, #86H La dirección inicial del búfer de visualización de escritura es la fila 1, columna 7, que muestra la fecha actual.

¿Llamar? WC51R

¿MOV A, #2?

¿Llamar? WC51DDR

¿Respuesta MOV, #'0 '?

¿Llamar? ¿WC51DDR?

¿MOV? a, el año 36H se divide en diez dígitos y un dígito, conversión de visualización de caracteres.

¿MOV? b, #10H

DIV? Tipo de sangre AB

¿Suplemento? a, #30H

¿Llamar? ¿WC51DDR?

¿MOV? A, B

¿Suplemento? a, #30H

¿Llamar? WC51DDR

¿Respuesta MOV, #'-'?

¿Llamar? ¿WC51DDR?

¿MOV? a, el mes 34H se divide en decenas y dígitos, y se convierte la visualización de caracteres.

¿MOV? b, #10H

DIV? Tipo de sangre AB

¿Suplemento? a, #30H

¿Llamar? ¿WC51DDR?

¿MOV? A, B

¿Suplemento? a, #30H

¿Llamar? WC51DDR

¿Respuesta MOV, #'-'?

¿Llamar? ¿WC51DDR?

¿MOV? a, el día 33H se divide en decenas y dígitos, y los caracteres se muestran mediante conversión.

¿MOV? b, #10H

DIV? Tipo de sangre AB

¿Suplemento? a, #30H

¿Llamar? ¿WC51DDR?

¿MOV? A, B

¿Suplemento? a, #30H

¿Llamar? WC51DDR

MOV A, #0c6H La dirección inicial del búfer de visualización de escritura es la hora actual a partir de la segunda fila y la séptima columna.

¿Llamar? WC51R

¿MOV? a, la hora 32H se divide en decenas y dígitos, y se muestran los caracteres convertidos.

¿MOV? b, #10H

DIV? Tipo de sangre AB

¿Suplemento? a, #30H

¿Llamar? ¿WC51DDR?

¿MOV? A, B

¿Suplemento? a, #30H

¿Llamar? WC51DDR

¿Respuesta MOV, # ':'?

¿Llamar? ¿WC51DDR?

¿MOV? a, 31H; dividido en decenas y un dígito, se muestran los caracteres convertidos.

¿MOV? b, #10H

DIV? Tipo de sangre AB

¿Suplemento? a, #30H

¿Llamar? ¿WC51DDR?

¿MOV? A, B

¿Suplemento? a, #30H

¿Llamar? WC51DDR

¿Respuesta MOV, # ':'?

¿Llamar? ¿WC51DDR?

¿MOV? a, 30H segundos se dividen en 10 dígitos y 10 dígitos, y se muestran los caracteres convertidos.

¿MOV? b, #10H

DIV? Tipo de sangre AB

¿Suplemento? a, #30H

¿Llamar? ¿WC51DDR?

¿MOV? A, B

¿Suplemento? a, #30H

¿Llamar? WC51DDR

Respuesta MOV, # '? '?

¿Llamar? ¿WC51DDR?

¿MOV? a, Semana de visualización 35H

¿Suplemento? a, #30H

¿Llamar? WC51DDR

LJMP? Representa

; Escribir subrutina

; Función: escribe un byte de DS1302 y el contenido escrito está en el registro B.

****************************************** * **

Escribe:? MOV? 50h, #8? ;Un byte tiene 8 bits y se desplaza 8 veces.

INBIT1:? MOV? uno,? B

¿RRC? a; Ingrese CY

MOV a través de a? b,? ¿Un

MOV? T_IO,? ¿do? ;Introducir chip

SETB? Hora CLK

¿CLR? Hora CLK

¿DJNZ? 50h, INBIT1

Remojar en agua para ablandar

;*************************** ******** ****************

; Lectura de subrutina

Función: leer un byte de DS1302. , lee el contenido en el acumulador a.

****************************************** * **

Leer:? MOV? 50h, #8; Un byte tiene 8 bits y se desplaza 8 veces.

SALIDA1:MOV? do,? ¿T_IO transferido del chip a CY

RRC? a; Entrando en una nueva era

SETB? Hora CLK

¿CLR? Hora CLK

¿DJNZ? 50h, oferta 1

Remojar en agua para suavizar

;*************************** ***** **********************************

;? Nombre de subrutina SET1302

; Función: Establece el tiempo inicial de DS1302 e inicia el temporizador.

; Llamada: escribir subrutina

; Parámetros de entrada: tiempo inicial segundos, minutos, horas, días, meses, semanas, años en unidades de 40h~46h.

;Parámetros de exportación: ninguno

;Recursos afectados: a? ¿b? ¿R0? ¿R1? ¿R4? ¿R7?

****************************************** * *******************

SET1302:¿CLR? ¿Primera hora

CLR? Hora CLK

¿SETB? T_RST?

¿MOV? b,? #8EH? ;Palabra de comando de control

LCALL? Escribir

MOV B? # 00H Borre el bit de protección contra escritura w antes de la operación de escritura.

¿LCAMAR? ¿Escribir?

¿SETB CLK?

CLR T_RST

MOV R0,? #40H? ; Los datos de segundos, minutos, horas, días, meses, semanas y años están en unidades de 40h~46h.

MOV R7,? #7 ?;***7 bytes

MOV R1,? #80H? ? ;Escribe el segundo comando de registro

S13021:? ¿CLR? ¿Primera hora

CLR? Hora CLK

¿SETB? T_RST?

¿MOV? b,? ¿R1? ? ;Escribe el segundo comando

LCALL? ¿Escribir?

¿MOV? uno,? ¿@R0? ;Escribir segundos datos

¿MOV? b,? ¿UNA LLAMADA? ¿Escribir?

¿INC? r0; apunta al siguiente calendario escrito y datos de reloj.

¿INC? ¿R1? ? ;Señalar el siguiente calendario, registrar el reloj

¿INC? R1

¿SETB? T_CLK?

¿CLR? ¿Primera hora

DJNZ? R7,? ¿S13021? ; Si aún no has terminado de escribir, continúa escribiendo el siguiente.

¿CLR? ¿Primera hora

CLR? Hora CLK

¿SETB? T_RST?

¿MOV? b,? #8EH? ;Registro de control

LCALL? Escribir

MOV? b,? #80H? Después de escribir, active el control de protección contra escritura y configure WP en 1.

¿LCAMAR? Escribir

SETB? T_CLK?

¿CLR? t_RST; Finalizar el proceso de escritura

Remojar en agua para suavizar

************************* ****************************************

;? GET1302 nombre de subrutina

; Función: Leer tiempo de DS1302.

; Llamada: escribir y escribir subrutinas, leer subrutinas

; Parámetros de entrada: Ninguno

; La semana y el año se almacenan en unidades de 30h~36h.

;Recursos afectados:a? ¿b? ¿R0? ¿R1? ¿R4? R7

****************************************** *******************

¿MOV? ¿R0? # 30H

MOV R7, No. 7

MOV R1, # 81H; comando de registro de cuenta regresiva

G13021:? CLR T_RST

CLR T_CLK

¿SETB RST?

¿MOV B? ¿R1? ;Escribir el segundo comando de registro

LCALL? ¿Escribir?

¿LCAMAR? ¿Leer

MOV? @R0, A; almacena los datos leídos

INC R0? ; apunta a la siguiente ubicación de almacenamiento para el calendario y el reloj.

¿INC R1? ;Señalar el siguiente calendario, registro del reloj

INC R1

SETB CLK?

CLR T_RST

DJNZ R7,? g 13021; ​​No lo termines, mira el siguiente.

Remojar en agua para suavizarlo

; subrutina de inicialización de LCD

Inicialización:? MOV? a,# 00000001H;cls

¿Llamar? WC51R

MOV A, #00111000B? ;Utilice datos de 8 bits, muestre dos líneas y utilice una fuente de 5×7.

¿LCAMAR? WC51R

MOV A, # 00001100 b; La pantalla está encendida, el cursor está apagado y los caracteres no parpadean.

¿LCAMAR? WC51R

MOV A, # 00000110B; Cuando el personaje no se mueve, el cursor se moverá automáticamente un espacio hacia la derecha.

¿LCAMAR? WC51R

Remojar en agua para suavizar

; Verificar subrutina ocupada

F_BUSY: ¿Empujar? ¿ACC? ;Proteger la escena

MOV·P2

CLR? Inglés estándar

SETB? Arma de radiación (abreviatura de arma de radiación)

Esperando: CLR E

¿SETB? E

JB P2.7, ¿espera? ;Ocupado, esperando

¿ACC popular? ; No ocupado, restablezca la escena.

Remojar en agua para suavizar

; escribir subrutina de comando

WC51R:? ¿Llamar? f _Ocupado

CLR E

CLR? Inglés estándar

¿CLR? Arma de radiación (abreviatura de arma de radiación)

¿SETB? E

¿MOV? P2, ACC

CLR? E

Remojado en agua para suavizarlo

; Escribir subrutina de datos

WC51DDR: ACALL? f _Ocupado

CLR E

SETB? Inglés estándar

¿CLR? Arma de radiación (abreviatura de arma de radiación)

¿SETB? E

¿MOV? P2, ACC

CLR? E

Remojar en agua para ablandar

Fin