INITIATION AUX MICROCONTRÔLEURS MICROCHIP PIC 18F4520 Programmation en langage C IUT Réseaux & Télécoms - La Rochelle Généralités Les microcontrôleurs de la société ont la dénomination de PIC (Peripheral Interface Controller). Un PIC est une unité de traitement de l’information de type microprocesseur à laquelle on a ajouté des périphériques internes permettant de réaliser des montages sans nécessiter l’ajout de composants externes. Un microcontrôleur peut donc fonctionner de façon autonome après programmation. IUT R&T 2 Structure interne La majorité des microcontrôleurs PIC intègrent : ➢ mémoire programme ➢ mémoire données ➢ ports d'entrée-sortie (numériques, analogiques, PWM, UART, bus I²C, etc.) ➢ circuits d'horloge ➢ compteurs/timers Certains modèles disposent de port et d'unités de traitement de l'USB. IUT R&T 3 Architecture Les microcontrôleurs 8 bits PIC sont basés sur une architecture Harvard IUT R&T 4 Performances Les microcontrôleurs Microchip sont équipés d'un processeur RISC (Reduce Instruction Set Computer). Ceci permet d'obtenir un fonctionnement plus rapide. IUT R&T 5 Famille PIC 18Fxx20 Les PIC du type 18F sont des microcontrôleurs dont l'architecture est optimisée pour les compilateurs C. IUT R&T 6 Brochage PIC18F4520 IUT R&T 7 Caractéristiques PIC18F4520 IUT R&T 8 Structure interne (1) IUT R&T 9 Structure interne (2) IUT R&T 10 Ports d'entrées/sorties ● Le PIC18F4520 dispose de 5 ports d'E/S. Chaque port est associé à 3 registres : ➢ TRISx : Registre de direction de données (DDR) ➢ PORTx : Pour la lecture des niveaux présents sur les broches. ➢ LATx : Buffer de sortie (Output Latch). Exemple du PortB : IUT R&T 11 Configuration des registres Le modèle simplifié d'une ligne de port est le suivant : La configuration d'un bit du registre TRISx correspondant à une ligne du port x configure cette ligne soit en entrée '1', soit en sortie '0' : IUT R&T 12 Programmation des ports Pour utiliser les ports d'E/S d'un PIC, il faut : ● ● Configurer les broches du port en écrivant directement dans le regitre de direction du port concerné Ex : ● ● ● Lire ou écrire sur le port : Ex : ● ● ● TRISB = 0x0F ; /* RB0 à RB3 : entrée – RB4 à RB7 : sortie */ TRISC = 0b11111100 ; /* RC0 à RC1 : sortie – RC2 à RC7 : entrée */ PORTB = 0x20 ; /*RB5 à l'état haut */ var = PORTA ; /* la variable var contient l'état des broches d'entrées du Port A */ Lire ou écrire sur un seul bit d'un port : Ex : ● ● IUT R&T TRISBbits.TRISB0 = 0 ; /* RB0 en sortie */ PORTBbits.RB0 = 1 ; /* RB0 au niveau haut */ 13 Développement IUT R&T 14 La carte PICDEM 2+ IUT R&T 15