Red de conocimiento informático - Aprendizaje de código fuente - Programa de montaje de prensa larga y prensa corta

Programa de montaje de prensa larga y prensa corta

Reloj electrónico inteligente con despertador

Programa fuente

El programa fuente es el siguiente: ORG 0000H entrada de inicio del programa

Inicio LJMP

ORG 0003H Interrupción externa 0 entrada de programa de interrupción

Reti

ORG 000BH entrada de programa de interrupción del temporizador T0.

LJMP INTT0 salta a int para su ejecución.

ORG 0013H; entrada del programa de interrupción de interrupción externa 1

Reti

ORG 001BH; entrada del programa de interrupción del temporizador T1.

LJMP int 1

ORG 0023H dirección de entrada del programa de interrupción serial

Reti

;-Programa principal;

Inicio: MOV R0, #70H70 a R0, borrar la memoria de la pantalla 70-7FH.

MOV R7, #0FH

CLEARDISP: MOV @R0, #00H0 se almacena en la memoria en la dirección R0 (70H).

INC R0

DJNZ R7, CLEARDISP

MOV 78H, # 2; la hora predeterminada es las 12:00, la alarma es las 5:00.

MOV 79H, #1

MOV 74H, #2; Evita que el tubo digital muestre 00 horas cuando está encendido.

MOV 75H, #1

MOV 66H, # 1; cuando el tiempo de salida de la interrupción es 1 y llega a 66H, los datos de las unidades de sincronización de minutos y horas se moverán al bandera de memoria.

MOV 68H, # 1; el despertador está encendido de forma predeterminada después del encendido

MOV 7DH, # 6;

MOV canal 7, tercero

MOV 69H, #0

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

MOV TMOD , # 11H; Sean T0 y T1 temporizadores de 16 bits.

MOV TL0, # 0B0H Valor inicial de temporización de 50 milisegundos (para temporización T0)

MOV TH0, #3CH

SETB EA interrupción completa habilitada

SETB ET0; habilita la interrupción T0

SETB TR0; el temporizador T0 comienza a contar.

MOV R4, # 14H; valor inicial de temporización de 1 segundo (50 milisegundos × 20)

INICIO1: pantalla LCALL; pantalla de subrutina

pitido LCALL; alarma consulta de reloj

JNB P1.7, programa de ajuste de tiempo SETTIMEP1.7 con puerto 0.

JMP inicia 1; cuando P1.7 es 1, vuelve a INICIO1.

;-Sistema de ajuste de hora del despertador;

NFLAG: MOV A, 68H establece el estado del interruptor de alarma

CJNE A, #1, BEE68

MOV 68H, #0

JMP E6

BEE68: MOV 68H, #1

E6: MOV 66H, #8 cuando la interrupción sale del tiempo; Cuando no es igual a 1 hasta 66H, los datos de la unidad de cronometraje de hora y hora se moverán al indicador de memoria de video.

MOV 72H, 7BH

MOV 73H, 7CH

MOV 74H, 7DH

MOV 75H, 7EH

LCALL DDL

LCALL DDL

MOV 72H, 68H

MOV 73H, 69H

MOV 74H, 7AH

MOV 75H, 7AH

LCALL DDL

LCALL DDL

MOV 66H, #1

LJMP INICIO1

SETTIME: LCALL DDL

JB P1.7, NFLAG Cuando se presiona la tecla durante menos de 1 segundo, configure el estado del interruptor de alarma y verifique la hora de la alarma. Cuando no esté cerrado, asegúrese de la precisión y ajústelo durante más de 1 segundo.

MOV TL1, # 0B0HT1 valor inicial de sincronización del flash

MOV TH1, #3CH

MOV R2, # 06H ingresa al estado de sincronización y establece la sincronización inicial del flash valor.

MOV 66H, #8; Sigue moviéndote al configurar el despertador, apaga el reloj y muestra datos.

SETB et 1; permitir interrupción T1

SETB tr 1; iniciar temporizador T1

SET1: visualización de llamada LCALL para evitar que se presionen teclas. mostrado.

JNB P1.7, conjunto 1; el puerto P1.7 es 0, esperando que se suelte el botón.

MOV R5, #00H borra el indicador intermitente del tipo de configuración.

conjunto 1: INC R5; ajuste de minutos de alarma

conjunto 5: visualización LCALL

JB P1.7, conjunto 5

visto 1: LCALL DDL; cuando se presiona una tecla durante más de 1 segundo, se agregará continuamente (0,5 segundos más 1) y menos de 1 segundo.

JB P1.7, consulta de liberación de botón SET6, modulación automática de liberación de botón

MOV R0, #7CH

LCALL ADD1

MOV A, R3

CLR C

CJNE A, #60H, HHN1

HHN1: JC SEETN1

LCALL CLR0

JMP SEETN1

conjunto 6: INC R5; ajuste del despertador

Ver T6: l pantalla de llamada

JB P1.7, ver T6

p >

Ver TNH1: LCALL DDL

JB P1.7, SETF

MOV R0, #7EH

LCALL ADD1

MOV A, R3

CLR C

CJNE A, #24H, HOUU1

HOUU1: JC SEETNH1

LCALL CLR0

JMP SEETNH1

SETF: Identificador de llamadas

JB P1.7, SETF

LCALL DDL

JNB P1. 7. Partir; presione brevemente esta tecla, presione prolongadamente para salir.

CLR ET0

CLR TR0

MOV 70H, # 00H el tiempo de configuración comienza desde 00 segundos.

MOV 71H, #00H

INC R5

Configuración 3: Pantalla LCALL

JB P1.7, Kit 3

SETMM: LCALL DDL

JB P1.7, Suite 4

MOV R0 # 77H

LCALL ADD1

MOV A, R3

CLR C

MMH No. 60H CJNE A

MMH: JC SETMM

LCALL CLR0

AJMP SETMM

Conjunto 4: INC R5

Ver 4: Pantalla LCALL

JB P1.7, ver 4

SETHH : LCALL DDL

JB P1.7, SETOUT1

MOV R0 # 79H

LCALL ADD1

MOV A, R3

CLR C

CJNE A, #24H, HOUU

HOUU: JC SETHH

LCALL CLR0

AJMP SETHH

SETOUT1: SETB ET0

SETB TR0; hora de inicio

Salida: MOV R5, # 00H borra el indicador intermitente del tipo de configuración.

CLR tr 1; apagar T1

CLR et 1; apagar T1 interrupción.

MOV 66H, #1

SETOUT2: visualización LCALL

JNB P1.7, configuración 2

LJMP START1

; -Retraso 1 segundo;

Número de pedido exprés: MOV 18H, No. 36

DDL0: MOV 17H, No. 239

DDL1: Pantalla LCALL

DJNZ 17H, DDL1

DJNZ 18H, DDL0

Remojar en agua para suavizar

- Interrumpir el programa;

INTT0: Empujar paquete ACC

Push PSW

CLR ET0

CLR TR0

MOV A, #0B7H

Añadir uno, TL0

MOV TL0, A

MOV A, #3CH

ADDC A, TH0

MOV TH0 A

SETB TR0

DJNZ R4, OUTT0 interrumpe las primeras 20 veces y la interrupción sale.

Dirección: MOV R4, # 14H; 20 interrupciones (1 segundo) para restablecer el valor inicial.

MOV R0, # 71H; apunta a la segunda unidad de sincronización (70-71H)

ACALL add 1; llama al programa add 1 (agrega 1 segundo de operación)

MOV A, R3; coloque los segundos datos en A (R3 es una combinación de 2 números decimales).

CLR C; borrar bandera de acarreo

CJNE A, #60H, ADDMM

ADDMM: JC sale 01; >ACALL CLR0 se borra durante 60 segundos o más.

MOV R0, #77H minutos de dirección y unidades de temporización (76H-77H)

Dirección de llamada 1

MOV A, R3

CLR C

CJNE A, #60H, ADDHH

ADDHH: JC salida 0

ACALL CLR0

MOV R0, #79H puntos a Unidad horaria (78H-79H)

Dirección de llamada 1

MOV A, R3

CLR C

24H, hora p>

Hora: JC OUTT0

ACALL CLR0

salida 0: MOV A, indicador de consulta 66H

CJNE A, #1, salida 01

MOV 72H, 76H Cuando sale la interrupción, los datos de las unidades de cronometraje de minutos y horas se mueven a las unidades de visualización correspondientes.

MOV 73H, 77H

MOV 74H, 78H

MOV 75H, 79H

salida 01: pila POP

ACC popular

SETB ET0; abrir T0

RETI; retorno de interrupción

- agregar 1 programa;

ADD1 : MOV A, @R0 coloca los datos de la unidad de temporización actual.

DEC R0 apunta a la dirección anterior

Intercambia A; intercambia los cuatro bits superiores y los cuatro bits inferiores de los datos

ORL A, @ R0 anterior El Los datos de la dirección se colocan en los cuatro bits inferiores de a.

Agregar uno, # 01H; uno más 1 operación

Ada; ajuste decimal

MOV R3, A; pasar al registro R3

ANL A, # 0FH cuatro bits altos se convierten en 0.

MOV @R0, A; devolver la unidad de dirección anterior

MOV A, R3; recuperar los datos temporales de R3

INC R0 apunta al actual unidad de dirección

Intercambia A; intercambia los cuatro bits altos y los cuatro bits bajos de los datos

ANL A, # 0FH los cuatro bits altos se convierten en 0.

MOV @R0, A; los datos se colocan en la unidad de dirección para truncarlos.

Remojar en agua para suavizarlo

CLR0: CLR C

CLR A; limpiar el acumulador

MOV @R0, A; ; borrar la dirección actual Celda

DEC R0 apunta a la dirección anterior

MOV @R0, A borrada por la celda de dirección anterior.

La subrutina RET devuelve

; -

INTT1: Empujar ACC

Pulsar PSW

MOV TL1, # 0B0H

MOV TH1, #3CH

DJNZ R2, intt 1 out; interrupción de salida hace 0,3 segundos (interrumpida 6 veces en 50 milisegundos)

MOV R2, # 06H recarga el valor inicial de 0,3 segundos de temporización.

CPL 02H Bandera intermitente invertida de 0,3 segundos.

JB 02H, parpadea 1; cuando el bit 02H es 1, la unidad de visualización "se apaga".

MOV A, R5

Países Bajos CJNE A, #01H

JMP NNN1

NL: CJNE A, #02H, NL1

LJMP NNN1

NL1: CJNE A, #03H, NL2

LJMP NLL

NL2: CJNE A, #04H, INTT1OUT

LJMP NLL

NLL: MOV 72H, 76H

MOV 73H, 77H

MOV 74H, 78H

MOV 75H, 79H

AJMP INTT1OUT

nnn 1: MOV 72H 7BH

MOV 73H, 7CH

MOV 74H, 7DH p>

MOV 75H, 7EH

intt 1 salida: POP PSW; restaurar escena

ACC popular

RETI; >

FLASH1: MOV A, R5

CJNE A, #01H, ML

LJMP MNN1

ML: CJNE A, #02H, ML1

LJMP MNN2

ML1: CJNE A, #03H, MN

LJMP MLL

MN: CJNE A, #04H, INTT1OUT

LJMP MHL

MLL: MOV 72H, 7AH

MOV 73H, 7AH no muestra la unidad de visualización (72-73H) de los subdatos.

MOV 74H, 78H

MOV 75H, 79H

AJMP INTT1OUT

MHL: MOV 72 horas, 76 horas

MOV 73H, 77H

MOV 74H, unidad de visualización 7AH (74-75H), los datos de hora no se mostrarán.

MOV 75H, 7AH

AJMP INTT1OUT

mnn 1: MOV 72H 7AH

Unidad de visualización MOV 73H, 7AH (72-73H ) no mostrará los datos de los minutos de la alarma.

MOV 74H, 7DH

MOV 75H, 7EH

AJMP INTT1OUT

MOV 72H, 7BH

MOV 73H, 7CH

MOV 74H, 7AH

MOV 75H, 7AH unidad de visualización (74-75H), los datos de la hora del despertador no se mostrarán.

AJMP INTT1OUT

;-display;

Pantalla: MOV DPTR, #mostrar datos

MOV A, 70H

MOVC A, @A DPTR

MOV·P3

CLR P1.0

no se proporciona lo contrario a menos que se especifique lo contrario

no se proporciona de otra manera (para) a menos que se especifique lo contrario

no se proporciona de otra manera (para) a menos que se especifique lo contrario

SETB P1.0

MOV A, 71H

MOVC A, @A DPTR

MOV·P3

CLR P1.1

no se proporciona lo contrario a menos que se especifique lo contrario

no se proporciona de otra manera (para) a menos que se especifique lo contrario

no se proporciona de otra manera (para) a menos que se especifique lo contrario

SETB P1.1

MOV A, 72H

p>

MOVC A, @A DPTR

MOV·P3

CLR P1.2

no se proporciona de otro modo (para) a menos que se especifique lo contrario

no se proporciona de otro modo(para)a menos que se especifique lo contrario

La consulta del despertador se divide en diez partes.

CJNE A, 7CH, BEERE

BB: CLR P1.6

LCALL DDL

SETB P1.6

LCALL DDL

JNB P1.7, Factura

Factura: Retirado

Factura: SETB P1.6

MOV 68 Hora, #0

PANTALLA DE LLAMADA

JNB P1.7, BILL

JMP·BILL

DISDATA: DB 0C0H, 0F9H, 64H, 70H, 59H, 52H, 42H, 0F8H, 40H, 50H, 0FFH0123456789 en blanco

Fin