Menu Content/Inhalt
Accueil arrow Afficheurs LCD arrow LCD 128x64
LCD 128x64 Version imprimable
15-03-2007

Routines en ‘C’ pour piloter un afficheur LCD graphique 128x64 de type OGM64GS12D / OGM128GN15D (Orion Display Technologie) de chez Lextronic. Cet afficheur utilise des drivers de type KS0107B + KS0108B ou HD61202 + HD61203 ou S6B0107 + S6B0108.
L'afficheur est piloté par un PIC18F452.

 Image

Ces drivers permettent la gestion de l’afficheur en mode graphique uniquement.
La matrice fait 128*64 pixels divisé en 2 parties de 64*64. Ce carré de 64*64 est composé de 8 pages (8 lignes de 8 pixels de haut) de 64 pixels de larges.

Image

 J’ai implémenté des fonctions permettant :
- d’afficher un point aux coordonnées lcd_x, lcd_y,
- de tracer des lignes verticales et horizontales,
- la gestion d’une police 5*7 intégrée dans le PIC16F877 (environ 500 octets),
- d’afficher du texte sur une page (on peut écrire une chaîne de caractères de 8*21caractères : les débordements de page sont gérés),
- d’afficher un bitmap 128*64 stocké en EEPROM i2c type 24LC256 (32ko).

Table de caractères Police 5x7 (95 caractères de ‘ ‘ à ‘~’) :

 Image

Exemples de code et résultat sur l’écran :

lcd_clear();
lcd_line_V(0, 1, 0, 63);
lcd_line_V(127, 1, 0, 63);
//                        123456789012345678901
lcd_string_loc_lc("== MENU PRINCIPAL ==", 0, 4);
lcd_string_loc_lc("1 : Mode (osc/log8)", 1, 4);
lcd_string_loc_lc("2 : Calibrage", 2, 4);
lcd_string_loc_lc("3 : Fenetre dessin", 3, 4);
lcd_string_loc_lc("4 : Transfert data", 4, 4);
lcd_string_loc_lc("5 : Affiche images", 5, 4);
lcd_string_loc_lc("6 : Sauve parametres", 6, 4);
lcd_string_loc_lc("<-(*)", 7, 4);           

Image


lcd_bitmap(0);     // numéro de l’image
lcd_string_loc_lc("Seb test",7,65);   // texte

Image

 

Images bitmap et convertion :

Image 

Image 

Les bitmaps de 128*64 pixels créés avec un logiciel de dessin doivent être au format 128*64 pixels (noir & blanc de préférence). Il faut convertir ces fichiers images avec LCDbin en fichiers binaires (les pixels sont réorganisés pour un affichage optimisé). Les fichiers binaires sont ensuite mis bout à bout avec un script .bat DOS, puis le fichier binaire obtenu est programmé avec icprog dans l’EEPROM.

LCDbin (230 KB)
Dll Qt2.30nc pour LCDbin (1 MB)
Script .bat (134 bytes)  

 

Carte de développement et programme du PIC18F452 :

Cette platine est conçue pour le développement de projets à base d’écran LCD graphiques ou alphanumériques sur PIC16F et PIC18F au format DIP 40 broches. La programmation ce fait en ICSP (In Circuit Serial Programming) à l’aide du programmateur de PIC à support ZIF.

Image

J’ai utilisé le compilateur Hi-Tech PICC18 v8.20PL4 sous MPLAB 6.30, mais le code peut être porté sur un autre compilateur sans trop de problèmes.

Le programme permet d'afficher du texte et des images en plein écran. Vous trouverez aussi des routines pour utiliser l’USART (communication RS232) interne du PIC et pour le SSP (module i2c) en maitre.

 

Téléchargements :

Schéma + typon PDF + partlist (875 KB)
Schéma GIF (90 KB)
Source 'C' Hi-Tech PICC18 (280404) (67 KB)

Description des fichiers :

   - main.c : programme principal
   - lcd_port.h : #define pour configuration des entrées / sorties
   - lcd.c, lcd.h : routines pour l’afficheur 128x64
   - font5x7.c : tableau constant pour stockage de la police 5x7 en ROM
   - i2c.c, i2c.h : bus i2c pour EEPROM 24C64, 24C128 ou 24C256 (module hard)
   - rs232.c, rs232.h : usart RS232 à 115200 bauds
   - delay.c, delay.h : temporisations
   - periph.c, periph.h : clavier matricé


 

Dernière mise à jour : ( 20-03-2007 )
 
designed by www.madeyourweb.com