COMPTAGE DE PIECES ETUDE D’UN SYSTEME DE Réalisés et presentés par :

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
sont des registres 32 bits
Chapitre annexe. Récursivité
Développement logiciel sur micro-contrôleurs PIC en C
Introduction au langage C
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Portée des variables VBA & Excel
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
USB Présentation du protocole Exemple de réalisation hardware
1 UMLV 1. Introduction 2. Hachage ouvert 3. Hachage fermé 4. Implémentation des fonctions Méthodes de hachage.
La pile un élément essentiel
Exemple chargement dune instruction 3 0x00 0xXX 0x05 0x00 0x04 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals.
Exemple chargement dune instruction 3 0x00 0xXX 0x05 0x00 0x04 Addr Alu JM 4 to 16 Decoder High Bit C B MPC B Bus C Bus Memory control signals.
TRANSMISSION DES DONNEES INFORMATIQUES
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Système d’exploitation : Assembleur
Les systèmes à microprocesseur
Présentation de l’andronessness
Projet 2012 Tour à commandes numériques
Affichage LCD RS: Register Selection Transfert de données
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Langage C Révision.
Arduino en technologie
Récursivité.
Langage C :acquisition des connaissances sous forme de TP.
TRAITEMENT DE STRUCTURES
Course Critique Race Condition
1 Les pointeurs et quelques rappels sur certains éléments du langage C.
Segments B,D,E,F et G Ic = 100 mA Ic = 400 mA Courant de la diode = 10 mA Facteur 5 (moyenne) Facteur 7 Coefficient de sécurité 2 Segments B,D,E,F.
Dan Bismuth Tutrices : Marie-Lise Flottes - Joanne Acland
Gestion des événements liés à la fenêtre et aux périphériques dentrée.
Communications séries synchrones
Architecture introduction.
Modules Afficheurs LCD Alphanumériques
LES SYSTEMES AUTOMATISES
Le Bus S.P.I © T.Berenguer.
©Frédéric Bastien 2006 Université de Montréal 1 LISATek LISATek pour concevoir des processeurs.
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels
Choix d’un microcontrôleur
Télémétrie pour voiture Eco Marathon SHELL
Travail réalisé par: BOUHAJJA Lamia KHADHRAWI Marwen
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
L’essentiel du langage C
Structures des données
HORLOGE PROGRAMMABLE Réaliser par : ilyas mimouni –
Générateur d’un signal Carré MICROCONTROLEUR PIC 16F84 Application 1:
2.1 - Historique Chapitre 2 : Introduction au langage C++
Afficheur industriel « AIW » MAT Électronique
LES PILES ET FILES.
Les Pointeurs et les Tableaux Statiques et Tableaux Dynamiques
Microcontrôleurs et Langage C Les Interruptions diapo 1
et quelques rappels sur certains éléments du langage C
Microcontrôleurs et Langage C Les Timers diapo 1
8PRO100 Éléments de programmation Comment répéter plusieurs fois une séquence d’instructions.
Etude de cas: carte 80C552++ ‘APPALACHES’
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Novembre 2014J.Callot L.Piedfort1 TP1 Enoncé. novembre 2014J.Callot L.Piedfort2 Objectifs Générer un environnement de travail avec Code Warrior Prendre.
Microcontrôleurs PIC. 1ère séance Présentation du PIC16F876 Outils de programmation du PIC Le langage C Exemples d’applications simples 2ème séance Présentation.
IUP AISEM Architecture et Ingénierie des Systèmes Electroniques et Microélectroniques.
République Algérienne Démocratique et Populaire Ministère de l'enseignement supérieur et de herche scientifique Université de Ferhat Abbas -Sétif.

1 II2/AVR II2 - Microcontroleur  Introduction  Famille ATMEL AVR8bits  ATMega16  Organisation Mémoire  Architecture CPU  Modes d'adressage et jeu.
Projet pluritechnique encadré
Exercices sur les pointeurs. lireCar/remettreCar Lorsque l’on lit caractère par caractère, on ne peut pas savoir qu’on a atteint un caractère avant de.
Encadrer par Mr Chelly Nizar
BUGGY FORMULA FLOWCODE
Revue d’avancement BIENVENU Nicolas Projet 13 Client et tuteur technique : Laffont Jacques Etudiant :
Intervention sur un système technique Afficheur industriel « AIW »
Transcription de la présentation:

COMPTAGE DE PIECES ETUDE D’UN SYSTEME DE Réalisés et presentés par : Année : 2009/2010 3IAII Encadrant EMSI Mr:CHOURI. ETUDE D’UN SYSTEME DE COMPTAGE DE PIECES Réalisés et presentés par : - SABIR Lihimdi - FATIMA ZOHRA El Merrakchi Compte-Rendu Projet microcontroleur

Plan Presentation. Schéma du systéme. Materiels utilisés. Les fonctions utilisées. Tester.

Presentation Le projet réalisé est un système de comptage, de trois types de pièces transportées par trois tapis roulants , au passage d’une pièce devant un capteur optique ,ce dernier génère une impulsion permettant d’incrémenter le cpt1 pour le passage des pièces sur le tapis 1 et le cpt2 pour les pièces du tapis 2 et le cpt3 pour les pièces du tapis 3 , la suite du programme est faite par un afficheur LCD pour afficher la Date,le jour,le mois, l’heure et les minutes du circuit pcf et la valeur des trois compteurs ,enfin l’enregistrement des données dans la memoire EEPROM toutes les 30 minutes ,avec la possibilité de la communication entre le Pic et le PC avec le logiciel Hyper-Treminal

Schéma du systéme

Materials utilisés Afficheur LCD 2 lignes 16 caractères en mode 4 bits Circuit PCF8583 utilisé en mode Horloge Mémoire EEPROM 24C64 Circuit MAX232

Les fonctions utilisées dans le projet

void start() { sdaon; sclon; sdaoff; scloff; } void stop() void ackesclave() unsigned char A; A=PORTC.F4; if(A==0) scloff; void transmission(unsigned char d) unsigned char M=0X80; int i; for(i=0;i<8;i++) if((d&M)!=0) {sdaon;} else {sdaoff; } sclon;scloff; M=M>>1; unsigned char reception() unsigned char v=0x00,m=0x80; TRISC.F4=1; if((PORTC.F4)==1) v=v|m; m=m>>1; return (v);

Ses fonctions servent à communiquer les composants du schéma de la carte connectés au bus i2C avec le microcontrôleur

void ecrirehorloge(unsigned char adrm,unsigned char d) { start(); transmission(0xA0); ackesclave(); transmission(adrm); transmission(d); stop(); } unsigned char lire_horloge(unsigned char adresse) unsigned char donnee; I2C_Start(); I2C_Wr(0xA0); I2C_Wr(adresse); I2C_Repeated_Start(); I2C_Wr(0xA1); donnee = I2C_Rd(0u); I2C_Stop(); return donnee; delay_ms(100);

Ses deux fonctions servent à écrire et à lire à partir de l’horloge du circuit PCF8583. La fonction lire_horloge est pré-definie dans le logiciel de programmation La fonction ecrirehorloge est construite a partir des fonctions du bus i2C

void pcf() { se=lire_horloge(0x02); m=lire_horloge(0x03); h=lire_horloge(0x04); j=lire_horloge(0x06)>>5; mois=lire_horloge(0x06)& 0x1F; date=lire_horloge(0x05)& 0x3F; Lcd_Out(1,1, t[j]); Lcd_Chr(1,5,(date>>4)+48); Lcd_Chr(1,6,(date&0x0F)+48); Lcd_Out(1,7, "/"); Lcd_Chr(1,8,(mois>>4)+48); Lcd_Chr(1,9,(mois&0x0F)+48); Lcd_Chr(1,12,(h>>4)+48); Lcd_Chr(1,13,(h&0x0F)+48); Lcd_Out(1,14, ":"); Lcd_Chr(1,15,(m>>4)+48); Lcd_Chr(1,16,(m&0x0F)+48); }}

Cette fonction permet de lire le jour,le mois ,la date, l’heure et les minutes dans l’horloge du circuit pcf8583 et de les afficher dans l’afficheur LCD.

void affiche(unsigned char Val,unsigned char l,unsigned char co) { val= Val%10; Lcd_Chr(l,co, val+48); Val=Val/10; Lcd_Chr(l,co-1, val+48); Lcd_Chr(l,co-2, val+48); Lcd_Chr(l,co-3, val+48); }

Cette fonction montre comment calculer les unités et les dizaines de la valeur du compteur et les afficher.

unsigned char compteur() { if(PORTC.F0==0) {cpt1++;delay_ms(250);} if(PORTC.F1==0) {cpt2++;delay_ms(250);} if(PORTC.F2==0) {cpt3++;delay_ms(250);} return cpt1,cpt2,cpt3; }

Cette fonction incrémente les 3 compteurs à chaque fois qu’une impulsion est reçue. et retourne leurs valeurs.

void afficher_cpt() { if(PORTD.F0==0) Lcd_Out(2,1, "Compt1 :"); affiche(cpt1,2,12); } if(PORTD.F1==0) Lcd_Out(2,1, "Compt2 :"); affiche(cpt2,2,12); if(PORTD.F2==0) Lcd_Out(2,1, "Compt3 :"); affiche(cpt3,2,12);

Cette fonction affiche le compteur puis sa valeur. exemple: compteur1 : 0009 c’est-à-dire le compteur1 contient la valeur 9. Alors 9 pièces sont passé devant le capteur 1

void interrupt() { if (PIR1.TMR1IF==1) TMR1L=0XB0; TMR1H=0X3C; n++; if(n==20000) n=0; PORTB.F7=!PORTB.F7; EEprom_Write(0,date+48); EEprom_Write(1,mois+48); EEprom_Write(2,h+48); EEprom_Write(3,m+48); EEprom_Write(4,cpt1); EEprom_Write(5,cpt2); EEprom_Write(6,cpt3); } PIR1.TMR1IF=0; if(PIR1.RCIF==1) K = RCREG; PIR1.RCIF=0;

Le TIMER1 est utilisé en mode tempo A chaque fois que l’interruption est active on incrémente une variable pour atteindre 1sec et on multiplie la valeur pour avoir le temps désiré Après 30 min on enregistre les données dans la mémoire EEPROM La 2eme partie c’est pour le test des caractères reçus par le clavier sur le logiciel Hyper Terminal

void Serial_Init(void) { SPBRG = 12 ; TXSTA = 0b00100000 ; RCSTA = 0b10010000 ; }

Cette fonction permet l’initialisation du module USART du pic ( la communication en série de type RS232).

void Serial_Putchar(unsigned char V) { while(TXSTA.TRMT==0); TXREG = V; }

Cette fonction permet l’émission d’un caractère sur l’USART, et de l’afficher sur l’ecran du PC .

La fonction globale:

void main() { ecrirehorloge(0x02,0x55); ecrirehorloge(0x05,0xA5); ecrirehorloge(0x03,0x59); ecrirehorloge(0x06,0x21); ecrirehorloge(0x04,0x09); ANSEL=0x00; ANSELH=0x00; TRISB=0x00; PORTB=0X00; TRISC=0XFF; PORTC=0XFF; TRISD=0XFF; PORTD=0XFF; Serial_Init(); I2C_Init(100000); INTCON.GIE=1; T1CON.TMR1CS=0; INTCON.PEIE=1; T1CON.T1CKPS0=1; PIE1.TMR1IF=1; T1CON.T1CKPS1=0; TMR1L=0XB0; T1CON.TMR1ON=1; TMR1H=0X3C; Lcd_Config(&PORTB, 4, 5, 6, 3, 2, 1, 0); Lcd_Cmd(LCD_CURSOR_OFF); Lcd_Cmd(Lcd_Clear); while(1) pcf(); compteur(); afficher_cpt(); if((h==0x18)&&(se==0x00)) cpt1=0;cpt2=0;cpt3=0; //PORTB.F7=1; } if(K=='?') for(l=0;l<10;l++) Serial_Putchar(Eeprom_Read(l)); } }

Appeler toutes les fonctions définies et initialiser les ports d’entrées/sorties. Set l’horloge LUN 25/01 16:30. Configurer l’afficheur LCD L’appel des fonctions en boucle infinie

Tester

Fin du projet.