Red de conocimiento informático - Conocimiento del nombre de dominio - Diseño curricular sobre principios y aplicaciones de microcomputadoras: control de semáforos

Diseño curricular sobre principios y aplicaciones de microcomputadoras: control de semáforos

ORG 0000H

LJMP STAR1

A_BIT EQU 20H; ubicación de la memoria digital de la tienda

B_BIT EQU 21H digital de un solo dígito El almacenamiento ubicación espacial del número de diez dígitos del tubo

TEMP EQU 22H; la ubicación de almacenamiento del valor del contador

STAR1: MOV TEMP, #20 inicializa el contador

CLR P1.0; luz roja en dirección norte-sur

CLR P1 0.5, luz verde en dirección este-oeste

STLOP1: Llamado por ACALL y DISPLAY1 ; mostrar subrutina

DEC TEMP 1

El contador MOV A disminuye

CJNE A, #0, STLOP1; "

SETB P1.0; La luz roja en dirección norte-sur está apagada

SETB P1.5 ACALL y verde montaña

La llamada del la dirección este a oeste parpadea Proceso de luz amarilla BR /> STAR2: MOV TEMP, #20 Reinicie la cuenta atrás de 60 segundos

CLR P1.2 Luz verde en dirección norte-sur

CLR P1.3; Dirección Este Rojo Oeste

STLOP2: ACALL y pantalla 2; llamar a la subrutina del tubo digital

Disminución del contador DEC

MOV; A, TEMP

CJNE A, #0, STLOP2 para determinar si el contador

SETB P1.2

SETB P1.3

¿Montaña ACALL, llamada de subrutina, la luz amarilla parpadea

Por SJMP STAR1

DISPLAY1: MOV A, TEMP

MOV B, #10

DIV AB

MOV B_BIT, B bit B BR /> MOV A_BIT, A; diez

MOV DPTR, #NUMTAB especifica la dirección inicial de la tabla de búsqueda

MOV R0, #12;

DPL1: MOV R1, #250;

DPLOP1: MOV A, A_BIT un solo dígito

MOVC A , @A + DPTR; código de 7 segmentos de dígitos

MOV P0, A; enviar código de 7 segmentos

CLR P2.3;

ACALL y D1MS; 162 microsegundos

SETB P2.3; apagado un poco para evitar imágenes fantasma

MOV A, B_BIT, en decenas de dígitos

MOVC A _at_ A + DPTR; investigar 10 dígitos, 7 segmentos

MOV P0, A; enviar 10 7 segmentos

CLR a P2.2, abrir 10 significativos

CLR P2.0

CLR P2.1

ACALL D1MS DISPLAY

SETB P2.2 162 microsegundos casi 10 para evitar imágenes fantasma

> Ejecución del bucle DJNZ R1 DPLOP1 250 veces

DJNZ R0, implementación de circulación DPL1 250X4 = 1000

RET

DISPLAY2: MOV A , TEMP Convertir hexadecimal números en TEMP a números decimales BR /> MOV B, #10; 10 decimal/10 = decimal

DIV AB

MOV A_BIT, B, en B

MOV B_BIT 10,A;

A

MOV DPTR, #NUMTAB,

MOVC A especifica la dirección inicial de la tabla de búsqueda

MOV R0, #12; > DPL2: MOV R1, #250;

DPLOP2: MOV A, A_BIT con número, @A + DPTR; código de 7 segmentos del número de encuesta

MOV P0, A; Código de segmento de 7 bits

CLR P2. 0; encender un poco

ACALL y D1MS

Mostrar 162 microsegundos SETB P2.0; apagar un poco para evitar imágenes fantasma

MOV A, B_BIT DIEZ Número de dígitos

MOV P0, A, envía 10 códigos de 7 segmentos

CLR P2.1 , ABRIR DIEZ PRINCIPALES

CLR P2.2 CLR P2.3

ACALL D1MS DISPLAY

SETB P2.1, 162 microsegundos APAGADO 10

ACALL D1MS DISPLAY

p>

DJNZ R1 DPLOP2, evita la ejecución del bucle 250 veces

DJNZ R0, ejecución del bucle DPL2 250X4 = 1000

RET

Montaña: MOV R3, #5;

RONDA: CLR P1.1 /> CLR P1.4

ACALL DELAY; la luz parpadea 5

SETB P1 .1, cada intervalo es de un segundo

SETB P1.4

retardo ACALL

DJNZ R3; redondo;

RET;

D1MS: MOV R7, #80; 2 + 2 p>

RETARDO: MOV R6,

YL3; : MOV R4, #100;

XL2: MOV R5, #71;

DL1: NOP; segunda subrutina de retardo

NOP

NOP

NOP

NOP

DJNZ R5, DL1

DJNZ R4, XL2

DJNZ; R6, YL3;

***Código de visualización del tubo digital del cátodo

NUMTAB uno: DB 03FH 0

FIN