| | | | Pagina creata il 01/06/2012 [4519 giorni fa] |
|
Applicazioni Software
|
PROGETTO n° 14 - 5/6
[143 di 189]
|
Il programma principale (Main Program),
descritto nella seguente casella di testo,
organizza le fasi tipiche di un progetto di questo tipo:
Le prime 3 istruzioni servono per fissare la situazione iniziale: dopo la consueta predisposizione dell'interfaccia grafica (CALL DeskTop),
per assicurare all'utente le dovute informazioni del programma in
esecuzione: un breve messaggio di presentazione e, di volta in volta, il
valore binario della parola erogata verso l'interfaccia 74LS374 e (tramite
essa) sul digit; la successiva istruzione "punta" la tabella di
conversione (LEA SI,TabSeg): in
sostanza affida al registro SI il compito
di ricordare l'indirizzo della zona di memoria RAM, denominata TabSeg,
caricata con i 16 bytes contenenti le combinazioni di
bit necessarie per accendere correttamente il
digit FND500, una codifica binaria contenente degli
1 se i segmenti devono essere
accesi, e 0 in caso contrario.
L'istruzione seguente (MOV AL,00H) è proprio
una codifica con tutti i bit a 0 che obbliga, all'inizio, a tener spento il
digit (per l'intercessione della
procedura principale, CALL Out08bit).
Segue il Main Loop
(identificato dal codice tra le etichette
XXX00) a cui spetta la gestione vera e propria del programma: la
CALL Out08bit si occupa di accendere il
digit con il codice ricevuto in ingresso in
AL direttamente dalle
linee
d'uscita della porta parallela (cioè dal
Registro d'uscita 0378H/0278H)
oppure dalle linee d'uscita della
memoria esterna 74LS374
(ovviamente collegata sulle uscire del Registro).
Non appena la procedura viene terminata il programma si ferma in attesa di
decisioni (CALL KEYwait): la pressione
del tasto "Q"
ne forzerà la terminazione mentre quella del tasto "I"
lo obbliga ad estrarre in AL il
codice per l'accensione dei segmenti (MOV
AL,[SI]) dalla posizione corrente della Tabella
TabSeg; in tutti gli altri casi la fase
di attesa viene ribadita e si dovrà attendere la pressione d un dei due
tasti appena documentati.