République Algérienne Démocratique Et Populaire: TP 2: Initialisation Au Développement Des Cartes Avec PIC 16F84A [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

République Algérienne Démocratique et Populaire Ministère de l’enseignement Supérieur et de la recherche scientifique Université Mohamed Boudiaf de M’sila

Année universitaire 2019/2020

Faculté de Technologie Département d’Electronique Master Electronique ESEM

Matière : Etude et Réalisation du Projet

TP 2 : Initialisation au développement des cartes avec PIC 16F84A

Initialisation au développement des cartes avec PIC 16F84A  Objectifs : -

Savoir réaliser des montages en utilisent le Microcontrôleur PIC de Microchip

-

S’adapter à connaitre l’environnement de programmation du logiciels CCS PIC C

-

Se familiariser avec les instructions réalisées les structures de base

-

Savoir-faire un programme en CCS PIC C  compiler et exécuter

-

Faire exécuter un programme sur une maquette de simulation avec PROTEUS(ISIS)

-

Réalisation du circuit imprimé à laide de simulateur Proteus (ARESS)

INTRODUCTION SUR PIC: Le PIC (Programmable Interface Controler) 16F84 est un microcontrôleur produit par la société MicroChip. C’est un composant qui regroupe dans un même boîtier tous les éléments vitaux d’un système programmé : CPU, RAM, ROM, Interfaces d’entrées/sorties, etc... Ses caractéristiques principales sont : - Séparation des mémoires de programme et de données (architecture Harvard) : On obtient ainsi une meilleure bande passante et des instructions et des données pas forcément codées sur le même nombre de bits. - Communication avec l'extérieur seulement par des ports : il ne possède pas de bus d'adresses, de bus de données et de bus de contrôle comme la plupart des microprocesseurs. - Utilisation d'un jeu d'instructions réduit, d'où le nom de son architecture : RISC (Reduced Instructions Set Construction). Les instructions sont ainsi codées sur un nombre réduit de bits, ce qui accélère l'exécution (1 cycle machine par instruction sauf pour les sauts qui requirent 2 cycles). En revanche, leur nombre limité oblige à se restreindre à des instructions basiques, contrairement aux systèmes d'architecture CISC (Complex Instructions Set Construction) qui proposent plus d'instructions donc codées sur plus de bits mais réalisant des traitements plus complexes. La famille des PICs est subdivisée en 3 grandes familles : La famille Base-Line, qui utilise des mots d’instructions de 12 bits, la famille Mid-Range, qui utilise des mots de 14 bits (et dont font partie la 16F84 et 16F876), et la famille High-End, qui utilise des mots de 16 bits. Nous nous limiterons dans ce document à la famille Mid-Range et particulièrement au PIC 16F84, sachant que si on a tout assimilé, on pourra facilement passer à une autre famille, et même à un autre microcontrôleur. 1

Pour identifier un PIC, on utilise simplement son numéro : Un PIC est identifié par un numéro de la forme suivant : xx(L)XXyy –zz - xx : Famille du composant (12, 14, 16, 17, 18) - L : Tolérance plus importante de la plage de tension - XX : Type de mémoire de programme C - EPROM ou EEPROM CR - PROM F - FLASH -yy: Identification - zz : Vitesse maximum du quartz Nous utiliserons un PIC 16F84 –10, soit : - 16 : Mid-Line - F : FLASH - 84 : Type - 10 : Quartz à 10MHz au maximum Donc, un 16F84-04 est un PIC Mid-Range donc la mémoire programme est de type FLASH de référence 84 et capable d’accepter une fréquence d’horloge de 4MHz. Notez que les PICs sont des composants STATIQUES, c’est à dire que la fréquence d’horloge peut être abaissée jusque l’arrêt complet sans perte de données et sans disfonctionnement. Une version – 10 peut donc toujours être employée sans problème.  Pourquoi choisir un PIC ? • Les performances sont identiques • Les prix sont les plus bas du marché • Très utilisé donc très disponible • Les outils de développement sont gratuits et téléchargeables sur le WEB • Le jeu d'instruction réduit est souple, puissant et facile à maîtriser • Les versions avec mémoire flash présentent une souplesse d'utilisation et des avantages pratiques indéniables • La communauté des utilisateurs des PICs est très présente sur le WEB. On trouve sur le net tutorial pour démarrer, documents plus approfondis, schémas de programmeurs avec les logiciels qui vont avec, librairies de routines, forums de discussion . . .  LE PIC 16F84 Les caractéristiques principales du 16F84 sont : • Une mémoire programme de type flash de 1K (1024) mots de 14 bits • Une mémoire RAM constituée : • Des registres de control SFR (SpecialFunctionRegisters) • 68 octets de RAM utilisateur appelés aussi GPR (General Propose Resisters) • Une mémoire EEPROM de donnée de 64 octets • Deux ports d'entrée sortie, un de 8 bits et un de 5 bits • Un timer/Compteur cadencé par une horloge interne ou externe • Un chien de garde / compteur qui est un timer particulier

2

• Un prédiviseur de fréquence programmable permettant d'étendre les possibilités du Timer TMR0 et du chien de garde WDT • 4 sources d'interruption • L'horloge peut être générée par 4 types d'oscillateurs sélectionnables • Protection de code • Fonctionnement en mode sleep pour réduction de la consommation • Programmation par mode ICSP (In Circuit Serial Programming) Mémoire Architecture général de pic 16F84

Organisation externe Le μC 16F84 est un circuit intégré de 18 broches : voir figure

La tension nominale de l’alimentation du μC 16F84 est +5 V : Vdd=+5 V et Vss=0 V. Le Reset du μC 16F84 peut avoir plusieurs causes :   

Une mise sous tension POR (Power On Reset) : voir figure 2a Une mise à 0 de la broche MCLR (Reset manuelle) : voir figure 2b. Un débordement du timer du chien de garde WDT : voir plus tard.

3

Le fonctionnement du μC 16F84 nécessite une horloge qui rythme l’exécution des instructions du programme. On distingue trois modes d’horloge :  Horloge interne à quartz (Figure 3a) : Avec l’oscillateur à quartz, on peut avoir des fréquences allant de 4 MHz jusqu’à 20 MHz selon le type du μC.  Horloge interne à circuit RC (Figure 3b) : Avec un oscillateur à circuit RC, la fréquence de l’oscillation dépend de la tension Vdd et des éléments Rext et Cext.  Horloge externe (Figure 3c) : Application d’un signal horloge externe.

 Programmation en CCS PIC C En utilisant l’éditeur du logiciel CCS PIC C saisi le programme : Après la compilation de leur programme sur PC (génération du programme binaire au format .hex) aller dans le dossier de votre projet et examiner le fichier de l’extension .hex comme la figure suivent :

 Mise en marche du montage l

Après les deux étapes précédentes on ajoute le ficher .hex dans le PIC16F84A dans le logiciel proteus. Pour le vérifier, double clic sur le pic une fenêtre est ouverte comme suite : le chemine du fichier .hex doit être indiqué

4

On clic sur le bouton Play

du logiciel ISIS la simulation commence

 BROCHAGE DE LCD (LM016L)

Les broches 15 et 16 ne sont présentes que sur les afficheurs LCD avec retro éclairage. Les connexions à réaliser sont simples puisque l'afficheur LCD dispose de peu de broches. Il faut évidemment, l'alimenter, le connecter à un bus de donnée (4 ou 8 bits), et connecter les broches E, R/W et RS. Les détailles de ce type d’afficheur seront présenté dans le TP suivant.

5

MANIPULATION  Montage à réaliser Réaliser les montages suivents à base de PIC 16F84A dans le logiciel de simulation PROTEUS(ISIS) en utilisent les composants suivants:

-

Un PIC 16F84A

-

Afficheur LCD 16*2 (LM016L) Résistance 220Ω/4 ,7K Deux capacités de 1nf LED-RED Un quartz de 4MHz Botton

Figure 1

6

Figure 2

Figure 3 Les montages en logiciel Proteus

 Questions 1. 2. 3. 4.

Réaliser le montage en logiciel Proteus En utilisant l’éditeur du logiciel CCS PIC C saisi le programme pour alimenter une LED. Saisir le programme pour faire fonctionner le PIC comme entré/sortie. En utilisant l’éditeur du logiciel CCS PIC C saisi le programme pour faire un affichage simple ‘ Votre Nom’ 5. Conclusion générale

7

 Réponse 1- fonctionner le PIC comme entré/sortie. (Q2 et Q3) #include #FUSES NOWDT #FUSES HS #FUSES NOPUT #FUSES NOPROTECT

//No Watch Dog Timer //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD) //No Power Up Timer //Code not protected from reading

#use delay (clock=4000000) //#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

void main() { //int i; for(;;) { if(input(pin_b0)==0) { delay_ms(500); output_high(pin_b3); } else { delay_ms(500); output_low(pin_b3); } } }

2- Le programme pour faire un affichage simple ‘Votre Nom’ (Q4) #include #use delay(clock=4M) #define lcd_rs_pin pin_b0 #define lcd_rw_pin pin_b1 #define lcd_enable_pin pin_b6 #define lcd_DATA4 pin_b2

#define lcd_DATA5 pin_b3 #define lcd_DATA6 pin_b4 #define lcd_DATA7 pin_b5 #include void main () { lcd_init();

// Write your code here while (true) { lcd_gotoxy(5,1); printf(lcd_putc,"Nom") ; lcd_gotoxy(5,2); printf(lcd_putc,"Prénom") ; } }