1 LA PROGRAMMATION DES PICS PAR BIGONOFF PREMIERE PARTIE – PIC16F84 – Révision
1 LA PROGRAMMATION DES PICS PAR BIGONOFF PREMIERE PARTIE – PIC16F84 – Révision 6 2 3 1. INTRODUCTION............................................................................................................................................. 8 2. LES SYSTÈMES DE NUMÉROTATION ..................................................................................................... 9 2.1 LE SYSTÈME DÉCIMAL.................................................................................................................................... 9 2.2 LE SYSTÈME BINAIRE ..................................................................................................................................... 9 2.3 LE SYSTÈME HEXADÉCIMAL......................................................................................................................... 10 2.4 LES OPÉRATIONS.......................................................................................................................................... 12 2.5 LES NOMBRES SIGNÉS .................................................................................................................................. 12 2.6 LES OPÉRATIONS BOOLÉENNES. ................................................................................................................... 13 2.6.1 Le complément ..................................................................................................................................... 13 2.6.2 La fonction « ET » ou « AND »............................................................................................................ 14 2.6.3 La fonction « OU » ou « OR » ............................................................................................................. 14 2.6.4 La fonction « OU EXCLUSIF » ou « Exclusif OR » ou « XOR »........................................................ 15 3. COMPOSITION ET FONCTIONNEMENT DES PICS ............................................................................ 16 3.1 QU’EST-CE QU’UN PIC ?.............................................................................................................................. 16 3.2 LES DIFFÉRENTES FAMILLES DES PICS......................................................................................................... 17 3.3 IDENTIFICATION D’UN PIC........................................................................................................................... 17 3.4 ORGANISATION DU 16F84............................................................................................................................ 18 3.4.1 La mémoire programme....................................................................................................................... 18 3.4.2 La mémoire eeprom.............................................................................................................................. 19 3.4.3 La mémoire Ram .................................................................................................................................. 19 4. ORGANISATION DES INSTRUCTIONS................................................................................................... 20 4.1 GÉNÉRALITÉS .............................................................................................................................................. 20 4.2 LES TYPES D’INSTRUCTIONS......................................................................................................................... 20 4.2.1 Les instructions « orientées octet »...................................................................................................... 20 4.2.2 Les instructions « orientées bits »........................................................................................................ 21 4.2.3 Les instructions générales.................................................................................................................... 21 4.2.4 Les sauts et appels de sous-routines..................................................................................................... 21 4.3 PANORAMIQUE DES INSTRUCTIONS.............................................................................................................. 22 4.4 LES INDICATEURS D’ÉTAT............................................................................................................................ 23 4.4.1 L’indicateur d’état « Z » ...................................................................................................................... 24 4.4.2 L’indicateur d’état « C »...................................................................................................................... 24 5. LES DÉBUTS AVEC MPLAB ...................................................................................................................... 25 5.1 PRÉPARATION À L’UTILISATION................................................................................................................... 25 5.2 CRÉATION DE NOTRE PREMIER PROJET......................................................................................................... 26 6. ORGANISATION D’UN FICHIER « .ASM » ............................................................................................. 29 6.1 LES COMMENTAIRES .................................................................................................................................... 29 6.2 LES DIRECTIVES........................................................................................................................................... 29 6.3 LES FICHIERS « INCLUDE » ........................................................................................................................... 29 6.4 LA DIRECTIVE _CONFIG............................................................................................................................. 30 6.5 LES ASSIGNATIONS ...................................................................................................................................... 31 6.6 LES DÉFINITIONS.......................................................................................................................................... 31 6.7 LES MACROS ................................................................................................................................................ 32 6.8 LA ZONE DES VARIABLES ............................................................................................................................. 32 6.9 LES ÉTIQUETTES........................................................................................................................................... 33 6.10 LA DIRECTIVE « ORG »............................................................................................................................. 33 6.11 LA DIRECTIVE « END » ............................................................................................................................. 33 7. RÉALISATION D’UN PROGRAMME ....................................................................................................... 34 7.1 CRÉATION DE NOTRE PREMIER PROGRAMME................................................................................................ 34 7.2 L’ASSEMBLAGE D’UN PROGRAMME ............................................................................................................. 35 8. LA SIMULATION D’UN PROGRAMME................................................................................................... 37 8.1 LANCEMENT ET PARAMÉTRAGE DU SIMULATEUR......................................................................................... 37 4 8.2 EXPLICATION DES REGISTRES FONDAMENTAUX........................................................................................... 39 8.2.1 Les registres « PCL » et « PCLATH » ................................................................................................. 40 8.2.2 Le registre « W ».................................................................................................................................. 41 8.2.3 Le registre « STATUS »........................................................................................................................ 41 8.3 LANCEMENT DE LA SIMULATION.................................................................................................................. 42 9. LE JEU D’INSTRUCTIONS ......................................................................................................................... 46 9.1 L’INSTRUCTION « GOTO » (ALLER À)......................................................................................................... 46 9.2 L’INSTRUCTION « INCF » (INCREMENT FILE) ............................................................................................ 47 9.3 L’INSTRUCTION « DECF » (DECREMENT FILE).......................................................................................... 48 9.4 L’INSTRUCTION « MOVLW » (MOVE LITERAL TO W) .............................................................................. 48 9.5 L’INSTRUCTION « MOVF » (MOVE FILE)................................................................................................... 48 9.6 L’INSTRUCTION « MOVWF » (MOVE W TO FILE) ....................................................................................... 50 9.7 L’INSTRUCTION « ADDLW » (ADD LITERAL AND W)............................................................................... 50 9.8 L’INSTRUCTION « ADDWF » (ADD W AND F) .......................................................................................... 51 9.9 L’INSTRUCTION « SUBLW » (SUBTRACT W FROM LITERAL) .................................................................... 51 9.10 L’INSTRUCTION « SUBWF » (SUBTRACT W FROM F).............................................................................. 53 9.11 L’INSTRUCTION « ANDLW » (AND LITERAL WITH W) ........................................................................... 53 9.12 L’INSTRUCTION « ANDWF » (AND W WITH F)....................................................................................... 54 9.13 L’INSTRUCTION « IORLW » (INCLUSIVE OR LITERAL WITH W)............................................................... 54 9.14 L’INSTRUCTION « IORWF » (INCLUSIVE OR W WITH FILE) ..................................................................... 55 9.15 L’INSTRUCTION « XORLW » (EXCLUSIVE OR LITERAL WITH W)........................................................... 55 9.16 L’INSTRUCTION « XORWF » (EXCLUSIVE OR W WITH F) ....................................................................... 56 9.17 L’INSTRUCTION « BSF » (BIT SET F)......................................................................................................... 56 9.18 L’INSTRUCTION « BCF » (BIT CLEAR F) ................................................................................................... 57 9.19 L’INSTRUCTION « RLF » ( ROTATE LEFT THROUGH CARRY) .................................................................... 57 9.20 L’INSTRUCTION « RRF » ( ROTATE RIGHT THROUGH CARRY).................................................................. 58 9.21 L’INSTRUCTION « BTFSC » (BIT TEST F, SKIP IF CLEAR)......................................................................... 59 9.22 L’INSTRUCTION « BTFSS » (BIT TEST F, SKIP IF SET) .............................................................................. 60 9.23 L’INSTRUCTION « DECFSZ » (DECREMENT F, SKIP IF Z) ........................................................................ 61 9.24 L’INSTRUCTION « INCFSZ » (INCREMENT F, SKIP IF ZERO) .................................................................... 62 9.25 L’INSTRUCTION « SWAPF » (SWAP NIBBLES IN F).................................................................................. 62 9.26 L’INSTRUCTION « CALL » (CALL SUBROUTINE) ..................................................................................... 62 9.27 L’INSTRUCTION « RETURN » (RETURN FROM SUBROUTINE)................................................................. 63 9.28 L’INSTRUCTION « RETLW » (RETURN WITH LITERAL IN W)................................................................... 66 9.29 L’INSTRUCTION « RETFIE » (RETURN FROM INTERRUPT) ...................................................................... 67 9.30 L’INSTRUCTION « CLRF » (CLEAR F) ...................................................................................................... 67 9.31 L’INSTRUCTION « CLRW » (CLEAR W)................................................................................................... 67 9.32 L’INSTRUCTION « CLRWDT » (CLEAR WATCHDOG).............................................................................. 68 9.33 L’INSTRUCTION « COMF » (COMPLEMENT F) ......................................................................................... 68 9.34 L’INSTRUCTION « SLEEP » (MISE EN SOMMEIL)....................................................................................... 69 9. 35 L’INSTRUCTION « NOP » (NO OPERATION).............................................................................................. 69 9.36 LES INSTRUCTIONS OBSOLÈTES.................................................................................................................. 69 10. LES MODES D’ADRESSAGE.................................................................................................................... 70 10.1 L’ADRESSAGE LITTÉRAL OU IMMÉDIAT...................................................................................................... 70 10.2 L’ADRESSAGE DIRECT................................................................................................................................ 70 10.3 L’ADRESSAGE INDIRECT............................................................................................................................ 70 10.3.1 Les registres FSR et INDF ................................................................................................................. 71 10.4 QUELQUES EXEMPLES................................................................................................................................ 72 11. RÉALISATION D’UN PROGRAMME EMBARQUÉ............................................................................. 73 11.1 LE MATÉRIEL NÉCESSAIRE ......................................................................................................................... 73 11.2 MONTAGE DE LA PLATINE D’ESSAIS........................................................................................................... 73 11.3 CRÉATION DU PROJET ................................................................................................................................ 74 11.4 EDITION DU FICHIER SOURCE ..................................................................................................................... 75 11.5 CHOIX DE LA CONFIGURATION................................................................................................................... 75 11.6 LE REGISTRE OPTION............................................................................................................................... 76 11.7 EDITION DU PROGRAMME........................................................................................................................... 78 11.8 LE REGISTRE PORTA ................................................................................................................................ 80 5 11.8.1 Fonctionnement particulier des PORTS............................................................................................. 82 11.9 LE REGISTRE TRISA.................................................................................................................................. 82 11.10 LES REGISTRES PORTB ET TRISB .......................................................................................................... 83 11.11 EXEMPLE D’APPLICATION ........................................................................................................................ 84 11.12 LA ROUTINE D’INITIALISATION ................................................................................................................ 84 11.13 LES RÉSULTATS DE LA COMPILATION....................................................................................................... 87 11.14 LE PROGRAMME PRINCIPAL...................................................................................................................... 88 11.15 LA SOUS-ROUTINE DE TEMPORISATION .................................................................................................... 89 12. LES INTERRUPTIONS............................................................................................................................... 93 12.1 QU’EST-CE QU’UNE INTERRUPTION ? ........................................................................................................ 93 12.2 MÉCANISME GÉNÉRAL D’UNE INTERRUPTION ............................................................................................ 93 12.3 MÉCANISME D’INTERRUPTION SUR LES PICS............................................................................................. 94 12.4 LES SOURCES D’INTERRUPTIONS DU 16F84................................................................................................ 95 12.5 LES DISPOSITIFS MIS EN ŒUVRE ................................................................................................................. 96 12.6 LE REGISTRE INTCON (INTERRUPT CONTROL) ...................................................................................... 97 12.7 SAUVEGARDE ET RESTAURATION DE L’ENVIRONNEMENT .......................................................................... 99 12.7.1 Les registres à sauvegarder ............................................................................................................. 100 12.7.2 La méthode de sauvegarde............................................................................................................... 100 12.7.3 Particularité de l’instruction « RETFIE » ....................................................................................... 102 12.8 UTILISATION D’UNE ROUTINE D’INTERRUPTION....................................................................................... 102 12.9 ANALYSE DE LA ROUTINE D’INTERRUPTION............................................................................................. 105 12.10 ADAPTATION DE LA ROUTINE D’INTERRUPTION ..................................................................................... 107 12.11 L’INITIALISATION .................................................................................................................................. 108 12.12 CONSTRUCTION DU PROGRAMME PRINCIPAL.......................................................................................... 109 12.13 CONSTRUCTION DE LA ROUTINE D’INTERRUPTION ................................................................................. 110 12.14 PASSAGE AU SIMULATEUR D’UNE ROUTINE D’INTERRUPTION ................................................................ 111 12.15 PREMIÈRE CORRECTION : RESET DU FLAG............................................................................................. 113 12.16 SE METTRE À L’ÉCHELLE DE TEMPS DU PIC ........................................................................................... 114 12.17 LE PROBLÈME DE L’ANTI-REBOND ......................................................................................................... 115 12.18 FINALISATION DU PROGRAMME ............................................................................................................. 116 12.19 REMARQUES IMPORTANTES ................................................................................................................... 119 12.20 CONCLUSIONS........................................................................................................................................ 120 13. LE TIMER 0................................................................................................................................................ 121 13.1 LES DIFFÉRENTS MODES DE FONCTIONNEMENT........................................................................................ 121 13.2 LE REGISTRE TMR0................................................................................................................................... 121 13.3 LES MÉTHODES D’UTILISATION DU TIMER0 ............................................................................................. 121 13.3.1 Le mode de lecture simple................................................................................................................ 122 13.3.2 Le mode de scrutation du flag.......................................................................................................... 122 13.3.3 Le mode d’interruption .................................................................................................................... 123 13.3.4 Les méthodes combinées .................................................................................................................. 123 13.4 LE PRÉDIVISEUR....................................................................................................................................... 123 13.5 APPLICATION PRATIQUE DU TIMER0......................................................................................................... 125 13.5.1 Préparations..................................................................................................................................... 125 13.5.2 L’initialisation.................................................................................................................................. 126 13.5.3 La routine d’interruption ................................................................................................................. 127 13.6 MODIFICATION DES REGISTRES DANS LE SIMULATEUR............................................................................. 128 13.7 MISE EN PLACE SUR LA PLATINE D’ESSAIS ............................................................................................... 129 13.8 PREMIÈRE AMÉLIORATION DE LA PRÉCISION............................................................................................ 130 13.9 SECONDE AMÉLIORATION DE LA PRÉCISION............................................................................................. 130 13.10 LA BONNE MÉTHODE - ADAPTATION DE L’HORLOGE ............................................................................ 131 13.11 LA MÉTHODE DE LUXE : LA DOUBLE HORLOGE...................................................................................... 132 13.12 EXEMPLE D’UTILISATION DE 2 INTERRUPTIONS ..................................................................................... 132 13.13 CONCLUSION.......................................................................................................................................... 133 14. LES ACCÈS EN MÉMOIRE « EEPROM » ............................................................................................ 134 14.1 TAILLE ET LOCALISATION DE LA MÉMOIRE « EEPROM »........................................................................... 134 14.2 PRÉPARATION DU PROGRAMME................................................................................................................ 134 14.3 INITIALISATION DE LA ZONE EEPROM....................................................................................................... 136 6 14.4 LE REGISTRE EEDATA ........................................................................................................................... 137 14.5 LE REGISTRE EEADR .............................................................................................................................. 138 14.6 LE REGISTRE EECON1 ............................................................................................................................ 138 14.7 LE REGISTRE EECON2 ............................................................................................................................ 139 14.8 ACCÈS EN LECTURE DANS LA MÉMOIRE « EEPROM »................................................................................ 139 14.9 L’ACCÈS EN ÉCRITURE À LA ZONE EEPROM .............................................................................................. 140 14.10 UTILISATION PRATIQUE DE LA MÉMOIRE « EEPROM »............................................................................ 142 14.11 SÉCURISATION DES ACCÈS EN MÉMOIRE « EEPROM »............................................................................. 145 14.12 CONCLUSION.......................................................................................................................................... 145 15. LE WATCHDOG........................................................................................................................................ 146 15.1 LE PRINCIPE DE FONCTIONNEMENT .......................................................................................................... 146 15.2 LE PRÉDIVISEUR ET LE WATCHDOG.......................................................................................................... 146 15.3 LES RÔLES DU WATCHDOG....................................................................................................................... 147 15.4 UTILISATION CORRECTE DU WATCHDOG.................................................................................................. 147 15.5 CE QU’IL NE FAUT PAS FAIRE.................................................................................................................... 147 15.6 MESURE DU TEMPS RÉEL DU WATCHDOG ................................................................................................. 148 15.7 SIMULATION DU PLANTAGE D’UN PROGRAMME ....................................................................................... 149 15.7.1 Correction avec utilisation du watchdog ......................................................................................... 150 15.8 CHOIX DE LA VALEUR DU PRÉDIVISEUR ................................................................................................... 151 15.9 TEMPS TYPIQUE, MINIMAL, ET MAXIMUM................................................................................................ 152 15.10 CONCLUSION.......................................................................................................................................... 152 16. LE MODE SLEEP ...................................................................................................................................... 153 16.1 PRINCIPE DE FONCTIONNEMENT............................................................................................................... 153 16.2 LA SORTIE DU MODE « SLEEP » ................................................................................................................ 153 16.3 RÉVEIL AVEC GIE HORS SERVICE. ........................................................................................................... 154 16.4 RÉVEIL AVEC GIE EN SERVICE................................................................................................................. 154 16.5 MISE EN SOMMEIL IMPOSSIBLE ................................................................................................................ 154 16.6 UTILISATION DU MODE « SLEEP » ............................................................................................................ 155 16.7 CAS TYPIQUES D’UTILISATION ................................................................................................................. 155 16.8 CONCLUSION............................................................................................................................................ 156 17. LE RESTE DU DATASHEET................................................................................................................... 157 17.1 LA STRUCTURE INTERNE.......................................................................................................................... 157 17.2 LA SÉQUENCE DE DÉCODAGE ................................................................................................................... 157 17.3 ORGANISATION DE LA MÉMOIRE .............................................................................................................. 157 17.4 LES REGISTRES SPÉCIAUX ........................................................................................................................ 158 17.5 L’ÉLECTRONIQUE DES PORTS ................................................................................................................... 158 17.6 LE REGISTRE DE CONFIGURATION ............................................................................................................ 158 17.7 LES DIFFÉRENTS TYPES D’OSCILLATEURS ................................................................................................ 159 17.7.1 La précision de l’oscillateur ............................................................................................................ 160 17.8 LE RESET.................................................................................................................................................. 161 17.9 LA MISE SOUS TENSION ............................................................................................................................ 162 17.10 CARACTÉRISTIQUES uploads/s3/ bigonoff.pdf
Documents similaires










-
35
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 17, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 1.4642MB