Jump to content
PLC Forum


giolecce

programma per PIC 16F84A

Recommended Posts

Livio Orsini
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

Share this post


Link to post
Share on other sites

dott.cicala

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.....

Edited by dott.cicala

Share this post


Link to post
Share on other sites
gabri-z
2 minuti fa, dott.cicala ha scritto:

* Created on 7 Novembre 2020,

Come gli assegni ?

Share this post


Link to post
Share on other sites
dott.cicala

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

image.png.b479bf84c5d90aa336163663cdbfa730.png

 

16F84A.jpg.b11c9f146acf4b3908343af23afc480f.jpg

 

 

Edited by dott.cicala

Share this post


Link to post
Share on other sites
Livio Orsini
13 ore fa, gabri-z ha scritto:

Come gli assegni ?

 

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

Share this post


Link to post
Share on other sites
giolecce
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?

Share this post


Link to post
Share on other sites
dott.cicala
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.

Share this post


Link to post
Share on other sites
giolecce
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.

 

Edited by giolecce

Share this post


Link to post
Share on other sites
dott.cicala
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.

Share this post


Link to post
Share on other sites
Livio Orsini
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.

Share this post


Link to post
Share on other sites
dott.cicala

RA3 non è il /MCLR?  No?....Allora... sarà il caso di comprare un pickit3 originale

 

Share this post


Link to post
Share on other sites
Livio Orsini
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

Share this post


Link to post
Share on other sites
dott.cicala

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.

 

Share this post


Link to post
Share on other sites
giolecce
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?

Share this post


Link to post
Share on other sites
dott.cicala

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

 

Share this post


Link to post
Share on other sites
giolecce
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.

Share this post


Link to post
Share on other sites
Livio Orsini

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.

Share this post


Link to post
Share on other sites
dott.cicala

Alla basetta non ci aveva pensato nessuno 😄😄😄

Share this post


Link to post
Share on other sites
ilguargua
1 ora fa, dott.cicala ha scritto:

Alla basetta non ci aveva pensato nessuno 😄😄😄

Come no, prendi lui ad esempio :

basette.jpg

 

Ciao, Ale.

Share this post


Link to post
Share on other sites
Livio Orsini

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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...