16F877 est le nom d'un microcontrôleur Microchip de la famille PIC 16Fxxx.

Désignation modifier

Le numéro 16 signifie qu'il fait partie de la famille "MID-RANGE". C'est un microcontrôleur de la famille 8 bits[1]. Cela veut dire que l'ALU (Arithmetic Logic Unit ou Unité Arithmétique et Logique en français) traite naturellement des mots de 8 bits maximum.

La lettre F indique que la mémoire programme de ce PIC est de type "Flash". Chaque ligne de mémoire est un mot de 14 bits.

Les trois derniers chiffres permettent d'identifier précisément le PIC, ici c'est un PIC de type 877.

La référence 16F877 peut avoir un suffixe du type "-XX" dans lequel XX représente la fréquence d'horloge maximale que le PIC peut recevoir.

Caractéristiques modifier

Fonctionne à 20 MHz maximum.

Possède :

Mémoire Flash modifier

Pourquoi une ligne de cette mémoire (Mémoire flash) a 14 bits ?
L'ALU permet de faire des opérations mathématiques simples : OPERANDE_1 OPERATEUR OPERANDE_2.

  • Les OPERANDE_1 et OPERANDE_2 sont des mots de 8 bits (car le 16F877 est un µC 8bits).
  • L'OPERATEUR est l'une des 35 instructions disponibles (donc codable sur 6 bits)

La mémoire Flash est composée d'un mot de 8 bits (OPERANDE_1) et d'un mot de 6 bits (OPERATEUR).
Quid de l'OPERANDE_2 ? Celle-ci est :

  • soit le résultat de l'opération précédente,
  • soit elle n'existe pas (ex : un décalage),
  • soit elle a été chargée dans le registre W lors de l'opération précédente.

Pour bien comprendre ces informations, reportez-vous à : figure 1-2 (page 7), au chapitre 3 (page 33 à 39), et au tableau 15-2 (page 160) de la documentation du PIC 16f877 donné en Notes[1].

Applications modifier

Le microcontrôleur PIC 16F877 est devenu un microcontrôleur très populaire dans l'électronique loisir. Sa simplicité, son prix, et l'accessibilité des outils de programmation peuvent expliquer sa popularité.

Programmation modifier

Les méthodes de programmations disponibles (il en existe peut-être d'autres) sont :

  • Écrire directement un fichier en Hexadécimal (comme dans les années 1960),
  • Écrire en assembleur,
  • Écrire en C,


Notes modifier

  1. a et b Microchip - PIC16F87xA datasheet
  2. http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf Timer1: 16-bit timer/counter with prescaler, can be incremented during SLEEP via external crystal/clock

Voir aussi modifier

Sur les autres projets Wikimedia :

Articles connexes modifier