microcontroleur_labo2

21
Bachelier Informatique & Système 2013 Professeur : Najdi Christophe ******** IEPSCF UCCLE MICROCONTROLEUR LABO 2

Upload: gargield63

Post on 12-Nov-2014

254 views

Category:

Documents


0 download

TRANSCRIPT

BachelierInformatique&Systme 2013

Christophe********

IEPSCF U CCLE

MICROCONTROLEURLABO2

Professeur:Najdi

BachelierInformatique&Systme 2013

Tabledesmatires Introduction......................................................................................................... 2

Prsentationduprojet......................................................................................... 2

Quelestl'ulititdumultiplexage:....................................................................... 9

LeschmaProteus:............................................................................................. 9

PremierProgramme:.........................................................................................10

SecondProgramme:..........................................................................................13

Troisimeprogramme:......................................................................................15

Conclusion:........................................................................................................20

Professeur:Najdi

P a g e |1

BachelierInformatique&Systme 2013

Introduction Le multiplexage consiste utiliser les mmes lignes pour alimenter plusieurs afficheurs et les faire fonctionner alternativement. Ceci est rpt pour les afficheurs et ralis de faon suffisamment rapide pour viter de voir des clignotements. On souhaite piloter un afficheur sept segments constitue de LED. Pour piloter un tel afficheur on utilise un dcodeur directement intgr l'afficheur, il est compos de 4 entres : les 4 bits ici 1 2 3 4 ncessaires pour coder les chiffres 0 9, et 7 sorties a, b, c, d, e, f, g. Grace au programme crit en langage C, on pourra afficher le compteur sur chaque afficheur en changeant les valeurs attribues au PORTA. L'ajout de 3 boutons poussoirs connects au PORTB serviront remettre 0, incrmenter de 1 et dcrmenter de 1 selon le bouton sur lequel on appuie.

Prsentation du projet Multiplexage afficheurs sept segments L'objectif est d'afficher un compteur sur AFF3 AFF2 AFF1 AFF0 AFF3 AFF2 AFF1 AFF0

8PORTA RA0 20 = 1

8PORTA RA1 21 = 2

8PORTA RA2 22 = 4

8PORTA RA3 23 = 8

Chiffre de 4 caractres. Vous trouvez le premier programme exploitant les afficheurs dans le dossier : C:\Program Files \Mikroelektronika\mikroC\Examples\EasyPic5\P16F877A\7segdisplay1 Display_utils.c //-------------- Returns mask for common cathode 7-seg. display unsigned short mask(unsigned short num) { switch (num) { case 0 : return 0x3F;Professeur:Najdi P a g e |2

BachelierInformatique&Systme 2013

case 1 : return 0x06; case 2 : return 0x5B; case 3 : return 0x4F; case 4 : return 0x66; case 5 : return 0x6D; case 6 : return 0x7D; case 7 : return 0x07; case 8 : return 0x7F; case 9 : return 0x6F; } //case end }//~ Display_1.C /* * Project name: Display_1 (The 'Hello World' example for the 7Seg. display) * Copyright: (c) MikroElektronika, 2005-2008. * Description: This code demonstrates how to display number on one 7-segment display (common cathode). Display is connected to PORTD (RD0..RD7, segment A to RD0, segment B to RD1, etc); common cathode is connected to the pin RA0 on PORTA. Number is incremented every 1s. * Test configuration: MCU: P16F877A Dev.Board: EasyPIC5 Oscillator: HS, 08.0000 MHz Ext. Modules: SW: mikroC v8.0 * NOTES: None. */ #include "Display_utils.h" unsigned short i; void main() { INTCON = 0; // Disable GIE, PEIE,INTE,RBIE,T0IE PORTA = 0; TRISA = 0; PORTD = 0; TRISD = 0; do { for (i = 0; i