Ajout de caractères
sur un LCD série
Cette page est une synthèse des pages précédentes détaillant l'ajout de caractères nouveaux en CGRAM sur les LCD.
Quelque soit l'origine du LCD série, Picaxe genre AXE 133 ou bas prix chinois, voici une procédure permettant d'ajouter des caractères personnalisés dans les huits caractères CGRAM libres
1 . Dessiner le caractère dans une matrice de 5 x 8:
Remplacez les case noires par des 1, les blanches par des 0
On obtient un nombre binaire de 5 caractères, que l'on écrit en décimal (c'est plus court).
Par exemple un è
| X | | | | 01000 = 8 |
| | X | | | 00100 = 4 |
| X | X | X | | 01110 = 13 |
X | | | | X | 10001 = 17 |
X | X | X | X | | 11110 = 30 |
X | | | | | 10000 = 16 |
| X | X | X | X | 01111 = 15 |
| | | | | 00000 = 0 |
2. Soit N le n° du caractère à enregistrer, la commande à envoyer est N x 8 +64
Pour N de 0 à 7, on obtient successivement: 64, 72, 80, 88, 96, 104, 112, 120
Les huits octets décrivant le caractère doivent suivrent cette commande
3. Pour enregistrer ce caractère sous le n° 0, on obtient : 0 x 8 +64 = 64
4. La commande finale est donc, pour le catactère "0" et un LCD connecté à la broche C.4, à 4MHz :
serout C.4, N2400_4, (254,64)
serout C.4, N2400_4, (8,4,13,17,30,16,15,0)
Le même caractère, enregistré sous le n°1 (en plus compacte)
serout C.4, N2400_4, (254,72,8,4,13,17,30,16,15,0)
Ces caractères sont enregistrés dans l'initialisation du programme, pour la lecture, ils sont définis par un simple nombre, de 0 à 7 ( on peut aussi définir par des chiffres de 1 à 8, en fait, 0 et 8 définissent le même caractère)
Ex: pour un LCD 1604:
serout C.4, 2400_4, ( 254, 128, 0) écrit un è au début de la première ligne
Un exemple de code définissant huit caractères accentués français, et le résultat sur écran LCD:
;caractères spéciaux
#picaxe 08M2
#no_data
;**** initialisation *******
symbol LCD= C.4
symbol baud= N2400_4
pause 500 'Petite pause pour le temps d'initialisation LCD. mini=200ms
serout LCD,baud,(254,64,2,4,14,17,31,16,14,0) ' é en cgram 0
serout LCD,baud,(254,72,8,4,14,17,31,16,14,0) ' è en cgram 1
serout LCD,baud,(254,80,4,10,14,17,31,16,14,0) ' ê en cgram 2
serout LCD,baud,(254,88,8,4,14,1,15,17,15,0) ' à en cgram 3
serout LCD,baud,(254,96,0,14,16,16,17,14,4,12) ' ç en cgram 4
serout LCD,baud,(254,104,8,4,17,17,17,19,13,0) ' ù en cgram 5
serout LCD,baud,(254,112,8,4,17,17,17,19,13,0) ' ü en cgram 6
serout LCD,baud,(254,120,10,0,14,17,31,16,15,0) ' ë en cgram 7
;******* programme ***********
pause 100 'petite pause pour digérer mini=70ms
serout LCD,baud,(254,1) ;effacement écran
serout LCD,baud,(254,128,0," ",1," ",2," ",3," ",254,192,4," "5," ",6," ",7," ",8)
;en fait, le caractère 0, ou 8, c'est le même
do loop
Autre caractère utile:
Dans l'éditeur PE6, "ß" (Alt+0223) n'a pas grand intéret en France, mais sur un LCD chinois, il se traduit par °, et ça peut servir.
