• version 1.0
    juill 2013

    PIC 18F46K22 et Afficheur Nokia 3310: 8 lignes de 16cars

    usage d'un PIC18F46K22 en DIP40 et du Pickit3 Microchip pour charger l'executable
    Environnemen t: MPLAB IDE V8.91 et C18 v3.45.00

    Testé avec oscillateur interne Fosc=16Mhz

    Nokia LCD datasheet (attention,pour modele 6x14)

    ../Platine_NOKIA/images/Nokia_3310_LCD_adapter_080414.jpg images/Nokia_LCD_Pic18F46k22_Z.jpg
    Platine d'adaptation pour LCD Nokia

    Affichage resultant


    Afficheur de 8 lignes de 16 cars
    * certains afficheurs ne font que 6 lignes de 14 cars
    je ne sais pas quelle reference exacte entre modele 8x16 et 6x14...visuellement, ils sont semblables.
    re modif du fichier linker (./_common/18f46k22_GrosseBank.lkr)
    car rajout table specifique de caracteres Nokia 5x7 (128-32)*5=480 bytes
    #pragma udata GrossBank // 3 bank = 768 bytes
    #pragma udata NokiaBank // 2 bank = 512 bytes

    J'ai trouvé un bug sur ma fonction nokia LCD senchar(x) .=> rajout d'un cast to int du caractere avant de le multiplier par 5 sinon
    par exemple la lettre V non accessible ainsi que minuscules
    ATTENTION definition radix DEC dans l'onglet Assembleur ..sinon deboires !
    Test fonctions Nokia LCD OK de FOsc=1MHz to 64MHz
    Liaison nokia au PortB :
    B0,B1,B2,B3,.B4. relié respectivement ( via R=2,7K) à : Nokia 5 (CS), 4 (D/C), 8 (RES), 2(SCK) ,3 (DIn)
    Attention: Alim Nokia 3,3V entre 1(Vdd) ,8(Gnd)
    Une fois initialisé on doit retrouver environ 8,3V aux bornes du 1µF connecté entre Pin 7 nokia et masse (0V)
    B7 et B6 reste libres pour l' ICSP

    Affichage:
    Ligne 1 :titre (en EEPROM)
    Ligne 2 commentaire(en EEPROM)
    Ligne 3 Version ( en #define debut de programme)
    Ligne 4 valeur brute mesure Entree Ana EA0=RA0 // potar simule le capteur
    Ligne 5 valeur mise à l'echelle et en Degre de EA0 , Acq ADC0 (RA0) 0mV -> -273°C 1023mV -> 226.5°C
    Ligne 6 valeur de l'indice incrementiel dans la boucle principale
    Ligne 7 Bargraph horizontal de 96 points, represente la temperature (EA0)
    Ligne 8 affiche le buffer de reception UART (16 car maxi)

    Pourquoi un 40 pins :
    Pour suite usage dans l'appli EDF info L'URAT1 est utilisé pour affichage sur terminal RS232.
    Le Port C : C3,C4,C5 utilisés pour une liaison SPI module RTC1302,
    le Port D : D7 pour recption trame EDT sur UART2.
    sinon un 18F26K22 serait suffisant ..

    Fonctions dispo:

    //---- Nokia 3310 LCD
    void initlcd(void);
    void sendcmd(char x) ;
    void senddata(char x) ;
    void cleanram(void);
    void gotoxy( char x, char y) ;
    void sendchar(char x);
    void sendpack(char x) ;
    void Nokia_PutRomString(rom char *string);
    void Nokia_PutRamString(char *string);
    void Nokia_Erase_Ligne(char Ligne);
    void Nokia_Bargraph(char Ligne,int Value);

    source C18 :
    18F46K22_Nokia3310_130729_all.c
    chargeur :
    18F46K22_Nokia3310_130730.hex
    linker:
    18f46k22_GrosseBank.lkr

    video : Nokia_96x64_Platine_18F4685.webm


    paulfjujo@free.fr


    Retour à l'index general