• version 0.0 Fevrier 2014
    last rev 20/09/2019

    Afficheur Nokia 5110 6 lignes de 14 cars (84x48)
    version Mplab C18 (2014)
    version MikroC (2019)
    ....
    Ameliorations (190920)

    autre lien à voir :

    Afficheur Nokia 3110 avec 8 lignes de 16 cars ( 96x64) en C18 (2013)



    PIC 18F26K22 et Afficheur Nokia 5110 : (en C18)

    (6x14 cars)
    usage d'un PIC18F26K22 en DIP28 et du Pickit2 Microchip pour charger l'executable
    Environnemen t: MPLAB IDE V8.92 et C18 v3.45.00

    Testé avec oscillateur interne Fosc=16Mhz

    Nokia LCD 5110 datasheet (modele 6x14)

    ../Divers/images/LCD_Nokia_5110_Module_b.jpg ../Divers/images/LCD_Nokia_5110_Module.jpg
    Platine d'adaptation pour ce LCD Nokia 5110

    MiniInTheBox ref: S090558900001..à 4,58 TTC


    Afficheur de 6 lignes de 14 cars

    table specifique de caracteres Nokia 5x7 (128-32)*5=480 bytes
    placée en (Flash Memory ) Program ROM en 1 seule table au lieu de 2 banks en RAM
    ce qui implique l'usage de int au lieu de byte pour parcourir la table (taille > 255)
    TABLE_car 0x002e6a program extern C:\_C18\_MesProjets_C18\_18F26K22\Nokia5110\Nokia_51110.c

    Attention ! si vous enlever la partie LCD,
    à ne pas decaler ou perdre la partie connection entre LCD et platine
    ( espece de mousse conductrice)

    Liaison nokia au PortC :


    Liaisons PIC <-> Nokia



    Vcc alim PIC= 5,08V
    Sortie RA4 sur Led rouge --2,2K--+5V pour flag dans le programme
    Sortie RA3= Alim VDD du LCD 5110 : 3,60V
    Tension Vout sur C2 nokia LCD 5110 : 7,2V
    Retro eclairage bleu via 4 leds, R=150 deja sur la platine.,direct sur 5V , consomme ~13mA !
    .avec Rserie 2,2Kohms ----> +5V , ce qui donne ~1mA
    avec Rserie de 1Kohms ----> +5V => 1,9mA
    avec Rserie de 470 ohms --> +5V => 10mA !


    RB7 et RB6 reste libres pour l' ICSP
    Usage du Pickit2 (mon Pickit3 utilisé par ailleurs!)

    ../Divers/images/MyBloc_PicKit2_connection.jpg

    ../Divers/images/Alim_ASM1117_3_3V_0-8A_module.jpg
    Alim 3,3V converter interface TTL / RS232 aliment"é en 3,3V

    RC6 utilisé comme sortie Tx UART 19200,8,N,1-> module MAX3222 (alimenté en 3,3V!!)-> PC



    Result sur terminal RS232 :



    Running ...

    images/Nokia51110_running_140222.jpg images/18F26K20_Nokia5110_sch_140225.jpg
    Prototype Schema

    18F26K22_Nokia5110.DSN



    Affichage:
    Ligne 1 :titre : 18F26K22_Nokia
    Ligne 2 affichage de LCD 5110 6x14C
    Ligne 3 Affichage date fixe
    Ligne 4 Fleche droite parcourant la largeur de l'ecran LCD, de gauche à droite,puis de droite à gauche
    Ligne 5 valeur d'un entier sur 5 digits , en format GRAS
    Ligne 6 valeur d'un flottant format 7 carcateres (avec 3 decimales)

    Test fonctions Nokia LCD OK de FOsc=1MHz to 16MHz: .. OK (mais adapter la lib Delay!!)

    Fonctions dispos:

    void nokia_init(void);
    void nokia_CLS(void);
    void nokia_write_command(char nokia_cmd);
    void nokia_write_data(char nokia_data);
    void nokia_write_byte(char nokia_byte);
    void nokia_gotoxy(unsigned char Xnokia, unsigned char Ynokia);
    void nokia_erase_y(unsigned char Ynokia);
    void nokia_erase_x(unsigned char Xnokia);
    void nokia_printchar(unsigned char cvar, char Bold);
    void nokia_print_str(char *ptr,char Bold); // size 5x7 ou 10x7
    void nokia_clean_ddram(void);
    void nokia_write_data_inv(char nokia_data_inv);
    void nokia_clear_screen(void);
    void nokia_print_leftarrow(void);
    void nokia_print_rightarrow(void);
    void nokia_print_degree(void);
    *void nokia_print_uparrow(void);
    *void nokia_print_downarrow(void);
    *void nokia_print_lowbatdegree(void);

    fonctions Grafiques not yet tested ! ...

    Nota:
    Apres plusieurs tests SANS SUCCES avec un PIC18F26K20 (alimenté en 3,3V)
    j'ai abandonné pour me remettre sur un 18F26K22 alim 5V , et là, SUCCES d'affichage
    meme avec la librairie du Nokia 3310 ..puis adaptation au 5110...


    Projet complet en MPLAB IDE V8.92 et C18 v 3.45



    liste des fichiers
    Zip contenant le projet .
    Adapter la lib Delay16M prevue pour Fosc=16Mhz si besoin est..

    Version avec Fonctions Grafiques et Pic 18F26K20 sous 3,3V alim (C18)
    Le hardware est le meme , à part le modele de PIC et l'alim du LCD sur le +3,3V
    A noter que l'afficheur ne fonctionne plus si alimenté par sortie RA3 , niveau=2,6V INSUFFISANT.
    alors qu'il etait de 3,6V avec le pic18F26K22 alimenté en 5V


    Affichage:
    Ligne 1 :titre : 18F26K20_Nokia
    Ligne 2 affichage de LCD 5110 6x14C
    Ligne 3 Affichage date fixe
    Ligne 4 Fleche droite parcourant la largeur de l'ecran LCD, de gauche à droite,puis de droite à gauche
    Ligne 5 valeur d'un entier sur 5 digits , en format GRAS
    Ligne 6 valeur d'un flottant format 7 carcateres (avec 3 decimales)
    puis affichage en mode grafique
    3 rectangles concentriques
    3 cercles concentriques
    3 lignes horizontales
    6 barres verticales
    3 barres horizontales avec reperes sens Y 0 et 47 et sens x 83
    Sinusoide sur 360° avec axes Y et X + graduations

    Fonctions Grafiques
    void nokia_clear_xy(unsigned char Xnokia, unsigned char Ynokia);
    void nokia_plot(unsigned char Xnokia,unsigned char plot_value8);
    void nokia_pixel(unsigned char pixelX,unsigned char pixelY,unsigned char pixelMode);
    void nokia_line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char lineMode);
    void nokia_rect(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char rectMode);
    void nokia_circle(unsigned char centerX,unsigned char centerY,unsigned char radius,unsigned char circleMode);
    void nokia_redraw(void);

         


    Projet C18:
    Liste des fichiers : _18F26K20_Nokia51110_Graf_140224.htm
    Zip du projet : _18F26K20_Nokia51110_Graf_140224.zip




    Afficheur Nokia 5110 version MikroC 7.50:
    6 lignes de 14 cars

    ou 84*43 pixels

    * Même connectique qu'avec la version en C18
    Utilisation de la carte de BASE 18F
    // mode Bit Bang
    sbit SQA at LATB.B1;
    sbit Nokia_DC at LATC.B1; // /DC (DC barre!) choix DATA=1 ou Cde=0
    sbit Nokia_CE at LATC.B0; // /CE (CE Barre!)Chip Enable
    sbit Nokia_RST at LATC.B2; // / Reset (Reste Barre!)
    sbit Nokia_MOSI at LATC.B5 ; // SSP1 Dout MOSI
    sbit Nokia_SCLK at LATC.B3; // SSP1 clock



    Hardware:

    Carte BASE avec 18F26K22

    images/t_Maquette_Test_Nokia_5110.gif images/t_SCANA_Test_envoi_SPI1_Hardware_OK_190812.gif
    Maquette de test .......11/08/2019 Analyse signaux SPI1 Hardware



    Projet Mikro C :


    Source : _18F26k22_Test_My_Lib_Nokia_5110_190811.c
    Lib : My_Nokia_5110_SPI1_Hardw_lib.mcl
    Header : My_Nokia_5110_MC_lib.h
    Chargeur : 18F26K22_BASE_Test_My_Lib_Nokia5110_SPI1_Hardware_190813.hex

    Nota: Usage possible des 2 modes SPI bit Bang ou SPI1_Hardware Advanced
    choix avec #define dans le fichier main.



    Amenagements version SPI Hardware (only) :
    Rajout affichage de 4 images BMP ( merci à TempsX , voir sa version " Ecran Nokia 5110 100% ASM"
    Un feuille Excel pour transformer une declaration image BPM en ASM -> vers une version declaration Image en C
    Nokia_84x48_BMP.xls
    * Rajout d'une fonction Bargraph .. en mode Texte , et en mode Graphique Pixel
    * Rajout de la sauvegarde Arriere Plan grafique lorsqu'on ecrit du texte
    cela permet d'imbriquer Texte et Grafique

    Ce qui donne l'ensemble des fonctions , regroupées dans :
    My_Lib_Nokia_5110_SPI_Hard_1910.h

    void Nokia_Init(void);
    void Nokia_Write_Command(char Nokia_cmd);
    void Nokia_Write_Donnee(char Nokia_data);
    void Nokia_Write_Byte(char Nokia_byte);
    void Nokia_Gotoxy(unsigned char Xnokia, unsigned char Ynokia);
    void Nokia_Erase_y(unsigned char Ynokia);
    void Nokia_Erase_x(unsigned char Xnokia);
    void Nokia_Print_Char(unsigned char cvar, char Bold);
    void Nokia_Print_Str(char *ptr,char Bold); // size 5x7 ou 10x7
    void Nokia_Raz_Lcd_Cache(void);
    void Nokia_Plot(unsigned char Xnokia,unsigned char plot_value8);
    void Nokia_Write_Donnee_Inv(char Nokia_data_inv);
    void Nokia_Clear_Screen(void);
    void Nokia_Clear_XY(unsigned char Xnokia, unsigned char Ynokia);
    void Nokia_Print_uparrow(void);
    void Nokia_Print_downarrow(void);
    void Nokia_Print_leftarrow(void);
    void Nokia_Print_rightarrow(void);
    void Nokia_Print_degree(void);
    void Nokia_Print_lowbat(void);
    void Nokia_Write_Text_At(char x, char y, char *ptr,char Bold) ;
    void Nokia_Write_Text(char *ptr,char Bold) ;
    void Nokia_Write_CText_At(char x, char y, const char *ptr,char Bold);
    void Nokia_Pixel(unsigned char pX,unsigned char pY,unsigned char pMode);
    void Nokia_Line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char lineMode);
    void Nokia_Rect(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char rectMode);
    void Nokia_Circle(unsigned char centerX,unsigned char centerY,unsigned char radius,unsigned char circleMode);
    void Nokia_Redraw(void);
    void Nokia_CLS(void);


    Au niveau Hardware , avec Carte de BASE 18F26K22
    croisement CE et DC

    sbit SQA at LATB.B1; // pour outil ANALYSER SQA50
    sbit Led_R at LATA.B4;
    // led rouge

    sbit Nokia_DC at LATC.B0; // /DC (DC barre!) choix DATA=1 ou Cde=0
    sbit Nokia_CE at LATC.B1; // /CE (CE Barre!)Chip Enable
    sbit Nokia_RST at LATC.B2; // / Reset (Reste Barre!)
    sbit Nokia_SCLK at LATC.B3; // SSP1 clock
    sbit Nokia_MOSI at LATC.B5; // SSP1 Dout MOSI

    rectangles imbriqués image BMP 84x48





    Software MikroC 7.50
    projet : My_Nokia_LCD_5110_BASE_18F26K22_190919.zip
    source C : _18F26k22_Test_My_Lib_Nokia_5110_SPI_Hardw_190919.c
    Graphics BMP : Graphiques_BPM_to_C_pour_Nokia_51110.inc
    librairie : My_Lib_Nokia_5110_SPI1_Hardw_1910.mcl
    header : My_Lib_Nokia_5110_SPI_Hard_1910.h

    Video : Nokia_84x48_5110_1909.webm



     



    Ma Conclusion:
    Hormis l'aspect interressant du montage LCD sur la platine etudiée Pour ,
    je prefere le Nokia3310 8x16cars au Nokia 5110 6x14 cars..
    Mais cela reste aussi preferable au classique LCD2x16 , surtout avec un cout aussi bas...(<5€)
    le seul inconvenient est qu'il faut avoir un PIC un peu costaud (en RAM) et mobilise 5 sorties PIC.

     

    paulfjujo@free.fr


    Retour à l'index general