Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

PIC16F84. far visualizzare mess. e interrompere operazioni

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] PIC16F84. far visualizzare mess. e interrompere operazioni

Messaggioda Foto Utentepeppe91 » 2 apr 2012, 4:25

Salve Ragazzi, stavo programmando un PIC 16F84A con un programma timer...quando mi è sorta una domanda, posso far in modo che se su un piedino non riceve tensione il PIC fa visualizzare sul display un messaggio e di conseguenza interrompere tutte le operazioni? ovviamente se riceve tensione riprende il normale funzionamento eseguendo tutte le funzioni per cui è predisposto... è possibile?...potete darmi istruzioni? è la prima volta che lavoro con i PIC. Saluti...
Avatar utente
Foto Utentepeppe91
15 1 5
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 ott 2010, 23:46

0
voti

[2] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto Utentepeppe91 » 2 apr 2012, 4:27

dimenticavo, se dovesse essere necessario il display è un HITACHI HD44780 16x2
Avatar utente
Foto Utentepeppe91
15 1 5
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 ott 2010, 23:46

0
voti

[3] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto Utentesimo85 » 2 apr 2012, 7:48

Se per non ricevere tensione intendi uno 0 logico V_\text{IL}, puoi usare l'interrupt on change del PORTB. Tieni conto che la IOC avviene sia per la transizione \text{T}_\text{HL} come \text{T}_\text{LH}.
Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[4] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto Utentepeppe91 » 2 apr 2012, 10:10

Salve Gohan, grazie per la risposta...come sempre velocissimo, ti chiedo una cosa....ma l'interrupt on change è disponibile su tutte le porte B? attualmente ho completamente libera solo la RB0, che mi sembra tra l'altro la più indicata per l'interrupt, è possibile utilizzarla per questo scopo? come fare a far visualizzare il messaggio durante l'interruzione e al momento in cui non riceve più tensione far ripartire i processi? altra cosa...non voglio farvi uscire pazzi, in giro c'è qualche simulatore dove sia facile compilare il firmware del PIC e magari simularne il comportamento???
Avatar utente
Foto Utentepeppe91
15 1 5
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 ott 2010, 23:46

1
voti

[5] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto UtenteTardoFreak » 2 apr 2012, 10:43

Per fare quello che tu dici ci sono diverse possibilità. Una è quella di usare un ingresso di interrupt ma si può fare anche senza. Immagino che il tuo programma sia fatto bene (secondo i canoni) e quindi l' esecuzione si svolga nel classico loop infinito di funzionamento. In questo caso basta testare ciclicamente l' ingresso che rileva la presenza di tensione.
Tieni presente che il micro deve accorgersi della mancanza di tensione prima che questa venga tolta a lui altrimenti il micro si spege e buonanotte ai suonatori. Per fare questo devi usare opportuni accorgimenti. Ad esempio se il micro è alimentato tramite un regolatore di tensione puoi rilevare la presenza di tensione a monte del regolatore usando un circuito del genere

Il diodo D1 fa in modo che quando l' alimentazione va via il condensatore Cin resti carico per il tempo sufficiente a far svolgere al micro le operazioni di chiusura mentre il segnale Vsense se ne va all' istante "avvertendo" il micro per tempo.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[6] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto Utentepeppe91 » 2 apr 2012, 11:03

Ciao TardoFreak, grazie 1000 per la risposta...dunque, il programma è fatto bene, o almeno va in esecuzione perfettamente nel micro :), trattasi di un timer con possibilità di impostazione che aziona relay e via dicendo...per quanto riguarda il togliere alimentazione, di conseguenza non si spegnerebbe il display ecc?...a me interesserebbe che il display rimanga acceso dando la possibilità al micro di visualizzare il messaggio d'errore per il quale non sono partiti i processi...
Avatar utente
Foto Utentepeppe91
15 1 5
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 ott 2010, 23:46

0
voti

[7] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto UtenteTardoFreak » 2 apr 2012, 11:23

Non ho capito a chi vuoi togliere l' alimentazione.
Mi dici che il display deve rimanere acceso quindi deve per forza essere alimentato.
Hai quindi un circuito dove al micro viene tolta l' alimentazione lasciando il display alimentato?
Spiegati meglio, magari con uno schema a blocchi (disegnato con fidocad) perché non capisco. :-M
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[8] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto Utentepeppe91 » 2 apr 2012, 11:35

Forse mi sono espresso male....ciò che vorrei fare è che quando uno dei piedini del PIC riceve tensione interrompa tutti i processi visualizzando il messaggio, in questo caso mi trovo libero il RB0....ovvero se io ho un pulsantino N.C. collegato ad esempio alla +5V da una parte e dall'altra all'RB0, senza la pressione del pulsante con alimentazione del pin, il micro blocca tutti i processi in corso visualizzando il messaggio, alla mancanza di alimentazione sul pin RB0, i processi riprendono normalmente...hai presente le stampanti quando apri il coperchio delle cartucce mentre sta stampando???....blocca la stampa visualizzando il messaggio sul display, "chiudere coperchio cartucce" appena lo chiudi riprende la stampa....quello che vorrei fare è una cosa quasi identica....
Avatar utente
Foto Utentepeppe91
15 1 5
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 ott 2010, 23:46

0
voti

[9] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto UtenteTardoFreak » 2 apr 2012, 11:54

Allora è tutto più semplice!
Come ho detto prima puoi usare un' interrupt o testare continuamente lo stato del pin all' interno del ciclo principale di funzionamento. Dipende dal tempo di risposta. Se lo testi all' interno del loop il tempo di risposta è dato dalla durata massima che il ciclo di funzionamento ha, se usi l' interrupt è praticamente immediato.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[10] Re: PIC16F84. far visualizzare mess. e interrompere operazio

Messaggioda Foto Utentepeppe91 » 2 apr 2012, 13:14

Perfetto!!! l'interrupt da quel che ho letto è proprio il pin che ho libero RB0/INT, praticamente verrebbe una cosa del genere....giusto?
Immagine
per quanto riguarda il codice...come potrei compilarlo?
Avatar utente
Foto Utentepeppe91
15 1 5
Frequentatore
Frequentatore
 
Messaggi: 141
Iscritto il: 12 ott 2010, 23:46

Prossimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti