Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
622 connectés 

  FORUM HardWare.fr
  Hardware
  Processeur

  PIC 16F88 CNA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PIC 16F88 CNA

n°10898232
slmh1
Posté le 29-11-2020 à 15:28:01  profilanswer
 

bonjour,
je veux utiliser le PIC 16F88 avec son convertisseur Analogique-Numérique, horloge interne 4 MHz,entrée à convertir sur RA0 et RA1,2 sorties LED sur RA6 et RB7,affichage voltage sur LCD RB0->5. Le problème est lorsque j'affiche le voltage sur LCD REEL sur platine,les nombres affichés sont totalement différents que ceux mesurés sur voltmètre (ex. 0V,8V,3.54V,...). De plus la LED sur RA6 ne s'allume pas même en la forçant. J'utilise MikroC 6.6 et je n'ai pas trouvé dans l'aide ni sur le WEB comment implémenter CONFIG1. Je mesure le voltage d'un potentiomètre et du LM35 (température). J'utilise une référence formée de 2 résistances de 330 ohm en série et point central dirigé sur RA3 pour précision pour LM35 avec extrémité sur +5V et -0V.
Est-ce quelqu'un pourrait m'aider concrètement? Merci d'avance.
ci-joint mon programme et ne vois pas comment insérer  1 copie du dessin fait sur PROTEUS ISIS
 
#define sortie   RA6_bit     //pin 15
#define sortie1  RB7_bit      //pin 13
 
float volt,volt1,temp;   //résultat du voltage sur RA1 et RA0
float radc;   //mesure du t° sur RA1     pin 18
float radc0;   //mesure tension sur RA0    pin 17
char text[]="Voltage(V):";
char text1[6];
 
 // Pattes du LCD connectés sur port B
sbit LCD_RS at RB0_bit;
sbit LCD_EN at RB1_bit;
sbit LCD_D4 at RB2_bit;
sbit LCD_D5 at RB3_bit;
sbit LCD_D6 at RB4_bit;
sbit LCD_D7 at RB5_bit;
 
// direction des Pattes du LCD vers port B
sbit LCD_RS_Direction at TRISB0_bit;
sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;
 
void main()
{
 // le PIC 16F88 a 7 convertisseurs Analogique-Numérique sur A0-A1-A2-A3-A4-
 // RB6-RB7
 // ATTENTION RA0 et RA1 sont des ENTREEs   RA6 et RB7 sont des SORTIEs
 //entrée RA0 et 1  Vref+=A3 et RA5=MCLR
 TRISA=0b00000011;
 TRISB=0b00000000;
 PORTA=0b00000000;
 PORTB=0b00000000;
 
 INTCON=0;  //pas d'interruption
 OSCCON=0b01101100;    //4 MHz horloge interne
 //bit 6-4:110=4 MHz
 //bit 3:1 horloge système primaire
 //bit 2:1 fréquence stable
 //bit1-0:00 mode oscillateur
        // utilisation du convertisseur CNA (ADCON0 et 1)
 //le CNA doit avoir 1 référence de voltage qui est sélectionné par configu-
 //ration de programmation (et formée par 2 résistences de 330 ohm en série
 //avec une prise centrale entre les 2 et dirigée sur RA3 pour 1 ref=+2.5V)
 ADCON1=0b10100000;   //VRef+=RA3 et VRef-=Vss   affichage droite
 //ADCON1.ADFM=1;   //formatation du résultat de la conversion à droite
 //ADCON1.ADCS2=0;  //horloge interne divisée par 2 inactif ****** -> INFLUENCE
 //le bit 7-6 de ADCON0  !!!!
 //ADCON1.VCFG1=1;   // + volt= RA3    pin 2
 //ADCON1.VCFG0=0;   // - volt= masse    pin 5
 //utilise RA1 et RA2 pour entrée de donnée -> utilisation du CNA en analogique
 // et le reste des E/S en numérique
 ANSEL=0b00000011;   //canaux de conversion RA0-RA1
 CMCON=0b00000111;  //désactivation des comparateurs
 //CONFIG1_REG=0b11111100110000;    //configuration du PIC    PROBLEME!!!
 //CONFIG1.FOSC2=1    horloge interne et RA6 et RB7 sont en E/S numérique
 //       .FOSC1 et 0 = 0     !!! RA5 et RA7 sont des Entrées   RA6 une Sortie
 //       .MCLRE=1   RA5 est le MCLR et pas une E/S    pin 4
 
 sortie=0; sortie1=0;    //initialisation
 Lcd_Init();
 Lcd_Cmd(_LCD_CLEAR);
 Lcd_Cmd(_LCD_CURSOR_OFF);
 ADC_Init();
 //Le convertisseur permet d'avoir une résolution de 10 bits soit un nbre de
 //1024 (0 à 1023) pas pour chaque donnée
 while(1)
 {
  ANSEL=0b00000001;
  ADCON0=0b01001000;   //b=01(Fosc/8)   001(RA1)
  radc=ADC_Read(1);
  ANSEL=0b00000010;
  ADCON0=0b01000000;   //b=01(Fosc/8)   000(RA0)
  radc0=ADC_Read(0);
    ADCON0.ADON=1;      //convertisseur activé
  Delay_us(40);      //temps de conversion
  ADCON0.GO_DONE=1;  //conversion autorisée
    debut:
  if(ADCON0.GO_DONE==0)     //si fin de conversion ?
  {
   volt=(long)radc*(2500/1023); //mesure voltage(mV) température  LM35
   temp=volt/10;  //avec 10 mV/°C
   volt1=(long)radc0*4.88/1000;  //mesure voltage potentiomètre
   
   FloatToStr(volt1,text1);
   Lcd_Out(2,1,text);
   Lcd_Out(2,12,text1);
   FloatToStr(temp,text1);
   Lcd_Out(1,1,"tempera(C):" );
   Lcd_Out(1,12,text1);
  }
    else  {  Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF); goto debut; }
  if(volt1 > 1)  { sortie=1; sortie1=1; }   //RA6 ne fonctionne pas!!!!
    else   { sortie=0; sortie1=0; }
  Delay_ms(100);  //temps d'attente pour 1 nouvelle conversion et visualisation
 }
}
 

mood
Publicité
Posté le 29-11-2020 à 15:28:01  profilanswer
 

n°10898246
zonka
x58 forever!
Posté le 29-11-2020 à 15:52:11  profilanswer
 

Hello. Je pense que tu aurais intérêt à déplacer ton sujet en l'editant vers une section adaptée de 'électronique'.

 

La on est sur du hardware 'PC' disons.


---------------
Guide OC x58 - Guide d'achat de config - ALIMS:qui fait quoi? - RKO - Radiooooo
n°10898736
slmh1
Posté le 30-11-2020 à 09:31:55  profilanswer
 

Merci


Aller à :
  FORUM HardWare.fr
  Hardware
  Processeur

  PIC 16F88 CNA

 

Sujets relatifs
Ryzen 9 3900x Pic de températurePic de température Ryzen 5 3600, vcore élevée ?
Pic de processeur + ventiloPic de température processeur
Pic de Température du processeurPic processeur a l'ouverture du gestionnaire des taches
Pic processeur[wifi] Pic de lag en jeux : investir dans du 5ghz ou passer en filaire
Pic de lag 1 fps 
Plus de sujets relatifs à : PIC 16F88 CNA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR