Accueil > Forum > > > > microcontroleur pic 16f877
microcontroleur pic 16f877
jeudi 24 mars 2011 à 10:20:32 |
microcontroleur pic 16f877

aurelienkam
|
bonjour à tous je suis nouveau dans le site et je m'appelle aurelien Kameni. j'étudie cette année en licence le microcontrolleur PIC 16F877.
j'ai un Travail Pratique dans lequel j'ai beaucoup de d'incomprehensions et de difficultés à le resoudre.
en effet, c'est de concevoir sur ISIS et de programmer en C pour PIC 16F877 un systeme de detection de deux seuils de temperature equipé du detecteur de temperature DS18S20.
la sortie du detecteur de temperature doit-etre raccordée sur RA5. la temperature ambiante doit-etre affichée en continue sur un ecran LCD 2x16 raccordé sur les bits RB0 à RB3.
une LED placé sur RB5 s'allume si la temperature est >= 35°c puis s'etteint si elle descend en dessous de 20°c.
merci d'avance
|
|
jeudi 24 mars 2011 à 11:38:13 |
Re : microcontroleur pic 16f877

DEHHAK
|
Réponse acceptée !
salam
pour la programmation du PIC
-faire le schema avec ISIS
-faire le programme de gestion avec uC
-dans isis cliquer sur le pic pour faire le lien vers votre code.exe generer par le logiciel uC
|
|
lundi 28 mars 2011 à 16:56:43 |
Re : microcontroleur pic 16f877

aurelienkam
|
salut.j'ai écrit un programme dans MikroC selon le problème que j'ai posé dernièrement et je rencontre beaucoup de difficulté lors de la compilation.
j'ai aussi des problèmes pour câbler dans ISIS.
SVP je voudrais un soutien par rapport a cela.
voici mon programme et mon câblage :
/*
Titre : detection de deux seuils de temperature
Fichier : temperature.c
Auteur : Aurelien Kameni
But : détecter deux seuils de temperature grâce à un capteur DS18S20 et l'afficher sur un écran LCD 2x16.
Date de création : 26 Mars 2011
dernière modification : 28 Mars 2011
Configuration :
- µc : PIC 16F877A
- Carte de developpement : EasyPIC6
- Quartz : 8 MHz (HS)
- Modules externes : Capteur DS18S20
LCD 2x16
-Software : MikroC v4.15.0.0
*/
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D4 at RB0_bit;
// Pin direction
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D7_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB0_bit;
const unsigned short TEMP_RESOLUTION = 9;
char *text = "000.0000";
// Set TEMP_RESOLUTION to the corresponding resolution of your DS18x20 sensor:
unsigned temp,ct,dt,u; //ct pour centaine, dt pour dizaine et u pour unité
unsigned short j;
void main()
{
ADCON1 = 0x82; // Configure RA5 pin as digital I/O
trisb = 0xdf;
portb = 0;
// Initialize LCD on PORTB and prepare for output
Lcd_Init();
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
while(1) // boucle principale
{
//acquisition de la température sur RA5 (temp)
Ow_Reset(&PORTA, 5); // Onewire reset signal
Ow_Write(&PORTA, 5, 0xCC); // Issue command SKIP_ROM
Ow_Write(&PORTA, 5, 0x44); // Issue command CONVERT_T
Delay_us(120);
Ow_Reset(&PORTA, 5);
Delay_us(120);
Ow_Write(&PORTA, 5, 0xCC); // Issue command SKIP_ROM
Ow_Write(&PORTA, 5, 0xBE); // Issue command READ_SCRATCHPAD
temp = Ow_Read(&PORTA, 5);
temp = (Ow_Read(&PORTA, 5) << 8) + temp;
Ow_Reset(&PORTA, 5);
Delay_us(120);
Display_Temperature(temp);
Delay_ms(500);
// Affichage
Lcd_Out(1, 1, "Temperature :");
temp=temp/2; //début du calcul et de l'affichage de la température
ct=temp/100 ;
Lcd_Chr_Cp(ct+0x30);
dt=(temp-100*ct)/10;
Lcd_Chr_Cp(dt+0x30);
u=temp-(ct*100+dt*10);
Lcd_Chr_Cp(u+0x30);
/*Lcd_Out(1, 1, "Cons: ");
Lcd_Chr(2,13,223);
Lcd_Chr(2,14,'C'); */
if(temp>=30)
{
portb=1;
delay_ms(500);
portb=0;
delay_ms(500);
}
else
if(temp<=20)
{
portb=0;
delay_ms(500);
}
}
}
|
|
jeudi 31 mars 2011 à 15:08:30 |
Re : microcontroleur pic 16f877

aurelienkam
|
bonjour et merci
j'ai reécrit le code et je n'obtiens pas d'erreur. le problème qui se pose est au niveau de la simution dans ISIS.j'ai à l'affichage degre 32766.74 et j'ai les erreurs suivants
- simulation is not running in real time to excessive
-CFGWORD2 not implemented
-[DS18S20] RAM COMMAND UNSUPPORTED
voici le nouveau code:
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB6_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB6_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
//////////////////////////////////////////////////
//Read temperature
//////////////////////////////////////////////////
void Read_Temperature(void)
{
float valeurtemp[2];
char get[10];//variable dans laquelle on va charger la memoire scratchpad
char temp_lsb,temp_msb;
char k;
float temp;
ow_reset(&portA,5);
ow_write(&portA,5,0XCC);
ow_write(&portA,5,0X44);
delay_ms(120);
ow_reset(&portA,5);
ow_write(&portA,5,0XCC);
ow_write(&portA,5,0XBE);
delay_ms(120);
for (k=0;k<9;k++)
{get[k]=ow_read(&portA,5);}// lecture de la mémoire scratchpad
temp_msb = get[1]; // octet de signe
temp_lsb = get[0]; // donnée température avec avec demi degré si nécessaire
//temp=ow_read(&portA,5);
if (temp_msb <= 0x28)
{temp_lsb = (temp_lsb/2.0);} //récupération valeur entière
temp_msb = temp_msb & 0x28; //récupération du signe
portb=1;
delay_ms(300);
if (temp_msb >= 0x37)
{temp_lsb = (~temp_lsb)+1; // calcul complément à deux pour valeur négatives
temp_lsb = (temp_lsb/2.0);}// récupération partie entière
temp=temp_lsb-0.25+((get[7]-get[6])/get[7]);//application de la formule
portb=0;
delay_ms(300);
if (temp_msb >= 0x37) {temp=((-1)*temp);} // on ajoute le signe
lcd_out(2,1,"DEGRE");
lcd_chr(2,14,223);
//lcd_Chr(2,15,67);
floatToStr(temp,valeurtemp);
lcd_out(2,7,valeurtemp);
//return temp;
}
void main()
{
//ADCON0=0b00000000;
ADCON1=0b10000000;
trisa=0b11011111;
trisb=0b11011111; // bit RB5 en sortie
PORTA=0;
PORTB=0;
Lcd_Init();
Lcd_cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
while(1)
{
//if(!ow_reset())
Read_Temperature();
}
}
|
|
dimanche 27 novembre 2011 à 14:16:22 |
Re : microcontroleur pic 16f877

ilsab
|
javascript:void(0);
voir datashet du microcontroleur,
|
|
Cette discussion est classée dans : pic, microcontroleur, detecteur, 16f877, temperature
Répondre à ce message
Sujets en rapport avec ce message
ou trouver de la doc sur les microcontroleur pic(en français) [ par smoratoff ]
bonjourje voudrais trouver de la doc sur les microcontroleur pic (16f62X par exemple..) mais en français si possible!!!!sinon si vous avez pas d'idée
envoyer un sms via une carte à pic 16F877 [ par MarwaINSAT ]
Bonjour,j ai un projet qui consiste a realiser une maquette didactique de TP a base d un microcontroleur pic 16F877qui contient des relai,un clavier e
programmation pic 16f877 [ par raminabeul ]
programmation pic 16f877 en c avec le logiciel mplab pour commander une m achine a courant continu
PIC 16F877 ET PWM [ par faaffou ]
Bonjour, je veux réaliser un programme sur mplab pour générer un signal PWM en utilisant le PIC 16F877 pour faire la variation de vitesse d'un moteur
[BAR]pic 16F877 [ par hmila ]
comment recuperer des donnes (saisie a partir d'un clavier 12 TOUCHE ET affichier sur un lcd) dans le pic 16F877
PIC16F877 [ par bchicta ]
J'ai 2 questions: - comment programmer le pic 16F877 POUR recevoir une donnée reçu par une machine via RS232 et l'afficher sur un LCD? - comment progr
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|