COURS PIC16F628A PREMIERE UTILISATION DU MICROCONTROLEUR



Documents pareils
PIC : COURS ASSEMBLEUR

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Flowcode - Mode d'emploi

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Compilation (INF 564)

La programmation des PIC en C. Les fonctions, les interruptions.

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

PIC EVAL Dev Board PIC18F97J60

1 Introduction C+ + Algorithm e. languag. Algorigramm. machine binaire. 1-1 Chaîne de développement. Séance n 4

PIC 16F84. Philippe Hoppenot

Informatique Industrielle

Carte Relais GSM (Manuel Utilisateur)

Manipulations du laboratoire

République Tunisienne Ministère de l'education. Sciences Techniques. Manuel d activités. Les auteurs. Ali ZITOUNI Inspecteur des lycées et collèges

ARCEAU DE PARKING MOTORISÉ VIGIPARK

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Bien commencer avec un LaunchPad MSP430G et un Breadboard

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

STS SE. FreeRTOS. Programmation réseau WIFI. Programmation réseau. Socket Tcp. FlyPort smart Wi-Fi module

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Conception de circuits numériques et architecture des ordinateurs

CM2 L architecture MIPS32

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

Rappels d architecture

ANALYSE TRAMEs LIAISON SERIE

Proteus VSM. manuel_vsm.doc

Sélection du contrôleur

Organigramme / Algorigramme Dossier élève 1 SI

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

2013 Nos nouveaux outils basés sur Arduino

LISA. Manuel Utilisateur

Algorithme. Table des matières

Enregistreur sans papier. Interface LON. B Description des interfaces 10.99/

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

COMMANDER A DISTANCE LE ROBOT-PONG ETUDE DE LA TELECOMMANDE (2 nde PARTIE)

Cours d algorithmique pour la classe de 2nde

VIII- Circuits séquentiels. Mémoires

NUGELEC. NOTICE D'UTILISATION DU B.A.A.S. du type Ma - STI / MaME - STI. pages. 1 introduction 2. 2 encombrement 3 fixation

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

Notice d installation de la Centrale VIGIK DGM1

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Séverine Marien Maxime Ringard. 2 ème année GEII. Régulateur de charge pour station de recharge photovoltaïque

CONFIGURATION DE L AUTOMATE SIEMENS

Programmation C. Apprendre à développer des programmes simples dans le langage C

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

PROGRAMMATION D'UN MICROCONTRÔLEUR

Centrale de surveillance ALS 04

Débuter avec PsoC ou PsoC niveau 0

! analyse du fonctionnement

PROGRAMMATION EVENEMENTIELLE sur EXCEL

2 Raccordement d une imprimante, d un terminal ou d un ordinateur au DULCOMARIN

COMMUNICATION PC/MINITEL

TER Licence 3 Electronique des Télécoms Transmission GSM

Configuration de TCPIPconfig.h

Notice de fonctionnement DVR H Méthode de Visionnage ESEENET

MANUEL D INSTALLATION

ET 24 : Modèle de comportement d un système Introduction à Labview et initiation à la réalisation d un Instrument Virtuel (VI).

Plan du cours. Historique du langage Nouveautés de Java 7

Contrôle d accès UTIL TP N 1 découverte

La Clé informatique. Formation Excel XP Aide-mémoire

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Conférence sur les microcontroleurs.

Corrigé des TD 1 à 5

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Représentation d un entier en base b

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

KM2 W1 EVC1 M3~ Manuel AUTOMSIM API 24V. BP Dcy 1MINI 1MAXI.

Boîtier disque dur SATA 3,5 pouces Fonction économie d énergie

Configurateur tebis TX100

UE Programmation Impérative Licence 2ème Année

MultiMedia Board. Système de développement. Manuel utilisateur. pour PIC32MX4

UGVL : HOMOLOGATION PS ZAC du bois Chaland 6 rue des Pyrénées LISES EVRY Cedex FRANCE Tel Fax

Utilisation du visualiseur Avermedia

Access 2007 FF Access FR FR Base

GUIDE de prise en main. let s play

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Chapitre 1 I:\ Soyez courageux!

NOTICE D'UTILISATION DU TABLEAU D ALARMES TECHNIQUES SAT

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

V- Manipulations de nombres en binaire

Programmation assembleur : aperçu

CONFIGURATION ET UTILISATION

Traduction des Langages : Le Compilateur Micro Java

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Guide d installation CLX.PayMaker Office (3PC)

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

INSTALLATION MODULE WEB

LPP SAINT JOSEPH BELFORT MODE OPERATOIRE ACTIVINSPIRE. Bonne utilisation à toutes et tous! UTILISATION DES TBI LE LOGICIEL ACTIVINSPIRE

Transcription:

PREMIERE UTILISATION DU MICROCONTROLEUR 1 Aspect matériel Le microcontrôleur PIC 16F628A est un des modèles (le plus courant et un des plus petits) de la famille des circuits microcontrôleurs de Microchip. Présenté en boîtier DIL (Dual In Line) 18 broches, il possède de nombreuses et performantes caractéristiques. Les principales sont : une programmation facile en langage Basic ou en assembleur son faible coût, la possibilité d'être programmé insitu un oscillateur interne de 4MHz ou externe. Pour un besoin de précision ou de fréquence différente de 4MHz et jusque maximum 20MHz, il faut ajouter un quartz ou un circuit RC 16 lignes d'entrées / Sorties : 8 lignes sur le porta (avec possibilité sur 4 entrées de convertir sa valeur analogique en un mot numérique) 8 lignes sur le portb architecture RISC (Reduced Instructions Set Computer : jeu d instructions réduit qui convient à de petits programmes) une mémoire programme contenant 2048 instructions (codées sur 14 bits) une mémoire RAM de données de 224 octets une mémoire EEPROM de 128 octets des temporisateurs et un chien de garde une interface de transmission série Dénomination des broches dans un boîtier DIL 18 broches On remarquera que toutes les broches du circuit (sauf Vss, Vdd et RB5) ont plusieurs fonctions. Le choix de la fonction utilisée se fait par programmation. On distingue en particulier : VDD et VSS représentent respectivement l'alimentation 5V et 0V du circuit. Les deux broches OSC1 et OSC2 servent à recevoir si besoin le quartz destiné à l'oscillateur. MCLR (Master CLeaR) active à 0 correspond à l'entrée d Initialisation (Reset) du circuit. RB0 à RB7 représentent les 8 lignes du port B et RA0 à RA7 les 8 lignes du port A, pouvant toutes être définies par programmation en entrées ou en sorties. Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 1/11

2 Développement d'une application 2.1 Principe Le développement d'une application commence toujours par un cahier des charges qui défini l'électronique à implanter autour du microcontrôleur. Vient ensuite l élaboration de l organigramme (ou de l algorithme) puis la rédaction du programme en Basic dont le fichier objet (fichier héxadécimal traduisant le programme élaboré en langage Basic ) sera implanté dans le circuit. C1 22 pf C2 22 pf Q 4 MHz 5 V + OSC1 OSC2 MCLR RA4 RA3 RA2 RA1 RA0 + 5 V Dans nos études simples le schéma de base sera toujours celui ci-contre. VDD 16F84 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 Il faut placer les composants réalisant les Entrées ou les Sorties,comme par exemple des interrupteurs en entrées et des leds en sorties. Quant à l'écriture d'un programme, elle passe invariablement par les étapes suivantes : VSS a) Rédiger un programme en langage évolué à l'aide d un éditeur de texte. Dans notre exemple : le langage évolué sera le Basic et l éditeur de texte sera celui du logiciel MikroBasic, il sera créé un fichier à extension.pbas b) Compiler le programme basic en un programme source à l'aide du compilateur basic qui créera un fichier.asm, c) Assembler le programme qui créera le fichier objet.hex d) Transférer ce fichier hexadécimal dans le microcontrôleur à l'aide d'un programmateur (carte électronique reliée au PC sur laquelle est placé le PIC à programmer) et d un logiciel. Le logiciel ICPROG par exemple. e) Enfin placer le PIC programmé sur le montage qui lui est dédié. Remarque : Les étapes b) et c) se font sur un seul clic. Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 2/11

EXEMPLE D ECRITURES D UN PROGRAMME DANS SES DIFFERENTES EXTENSIONS a) Programme extension.pbas b) Programme extension.asm ;// ASM code generated by mikrovirtualmachine for PIC - V. 3.0.0.0 ; Date/Time: 20/09/2005 10:09:28 ; Info: http://www.mikroelektronika.co.yu ;// ADDRESS OPCODE ASM ; ---------------------------------------------- $0000 $281A GOTO PIC_Store_Complet_main $0004 $ math_mul_8x8_u: $0004 $1303 BCF STATUS,RP1 $0005 $1283 BCF STATUS,RP0 $0006 $3008 MOVLW 8 $0007 $00A4 MOVWF MATH_MAIN_GLOBAL_LOOPCOUNT $0008 $0822 MOVF MATH_MAIN_GLOBAL_X_1,W $0009 $0CA0 RRF MATH_MAIN_GLOBAL_Y_1,F $000A $1803 BTFSC STATUS,C Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 3/11

$000B $2810 GOTO $+5 $000C $0BA4 DECFSZ MATH_MAIN_GLOBAL_LOOPCOUNT,F $000D $2809 GOTO $-4 $000E $01A2 CLRF MATH_MAIN_GLOBAL_X_1,F $000F $3400 RETLW 0 $0010 $1003 BCF STATUS,C $0011 $2815 GOTO $+4 ect... ect... $0073 $0823 MOVF Math_main_global_X_2, W $0074 $00A9 MOVWF main_global_sortie $0075 $0827 MOVF main_global_d, W $0076 $07A9 ADDWF main_global_sortie, F $0077 $0829 MOVF main_global_sortie, W $0078 $0086 MOVWF PORTB $0079 $2828 GOTO PIC_Store_Complet_L_0 $007A $ PIC_Store_Complet_L_2: $007A $ PIC_Store_Complet_L_9: $007A $287A GOTO PIC_Store_Complet_L_9 c) Programme extension.hex :100000001A28FF3FFF3FFF3F031383120830A4006D :100010002208A00C03181028A40B0928A201003400 :1000200003101528A00C0318A207A20CA30CA40B04 :10003000122808000730031383129F0080308316B4 :1000400081008601FF30850083128601A501A6018B :100050000030051A0130F20000307202031D33280F :10006000FF30F3003428F301FF307302031D5928D9 :10007000003005180130F10025087104A700003098 :1000800085180130F300F3097308A70500308518BF :100090000130F10026087104A80000300518013075 :1000A000F300F3097308A8052708A5002808A6008F :1000B0006C28003005190130F1000030851901303D :1000C000F300F30971087305A7002708F100F1098F :1000D0007108A800A501A6012808A000A10102300E :1000E000A200A30104202308A9002708A9072908C2 :1000F000860028287A28FF3FFF3FFF3FFF3FFF3F52 :02400E00013F70 :00000001FF On y retrouve le code machine de chaque instruction en assembleur (partie grisée) mais écrite octet par octet à l envers Exemple : Dans le fichier.asm la ligne $0000 $ 281A GOTO PIC_store_complet_main correspond dans le fichier.hex à 1A28 Ou encore la ligne $0006 $3008 MOVLW 8 correspond dans le fichier.hex à 0830 Dans le fichier.asm la ligne $007A $ 287A GOTO PIC_store_complet_L_9 correspond dans le fichier.hex à 7A28 Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 4/11

2.2 Un premier exemple Dans le montage suivant, l'appui sur un bouton poussoir provoque l'allumage définitif d'une led, initialement éteinte. + 5 V C1 22 pf C2 22 pf Q 4 MHz OSC1 OSC2 VDD RB7 RB6 RB5 MCLR RB4 + 5 V RA4 16F84 RA3 RB3 RA2 RB2 RA1 RB1 RA0 RB0 VSS program Exemple_1_cours symbol bp = PortA.2 symbol led = PortB.3 ' Déclarations de variables main: '******** Début du programme principal ******** cmcon=07 'inhibition des entrées analogiques du port A trisa = $FF ' 1111 1111 = PortA.2 en entrée trisb = 0 ' 0000 0000 = PortB en sortie portb = 0 ' mettre 0 sur toutes les sorties while bp = 1 led = 1 ' des que bp = 0 (appui), on sort de la boucle la sortie RB3 passe à 1, la led s allume end. 'indique au logiciel la fin du programme à compiler et à assembler Explications supplémentaires : Pour une utilisation et une relecture plus simples du programme, on utilise couramment des alias dont il faut en tout premier lieu déclarer l existence et le type: ici led et bp On commence toujours le programme principal par la configuration des ports A et B (définition pour chaque broche de chaque port de l utilisation en entrée ou en sortie). Ce qui nécessite d'écrire dans les registres TRIS A et TRIS B :(1) pour entrée ou (0).pour sortie On utilise ici les entrées du porta comme étant des valeurs numériques, il faut par conséquent écrire 07 dans le registre CMCON Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 5/11

2.3 Un second exemple La led doit maintenant clignoter définitivement après appui sur le bouton poussoir. program Exemple_2_cours_PIC symbol bp = PortA.2 symbol led = PortB.3 ' Déclarations main: '********* Main ******** ' Configuration : trisa = $FF ' 1111 1111 = PortA.2 en entrée trisb = 0 ' 0000 0000 = PortB en sortie cmcon=07 'inhibition des entrées analogiques du port A portb = 0 ' aucune sortie active while bp = 1 while true led = 1 delay_ms(1000) led = 0 delay_ms(1000) ' des que bp = 0 (appui), on sort de la boucle ' on tombe dans une boucle sans fin ' qui fait clignoter la led end. Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 6/11

3 Développement avec le logiciel MikroBasic (ver 2.0) 3.1 Les principales instructions Les opérateurs arithmétiques élémentaires : + : addition - : soustraction * multiplication / : division div : exécute la division et restitue la partie entière mod : exécute la division et restitue le reste de la division Les opérateurs logiques élémentaires : & : (AND)! : (OR) ^ : (XOR) not : inverseur >> x : où x indique le nombre de décalages à droite successifs dans un mot binaire << x : où x indique le nombre de décalages à gauche successifs dans un mot binaire. Les principales instructions : Syntaxe Commentaires Exemple program end. Program précise à la première ligne le nom du fichier en basic. La fin du programme est repérée par end avec un point program essai end. dim as byte (integer, ) const Permet de déclarer les variables utilisées dans le programme en précisant leur type : byte : octet (8 bits) integer : 16 bits word : nom alphanumérique Déclare une donnée constante de type numérique ou caractère dim i, j, k as byte dim counter as word dim tab as longint[100] const MIN = 1000 const SWITCH = "n const vals as byte[12] = (31,12,17) symbol Déclaration d alias symbol t1s = delay_ms(1000) symbol led = PortB.3 sub end sub main : Déclaration des sous programmes (procédures ou fonctions) pour une meilleure structure du programme. S écrivent avant le programme principal Etiquette de début de programme principal, toujours suivi de deux points sub procedure calcul n = a * (b +3) end sub main : if... then... (else)... end if Structure de contrôle pour réaliser un test à l aide d une expression booléenne. Exécute un traitement si condition vraie (ou éventuellement un autre si faux) if plus = 1 then i = i+1 else i=i*2 end if Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 7/11

while... Pour répéter un traitement tant qu une condition est vraie. while i < 4 i = i+1 Select case case 0... case 3... case else... end select for to next delay_us (n) delay_ms (m) goto Rem : s utilise aussi pour créer une boucle sans fin Suivant que la variable vaut 0 ou 3 ou autre faire Permet de réaliser une itération à l aide d une variable Fonctions prêtes à l emploi pour réaliser une temporisation de n microsecondes ou m millisecondes Renvoi inconditionnel à une ligne de programme définie par une étiquette. L étiquette est indiquée par son nom suivi de deux points ( :) A éviter autant que possible. while true Select case j case 0 portb=%00001111 case 3 portb=%01111111 case else portb=0 end select for i = 0 to 4 portb = i next i delay_ms (500) goto main Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 8/11

3.2 Utilisation du logiciel MikroBasic Le logiciel MikroBasic est un environnement de développement intégré (IDE). Il est constitué entre autres d un éditeur et d un compilateur et de toutes commandes nécessaires à la compilation (création du fichier assembleur) et à l assemblage (création du fichier objet en hexadécimal). Toute erreur de syntaxe est signalée par le compilateur et stoppe la compilation. Une aide contextuelle est disponible (voir paragraphe ci aprés). Une fois les erreurs supprimées, le logiciel assemble et crée le fichier objet qui sera transféré ensuite dans le PIC. Barre de menus Explorateur de code Caractéristiques du projet Voici les étapes de développement de l'application : Fenêtre d'écriture du fichier source en Basic Création d un projet (fichier.pbp). Il faut absolument un projet pour un programme. Rédaction du programme source en Basic dans la fenêtre principale. Enregistrement du programme source (fichier.pbas) Compilation (puis assemblage) Correction des éventuelles erreurs signalées par le compilateur et recompilation Après exécution de ces étapes, nous disposons du fichier.hex à implanter dans la mémoire du microcontrôleur PIC. Avant de programmer le circuit, il est conseillé de s assurer du bon fonctionnement du programme par une simulation pas à pas associée à une visualisation des états des différentes variables et registres internes Remarque : Ceci est une présentation succincte de MikroBasic. Lors de la création du programme, il est conseillé de lire la notice «Utilisation de MikroBasic». Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 9/11

4 La programmation du composant Elle nécessite l'emploi d'une carte de programmation à relier à un PC via un liaison série RS232 (COM1 ou 2 du PC). Le PC est équipé du logiciel de programmation ICPROG. La carte dispose d'un emplacement destiné à recevoir le composant à programmer. 4.1 La carte de programmation : Voici la carte que nous utiliserons : 4.2 Programmation d un PIC : Il est impératif de faire dans l ordre les manipulations suivantes : a) Placer le circuit intégré PIC sur la carte de programmation b) Brancher la carte sur la liaison série d un PC via le câble à connecteurs DB9 c) Programmer avec le logiciel ICPROG : Lancer icprog.exe Ouvrir le fichier hexadécimal correspondant au programme à implanter dans le composant. Celui-ci apparaît dans la fenêtre. Il est possible de voir le programme en assembleur en cliquant sur A, ou en hexadécimal en cliquant sur H. Choisir le modèle du composant à programmer, 16F628A dans notre cas. Positionner les paramètres concernant la programmation (oscillateur, fusibles) Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 10/11

Lancer la programmation par le menu Commande Tout Programmer ou par la touche de fonction F5 ou par l icône. d) Après la programmation, il faut débrancher la carte programmateur du PC e) Enlever le circuit intégré PIC. f) Placer le PIC sur son montage et tester le fonctionnement attendu Remarque : Ceci est une présentation succincte de la programmation. Avant toute manipulation pour écrire dans le composant, il est conseillé de lire la notice «Utilisation du programmateur». Juin07 Ce document créé par C SCHNEIDER est en partie inspiré du cours PIC16F84 de Noël DEMISSY. 11/11