Acerca del ensamblador de reloj del microcontrolador (preferiblemente "Estado Islámico" 7 principios) Correo electrónico: 545939772@qq.com
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