Programmazione PIC 16F84 per pulsantiera

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
Messaggi: 4226
Iscritto il: 20 gen 2006, 10:42
Località: Vigevano (PV)
Contatta:
3
voti

[21] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto UtentePaolino » 13 giu 2012, 13:41

Due note:
1. Vuoi usare davvero PIC16F84? La versione "A", PIC16F84A presenta qualche miglioria rispetto alla versione senza A. In ogni caso, si tratta di prodotti obsoleti!
2. Se proprio vuoi usare il PIC16F84(A), attenzione che la porta RA4 è di tipo open drain. Se usata come output, va messa ua resistenza di pull-up:



Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it

Avatar utente
Foto Utentecassvs
30 1 4
Messaggi: 45
Iscritto il: 12 giu 2012, 1:34
Località: SALERNO
0
voti

[22] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto Utentecassvs » 13 giu 2012, 13:50

SI avevo pensato al 16f84A ma il fornitore più vicino casa li ha finiti e gli è rimasto solo un 16f84... comunque le porte A le uso tutte in input... grazie :P

Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
Messaggi: 4226
Iscritto il: 20 gen 2006, 10:42
Località: Vigevano (PV)
Contatta:
3
voti

[23] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto UtentePaolino » 13 giu 2012, 16:06

cassvs ha scritto:... comunque le porte A le uso tutte in input... grazie :P

Beh, dovrai comunque prevedere un pull-up o un pull-down, dato che li usi come ingressi.

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it

Avatar utente
Foto Utentecassvs
30 1 4
Messaggi: 45
Iscritto il: 12 giu 2012, 1:34
Località: SALERNO
0
voti

[24] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto Utentecassvs » 13 giu 2012, 16:08

beh non ho capito cosa dovrei fare in realtà...
Ultima modifica di Foto Utenteasdf il 13 giu 2012, 16:14, modificato 1 volta in totale.
Motivazione: Eliminata citazione integrale della risposta precedente. Per rispondere cliccare sul pulsante "Rispondi" e non sul pulsante "Cita".

Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
Messaggi: 3047
Iscritto il: 24 gen 2012, 18:23
Contatta:
1
voti

[25] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto Utentefairyvilje » 13 giu 2012, 16:10

Devi mettere dei resistori abbastanza elevati per evitare fluttuazioni del segnale dovuti ad eventi esterni se non erro. Si possono mettere in configurazione di pull-up o pull-down.

Avatar utente
Foto Utentecassvs
30 1 4
Messaggi: 45
Iscritto il: 12 giu 2012, 1:34
Località: SALERNO
0
voti

[26] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto Utentecassvs » 13 giu 2012, 16:13

io ho messo dei resistori da 10 k che vanno dallo switch a massa come è fatto in questo schema per le porte b
Immagine
intendete questo?

Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
Messaggi: 4226
Iscritto il: 20 gen 2006, 10:42
Località: Vigevano (PV)
Contatta:
3
voti

[27] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto UtentePaolino » 13 giu 2012, 16:17

Si intende proprio quello. In altre parole:

ingresso con resistore di pull-up


ingresso con resistore di pull-down


Ciao.

Paolo
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it

Avatar utente
Foto Utentecassvs
30 1 4
Messaggi: 45
Iscritto il: 12 giu 2012, 1:34
Località: SALERNO
0
voti

[28] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto Utentecassvs » 13 giu 2012, 16:18

ok allora stavo procedendo per il megli :P grazie

Avatar utente
Foto Utentecassvs
30 1 4
Messaggi: 45
Iscritto il: 12 giu 2012, 1:34
Località: SALERNO
0
voti

[29] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto Utentecassvs » 13 giu 2012, 17:22

Allora... questo è lo schema realizzato con multisim:
schema.png
schema pulsantiera
schema.png (66.53 KiB) Visto 1704 volte

Questo è il listato fatto da me in basic:

Codice: Seleziona tutto

program pulsantiera

'definizione delle variabili
dim led1 as byte
dim led2 as byte
dim led3 as byte
dim led4 as byte
dim led5 as byte
dim premuti as byte
dim i as word

main:
'impostazioni porte
TRISA=%11111
TRISB=%00000000
porta=0
portb=0

'inizio ciclo di attesa pressione pulsante
while true
      led1=0
      led2=0
      led3=0
      led4=0
      led5=0
      premuti=0
     
      do
        if (porta.0=1) and (premuti=0) then
           led1=1
           premuti=1
        end if
        if (porta.1=1) and (premuti=0) then
           led2=1
           premuti=1
        end if
        if (porta.2=1) and (premuti=0) then
           led3=1
           premuti=1
        end if
        if (porta.3=1) and (premuti=0) then
           led4=1
           premuti=1
        end if
        if (porta.4=1) and (premuti=0) then
           led5=1
           premuti=1
        end if
      loop until premuti=1
     
     
      if led1=1 then
         portb.0=1
      end if
      if led2=1 then
         portb.1=1
      end if
      if led3=1 then
         portb.2=1
      end if
      if led4=1 then
         portb.3=1
      end if
      if led5=1 then
         portb.4=1
      end if
     
'attiva il buzzer per 1 secondo
      for i=1 to 500
          portb.6=1
          Delay_ms(1)
          portb.6=0
          Delay_ms(1)
      next i
     
'il codice qui sotto dovrebbe far restare attivo il led alla porta portb.5 per 5 secondi
'l'ho inserito per far si che alla fine del tempo ammesso per dare la risposta si spenga il led che indica il tempo senza che si disattivi quello relativo al pulsante premuto
      portb.5=1
      Delay_ms(5000)
      portb.5=0

wend
end.

Ora vorrei simulare il tutto con multisim ma nn riesco a far andare il microcontrollore... ho messo in allegato un file zip con all'interno il progetto realizzato con multisim e il file .hex da dare al microcontrollore per testarlo. Spero che qualcuno mi aiuti!!!! File .zip:
PulsantieraQuiz.zip
File di progetto
(181.15 KiB) Scaricato 115 volte

Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
Messaggi: 4226
Iscritto il: 20 gen 2006, 10:42
Località: Vigevano (PV)
Contatta:
3
voti

[30] Re: Programmazione PIC 16F84 per pulsantiera

Messaggioda Foto UtentePaolino » 13 giu 2012, 22:37

Purtroppo non ho multisim, non posso aiutarti in tal senso sorry
Ora sono un po' KO (sono in piedi da mooooooolto presto, forse troppo presto :( ) e non riesco a connettere come vorrei. Domani leggerò il codice, a mente fresca e riposata. Premetto che con il BASIC non sono molto forte, quindi se commetterò qualche errore di sintassi, dovrai sistemarlo tu.

Ciao.

Paolo.

P.S. Per cortesia, utilizza FIDOCADJ per disegnare gli schemi. Non costa nulla, si integra con ElectroYou e ne è apprezzato da amministratori e moderatori del forum ;-) Vai nel menu HELP del forum e troverai come e dove scaricarlo nonché una semplice guida all'uso.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it


Torna a “Firmware e programmazione”