P

R

O

C

E

D

U

R

E

Il programma dell'antifurto.

Sono qui riportate le varie procedure e fasi che compongono il programma: fare clik su un nome per maggiori dettagli.

Dichiarazione registri standard / variabili.

Modifica dello Stato del sistema.

Inizializzazione registri e variabili.

I suoni e le segnalazioni acustiche.

Ricezione di un Byte del codice.

L'allarme e l'effetto panico.

Modifica Codice Utente.

Altre procedure.

Il Microcontrollore | Pagina Generale | Gli Schemi

 

 

 

 

 

 

 

Torna Su

Dichiarazione registri standard e delle variabili di programma
                                          

È una parte di programma che non genera codice, ma serve al compilatore per riconoscere i nomi mnemonici che noi assegniamo ad una particolare cella di memoria, per evitarci di riscrivere ogni volta l'indirizzo di ogni registro. Vanno qui dichiarati:

  • i registri generali, cioè quelli che hanno una specifica funzione (Accumulatore, Port, ecc.). Questa parte di programma si ritiene standard;
  • le variabili definite dall'utente.

 

 

 

Inizializzazione dei registri e delle variabili.
                                          

Vengono qui settati i valori preliminari (il codice alla prima accensione, le funzioni dei vari piedini, lo stato iniziale), si disattivano tutti gli interrupt (tranne l'NMI, naturalmente) e si settano i tasti funzione. Si ricordi che, parlando del 74922, si è detto che la disposizione dei tasti era indifferente, purché fissa: in questa parte del programma si assegnano i valori che il Micro vede per ogni tasto che noi premiamo. Se, ad esempio, volessimo far suonare l'allarme premendo il tasto "C" sulla tastiera, controllando la tabella delle equivalenze, sapremmo di dover assegnare alla variabile "TasSuon" il valore 14, o Eh. Qui si è invece usato il tasto "#", come anche per cambiare il codice, mentre si è usato il tasto "*" come Invio.

 

 

 

 

 

Ricezione di un Byte del codice.                                           

Questa procedura, che può sembrare banale, ha invece diversi compiti molto importanti. Infatti, oltre a leggere il dato presente sul Port B ed a farne l'And con 16 per ottenere solo gli ultimi quattro bit, si occupa anche della temporizzazione. Se non riceve un segnale di tasto premuto entro un certo periodo di tempo, o se si tiene premuto un tasto troppo a lungo, la procedura si blocca per evitare di mandare in stallo il programma (sarebbe facile, altrimenti, per un ladro che si sia già procurato il telecomando giusto, tenere premuto un tasto per non far suonare l'allarme, e contemporaneamente smontare la moto per tentare di manomettere la centralina, o solo per rubare carena, benzina, specchietti o simili) restituendo il codice di Invio.

Si noti inoltre come, nell'ST6, il concetto di procedura non sia rigido e ben definito: richiamata una procedura con una Call, dall'interno di questa si può benissimo saltare ad un'altra (anche non dall'inizio) e sfruttare la Ret di quest'ultima per tornare dove il programma era stato interrotto per richiamare la prima. Si faccia però attenzione a far coincidere sempre il le Call con le Ret !

 

 

Ricezione e Riconoscimento del codice.                                           

Acquisisce il codice che gli arriva dal telecomando (filtrato dalle procedure sopra descritte) e lo confronta con il codice che ha in memoria, fino a ricevere il codice di invio. Se dovesse però trovare un carattere differente, il ciclo si arresterebbe e la procedura terminerebbe. Se, invece, il codice è esatto, attende un ultimo carattere: se questo è un Invio, si cambia lo stato, se è uguale a "TasCam", si cambia il codice, altrimenti si annulla tutto.

Se però si preme come primo tasto "TasSuon" e l'antifurto è attivo, si pone nell'accumulatore il valore 144 (che non potrebbe mai essere un tasto, in quanto > 15) e si termina la procedura: sarà la procedura chiamante (la Ric, e non la Rice, che pure è abilitata a chiamare la ricevi) a passare alla procedura Rompo nel punto Soldi, per far suonale l'allarme.

 

 

Modifica del Codice Utente da telecomando                                           

Procedura usata per cambiare il codice, ovvero per impostarne uno nuovo da 1 a 16 cifre (se ne sarebbero potute benissimo gestire anche il doppio: la memoria del Micro sarebbe bastata; quella di un uomo no!). Per interrompere prima di sedici cifre, premere Invio; se lo si preme come prima cifra, il codice non viene cambiato. Si può usare qualsiasi tasto, tranne l'Invio. Con 16 cifre le combinazioni sono, in base alla tastiera usata:

X = Tasti validi; n = Byte codice

  • 16 Tasti è 7,03 biliardi (miliardi di miliardi);
  • 12 Tasti è 50,5 bilioni (milioni di milioni).

Naturalmente i valori così ottenuti vanno moltiplicati per i 35 = 243 codici del telecomando, per un totale massimo di 1710 miliardi di miliardi di combinazioni (coraggio: provatele tutte!)

 

 

Modifica Stato e controllo uscite.                                           

Questa procedura Cambia lo stato (dato che esso è rappresentato dal solo LSB della variabile "Stato", è sufficiente incrementare quest'ultima), modifica l'uscita di sistema che controlla il TRIAC e, se si sta disattivando l'allarme, tenta per tre volte (con tempi sempre crescenti) di mettere in moto, sempre che non si accorga di una eventuale marcia inserita. Per controllare se il motore sia realmente partito, controlla la spia dell'olio, che si spegne (livello alto) quando il motore gira; se questa non è presente, si potrà usare il circuito di adattamento proposto tra gli schemi.

Si è fin qui detto che questo apparecchio è dedicato (o meglio, è stato pensato per essere applicato) alle moto, questo non perché in un'auto non funzionerebbe, ma perché ci sono delle piccole differenze, come le temperature, le difficoltà di installazione, ecc. Non ultimo: le auto non hanno (o almeno non tutte) il sensore del folle, se si lasciasse inavvertitamente la marcia inserita, disattivando l'antifurto si potrebbe fare molto danno (si consiglia quindi di non collegare la centralina all'impianto di avviamento e di lasciare l'ingresso "Folle" aperto o a + 12V)

 

 

 

I suoni di Sistema                                           

I suoni vengono generati da un'insieme di procedure:

  • Suono, genera un impulso positivo ed uno negativo di pari durata, dipendente dal valore del registro H: è l'unica procedura che controlla direttamente l'uscita.
  • Beep emette una nota, dipendente da H.
  • Durata serve a generare due diverse note, a seconda del valore del sesto bit di Cont: va richiamata in un ciclo gestito da Cont.

 

 

L'allarme e l'effetto panico                                           

Se l'antifurto è attivo, il programma principale richiama la procedura "Rompo" che controlla un eventuale stato basso sul Port_B/7, o una variazione di stato del Port_B/6: se si rileva una delle condizioni, l'allarme comincia a "suonare". Solo se è inserita la riga " Jrs 4,Port_B,Rice", il ciclo potrà essere interrotto per controllare un'eventuale tentativo di inserimento codice da telecomando. In tal caso, al ritorno, viene ricontrollato lo stato per determinare se continuare a suonare o tornare al programma principale. Sempre da quest'ultimo verrà ancora controllato il telecomando e, tramite la Ric, si potrà attivare l'effetto panico.

 

 

Altre procedure                                           

Si tratta di procedure di facile comprensione, atte a generare pause, confronti o altri semplici controlli: non modificare, per nessun motivo, il contenuto della variabile Io2.