Home
Accesso / Registrazione
 di 

Corso di programmazione per microcontrollori ST626X. Ottava puntata 3/3

microcontrollori ST626X

LA SCANSIONE DEI PULSANTI

Proseguiamo nella digitazione delle istruzioni con la subroutine “SCAN”. Quest’ultima scandisce l’intera tastiera portando a livello logico basso, una dopo l’altra, le quattro linee di uscita (PB2, PB7, PB6 e PB3) connesse alle righe della tastiera; nel contempo legge lo stato delle linee di ingresso (PC3, PC2 e PC4) collegate alle colonne. Se una linea di ingresso risulta attiva, ovvero allo stato logico basso, significa che un tasto è stato premuto. In questo caso, il software deve riconoscere il tasto premuto e memorizzarne il codice nella cella KEYP. Al termine della subroutine, dovremo testare con l’istruzione di comparazione immediata (CPI) il contenuto della cella KEYP. Se quest’ultimo è uguale a zero significa che nessun tasto è stato premuto e il programma deve riciclare nel main, in caso contrario occorre leggere il contenuto di KEYP. Per fare ciò invochiamo la subroutine “TESTA”; qui confrontiamo i codici memorizzati nelle celle KEY1, KEY2, KEY3, KEY4 e KEY5 con il contenuto di KEYP. Per sapere quante cifre sono state codificate utilizziamo la cella KEYCOD: il primo test avverrà tra KEYP e KEY1 poiché KEYCOD sarà uguale a zero, l’ultimo test sarà tra KEYP e KEY5 poiché KEYCOD sarà 4.

Concludendo, incrementiamo KEYCOD ogni volta che un test viene superato, mentre la azzeriamo, e nel contempo incrementiamo la cella ERRORI, se il test ha esito negativo.

Terminata la subroutine TESTA dovremo agire sul relè se il numero contenuto in KEYCOD è uguale a cinque. Allo scopo, realizziamo la subroutine “ATTUA”. All’interno di quest’ultima dovremo chiudere il relè per circa 1 secondo nel funzionamento monostabile, oppure dovremo toglare lo stato del relè se il funzionamento è di tipo bistabile. Abbiamo così terminato la stesura del programma, salviamo dunque il nostro file ed assembliamolo digitando “AST6 MF68.ASM”. L’assemblatore darà origine ad un secondo file con estensione “.HEX” adatto ad essere trasferito nel micro. Colleghiamo la piastra di programmazione dello Starter Kit al PC, portiamo il ponticello W1 in posizione “PROG”, alimentiamo la scheda, inseriamo un ST62E60 nel text-tool e procediamo alla programmazione del chip.

LA KEY PAD IN PRATICA

Preleviamo il micro programmato e mettiamolo in disparte poiché adesso dobbiamo realizzare l’hardware della nostra tastiera. Allo scopo, utilizziamo la traccia rame riportata nell’articolo e con il metodo della fotoincisione ricaviamo il circuito stampato. Saldiamo alla basetta i vari componenti rispettando la polarità dei diodi, del transistor, dei condensatori elettrolitici e del regolatore di tensione. Con due spezzoni di flat cable, o in mancanza con del normale filo conduttore, colleghiamo la tastiera e i due led alle relative piazzole disponibili sullo stampato. Possiamo utilizzare qualsiasi modello di tastiera a matrice con 12 tasti in funzione delle possibili applicazioni. Nel nostro abbiamo utilizzato una versione standard per uso telefonico. Supponendo di osservare anteriormente questa tastiera, la pin out del connettore (partendo da sinistra verso destra) è la seguente: non collegato, colonna 2, riga 1, colonna 1, riga 4, colonna 3, riga 3, riga 2, non collegato.

Terminato il montaggio della scheda, inseriamo il micro programmato nello zoccolo rispettandone la polarità. Portiamo il dip 1 di DS1 a OFF se intendiamo abilitare il funzionamento monostabile, oppure a ON per selezionare il funzionamento bistabile. Mettiamo in corto l’ingresso Tamper collegando la pista che fa capo al pin 11 del micro a massa. Alimentiamo il circuito con una tensione stabilizzata di circa 12 volt e nel contempo manteniamo premuti i tasti 4, 5 e 6: se tutto funziona correttamente, il led verde deve lampeggiare tre volte per indicare lo stato di programmazione. Immettiamo il codice della chiave premendo i pulsanti relativi, dopo la quinta cifra il led verde deve nuovamente lampeggiare per tre volte indicando così la fine dello stato di memorizzazione. Il codice inserito viene memorizzato nella memoria EEPROM e trattenuto anche togliendo alimentazione. Per modificare tale codice è necessario ripetere dall’inizio la procedura di programmazione.

A questo punto, digitiamo il codice e verifichiamo, nel funzionamento monostabile, che il relè si chiuda per un secondo e che il led verde si accenda. Se il circuito è predisposto per funzionare nel modo bistabile, il relè deve cambiare stato ed i due led devono indicare lo stato del relè: led rosso acceso con relè attivo, oppure led verde acceso con relè a riposo. Si conclude così questo Corso di programmazione dedicato alla famiglia ST6. Speriamo di essere stati di aiuto a quanti - studenti, professionisti o semplici hobbysti hanno affrontato per la prima volta la programmazione in assembler di un microcontrollore. Inizieremo un Corso finalizzato alla conoscenza ed alla programmazione di una nuova famiglia di dispositivi: i micro Z8 della Zilog. In questo caso utilizzeremo per lo studio e la programmazione del micro un vero e proprio emulatore hardware in quanto questo dispositivo presenta, al contrario di altri emulatori, un costo incredibilmente basso. Diamo dunque appuntamento agli appassionati di elettronica digitale al prossimo articolo.

Il kit è disponibile da Futura Elettronica

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ultimi Commenti