Home
Accesso / Registrazione
 di 

Codificatore DTMF a tastiera - 2

Codificatore DTMF a tastiera

Non solo, dalla Zilog abbiamo anche preso l’idea: un’applicazione consigliata nelle “application-notes” della Casa nella quale viene illustrato un combinatore DTMF basato proprio su uno Z86xx, anche se la Zilog proponeva l’impiego dello Z86E06 (fratello maggiore dello 04).

Il risultato della fusione tra le conoscenze dei nostri progettisti e le nozioni contenute nelle “application” della Zilog lo potete vedere in queste pagine: lo schema elettrico che trovate delinea la struttura del circuito (semplice e compatto) mentre il listato del software che potete scorrere linea per linea indica, insieme al relativo flow-chart, la struttura del programma che gestisce il microcontroller e quindi il codificatore. Per comprendere come funziona questo circuito spieghiamo a grandi linee l’esecuzione del programma del microcontrollore, vedendone poi gli effetti sull’hardware che circonda quest’ultimo.

Allora, come si vede dal flow-chart, dopo l’accensione del circuito vengono inizializzate le porte di I/O del microcontrollore, che impiega tutta la porta 2 e solo un bit della porta zero; della porta 2, i primi 4 bit vengono configurati come ingressi e i restanti 4 come uscite. Subito dopo il microcontrollore esegue la scansione della tastiera che è del tipo a matrice e risulta collegata con le righe ai quattro ingressi (P20÷P23, piedini 15÷18) dello Z86E04 e con le colonne ai bit P24÷P27 (piedini 1÷4) dello stesso.

Per eseguire la scansione il micro applica un livello logico basso ad uno dei 4 piedini di uscita (bit P24, P25, P26 P27) della porta 2 (ovvero ad una delle colonne) e va a vedere se questo livello compare ad uno dei quattro ingressi (righe) normalmente tenuti a livello alto dalle resistenze di pull-up R1, R2, R3, R4.

Codificatore_DTMF_tastiera_mcu_z86e04

Il livello logico durante la scansione viene applicato alle quattro colonne in sequenza, cioè prima ad una, poi alla successiva, ecc. ricominciando daccapo dopo la quarta. Se risulta premuto un tasto della tastiera il livello logico applicato alla colonna che lo riguarda si ritrova all’ingresso di riga ad esso collegato: ad esempio, se è premuto il tasto 4 la seconda riga (P21) riceve il livello logico applicato alla prima colonna (P24) quando questa viene attivata nel ciclo di scansione. Appena verificata la corrispondenza tra una riga ed una colonna il microcontrollore attiva una routine di antirimbalzo, che serve ad evitare le false commutazioni indotte dal cattivo contatto dei tradizionali pulsanti meccanici: in pratica il micro accetta, nell’arco di tempo riservato all’attivazione di una singola uscita, una sola chiusura del pulsante, ignorando le successive.

Poi provvede a ripescare in un’apposita tabella le due frequenze corrispondenti al bitono DTMF legato al tasto appena premuto, quindi forza il proprio circuito generatore a produrre le due frequenze e ad inviarle all’uscita P02 (piedino 13). Ora va notato il particolare meccanismo di funzionamento del microcontrollore, particolare perché i bitoni del DTMF sono normalmente composti da segnali sinusoidali, mentre lo Z86E04, come tutti i circuiti digitali, genera solo segnali di tipo on/off 0/5V. I segnali DTMF vengono in pratica sintetizzati da un generatore PWM (Pulse Width Modulation, ovvero modulazione della larghezza degli impulsi) interno al microcontrollore che viene forzato a lavorare a determinate frequenze dal programma. Detto in parole povere, i segnali PWM vengono prodotti basandosi su un’onda quadra; i due contatori interni al microcontroller provvedono a controllare uno la durata del periodo, e l’altro la durata del solo livello alto (duty-cycle).

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

Ci sono attualmente 8 utenti e 64 visitatori collegati.

Ultimi Commenti