1. Kamere
  2. Avto avdio in elektronika
  3. Domači avdio
  4. Osebni avdio
  5. Televizorji
  6. Pametni dom
  >> Elektronska Tehnologija >  >> Telefoni >> Odgovorniki

Napisati montažno kodo za nadzorni sistem semaforja z uporabo 8086?

```sestavljanje

; Določite pomnilniške naslove za nadzor semaforjev

TL_RED enako 00H

TL_RUMENA ​​enako 01H

TL_GREEN enako 02H

TL_CONTROL enak 03H

; Določite V/I vrata za nadzor semaforjev

OUTPUT_PORT enako 04H

; Določite vrednosti zakasnitve

DELAY_TIME enako 10000

org 100H

; Glavni program se začne tukaj

glavni:

mov al, TL_RED; Inicializirajte semafor na rdečo

mov [TL_CONTROL], al

jmp zanka; Skoči na zanko

zanka:

mov al, [TL_CONTROL]; Preberite trenutno stanje semaforja

cmp al, TL_RED; Preverite, ali je na semaforju rdeča luč

je rdeča; Če je rdeče, skoči v rdeče stanje

cmp al, TL_RUMENA ​​; Preverite, ali je na semaforju rumena luč

je rumena; Če je rumeno, skoči v rumeno stanje

cmp al, TL_GREEN; Preverite, če je na semaforju zelena luč

je zelena; Če je zelena, skoči v zeleno stanje

rdeče:

mov al, OUTPUT_PORT; Izberite izhodna vrata za rdečo luč

ven al, 01H; Prižgi rdečo luč

zakasnitev klica; Zakasnitev za DELAY_TIME milisekunde

mov al, OUTPUT_PORT; Izberite izhodna vrata za rdečo luč

ven al, 00H; Ugasni rdečo luč

mov al, TL_RUMENA ​​; Status naslednjega semaforja nastavite na rumeno

mov [TL_CONTROL], al

jmp zanka; Skoči na zanko

rumeno:

mov al, OUTPUT_PORT; Izberite izhodna vrata za rumeno svetlobo

ven al, 01H; Prižgi rumeno luč

zakasnitev klica; Zakasnitev za DELAY_TIME milisekunde

mov al, OUTPUT_PORT; Izberite izhodna vrata za rumeno svetlobo

ven al, 00H; Ugasni rumeno luč

mov al, TL_GREEN; Status naslednjega semaforja nastavite na zeleno

mov [TL_CONTROL], al

jmp zanka; Skoči na zanko

zelena:

mov al, OUTPUT_PORT; Izberite izhodna vrata za zeleno luč

ven al, 01H; Prižgi zeleno luč

zakasnitev klica; Zakasnitev za DELAY_TIME milisekunde

mov al, OUTPUT_PORT; Izberite izhodna vrata za zeleno luč

ven al, 00H; Ugasni zeleno luč

mov al, TL_RED; Status naslednjega semaforja nastavite na rdečo

mov [TL_CONTROL], al

jmp zanka; Skoči na zanko

zamuda:

mov cx, DELAY_TIME; Inicializiraj števec zakasnitve

xor dx, dx; Počisti register dx

delay_loop:

zanka zakasnitev_zanka; Vrtite v zanko, dokler števec ne doseže ničle

ret

  • --热点Elektronske tehnologije Online
  1. Katere storitve ponuja Hello Direct?
  2. Zakaj je podatkovno vodilo v 8085 dvosmerno?
  3. Ali so številke 0800 brezplačne v ZK?
  4. Kaj je telefonska številka Maury?
  5. Katere storitve ponuja Cisco Academy?