Mejora del circuito de sincronización at89c2051
(1) Tecla de configuración: en el modo de cuenta regresiva, presione esta tecla para detener el cuenta regresiva e ingresa al estado de configuración. Si la clave ya está configurada, la clave no tiene ningún efecto;
(2) Tecla de incremento: Al configurar el estado, cada vez que se presiona la tecla de incremento, el valor inicial aumentará en 1.
(3) Tecla de disminución: Al configurar el estado, cada vez que se presiona la tecla de disminución, el valor inicial disminuirá en 1.
(4) Tecla de confirmación: al configurar el estado, después de presionar esta tecla, el microcontrolador realizará una cuenta regresiva y mostrará el número de cuenta regresiva según el nuevo valor inicial. Si ya está en el estado de sincronización, esta clave no es válida.
¿Tiempo? ¿EQU? 60H
¿Bandera? ¿EQU? 61H
¿KEY_R_1? ¿EQU? P3.0
¿CLAVE_R_2? ¿EQU? P3.1
¿CLAVE_R_3? ¿EQU? P3.2
¿CLAVE_R_4? ¿EQU? P3.3
¿D_FLAG? ¿EQU? 62H
ORG? 0000 horas
SJMP? Iniciar
ORG? 000BH
LJMP? Interrupción del temporizador 0
ORG? 0030 horas
Inicio:
MOV? TMOD, #01H
¿MOV? TH0, #3CH
MOV? TL0, #0B0H
¿SETB? Juegos de Electronic Arts
SETB? ET0
¿CLR? TR0
¿MOV? Uno, #00
¿MOV? D_FLAG,A
Principal:
LCALL? Escaneo de claves
¿MOV? a,D_FLAG
CJNE? a, #01H, ¿DESCONECTAR LLAMADA? Mostrando 1
LJMP? Principal
DIS:
LCALL? ¿Mostrar
LJMP? Botón principal
Escanear:
¿MOV? 1. ¿Banderar
CJNE? a, #1, CLAVE_2
¿CLR? ¿C
MOV? c,KEY_R_1
¿JC? CLAVE_2
¿LCALLAR? Retraso 20 milisegundos
¿MOV? c,KEY_R_1
¿JC? Clave_2
¿JNB? KEY_R_1,$
¿CLR? TR0
¿MOV? Uno, #00
¿MOV? D_FLAG,A
MOV? Hora, A
KEY_2:
¿CLR? ¿C
MOV? c,KEY_R_2
¿JC? CLAVE_3
¿LCALLAR? Retraso 20 milisegundos
¿MOV? c,KEY_R_2
¿JC? Clave_3
¿MOV? 1. Hora
¿Diciembre? ¿Un
CJNE? a, #255, KEY_2_E
¿MOV? 1. N° 99
¿MOV? Hora, ¿A
JNB? KEY_R_2,$
Clave_2_E:
¿MOV? Hora, ¿A
JNB? KEY_R_2, $
Clave 3:
¿CLR? ¿C
MOV? c,KEY_R_3
¿JC? KEY_4
¿LCALLAR? Retraso 20 milisegundos
¿MOV? c,KEY_R_3
¿JC? Clave_4
¿MOV? 1. Hora
INC? ¿Un
CJNE? a, #100, KEY_3_E
¿MOV? Respuesta, #0
¿MOV? Hora, ¿A
JNB? KEY_R_3,$
Clave_3_E:
¿MOV? Hora, ¿A
JNB? KEY_R_3, $
Clave 4:
¿CLR? ¿C
MOV? c,KEY_R_4
¿JC? KEY_EXIT
¿LCALLAR? Retraso 20 milisegundos
¿MOV? c,KEY_R_4
¿JC? Key_Exit
¿JNB? KEY_R_4,$
¿SETB? TR0
¿MOV? a, #0FH
¿MOV? Bandera, A
Tecla para salir:
Remojado para suavizar
Pantalla:
¿MOV? 1. Hora
¿MOV? b, #10
¿DIV? Tipo de sangre AB
¿MOV? A, B
¿MOV? DPTR, #hashtag
¿MOVC? 1. @一+DPTR
¿MOV? P0,A
SETB? P2.1
¿CLR? P2.0
¿LLAMADA? Retraso 1 ms
¿CLR? P2.0
¿CLR? P2.1
¿MOV? 1. Hora
¿MOV? b, #10
¿DIV? Tipo de sangre AB
¿MOV? DPTR, #hashtag
¿MOVC? 1. @一+DPTR
¿MOV? P0,A
SETB? P2.0
¿CLR? P2.1
¿LLAMADA? Retraso 1 ms
¿CLR? P2.0
¿CLR? P2.1
Remojado en agua para suavizar
Pantalla 1:
¿MOV? R2, N° 40
Pantalla 1_LOOP1:
¿MOV? Respuesta, #0
¿MOV? DPTR, #hashtag
¿MOVC? 1. @一+DPTR
¿MOV? P0,A
SETB? P2.1
¿CLR? P2.0
¿LLAMADA? Retraso 1 ms
¿CLR? P2.0
¿CLR? P2.1
¿MOV? Respuesta, 0
¿MOV? DPTR, #hashtag
¿MOVC? 1. @一+DPTR
¿MOV? P0,A
SETB? P2.0
¿CLR? P2.1
¿LLAMADA? Retraso 1 ms
¿CLR? P2.0
¿CLR? P2.1
¿LLAMADA? Botón de escaneo
¿DJNZ? R2, muestra 1_LOOP1
¿MOV? R2, No. 20
Pantalla 1_LOOP:
LCALL? Retraso 50 milisegundos
LCALL? Escaneo de claves
¿SETB? P2.0
¿SETB? P2.1
¿DJNZ? R2, muestra 1_LOOP
El remojo con agua suaviza
Retraso de 20 milisegundos:; 0nos
¿MOV? R6, #0D7H
DL0:
¿MOV? R5, #2DH
¿DJNZ? R5, USD
¿DJNZ? R6, DL0
no proporcionado de otra manera (para) a menos que se especifique lo contrario
no proporcionado de otra manera (para) a menos que se especifique lo contrario
Remojado en agua para suavizar
Retraso 1 ms:; 0nos
¿MOV? R4, #01H
DD1:
¿MOV? R6, #8EH
DD0:
¿MOV? R5, #02H
¿DJNZ? R5, USD
¿DJNZ? R6, DD0
¿DJNZ? R4, DD1
El remojo en agua suaviza
Retraso 50 milisegundos:; ¿Error? 0nos
¿MOV? R6 # 0ADH
DG0:
¿MOV? R5, #8FH
¿DJNZ? R5, USD
¿DJNZ? R6, DG0
Remojado en agua para suavizarlo
Fin