LES MICROCONTROLEURS PIC BAC SCIENCE TECHNIQUE 2014/2015 REPUBLIQUE TUNISIENNE
LES MICROCONTROLEURS PIC BAC SCIENCE TECHNIQUE 2014/2015 REPUBLIQUE TUNISIENNE MINISTERE DE L’EDUCATION COMMISSARIAT REGIONALE DE NABEUL PROPOSE PAR : Mr Sahli Nizar (P.P en genie electrique) SOMMAIRE THEME N° THEME page 1 INTRODUCTION 2 3 4 5 1 Section : 4éme Sciences Technique Matière : Génie Electrique LES MICROCONTROLEURS Chap: La logique Programmée Type de document : Cours Date Objectifs : Décrire le fonctionnement d’un système par un algorithme. Traduire un algorithme en un programme en langage évolué. Elaborer un programme spécifique à une application à base de PIC. Transférer un programme vers un microcontrôleur. I- Programmation en langage évolué I-1- Démarche de programmation L’écriture d’un programme en langage évolué ainsi que son transfert vers le microcontrôleur, sont soumis à une démarche particulière, résumée par le graphique suivant: REALISER L’ACTIVITE 1 DU MANUEL D’ACTIVITES (page 85) I-2- Structure d’un programme en MIKROPASCAL 2 Exemple: Programme pour un PIC16F876A Algorithmique Programme en PASCAL Entête Algorithme comparison; program comparison; Déclarations Variables var Na: octet affecté au PortA; Na: byte at porta; Nb: octet affecté au PortB; Nb: byte at portb; inf: un bit affecté au PortC.0; Inf: sbit at Portc.0; ega: un bit affecté au PortC.1; ega: sbit at Portc.1; sup: un bit affecté au PortC.2; sup: sbit at Portc.2; Corps du programme DEBUT BEGIN TrisA $FF; // port A entrées TrisA := $FF; // port A entrées TrisB $FF; // port B entrées Trisb := $FF; // port B entrées TrisC $F8; // portc(0,1,2) sorties TrisC := $F8; // portc(0,1,2) sorties ADCON1 $06; // Port A numérique ADCON1:=$06; // Port A numérique TANT QUE (1=1) FAIRE WHILE (1=1) DO DEBUT SI (Na < Nb) ALORS inf1 SINON inf 0; BEGIN IF (Na < Nb) THEN inf:=1 ELSE inf:=0; SI (Na > Nb) ALORS sup1 IF (Na > Nb) THEN sup:=1 SINON sup0; ELSE sup:=0; SI (Na = Nb) ALORS ega1 IF (Na = Nb) THEN ega:=1 SINON ega0; ELSE ega:=0; FIN TANT QUE; END; FIN. END. Le texte d’un programme doit contenir au moins trois parties. Entête :…………………………………………………………………………………………………… Déclarations :………………………………………………………………………………………….. Corps du programme : I-3- Instructions spécifiques au compilateur MIKROPASCAL VOIR MANUEL DE COURS (pages 125 ->128) II- Applications à base de PIC II-1- COMPTAGE a- Compteur modulo 10 : trouver une valeur hexadécimale qu’on pourra placer dans les registres TRISB du microcontrôleur. TRISB RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 =$ ………. 3 A l’état initial quelle valeur doit avoir le PORTB :…………………… Quel est le rôle du bouton RS3 dans le montage ?…………………………………………………………………………………………..……… REPONDRE AUX QUESTIONS 1& 2 DE L’ACTIVITE 2 DU MANUEL D’ACTIVITES (page 90) On donne l’algorigramme compléter l’algorithme et le programme en MIKROPASCAL Algorigramme Algorithme Programme Algorithme COMPTEUR10; variables N : …………………………………….; Début Trisb…………..………………………………; ………………………………………………………. Début ……………………………….; …………………………….. N<10 ………………………….. Début ……………………………………………; attente(………………………….); …………………………………………..; finfaire; finfaire; FIN. program COMPTEUR10; var N : byte; begin Trisb:=…………… …………………; ………………………………………………………. begin N:=0; while N<10 do begin ……………………………………………; delay_ms(1000); N:=N+1; end; end; end. b- Compteur modulo 100 (affichage multiplexée): RA0/AN0 2 RA1/AN1 3 RA2/AN2/VREF-/CVREF 4 RA4/T0CKI/C1OUT 6 RA5/AN4/SS/C2OUT 7 OSC1/CLKIN 9 OSC2/CLKOUT 10 RC1/T1OSI/CCP2 12 RC2/CCP1 13 RC3/SCK/SCL 14 RB7/PGD 28 RB6/PGC 27 RB5 26 RB4 25 RB3/PGM 24 RB2 23 RB1 22 RB0/INT 21 RC7/RX/DT 18 RC6/TX/CK 17 RC5/SDO 16 RC4/SDI/SDA 15 RA3/AN3/VREF+ 5 RC0/T1OSO/T1CKI 11 MCLR/Vpp/THV 1 U1 PIC16F876A A 7 QA 13 B 1 QB 12 C 2 QC 11 D 6 QD 10 BI/RBO 4 QE 9 RBI 5 QF 15 LT 3 QG 14 U2 7447 C1 15p C2 15p R1 1k RS3 X1 CRYSTAL Q1 R2 1k Q2 R3 1k Principe de l'affichage multiplexé: Pour pouvoir afficher un nombre, il faut: sélectionner un afficheur envoyer le code "segment" de l'afficheur sélectionné (code correspondant à la valeur souhaitée) faire ces deux opérations pour tous les autres afficheurs Cela implique que l'on ne peut allumer qu'un afficheur à la fois. Si l'on sélectionne les afficheurs les uns après les autres de façon cyclique et rapide, nous pourrons visualiser alors le chiffre en totalité. 4 trouver les valeurs hexadécimales qu’on pourra placer dans les registres TRISB et TRISC du microcontrôleur. TRISB RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB7 =$ ………. TRISC RC0 RC1 RC2 RC3 RC4 RC5 RC6 RC7 =$ ………. Quelles sont les valeurs du PORTB et du PORTC à l’état initial : - PORTB :=......................…. explications…………………………..……………………………. - PORTC :=......................…. explications…………………………..……………………………. On donne l’algorigramme décrivant le fonctionnement de ce montage, on demande de compléter le programme correspondant : ALGORIGRAMME COMPTEUR100 PROGRAMME COMPTEUR100 DEBUT Déclaration des variables et constantes Affectations des registres TRISB et TRISC Initialisations des PORTB et PORTC Affectation des variables unités et dizaines en fonction de la boucle i Extinction des deux afficheurs pendant 1ms Allumer afficheur unités pendant 10ms Extinction des deux afficheurs pendant 1ms Allumer afficheur dizaines pendant 10ms Boucle j 10 fois Boucle i 100 fois Boucle infini Program COMPTEUR100; Var i,j : byte; uni,dix : byte; const aucun_afficheur : byte = %11; afficheur1 : byte = %..............; afficheur2 : byte = %..............; begin trisb:=$........; trisc:=$.........; portc:=$.......; portb:=……..; ………………………………………. begin For i := ……… to …………. Do Begin uni := i mod 10; dix := (i div 10) mod 10; for j:=….. to …… do begin portc:= ………………………..; delay_ms(1); portb:=………………….; portc:=………………….; delay_ms(10); portc:=aucun_afficheur ; delay_ms(1); portb:=………………….; portc:=………………….; delay_ms(10); End ; ……………. ; End. COMPLETER L’ACTIVITE 2 DU MANUEL D’ACTIVITES (page 91) 5 II-2- Gestion d’un afficheur LCD « Liquid Crystal Display » Les routines fournies par MIKROPASCAL pour l’utilisation d’un afficheur LCD Le compilateur mikroPascal pour PIC fournit une bibliothèque pour travailler avec un LCD : Syntaxe Description Emplacement dans le programme var LCD_RS : sbit at RB0_bit; var LCD_EN : sbit at RB1_bit; var LCD_D4 : sbit at RB2_bit; var LCD_D5 : sbit at RB3_bit; var LCD_D6 : sbit at RB4_bit; var LCD_D7 : sbit at RB5_bit; var LCD_RS_Direction : sbit at TRISB0_bit; var LCD_EN_Direction : sbit at TRISB1_bit; var LCD_D4_Direction : sbit at TRISB2_bit; var LCD_D5_Direction : sbit at TRISB3_bit; var LCD_D6_Direction : sbit at TRISB4_bit; var LCD_D7_Direction : sbit at TRISB5_bit; Port B connecté avec Un clavier Cette variable doit être définie dans tous les projets utilisant un LCD Partie déclaration des variables Lcd_Init(); Initialise le module LCD. Corps du programme, après la configuration des registres TRIS Lcd_Cmd(………………………………); Envoie la commande à écran LCD. Corps du programme et avant le début d’une boucle Lcd_Out(1, 3, "BAC 2015"); imprimer sur l’afficheur « BAC 2015 » à la ligne1 et colonne 3. Corps du programme et aprés le début d’une boucle REALISER L’ACTIVITE 3 DU MANUEL D’ACTIVITES (page 93) Application : On désire commander un afficheur LCD par un µC PIC 16F84A. Soit le schéma structurel suivant : S = 1 : l’afficheur LCD affiche « MIKROCONTROLEUR » pendant 2s puis il affiche « BAC 2015 » pendant 2s. S = 0 : l’afficheur LCD affiche « Arrêt ». 6 Travail demandé : 1- Configurer les deux ports A et B en utilisant respectivement les registres TRISA et TRISB. 2- Compléter le programme en MIKROPASCAL program LCD2; var LCD_RS : sbit at PORTB.0; var LCD_EN : sbit at ………………….; var LCD_D4 : sbit at ………………….; var LCD_D5 : sbit at PORTB.4; var LCD_D6 : sbit at …………………..; var LCD_D7 : sbit at …………………..; var LCD_RS_Direction : sbit at TRISB.0; var LCD_EN_Direction : sbit at ……………..; var LCD_D4_Direction : sbit at ……………..; var LCD_D5_Direction : sbit at TRISB.4; var LCD_D6_Direction : sbit at ……………..; var LCD_D7_Direction : sbit at TRISB.6; // connections du module LCD begin …………………………; LCD_CMD(_LCD_CURSOR_OFF); //Initialisation LCD //Eteindre le curseur ……………………… begin //Boucle infinie begin if(…………………………) then begin //Si S=1 begin lcd_out( …,….,'MICROCONTROLEUR'); delay_ms(……………); //afficher sur la 1ere ligne et la 1ere colonne de l'LCD 'MICROCONTROLEUR' pendant 2s …………………………..; ………………………………………….; //Initialisation LCD //Eteindre le curseur lcd_out(1,1,'bac 2015'); delay_ms(2000); // ……………………………………………………. ………………………………………………….. LCD_INIT(); LCD_CMD(_LCD_CURSOR_OFF); end // ……………………………………………………. ………………………………………………….. …………………………………………….. ……………………………………………. End; //sinon si S=0 on affiche « ARRET » End. //Fin Programme 7 II-3- Gestion d’un clavier Les routines fournies par MIKROPASCAL pour l’utilisation d’un clavier Le compilateur mikroPascal pour PIC fournit une bibliothèque pour travailler avec clavier : Syntaxe Description Emplacement dans le programme var keypadPort : byte at PORTB; Port B connecté avec Un clavier Cette variable doit être définie dans tous les projets utilisant un clavier Partie déclaration des variables Keypad_Init(); Initialise le port pour travailler avec clavier. Corps du programme, après la configuration des registres TRIS var kp : byte; ... kp := Keypad_Key_Click(); Mettre le code de la touche enfoncée dans une variable Kp. Corps du programme et au début d’une boucle REALISER L’ACTIVITE 4 DU MANUEL D’ACTIVITES (page 94) II-4- GRAFCET REALISER L’ACTIVITE 5 DU MANUEL D’ACTIVITES (page 98) 8 II-5- CONVERSION ANALOGIQUE-NUMERIQUE (ANALOGIC-DIGITAL-CONVERSION) 1- Principe de la conversion analogique-numérique (10 bits) Exemple : Ve=1V N=0000000111 Ve=2V N=0000001110 2- Module convertisseur CAN du PIC16F87X Les microcontrôleurs PIC16F87X tel que le PIC16F876 et le PIC16F877 possèdent un convertisseur analogique numérique sur 10 bits, ce dernier permet de convertir une tension analogique comprise entre uploads/Management/ micro-control-eur-2.pdf
Documents similaires
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/UN4pasELBNFnw7xIWad18zVfdSloSqhZGlxatyy7NwsurjVWUqpPxxCTxc8E5iUXxBTWUH486Yo8GaxKcq63krrZ.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/x7lBOafNEKqFGc9vl8RDB1aK1WpaaxFB18XUhAme2P40c9FTg9D4Kxzs0MSuPc2UA0BhmaZcEGuNYdFHIiYvmwc4.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/69UeR1jB2dS3NcsN3UaN6K0L79EcRgcramEuhouDLQUMAnBVXFxJyYvEQahqJ8GmSsA9KYqqt4lqfXkvkGguDYBV.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/vFELlgmCrV77bQLq1kNffa4VhraDNhPVtbeDwW2W7XJNuD1ioNPAK5Fz98WvutGDPUZlT7px5bgHDcIlYm8UuVGq.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/LbrT0b1a5ZWWR5zJRRQl1wxHivFRTOtchrSPjXMphVhlCZWbhU8VzhGYkrV9Sy9SW7NbZoE07PVAguFWACDqrdBR.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/SqWEpSpwNJYCotyVBb9xN5OEaUsYyvIM5iYejzXzhQU8UwMBPDcqTqvkEUteQo1dlpDPSgm2wZrtgnajBzeBKVwB.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/JYoqC4UqKMssqWfrhX1VtNvr9jh6fze8ZEcctznXIgy1GumSohA8myqYEXJOhJINjRSI5W6dxpELMJurwxTQNNY7.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/girzswl1RlotxSpQ4rgmqqNM650hWyc6zEQMKN3yq4svNMy71aHexDkWipbljPpVaEW3VyzwubBrqSe55XipMCYG.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/WHYaGN95er1IQuOCXyeqrMFt2AASw4uv1v4rGtNeL2VBbyHziwj8jG9kABCZ3ZiOlcEmxbVK4MqbnQOUzm2SfAcv.png)
![](https://b3c3.c12.e2-4.dev/disserty/uploads/preview/c3j0dToHHTIu0tQXhrrA9KN6vnJTruxUoQazzaLI6Oq0LAkV0CCGih1gPMsBZxj2EcnBTMy8R0NqR4mxUpdhbkqw.png)
-
21
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 20, 2022
- Catégorie Management
- Langue French
- Taille du fichier 1.7544MB