Red de conocimiento informático - Conocimiento del nombre de dominio - Existe una necesidad urgente de escribir un programa de cronómetro utilizando un programa de microcontrolador.

Existe una necesidad urgente de escribir un programa de cronómetro utilizando un programa de microcontrolador.

Ledbuff EQU 30H; búfer de código de visualización

Tiempo EQU 40 horas

Minutos EQU 41H

Segundo EQU 42H

c 100 US EQU 43H

Verifique EQU 10000; número de interrupciones

t 100 US EQU 256-100; establezca el valor inicial del temporizador

Inicio LJMP; p>

ORG 000BH entrada de interrupción del temporizador 0

T0INT: Push PSW protección nacional

Push ACC

MOV A, C100us+1

¿El valor del recuento de JNZ GOON es 0?

Diciembre C100us

GOON: DEC C100us+1

MOV A, C100us

ORL A, C100us+1

p>

Exportación JNZ

MOV C100us, #alto (marcado) valor de recuento de reinicio

MOV C100us+1, #bajo (marcado)

INC segundo; agregue uno al segundo valor

MOV A, segundo

CJNE A, #60, determine si el segundo valor es 60.

MOV segundo, #0; cuando el segundo valor es 60, se borra a 0.

INC minutos; puntuación más uno

MOV un minuto

CJNE A, #60, salida determina si la puntuación es 60.

Minutos MOV, # 0; si la puntuación es 60, borre 0.

INC hora; suma 1 al valor de la hora

MOV por una hora

CJNE A, #24, determina si el valor de la hora es 24.

Hora MOV, # 0; si el valor de la hora es 24, bórrelo a 0.

Salir: pop-up ACC

POP PSW

Reti

Retraso:; subrutina de retardo

MOV R7 , #0FFH

Circuito de retardo:

DJNZ R7, circuito de retardo

Delaru Jazz·R6

Water Soaker Soft

LEDMAP: código de pantalla de tubo digital de ocho segmentos DB 3FH, 06H, 5BH, 4FH

DB 66H, 6DH, 7DH, 07H

Base de datos 7FH, 6FH, 77H, 7CH

DB 39H, 5EH, 79H, 71H

Pantalla LED:

MOV R0, #LEDBUF

MOV R1, #6; ***6 tubos de 8 segmentos

MOV R2, #01111111B; valor inicial del código de escaneo de bits

Bucle: MOV A, #0

MOV P0 ,A; apague los ocho tubos.

MOV A,@R0

MOV P0,A

R2 MOV

MOV·P3 muestra una tubería de ocho segmentos.

MOV R6, #01H

Retraso de llamada

MOV A, R2; muestra el siguiente dígito

RR A

MOV·R2

INC R0

DJNZ R1, ciclo

Remojar en agua para ablandar

T0LED: MOV DPTR, # LEDMAP Convierte códigos de campo en códigos de visualización.

MOVC A, @A+DPTR

Remojado en agua para suavizarlo

Primera versión: MOV TMOD, modo de funcionamiento 2 del temporizador #02H

MOV TH0, # t 100 us; Establecer valor inicial del temporizador

MOV TL0, #T100us

MOV IE, # 10000010B; >

Tiempo MOV, # 0; mostrar valor inicial

Minutos MOV, #0

Segundo MOV, #0

MOV C100us, #alto ( marcar Seleccionar)

MOV C100us+1, #Low (marcado)

SETB TR0; iniciar temporizador 0

MLOOP: MOV A, hora en diez; El número de dígitos muestra el valor de la hora.

MOV B, #10

Rama AB

Llamar a T0LED

MOV · Ledbuff envía el valor de las decenas al búfer de código de visualización; .

MOV A, B; muestra el valor de la hora en unidades.

Llamar a T0LED

ORL A, # 80H mostrar punto decimal

MOV LEDBUF+1, A; enviar búfer de código de visualización

MOV A, minutos; muestra el valor de los minutos en decenas de dígitos.

MOV B, #10

Rama AB

Llamada T0LED

MOV LEDBUF+2, A envía el valor de diez dígitos; al búfer de código de visualización.

MOV A, B; muestra el valor de los minutos.

Llamar a T0LED

ORL A, # 80H mostrar punto decimal

MOV LEDBUF+3, A; enviar búfer de código de visualización

MOV A, segundo

MOV B, #10; muestra el segundo valor decimal.

División AB

Llamar T0LED

MOV LEDBUF+4, A; enviar código de visualización buffer

MOV A, B

Llamar T0LED

MOV · Ledbuff +5, A

Identificador de llamadas subrutina de visualización de llamadas

LJMP MLOOP

p>Fin