# Affichage à sept segments

Un affichage à sept segments est une technique d'affichage basé sur sept segments qui peuvent être activés ou désactivés en fonction du motif graphique à produire.
Ce type d'affichage est principalement utilisé pour l'affichage de chiffres décimaux et hexadécimaux. Il constitue une alternative aux affichages matriciels plus complexes.
L'affichage à sept segments est largement utilisé dans les horloges numériques, les compteurs électroniques, les calculatrices et les autres appareils électroniques qui affichent des informations numériques.

## Représentation des caractères

Les sept segments sont disposés comme un rectangle composé de deux segments verticaux de chaque côté et d'un segment horizontal en haut, au milieu et en bas. Dans la plupart des applications, les segments sont de forme et de taille presque uniformes (généralement des hexagones allongés, bien que des trapèzes et des rectangles puissent également être utilisés). Dans les calculatrices, les segments verticaux sont plus longs et de forme plus étrange aux extrémités afin d'améliorer la lisibilité. Les sept éléments de l'affichage peuvent être allumés dans différentes combinaisons pour représenter les chiffres arabes.
Les segments sont désignés par les lettres A à G. Le point décimal optionnel (un huitième segment, appelé DP) est utilisé pour l'affichage des nombres non entiers$^,$. Un seul octet peut coder l'état complet d'un affichage à 7 segments, y compris le point décimal. Les codages de bits les plus populaires sont gfedcba et abcdefg. Dans la représentation gfedcba, une valeur d'octet de 0x06 active les segments 'c' et 'b', qui afficheraient un '1'.

### Caractères décimaux

Les chiffres de 0 à 9 sont les caractères les plus couramment affichés sur les afficheurs à sept segments. Les motifs les plus couramment utilisés pour chacun d'entre eux sont :
* 0
* 1
* 2
* 3
* 4
* 5
* 6
* 7
* 8
* 9
Les chiffres 6, 7 et 9 peuvent également être représentés sans queue.

### Caractères hexadécimaux

Les chiffres hexadécimaux A à F sont représentés de la façon suivante :
* A
* B
* C
* D
* E
* F

## Programmation

En général, un afficheur à 7 segments se programme sur 4 bits grâce à 4 entrées conformément à la table de vérité suivante :
Programmation :
| Affichage | Entrée 1 | Entrée 2 | Entrée 3 | Entrée 4 |
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 2 | 0 | 0 | 1 | 0 |
| 3 | 0 | 0 | 1 | 1 |
| 4 | 0 | 1 | 0 | 0 |
| 5 | 0 | 1 | 0 | 1 |
| 6 | 0 | 1 | 1 | 0 |
| 7 | 0 | 1 | 1 | 1 |
| 8 | 1 | 0 | 0 | 0 |
| 9 | 1 | 0 | 0 | 1 |
| A | 1 | 0 | 1 | 0 |
| B | 1 | 0 | 1 | 1 |
| C | 1 | 1 | 0 | 0 |
| D | 1 | 1 | 0 | 1 |
| E | 1 | 1 | 1 | 0 |
| F | 1 | 1 | 1 | 1 |
En notant les entrées 1, 2, 3, 4 du tableau ci-dessus respectivement $i1,i2,i3$ et $i4$, les équations des segments (pour afficher les nombres de 0 à F) sont :
* $a={\bar {i1}}.i3+i1.{\bar {i4}}+i2.i3+{\overline {(i2+i4)}}+i1.{\bar {i2}}.{\bar {i3}}+{\bar {i1}}.i2.i4$
* $b={\overline {(i1+i2)}}+{\overline {(i2+i3)}}+{\overline {(i2+i4)}}+{\bar {i1}}.{\overline {(i3\oplus i4)}}+i1.{\bar {i3}}.i4$
* $c=(i1\oplus i2)+{\bar {i3}}.i4+{\overline {(i3\oplus i4)}}.{\bar {i2}}$
* $d=i1.{\bar {i3}}+{\overline {(i1+i2+i4)}}+i2.(i3\oplus i4)+{\bar {i2}}.i3.i4$
* $e={\overline {(i2+i4)}}+i3.{\bar {i4}}+i1.i2+i1.i3$
* $f=i1.{\bar {i2}}+{\overline {(i3+i4)}}+{\bar {i3}}.(i1\oplus i2)+i1.i3+i2.{\bar {i4}}$
* $g=i3.(i1+{\bar {i2}}+{\bar {i4}})+i1.i4+{\bar {i3}}.(i1\oplus i2)$
On peut retrouver ces équations en établissant la table de Karnaugh de chaque segment ; il existe d'autres possibilités de formules.
Dans le cas d'un afficheur 7 segments commandé par 8 bits, la table de vérité donne (segment G correspondant à bit 7 et A à bit 1) :
Programmation :
| Affichage | Bit 8 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Hexadécimal |
| 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0x3F |
| 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0x06 |
| 2 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0x5B |
| 3 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0x4F |
| 4 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0x66 |
| 5 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0x6D |
| 6 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0x7D |
| 7 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0x07 |
| 8 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0x7F |
| 9 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0x6F |
| A | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0x77 |
| B | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0x7C |
| C | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0x39 |
| D | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0x5E |
| E | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0x79 |
| F | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0x71 |