Red de conocimiento informático - Conocimiento del nombre de dominio - Requisitos urgentes para el programa de reloj electrónico del microcontrolador

Requisitos urgentes para el programa de reloj electrónico del microcontrolador

El espectáculo es demasiado largo. Déjame un correo electrónico. Esta es sólo la primera parte.

disp primer EQU 30H;disp primera ubicación de memoria de dirección

Timbre EQU p 1.4;timbre

Combus EQU 2FH tiempos guardados

p><; p>ORG 0000H Dirección de inicio de ejecución del programa

Inicio LJMP; saltar a la etiqueta y comenzar a mantener

ORG 0003H Interrupción externa 0 interrumpir programa

RETI Interrupción externa 0; retorno de interrupción

ORG 000BH temporizador T0 proceso de interrupción

LJMP INTT0 salta a INTT0 para su ejecución.

ORG 0013H; Interrupción externa 1 programa de interrupción

RETI; Interrupción externa 1 retorno de interrupción

ORG 001BH Proceso de interrupción del temporizador T1

LJMP intt 1; salta a INTT1 para su ejecución.

ORG 0023H entrada del programa de interrupción en serie

RETI; retorno del programa de interrupción en serie

QQQQ: MOV A, #10H

Bahía MOV, 79H

MUL AB

Agregar uno, 78H

MOV·Combs

bucle bs: LCALL ds 20 ms TELÉFONO CORTO

LCALL DL1S

LCALL DL1S

LCALL DL1S

DJNZ CONBS, BSLOOP

CLR 08H CLEAR Marca de hora

AJMP START1

;* * * * * * * * * * * * * *Se inicia el programa principal* * * * * * * * * * * * * *

Inicio: tono de llamada CLR;

LCALL ST muestra el año, mes, día y número de clase cuando se enciende.

MOV R0, # 00H borra la unidad de almacenamiento 00H~H

MOV R7 # 80H

Borrar pantalla: MOV @R0, #00H

INC R0

DJNZ R7, CLEARDISP

MOV 20H, #00H borrar 20 horas (para marcar)

MOV 7AH, #0AH entrada "off" Datos

MOV TMOD, # 11H; Sean t0 y t1 temporizadores de 16 bits.

MOV TL0, # 0B0H50 valor inicial de temporización de milisegundos (para temporización T0)

MOV TH0, # 3CH50 valor inicial de temporización de milisegundos

MOV TL1, # 0B0H50 milisegundos valor inicial de temporización (temporización de flash T1)

MOV TH1, # 3CH50 valor inicial de temporización de milisegundos

SETB EA; interrupción completa habilitada

SETB ET0 permite interrupción T0;

SETB TR0; activa la interrupción T0

MOV R4, # 14H; conteo de tiempo de 1 s (50 milisegundos*20)

MOV DISPFIRST, unidad de visualización # 70H Son 70H ~ 75H.

; El siguiente es el bucle del programa principal

START1: visualización LCALL; subrutina de visualización de llamada

JNB P1.0, ajuste 1 cuando P1.0; El puerto está a las 0 en punto, vaya al programa de ajuste de hora.

JNB P1.1, función de cronómetro FUNSS, presione la tecla P1.1 para ajustar la hora y restar 1.

JNB P1.2, cronómetro FUNPT, botón, reloj

JNB P1.3, configuración del reloj despertador temporizado TSFUN

JB 08H, el símbolo QQQQ es 1, decir la hora.

AJMP inicia 1; cuando P1.1 es 1, vuelve a START1.

FUNPT: LJMP FUNPT

; El siguiente es el procedimiento de configuración de la hora de la alarma. Presione P1.3 para ingresar a la configuración.

No es divertido: LCALL ds20 ms

JB P1.3, START1

esperar 113: JNB p 1.3, esperar 113;

JB 05H, CLOSESP Si la alarma está encendida, apágala.

MOV DISPFIRST, # 50H ingresa al programa de configuración de alarma y muestra la unidad de temporización de alarma 50H~55H.

MOV 50H,#0CH "-" Al configurar la alarma, el modo de visualización es 00:00: -

MOV 51H,#0AH "Negro"

Esperando: SETB EA

LCALL muestra

JNB P1.2, DSFINC agrega 1 solo

JNB P1.0, DSDEC menos 1

JNB P1.3, Ajuste de entrada DSSFU

AJMP DSWAIT

CLOSESP: CLR 05H Indicador de alerta de cierre

CLR Bell

AJMP START1

DSSFU: LCALL ds 20 ms; anti-vibración

JB P1.3, DSWAIT

Ajuste LJMP DSSFUNN al ingresar

SETMM 1: LJMP SETMM; Ir ​​a la configuración del programa de ajuste de tiempo mm.

ds finc: LCALL ds 20 ms; antivibración

JB P1.2, DSWAIT

DSWAIT12: visualización LCALL; emisión de bonos de igual cantidad

JNB P1.2, DSWAIT12

CLR EA

MOV R0, #53H

LCALL agrega 1 configuración de alarma se divide en 1

MOV A, R3; subdatos puesto

clr C; borrar bandera de transporte

CJNE A, #60H, ADDHH22

addhh 22: JC ds espera; cuando sean menos de 60 minutos, regresa.

ACALL CLR0 Cuando es mayor o igual a 60 minutos, la unidad de cronometraje de minutos se pone a 0.

AJMP DSWAIT

ds dec: LCALL ds 20 ms; antivibración

JB P1.0, DSWAIT

dswaite: LCALL mostrar ;Emisión de bonos iguales

JNB P1.0, Desweet

CLR EA

MOV R0, #53H

LCALL sub 1; el ajuste de la alarma se reduce en 1.

LJMP DSWAIT

; El siguiente es el programa de conversión de función de cronómetro/reloj.

; Presione P1.1 para la conversión de funciones.

FUNSS: LCALL DS20MS

JB P1.1, START11

Esperando 11: JNB p 1.1

CPL 03H

JNB 03H, Timfen

MOV DISPFIRST, #60H Mostrar unidad de datos del cronómetro

MOV 60H, #00H

MOV 61H, #00H

MOV 62H, #00H

MOV 63H, #00H

MOV 64H, #00H

MOV 65H, #00H

MOV TL1, # 0F0H10ms valor inicial de temporización

MOV TH1, # 0D8H10ms valor inicial de temporización

SETB TR1

SETB ET1

Inicio 11: LJMP Inicio 1

TIMFUN: MOV DISPFIRST, #70H Unidad de datos del reloj de visualización

CLR ET1

CLR TR1

START12 : LJMP START1

; El siguiente es el programa de función de pausa y borrado del cronómetro.

; Presione P1.2 para pausar o borrar 0, presione P1.1 para salir del cronómetro y volver al reloj.

FUNPTT: LCALL DS20MS

JB P1.2, START12

Esperando 22: JNB P1.2, esperando 21

CLR ET1

CLR TR1

Esperando 33: JNB P1.1, interesante

JB P1.2, WAIT31

LCALL DS20MS

JB P1.2, espera 33

Espera 66: JNB P1.2, espera 61

MOV 60H, #00H

MOV 61H, #00H

MOV 62H, #00H

MOV 63H, #00H

MOV 64H, #00H

MOV 65H, #00H

ESPERE 44: JNB P1.1, interesante

JB P1.2, ESPERE41

LCALL DS20MS

JB P1.2, Esperando 44

Esperando 55: JNB P1.2, esperando 51

SETB ET1

SETB TR1

AJMP START1

;La siguiente es la pantalla que no se apaga cuando la tecla está esperando ser liberada

WAIT21: Pantalla LCALL

AJMP espera 22

WAIT31: visualización LCALL

AJMP espera 33

WAIT41: visualización LCALL

AJMP espera 44

WAIT51: LCALL muestra

AJMP espera 55

WAIT61: LCALL muestra

AJMP espera 66

; * * * * * * Programa de cronometraje de 1 s * * * * * * * * * * * * * * * *