La Red de Conocimientos Pedagógicos - Currículum vitae - Traducción al danés

Traducción al danés

ORG 8000H //El programa se almacena desde la dirección de memoria externa 8000H-

JMP main //Salte al programa principal e inicie la ejecución——

ORG 800BH //Reserva el temporizador T0 interrumpir entrada-

JMP INTT0 //Saltar al temporizador T0 para la inicialización.

ORG 8100H //El programa principal inicia la ejecución desde la dirección de memoria externa 8100H-

MAIN: //etiqueta del programa principal (el programa principal comienza aquí)

MOV SP, #60H //Indicador de estado de inicialización-

MOV TMOD, #01H //Establece el temporizador T0 en modo 1 (temporizador de 16 bits)-

SETB ET0 // Encienda el temporizador de habilitación T0 -

SETB EA //Encienda el interruptor de interrupción principal de habilitación -

SETB TR0 //Inicie el temporizador T0

START0: // Indicador de inicio del temporizador T0

SETB P1.3 //Configura el cuarto pin del puerto P1 para generar un nivel alto y los otros pines para generar un nivel bajo -

MOV 30H, # 00H //Crea una unidad de memoria con la dirección 0030H y almacena el número 0- en la primera dirección.

Siguiente: //Siguiente indicador de entrada del programa-

MOV A, 30H //Guarde el número 0 con la dirección de unidad 30H justo ahora en el acumulador A-

MOV·DPTR, #TABLE //Apunta el puntero a la tabla de matriz TABLE-

MOVC A, @A DPTR //Tabla de búsqueda (se devuelve la suma del valor del acumulador y la tabla de búsqueda) y almacenado en el acumulador en el registro A)-

MOV·R2 A//El valor sumado del acumulador A se almacena temporalmente en el registro R2-

JZ ENDD //Juzga si el acumulador A y matriz La suma es 0 (es decir, el acumulador A es 0), vaya a la marca del programa ENDD-

ANL A, #0FH //El acumulador A enmascara los 4 bits superiores después de la suma - (eso es decir, solo los 4 bits bajos son válidos)-

MOV R5, A //Almacena el valor del acumulador en el registro R5 para almacenamiento temporal-

MOV A, R2 //Simplemente devuelve el valor del registro R2 Intercambia A por el acumulador A-

//Intercambia 4 bits del valor del acumulador A - (es decir, 0000 111 se convierte en 1111 0000) -

ANL A, #0FH // Luego enmascare los 4 bits altos - (igual que arriba) -

Si JNZ SING //El valor actual del acumulador A no es 1, el programa irá a SING y comenzará la ejecución -

cltr 0/ /Detener el temporizador T0-

JMP D1 //Saltar al logotipo del programa D1 para iniciar la ejecución-

SING: //entrada del logotipo del plan SING-

DEC A //El valor del acumulador A menos 1-

MOV 22H, A //Almacena el valor del acumulador A menos 1 en la unidad de almacenamiento en la dirección 22H-

RL A //El valor del acumulador A se mueve hacia la izquierda y luego regresa a A-

MOV DPTR, #TABLE1 //El puntero apunta a la tabla de datos TABLE1-

MOVC A, @A DPTR //Busca la tabla - (igual que arriba) -

MOV TH0, A //Almacena el valor después de buscar la tabla en el registro de bytes altos del temporizador T0-

MOV 21H , A //Almacena el valor del acumulador en la unidad de almacenamiento con dirección 21H-

MOV A, 22H //Devuelve el valor en la unidad de almacenamiento con dirección 22H al acumulador A-

RL A //Desplaza el acumulador A hacia la izquierda y guarda el valor desplazado a la izquierda nuevamente en A-

INC A //Agrega 1- al valor en el acumulador A

MOVC A, @A DPTR //Continuar buscando la tabla——

MOV TL0, A //Enviar el valor obtenido después de buscar la tabla al nivel inferior byte de orden del registro del temporizador T0-

MOV 20H, A //

SETB TR0

D1:

Sonido de retardo de llamada; retraso

INC 30H

El siguiente es JMP

ENDD:

CLR TR0

Punto de inicio de JMP 0

intt 0:; rutina de servicio de interrupción del temporizador 0

Push PSW

PUSH ACC // Poner pila, es decir, restaurar el valor recién guardado en A al valor antes de la interrupción-

MOV TL0, 20H

MOV TH0, 21H

CPL P1.3

ACC popular

POP PSW

Reti

DELAY: // Subrutina de retardo, bandera de entrada-

MOV R7, No. 02

Drayo:

MOV R4, #187

Retraso 1:

MOV R3, #248<

/p>

DJNZ R3, USD

DJNZ R4, DELAY1 //El registro R4 menos 1 no es 0, entonces irá a DLAY1-

DJNZ R7, DELAY0

DJNZ R4, DELAY1 // p>

DJNZ R5, retrasado

Remojado para suavizar

TABLE: //Declaración de tabla para almacenar datos -

DB 82H, 01H, 81H, 94H, 84H, 0B4H, 0A4H, 04H

DB 82H, 01H, 81H, 94H, 84H, 0C4H, 0B4H, 04H

DB 82H, 01H, 81H, 0F4H, 0D4H, 0B4H, 0A4H, 94H

DB 0E2H, 01H, 0E1H, 0D4H, 0B4H, 0C4H, 0B4H, 04H

DB 82H , 01H, 81H, 94H, 84H, 0B4H, 0A4H, 04H

DB 82H, 01H, 81H, 94H, 84H, 0C4H, 0B4H, 04H

DB 82H, 01H, 81H , 0F4H, 0D4H, 0B4H, 0A4H, 94H

DB 0E2H, 01H, 0E1H, 0D4H, 0B4H, 0C4H, 0B4H, 04H, 00H

TABLE1: //Declaración de tabla -

DW 64260, 64400, 64524, 64580, 64684, 64777, 64820, 64898

DW 64968, 65030, 65058, 6510, 65157, 65178, 65217

;//No entiendo por qué hay un punto y coma, Quizás sea para comentarios -

Fin//Fin del programa -

-

Eso es él. Acabas de llamar al traductor. ¡No nos mostraste lo que hace el programa!

Si necesita la funcionalidad del programa, ¡adjunte una descripción!

¡Espero que esto ayude!