>> Tecnologia elettronica >  >> Telefoni >> Segreterie telefoniche

Scrivi il codice di assemblaggio per il sistema di controllo del semaforo utilizzando 8086?

"assemblea".

; Definire gli indirizzi di memoria per il controllo del semaforo

TL_RED eq 00H

TL_GIALLO equ 01H

TL_VERDE equ 02H

TL_CONTROL equ 03H

; Definire le porte I/O per il controllo del semaforo

OUTPUT_PORT equ 04H

; Definire i valori di ritardo

DELAY_TIME pari a 10000

org 100H

; Il programma principale inizia qui

principale:

movimento al, TL_RED; Inizializza il semaforo al rosso

mov [TL_CONTROL], al

ciclo jmp; Vai al ciclo

ciclo continuo:

movimento al, [TL_CONTROL]; Leggi lo stato attuale del semaforo

cmp al, TL_RED; Controlla se il semaforo è rosso

sì, rosso; Se rosso, passa allo stato rosso

cmp al, TL_GIALLO; Controlla se il semaforo è giallo

sì, giallo; Se giallo, passa allo stato giallo

cmp al,TL_GREEN; Controlla se il semaforo è verde

sì, verde; Se verde, passa allo stato verde

rosso:

movimento, OUTPUT_PORT; Seleziona la porta di uscita per la luce rossa

fuori al, 01H; Accendi la luce rossa

ritardo della chiamata; Ritardo di DELAY_TIME millisecondi

movimento, OUTPUT_PORT; Seleziona la porta di uscita per la luce rossa

fuori alle, 00H; Spegni la luce rossa

movimento al, TL_YELLOW; Imposta lo stato del semaforo successivo su giallo

mov [TL_CONTROL], al

ciclo jmp; Vai al ciclo

giallo:

movimento, OUTPUT_PORT; Seleziona la porta di uscita per la luce gialla

fuori al, 01H; Accendi la luce gialla

ritardo della chiamata; Ritardo di DELAY_TIME millisecondi

movimento, OUTPUT_PORT; Seleziona la porta di uscita per la luce gialla

fuori alle, 00H; Spegni la luce gialla

movimento al, TL_GREEN; Imposta lo stato del semaforo successivo su verde

mov [TL_CONTROL], al

ciclo jmp; Vai al ciclo

verde:

movimento, OUTPUT_PORT; Selezionare la porta di uscita per la luce verde

fuori al, 01H; Accendi la luce verde

ritardo della chiamata; Ritardo di DELAY_TIME millisecondi

movimento, OUTPUT_PORT; Selezionare la porta di uscita per la luce verde

fuori alle, 00H; Spegni la luce verde

movimento al, TL_RED; Imposta lo stato del semaforo successivo su rosso

mov [TL_CONTROL], al

ciclo jmp; Vai al ciclo

ritardo:

mov cx, DELAY_TIME; Inizializza il contatore per il ritardo

xo dx, dx; Cancella registro dx

ritardo_loop:

ciclo_ritardo_loop; Ciclo fino a quando il contatore raggiunge lo zero

ritirarsi

  1. Una macchina per il codice Morse viene utilizzata ancora oggi?
  2. Che tipo di servizio offre Rhaspody?
  3. Chi ha inviato il messaggio di testo dal 400056?
  4. Come sostituire una segreteria telefonica con segreteria telefonica
  5. Cosa significa un numero di telefono che inizia con V e ha 14 numeri v10210425240024?
  6. Come si apre un messaggio del demone Mailer che ti è stato inviato?