La Red de Conocimientos Pedagógicos - Aprendizaje de inglés - Papel de reloj LCD MCU

Papel de reloj LCD MCU

Programa de reloj electrónico de 51 microcontroladores. Deshazte de la parte del despertador sin timbre. Esto está relacionado con *051 y no todo el mundo lo utiliza. 89c2051 es suficiente. De hecho, este reloj roto no requiere ningún microcontrolador.

Número de templado EQU 30H

Segundo EQU 31H

Tiempo mínimo de EQU 32H

Tiempo de EQU 33 horas

NUM EQU 34H

Tim·EQU 35H

Tiempo EQU 36H

EQU Zhou 37H

Taiwán EQU 38 horas

Temper_H EQU 39H

EQU 3AH

Luz EQU 00H

Luna EQU 04H

Anillo EQU 02H

EQU Código Postal 11H

Exist_18B20 EQU 06H

DQ EQU P1.3

Organización 0000H

Gerente General LJMP

ORG 000BH

LJMP int_t0

Principal: MOV SP, #40H

Estado de MOV, #00H

cantidad de templado de mov , #03h

MOV No. 55H

MOV mínimo, #59H

Tiempo de MOV, #11H

MOV TW_NUM# 00H

luz SETB; estado brillante

CLR Luna; tarde

timbre SETB; alarma sonando

CLR TEM _ ST no emitir un comando de conversión de temperatura.

ltiempo de inicialización de llamada

aa: lcall name _ disp

ajmp aa

inicialización programada

Inicialización Sincronización:

MOV TMOD, #01H

MOV TH0, #03BH

MOV TL0, #03CH

SETB TR0;

SETB ET0; habilita la interrupción T0

SETB EA; la interrupción de la CPU está completamente activada

Remojar en agua para suavizar la memoria

; inicialización

Inicializar memoria:

Estado MOV, #00H

Número MOV 50H

MOV mínimo, #59H

Hora MOV, #11H

MOV TW _ NUM # 00H

Número MOV, #00H

Minutos de hora MOV, #00H

Hora MOV, #12

luz SETB; estado brillante

luna SETB; tarde

alarma CLR apagada

CLR TEM_ST No se emitió ningún comando de conversión de temperatura.

CLR EXIST_18b20

Remojado en agua para suavizar

; Muestra la subrutina y muestra dos tuberías al mismo tiempo.

; Entrada: el número mostrado por R6 (código BCD comprimido)

; R7 muestra la posición del tubo digital (alto 2, 4, 6, 8)

Pantalla: Presione ACC

MOV ACC, R3

Presione ACC

Región administrativa R2 MOV

Presione ACC

MOV·R2, segundo clasificado

R6 MOV

Intercambio A

DI1:

ANL A, #0FH

Pulse ACC

MOV A, R7

MOV R3, A

MOV A, #0FEH

DI2 :

p>

RR A

DJNZ R3, DI2

MOV R3, A

ACC popular

SETB P1.7

MOV DPTR, #CODE_TAB

MOVC A, @A DPTR

CLR TI

MOV·SBUFF

JNB Titanio, USD

CLR TI

MOV SBUF, R3

JNB Titanio, USD

CLR P1. 7

p>

LCALL retrasada el 1

7 de diciembre

R6 MOV

DJNZ R2, DI1

Popular ACC

MOV·R2

ACC popular

MOV R3, A

ACC popular

Remojar en agua para que quede suave

p>

CODE_TAB: DB 040H, 079H, 24H, 30H, 19H, 12H

DB 02H, 78H, 00H, 10H, 48H, 7FH

DB 16H, 10H, 46H, 40H

; código BCD más una subrutina

Entrada: dirección de datos R7 (

; Salir : B más 1 valor (el valor original ha sido Cambiar).

ADD_1: Empujar ACC

MOV ACC, R0

Pulsar ACC

MOV A, R7

MOV R0, A

MOV A, @R0

Empresa A

Ada

MOV @R0, A

Película B, un

ACC popular

MOV R0, A

ACC popular

Remojado en agua para suavizar

;Menos uno (00 después de 59)

;Entrada: Dirección de datos R7

;

SUB_1_60: Pulsar ACC

MOV ACC, R0

Empujar ACC

Empujar PSW

MOV A, R7

MOV R0, A

MOV A, @R0

CJNE A, #00H, SU10

MOV @R0, #59H

POP PSW

ACC popular

MOV R0, A

ACC popular

Remojado en agua para suavizar

SU10: CLR C

SUBB A , #1

Esquina MOV

JNC SU20

SUBB A, No. 5

MOV @R0, A

POP PSW

ACC Popular

MOV R0, A

ACC Popular

Remojado en agua para hacer suave

;Menos uno (12 es igual a 1)

;Entrada: dirección de datos R7

;

SUB_1_12: Empujar ACC

MOV ACC, R0

Empujar ACC

Empujar PSW

MOV A, R7

MOV R0, A

MOV A , @R0

CJNE A, #01H, SU01

MOV @R0, #12H

POP PSW

ACC Popular

p>

MOV R0, A

ACC Popular

Remojado en agua para suavizar

SU01 : CLR C

SUBB A, # 1

Esquina MOV

Jiannanchun SU02

SUBB A, No. 5

MOV @R0, A

POP PSW

Pop ACC

MOV R0, A

Pop ACC

Remojado en agua para ablandar

; Subrutina retrasada

;

DELAY6: pulsar ACC con retraso de 6 milisegundos

MOV A, R5

Empuje ACC

R4 MOV

Empuje ACC

MOV R5 # 0BH

LJMP DL2

DELAY1: Pulsar ACC retardo 1ms

MOV A, R5

Pulsar ACC

R4 MOV

Pulsar ACC

MOV R5, #02H

DL2: MOV R4, #0FAH

DJNZ R4, USD

DJNZ R5, DL2

ACC popular

MOV R5 , A

ACC popular

MOV·R4

ACC popular

Remojado en agua para suavizar

; T0 interrumpe el programa de servicio

int.

_ t0: CLR ET0; apaga la interrupción

CLR TR0 apaga el contador

MOV TL0, # 0B8H

MOV TH0, # 03CH cuenta de recarga (corrección)

SETB TR0; empezar a contar

Presione ACC

Presione B

Presione PSW

MOV A, R0

Pulsar ACC

MOV A, R1

Pulsar ACC

R2 MOV

Pulsar ACC

MOV A, R3

Empujar ACC

R4 MOV

Empujar ACC

MOV A, R5

Pulsar ACC

R6 MOV

Pulsar ACC

MOV A, R7

Pulsar ACC

MOV País A

CJNE A, #00H, TWINKLE parpadeará si no está en estado 0.

; 0 estado

Número de empresa

MOV A, NUM

CJNE A, #20H, regresa si no se alcanza un segundo; Bell, se acabó la interrupción.

;1 segundo en llegar

Número MOV, #00H

MOV R7, # segundo

LCALL ADD_1;1 segundo, Agregar 1 a cada segundo.

MOV A, SEC

CJNE A, #60h, regreso 60 segundos?

;Llegó

MOV SEC, #00H segundos para borrar

MOV R7, #Mínimo

LCALL ADD_1;Agregue 1 individualmente

MOV más pequeño

CJNE A, #60h, ¿regreso 60 minutos?

MOV es el más pequeño, #00H60 puntos, cero puntos.

MOV R7, # horas;

LCALL ADD _ 1; tiempo más 1

MOV A, B

CJNE A, # 12H, n. 13; llegó a 12?

CPL Luna; Llegó a las 12 en punto, actualizado por la mañana y por la tarde.

N13:

CJNE A, #13H, regresa; llega a 13?

Hora MOV, #01H; cuando llega el 13, pasa a ser 01.

Regreso LJMP

Flash: INC TW_NUM

MOV A, número de Taiwán

CJNE A, #06H, retorno 50ms*6; =0.3s para llegar?

MOV TW_NUM, # 0H0.3s, se borra el recuento.

LCALL TW_DISP

CPL claro; voltear brillante y oscuro

Volver a:

ACC popular

MOV R7 , Un

ACC Popular

MOV·R6

ACC Popular

MOV R5, Un

Popular ACC

MOV·R4

ACC popular

MOV R3, A

ACC popular

MOV·R2

ACC popular

MOV R1, A

ACC popular

MOV R0, A

POP PSW

p>

Pop Bay

ACC popular

SETB ET0

Reti

Mostrar subrutina de hora;

; Parámetro de entrada: B es el contenido de visualización.

Tiempo DISP:

Pulsar ACC

R6 MOV

Pulsar ACC

MOV A, R7 p>

Presione ACC

MOV A, B

JNB Luna, hora DISP

Agregue uno, #20H

Tiempo DISP:

Agregar uno, #0C0H

MOV·R6

MOV R7, #08H

Pantalla LCALL

ACC popular

MOV R7, A

ACC popular

MOV·R6

ACC popular

Remojar en agua lo suaviza

; Subrutina de visualización normal (sin parámetros de entrada y salida)

Nomination_DISP: Push ACC

MOV R0, A p>

Pulsar ACC

MOV R5, A

Pulsar ACC

MOV·R6

Pulsar ACC

MOV R7, A

Push ACC

MOV R7, #02H posición de visualización inicial

MOV R5, #03H ciclo

MOV R0, # cantidad de templado

NOM1: MOV A, @R0

MOV·R6

MOV A, R7

Empuje ACC proteger R7

Pantalla LCALL

ACC popular

MOV R7, ACC

INC R0

INC R7

La posición de visualización de INC R7 se mueve hacia arriba

djnz R5, NOM1

MOV B, @R0

LCALL DISP hora; visualización Hora

ACC popular

MOV R7, A

ACC popular

MOV·R6

ACC popular

MOV R5, A

ACC Popular

MOV R0, A

ACC Popular

Remojado en agua para suavizar

;Texan

TW_DISP: Accesorio Push

R4 MOV

Push ACC

R6 MOV

Empujar ACC

MOV A, R7

Empujar ACC

Estado MOV R4

CJNE R4, # 01H , ESTADO2

ESTADO1: MOV B, hora estado 1: normal, primera corrección.

LCALL DISP hora; cuando la hora se muestra normalmente.

Lámpara JNB, TD1

Minnesota MOV·R6

MOV R7, #06H Mostrar hora y momentos destacados

Pantalla LCALL

p>

LJMP TIME_D_END

TD1: MOV R6, #0BBH puntos brillantes y oscuros

MOV R7, #06H

LCALL Show

LJMP Time_D_End

Estado 2: Estado MOV R4

CJNE R4, Estado 02, Estado 3

Minnesota MOV·R6 normal; pantalla

MOV R7, No. 6

Pantalla LCALL

Luz JNB, TD2

MOV B, hora cuando la pantalla está brillante;

Tiempo DISP

Tiempo LJMP_D_END

TD2: MOV R6, #0BBH DISP_DARK HOUR

MOV R7, #08H

LCALL DISPLAY

LJMP TIME_D_END

ESTADO 3: ESTADO MOV R4

CJNE R4, 03er lugar, 4to estado

MOV B, estado TIM_HOUR 1: normal, corrección de hora.

LCALL DISP hora; cuando la hora se muestra normalmente.

Lámpara JNB, TD3

Tim·MOV·R6

MOV R7, #06H Mostrar hora y momentos destacados

Pantalla LCALL

p>

LJMP Time_D_End

TD3: MOV R6, #0BBH puntos brillantes y oscuros

MOV R7, #06H

LCALL DISP_RING DISPLAY DE ALARMA

LJMP TIME_D_END

ESTADO 4: ESTADO MOV R4

CJNE R4, #04, T_D_END

MOV R6, visualización normal de sincronización

MOV R7, No. 6

Pantalla LCALL

Luz JNB, TD4

MOV B, hora cuando la pantalla está brillante

Tiempo DISP

Tiempo LJMP_ D _end

TD4: MOV R6, #0BBH muestra tiempo oscuro

MOV R7, #08H

LCALL muestra

Llamar DISP

T_D_END: ​​​​ACC emergente

MOV R7, A

ACC popular

MOV·R6

ACC Popular

MOV·R4

ACC Popular

Remojado en agua para hacer suave

DISP_Ring:

Pulsar acc

mov acc, r6

Pulsar acc

mov acc, r7

Empujar acceso

anillo jnb, DRING1

mov r6, #0aH abierto "0n"

mov r7, #02H

lcall display

ajmp DR_end

DRING1:

mov r6, #00h abre "00"

mov r7 , #02H

visualización de llamada

DR_end: cuenta emergente

mov r7, archivo adjunto

Cuenta popular

mov r6, a

Acceso popular

Remojado en agua para suavizarlo

;Procesamiento de teclado

KEY_DEAL: Empuje ACC

R4 MOV

Pulsar ACC

MOV A, R7

Pulsar ACC

KEY_D1: LCALL TW_DISP

KEY_ADD: JB P1.4, ¿KEY_SUB es la clave para agregar?

LCALL TW_DISP; retraso gt8ms

JB P1.4, ¿KEY_SUB es la clave agregada?

Estado MOV R4; sí

¿CJNE R4, #01, KA_ST2 estado 1 (visualización normal)? Si no, vaya a KA_ST2

KA_ST1: MOV R7, #MIN

LCALL ADD_1; miniute Add 1;

SEC MOV·R4

CJNE R4, #60H, ka 1; ¿son 60 segundos?

MOV SEC, #00H es, segundos seguros

KA1: AJMP KEY_SUB

KA_ST2: estado MOV R4

CJNE R4, # 02H, tarjeta ST3

MOV R7, # horas;

LCALL ADD_1

MOV R4, hora

KANE R4, #13H, KA2

MOV hora, #01H

KA2: AJMP KEY_SUB

Tarjeta ST3: Estado MOV R4

CJNE R4, #03H, KA_ST4

MOV R7, #tiempo mínimo

LCALL ADD_1

Tim·MOV·R4

CJNE R4, #60H, KA3

Tiempo MOV minutos, #00H

KA3: AJMP KEY_SUB

KA_ST4: estado de MOV R4

CJNE R4, #04H, KA4

MOV R7, #hora_hora

LCALL ADD_1

MOV·R4, hora

CJNE R4, #13H, KA4

MOV hora, #01H

KA4: NOP

p>

;Llamada explícita

KEY_SUB: JB P3.3, ¿subclave KEY_CAL?

LCALL TW_DISP;

JB P3.3, ¿subclave KEY_CAL?

KS_ST1: MOV R4, estado; subclave

CJNE r4, #01H, KS_ST2 estado 1?

MOV R7, #ESTADO MIN 1

LCALL SUB_1_60

ajmp KEY_CAL

KS_ST2: ESTADO MOV R4

Kane R4, #02H, Kansas ST3

MOV R7, #Hora

LCALL SUB_1_12

ajmp KEY_CAL

ESTADO de Kansas ST3: ESTADO MOV R4

CJNE R4, #03H, KS_ST4

MOV R7, #TIEMPO MINIMO

LCALL SUB_1_60

ajmp KEY_CAL

KS_ST4: estado MOV R4

CJNE R4, #04H, KEY_CAL

MOV R7, #time_hour

LCALL SUB_1_12

;Llamada explícita

KEY_CAL: JB P1.5, KEY_FUN

LCALL TW_DISP

JB P1.5, KEY_FUN

p >

ESTADO MOV R4

CJNE R4, #03H, KC_ST4

KC:

CPL RING

AJMP KEY_FUN

p>

Estado MOV R4

CJNE R4, #04H, KEY_FUN

Anillo CPL

llamada explícita

KEY_FUN: JB P3.4, To_KEY_ADD

LCALL TW_DISP

JB P3.4, To_KEY_ADD

Estado de la empresa

Estado MOV R4

CJNE R4, #05H, TO_KEY_D1

Estado MOV, #00H

salida de clave ljmp

To_KEY_ADD: ljmp KEY_ADD

TO _ KEY _ d 1: LJMP KEY _ d 1

Salida codificada:

Popular

ACC

MOV R7, Un

ACC Popular

MOV·R4 Aerolíneas

ACC Popular

Inmersión en agua Hacer suave

CFG_18B20:

JB Exist_18B20, RE_config 1; si DS18B20 existe, vaya a RE_CONFIG1.

Remojado para suavizar

Reconfiguración 1:

MOV A, #0CCH emitió el comando skip ROM

LCALL write_bytes

MOV A, #4EH escribe comando de almacenamiento temporal

LCALL write_byte

MOV A, #00H escribe en TH (límite superior de alarma) 00H.

LCALL write_byte

MOV A, # 00H escribe 00H (límite inferior de alarma) en TL.

LCALL write_bytes

Remojar en agua para suavizarlo