Red de conocimiento informático - Computadora portátil - Programa de ensamblaje del microcontrolador 51 0000-9999

Programa de ensamblaje del microcontrolador 51 0000-9999

ORG 0000H

LJMP PRINCIPAL

ORG 0030H

PRINCIPAL:

MOV 70H, #0 ;mostrar Buffer, puedes entenderlo como una matriz, 70H~73H

MOV 71H, #0

MOV 72H, #0

MOV 73H, #0

MOV 74H, #12H ;Unidad de conteo.

MOV 75H, #34H ;Ambos son códigos BCD.

;--------- -----------------------

M_LOOP:

LCALL DISP ;Llamar a la subrutina de visualización

JNB P3.2, JIA_YI ;P3.2 es un bloque de giro bajo más 1

JNB P3.3, QING_L ;P3.3 es un bloque de giro bajo y claro 0

AJMP M_LOOP ;Vaya ​​a M_LOOP y comience de nuevo

;------------------------------ ----

JIA_YI:

LCALL DISP ;Visualización de llamada

JB P3.2, M_LOOP ;P3.2 es 1 y transfiere al bucle principal

MOV A , 75H ;El número 75H (unidades y decenas) se envía A

ADD A, #1 ;Suma 1

DA A ;Ajuste decimal

MOV 75H, A ;Devolver 75H

MOV A, 74H ;Enviar 74H (centenas y miles) a A

ADDC A, #0 ;Agregar 0 con acarreo

DA A ;Ajuste decimal

MOV 74H, A ;Retorno 74H

J_L:

LCALL DISP ;Visualización de llamadas

JNB P3.2, J_L ;P3.2 está bajo, gire a J_L

AJMP M_LOOP ;gire al bucle principal

;----- -------- ------------------

QING_L:

LCALL DISP ; >

JB P3.3 , M_LOOP ;P3.3 es el bucle principal de alta velocidad

MOV 74H, #0 ;Los dígitos de miles y centenas se borran a 0

MOV 75H, #0 ;Los dígitos de las decenas y las unidades se borran a 0

AJMP M_LOOP ;Ir al bucle principal

;-------------- ------------------- -

DISP:

MOV R0, #70H Enviar R0 para la dirección base 70H

MOV A, 74H; Enviar A para dígitos de miles y centenas

SWAP A; Intercambia los cuatro bits superiores y los cuatro bits inferiores

ANL A,

#0FH ; Borra los cuatro bits superiores a 0

MOV @R0, A ; Envía 70H a los mil dígitos

INC R0 ;Agrega 1 a R0 para convertirte en 71H

MOV A , 74H ; Enviar A para dígitos de miles y centenas

ANL A, #0FH ; Proteger los cuatro dígitos superiores

MOV @R0, A ; dígitos

INC R0 ; Suma 1 a R0 para convertirlo en 72H

MOV A, 75H ; Envía A a los dígitos de las decenas y las unidades, el siguiente procesamiento es similar al anterior

INTERCAMBIO A

ANL A, #0FH

MOV @R0, A

INC R0

MOV A, 75H

ANL A, #0FH

MOV @R0, A

MOV DPTR, #D_TAB ;La primera dirección de la tabla se envía a DPTR

MOV R2, #254 ;R2=FEH, este es el código de control de bits

MOV R0, #70H; La dirección base envía R0

D_LOOP:

MOV A, @R0

MOVC A, @ A+DPTR

MOV P2, #255 ;Supresión.

MOV P0, A ;Segmento de salida código.

MOV P2, R2 ;Código de bits de salida .

LCALL DL_1MS

MOV A, R2

RL A ; por 1 bit

MOV R2, A

INC R0

CJNE R0, #74H, D_LOOP Los cuatro dígitos no se muestran y se convierten a D_LOOP

RET

D_TAB:

DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H

DB 80H, 90H, 88H, 83H, 86H, 0A1H, 86H, 8EH

------------------------------- ---

DL_1MS:

DJNZ R7, $

DJNZ R7, $

RET

; ---------------------- ---------

FIN