Vai al contenuto
PLC Forum


programma per PIC 16F84A


giolecce

Messaggi consigliati

3 minuti fa, dott.cicala ha scritto:

e non perdo mai  tempo a simulare ma monto sempre i circuiti.

 

Anch'io non simulo; tuttal più uso una scheda che avevamo messo a punto, con altri due amici del forum, per poter usare un'infinità di PIC purchè in contenitore DIP i 3 formati sino al 40 pins

Link al commento
Condividi su altri siti


  • Risposte 70
  • Created
  • Ultima risposta

Top Posters In This Topic

  • Livio Orsini

    23

  • giolecce

    17

  • dott.cicala

    15

  • del_user_97632

    12

Questo è il "codice" 

 

/*
 * File:   newmain.c
 * Author: Stefano
 *
 * Created on 7 Novembre 2020, 23.40
 */

#include <xc.h>
#include <stdlib.h>
#include <stdio.h>

// CONFIG
#pragma config FOSC = XT        // Oscillator Selection bits (XT oscillator)
#pragma config WDTE = OFF       // Watchdog Timer (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (Power-up Timer is disabled)
#pragma config CP = OFF         // Code Protection bit (Code protection disabled)
//******************************************************************************
// Configurazione Frequenza Clock
//******************************************************************************
#define _XTAL_FREQ 800000
//****** I/O *******************************************************************
#define Pbutton  PORTAbits.RA3
#define Led      PORTBbits.RB3
bit     Rise,mRise,Fall,mFall;
//******************************************************************************
void main()
 {
//******************************************************************************
// Inizializzo
//******************************************************************************
   TRISA = 0XFF;
   TRISB = 0X00;
   PORTA = 0x00;
   PORTB = 0x00;
   Rise  = 0;
   Fall  = 0;
   mRise  = 0;
   mFall  = 1;
//******************************************************************************
//
//******************************************************************************
    while(1)
    {
     // Fronte di salita
     Rise= Pbutton &! mRise;
     mRise= Pbutton;
     // Fronte discesa
     Fall= !Pbutton &! mFall;
     mFall= !Pbutton;
     if(Rise||Fall)Led=1;
     if(Led)
      {
       __delay_ms(1000); 
       Led=0;
      }
    }
  return;
 }

Magari Sabato lo rimonterò per fare il video.....

Modificato: da dott.cicala
Link al commento
Condividi su altri siti

Non trovo più il quarzo da 8MHz così ne ho usato uno da 10MHz

image.png.b479bf84c5d90aa336163663cdbfa730.png

 

16F84A.jpg.b11c9f146acf4b3908343af23afc480f.jpg

 

 

Modificato: da dott.cicala
Link al commento
Condividi su altri siti

13 ore fa, gabri-z ha scritto:

Come gli assegni ?

 

Sai il dott è sempre in anticipo sui tempi:smile:

Link al commento
Condividi su altri siti

  • 2 weeks later...
Il 11/3/2020 alle 20:23 , dott.cicala ha scritto:

Non trovo più il quarzo da 8MHz così ne ho usato uno da 10MHz

image.png.b479bf84c5d90aa336163663cdbfa730.png

 

16F84A.jpg.b11c9f146acf4b3908343af23afc480f.jpg

 

 

Ho comprato il nuovo pic sempre un 16f84a, montato tutto, caricato il tuo codice ma il comportamento non cambia.

l'unica cosa che rimane da fare è cambiare il programmatore.....potrebbe mai essere possibile?

Link al commento
Condividi su altri siti

1 ora fa, giolecce ha scritto:

l'unica cosa che rimane da fare è cambiare il programmatore.....potrebbe mai essere possibile?

E' più probabile che sia il pulsante che stai usando a generare una serie di rimbalzi.

Come fornisci l'impulso?

Nel codice non ho implementato un antirimbalzo e la funzione è svolta da R3-C4

Prova ad abbassare R3 ad 1k e se funziona ma è lento, abbassa C4 a 0,47uF

 

Che il compilatore/programmatore sbagli col 16F84A mi sembra incredibile. Se fosse vero....è proprio un catorcio, ma pur non essendo il massimo non credo che sbagli.

Per curiosità ho provato a caricare l'hex sia con il Pickit4 che con mikroProg ottenendo giustamente il medesimo funzionamento.

Link al commento
Condividi su altri siti

37 minuti fa, dott.cicala ha scritto:

E' più probabile che sia il pulsante che stai usando a generare una serie di rimbalzi.

Come fornisci l'impulso?

Nel codice non ho implementato un antirimbalzo e la funzione è svolta da R3-C4

Prova ad abbassare R3 ad 1k e se funziona ma è lento, abbassa C4 a 0,47uF

 

Che il compilatore/programmatore sbagli col 16F84A mi sembra incredibile. Se fosse vero....è proprio un catorcio, ma pur non essendo il massimo non credo che sbagli.

Per curiosità ho provato a caricare l'hex sia con il Pickit4 che con mikroProg ottenendo giustamente il medesimo funzionamento.

Prima di effettuare quanto mi hai suggerito ho provato a caricare sul pic il programma che mi fa semplicemente lampeggiare il led:


TRISB = %00000000
PORTB = 0
inizio:
        PORTB.3 = 1
        WaitMs 1000
        PORTB.3 = 0
        WaitMs 1000
Goto inizio

End  

 

montando il pic sul medesimo circuito e dando alimentazione non avviene nulla.

SOLO se porto e mantengo l'ingresso RA.3 a livello alto allora il led comincia a lampeggiare.

 

Modificato: da giolecce
Link al commento
Condividi su altri siti

1 ora fa, giolecce ha scritto:

SOLO se porto e mantengo l'ingresso RA.3 a livello alto allora il led comincia a lampeggiare.

E' corretto.

Link al commento
Condividi su altri siti

8 minuti fa, dott.cicala ha scritto:

E' corretto.

 

Mica tanto.

Se il programma è quello che ha riportato nel messaggio non c'è alcuna istruzione che faccia riferimento a RA.3.

Link al commento
Condividi su altri siti

5 minuti fa, dott.cicala ha scritto:

RA3 non è il /MCLR?  

 

Non ci avevo fatto caso, non ho mai usato questo PIC.

Ma se è il MClr dovrebbe avere la canonica ressitenza verso il +5V ed un altrettanto canonico condensatore verso lo zero.

Glielo avevo anche scritto un po' di emssaggi addietro.

Eventualmente un pulsante NO che cortocircuita il condensatore per fare l'azzeramento manuale

Link al commento
Condividi su altri siti

No non è il /MCLR. Io  avevo pensato subito a quello ma  poi guadando il ds mi sono accorto della svista.

image.png.13183f9ce45be467b5f43f70862bb77e.png 

Lo schema che dovrebbe seguire ce l'ha già ed è quello che ho pubblicato in precedenza.

 

Link al commento
Condividi su altri siti

8 minuti fa, dott.cicala ha scritto:

No non è il /MCLR. Io  avevo pensato subito a quello ma  poi guadando il ds mi sono accorto della svista.

image.png.13183f9ce45be467b5f43f70862bb77e.png 

Lo schema che dovrebbe seguire ce l'ha già ed è quello che ho pubblicato in precedenza.

 

Ma ho esattamente replicato il tuo schema...quindi?

Link al commento
Condividi su altri siti

Lo schema è perfetto, il codice pure e il video lo documenta.

Quindi....niente.  Di più cosa potrei fare?

Rimane solo il tuo compilatore/programmatore a questo punto

 

Link al commento
Condividi su altri siti

3 ore fa, dott.cicala ha scritto:

Lo schema è perfetto, il codice pure e il video lo documenta.

Quindi....niente.  Di più cosa potrei fare?

Rimane solo il tuo compilatore/programmatore a questo punto

 

Ho risolto...era la breadboard difettosa. Praticamente non arrivava la tensione sul piedino 14. Vi ringrazio di tutto siete stati pazienti con me....ho imparato tanto dai vostri consigli e spero che vogliate insegnarmi tanto altro, confido in voi ...grazie veramente.

Link al commento
Condividi su altri siti

L'importante è arrivarci.

Se poi hai anche imparato qualche cosa, specialmente su come si deve procedere per ricercare un malfunzionamento, allora non è stato tempo perso.

Il forum è qui e funziona anche in tempi di "distanziamento sociale" come i politici hanno eufemisticamente denominato la segregazione ed il coprifuoco (per altro indispensabili, vista la situazione).

Quando vuoi chiedere sei il benvenuto e, magari, potrai anche aiutare qualcun altro.

Link al commento
Condividi su altri siti

1 ora fa, dott.cicala ha scritto:

Alla basetta non ci aveva pensato nessuno 😄😄😄

Come no, prendi lui ad esempio :

basette.jpg

 

Ciao, Ale.

Link al commento
Condividi su altri siti

Mitico. I blues brothers è un film che ho visto e rivisto e che non mi stanco mai di rivedere, con la musica che è stata la colonna sonora della mia adolescenza.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

×
×
  • Crea nuovo/a...