Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Écran Nokia 5110
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#1 Message par Temps-x » ven. 16 août 2019 16:27

Bonjour tout le forum,

Mise en fonction de l'écran Nokia 5110, voici son datasheet

J'ai utilisé pour la mise en fonction de l'écran, un microcontrôleur Pic18F26K22, voici son datasheet

On peut choisir les pattes quand veux, car j'utilise le mode SPI bit bang , pour éviter les problèmes je vous conseille d'alimenter votre pic et l'écran en 3,3 volts.


Code : Tout sélectionner

;*************************************** assignations ***************************************** 

#DEFINE clk    LATA,4                 ; RA4 ==> horloge de synchronisation
#DEFINE din    LATA,3                 ; RA3 ==> entrée des données 
#DEFINE dc     LATA,2                 ; RA2 ==> sélection du mode : commande = 0 , donnée = 1
#DEFINE ce     LATA,1                 ; RA1 ==> activer ou désactiver la transmission
#DEFINE rst    LATA,0                 ; RA0 ==> reset de l'écran

 


Schéma

Nokia-1(Schéma).jpg


En réelle

Nokia(Réelle).jpg


Dans cette version le clavier est stocké en mémoire eeprom, il faut 480 octets d'eeprom pour y stocker les 96 caractères ASCII, mais juste les
caractères primaires.

Fichier à mettre dans le Pic
Nokia-1(Hex).zip

Fichier code
Nokia-1(Code).zip


******************************************************************************** Deuxième code ********************************************************************************
Dans cette deuxième version j'utilise le même Pic avec les mêmes branchement, mais le clavier est stocké en mémoire programme, comme on n'est plus gêné par la taille des données, j'ai créé des nouveaux caractères ASCII, vous pouvez en créer d'autre, car il y a encore de la place pour autre caractère.

J'ai aussi ajouté une gestion d'une lecture graphique en mémoire programme, ou il ne faudra pas dépasser les 504 octets pour une image noir et blanc d'un écran Nokia 5110 (48 x 84 pixels).

il y aussi la création d'un Bargraphe qui va de 0% à 99,45%, vous pouvez utiliser jusqu’à 6 Bargraphe toutes indépendants l'un de l'autre, comme on est en 8 bits, la valeur maxi est de 255 = 99,45%

Schéma

Nokia-2(Schéma).jpg

Ce code est fait pour les Pic18F qui possède plus de 32Kio de mémoire programme, si vous voulez l’adapter pour un Pic18F qui ne dépasse pas
les 32Kio de mémoire programme, ou pour un Pic16F, et que vous rencontré des problèmes, je peux vous aider si vous en faite la demande. :wink:

Attention car certain éditeur de texte ne reproduise pas conformément les caractères ASCII au numéro de la table, si c'est le cas il faudra changer la font dans votre éditeur de texte.

Le code

Le code ASM a été écrit avec jens file Editor 3.95

Code : Tout sélectionner



;**************************** "Écran Nokia 5110 48 x 84 pixels" ********************************


    Errorlevel-302                        ; Supprime le message "Ensure that bank bits are correct" 

    list p
=18f26K22                       ; processeur utilisé                  
    
#include <p18f26K22.inc>              ; Définitions des constantes

;***********************************************************************************************

;
 CONFIG11H
     CONFIG FOSC 
= INTIO67 
     CONFIG FCMEN 
= OFF 
     CONFIG IESO 
= OFF
; CONFIG2L
     CONFIG PWRTEN 
= OFF 
     CONFIG BOREN 
= OFF 
     CONFIG BORV 
= 190
; CONFIG2H
     CONFIG WDTEN 
= OFF 
     CONFIG  WDTPS 
= 1
; CONFIG3H
     CONFIG CCP2MX 
= PORTC1 
     CONFIG PBADEN 
= OFF
     CONFIG CCP3MX 
= PORTC6
     CONFIG HFOFST 
= OFF
     CONFIG T3CMX 
= PORTC0
     CONFIG P2BMX 
= PORTC0
     CONFIG MCLRE 
= INTMCLR
; CONFIG4L
     CONFIG STVREN 
= OFF 
     CONFIG LVP 
= OFF 
     CONFIG XINST 
= OFF 
     CONFIG DEBUG 
= OFF
; CONFIG5L
     CONFIG CP0 
= OFF 
     CONFIG CP1 
= OFF 
     CONFIG CP2 
= OFF 
     CONFIG CP3 
= OFF
; CONFIG5H
     CONFIG CPB 
= OFF 
     CONFIG CPD 
= OFF
; CONFIG6L
     CONFIG EBTR0 
= OFF
; CONFIG6H
     CONFIG EBTR1 
= OFF
; CONFIG7L
     CONFIG EBTR2 
= OFF
; CONFIG7H
     CONFIG EBTR3 
= OFF

;*************************************** assignations ***************************************** 

#DEFINE clk    LATA,4                 ; RA4 ==> horloge de synchronisation
#DEFINE din    LATA,3                 ; RA3 ==> entrée des données 
#DEFINE dc     LATA,2                 ; RA2 ==> sélection du mode : commande = 0 , donnée = 1
#DEFINE ce     LATA,1                 ; RA1 ==> activer ou désactiver la transmission
#DEFINE rst    LATA,0                 ; RA0 ==> reset de l'écran
           
#DEFINE buzzer D'127'                 ; RC2 ==> pwm 1950 Hz à 50% pour le buzzer

#DEFINE phrase D'1'                   ; obligé d'avoir 1 pour la décrémentation de 1 caractère

;****************************** déclaration des variables *************************************


     CBLOCK H'20'                          ; bank0
  
      loop1        
:1
      loop2        
:1
      loop3        
:1
      loop4        
:1
      loop5        
:1                    
      loop6        
:1    
      loop7        
:1
      loop8        
:1      
      loop9        
:1

      tmps         
:1   
      temps        
:1
    
      res8         
:1
      res16        
:1

      unité        
:
      dizaine      
:1
      centaine     
:1         
      millieme     
:1  
      dix_millieme 
:1

      lettre       
:1  
      lecture      
:1

      somme        
:1       
      reste        
:
      quotient     
:1      
 
      adresse_low  
:
      adresse_hi   
:1

      donner_low   
:1
      donner_hi    
:
 
    ENDC

;************************* "Macro pour se positionner dans un tableau" ************************* 
tableau MACRO adresse

      movlw UPPER
(adresse)                ; 
      movwf TBLPTRU                       
;
      movlw HIGH(adresse)                 ;
      movwf TBLPTRH                       ; 
      movlw LOW
(adresse)                  ;
      movwf TBLPTRL                 
     
    ENDM

;************************** "Macro pour se positionner sur l'écran" **************************** 
locate MACRO hauteur
,largeur

      movlw hauteur                       
; 
      movwf loop8                         
;
                          
      movlw largeur                       
;
      movwf loop9                         ; 
 
      rcall position                      
;

    ENDM

;****************************** adresse de depart après reset **********************************

    ORG H'0'
      bra debut      

;********************************* interruption haute priorité *********************************

    ORG    H'8'
      retfie 

;********************************* interruption basse priorité *********************************

    ORG     H'18'                                  
      retfie 

debut

;***************** "configuration de la bank sélectionné du microcontrôleur" *******************

      movlw B'00000000'          
      movwf BSR

;******************** "configuration de l'oscillateur du microcontrôleur" ********************** 

    
;  movlw B'01110100'                   ; oscillateur à 16 Mhz, fréquence stable si PLL (16 * 4)= 64 Mhz
      movlw B
'01100100'                  ; oscillateur à 8 Mhz, fréquence stable si PLL (* 4) = 32 Mhz
    
;  movlw B'01010010'                  ; oscillateur à 4 Mhz, fréquence stable  
    
;  movlw B'01000010'                  ; oscillateur à 2 Mhz, fréquence stable  
    
;  movlw B'00110010'                  ; oscillateur à 1 Mhz, fréquence stable  

      movwf OSCCON
      
;**************************** configuration du registre OSCTUNE ********************************

      movlw B'00000000'                   ; bit 6 à 1 : PLL * 4
      movwf OSCTUNE                       
; bit 6 à 0 : PLL désactivé
                                         
;*************************** configuration du registre ANSELA ********************************** 

      movlw B
'00100000'                   ; en mode numérique : 7(RA5)
      movwf ANSELA                        ; en mode E/S       : 2(RA0), 3(RA1), 4(RA2), 5(RA3), 

;**************************** configuration du registre ANSELB ********************************* 

      movlw B
'00000000'                   ; en mode numérique : 
      movwf ANSELB                        
; en mode E/S       : 21(RB0), 22(RB1) 23(RB2), 24(RB3), 25(RB4), 26(RB5)  
             
;**************************** configuration du registre ANSELC ********************************* 

      movlw B
'00000000'                   ; en mode numérique :
      movwf ANSELC                        ; en mode E/S       : 13(RC2),  14(RC3), 15(RC4), 16(RC5), 17(RC6), 18(RC7)  

;*************************** configuration du registre ADCON0 ********************************** 

      movlw B
'00000000'                   ; b0 = ADON mise en service le convertiseur 0 = arrêt : 1 = marche   
      movwf ADCON0                        
; b1 = GO/DONE indique la fin de la conversion analogique, et permet de lancer la conversion
                                          
; b2 à b6 = réglage de la sélection du canal

;*************************** configuration du registre ADCON1 ********************************** 

      movlw B
'00000000'                   ; b2 à b3 = 00 : sélection de la tension de reférence, Vref+ = Vss   
      movwf ADCON1                        
; b0 à b1 = 00 : sélection de la tension de reférence, Vref- = Vdd 
                                          
;*************************** configuration du registre ADCON2 ********************************** 

      movlw B
'00110110'                   ; b0 à b2 = FOSC/64
      movwf ADCON2                        
; b3 à b5 = 16 TAG 
                                          
; 
                                          
; b7 = détermine si le résultat de la conversion
                                          
; sera justifié à droite = 1 ou à gauche = 0  

;*********************** "configuration du pwm du microncontrôleur" ****************************

      movlw    D'255'                          ; réglage du "débordement" de TMR2 
      movwf    PR2                             
; PR2 D'255' donc fréquence à 1950 Hz avec prédiviseur à 4

                                  
      movlw B
'00000101'                      ; "prédiviseur à 4" bit zéro à 1, bit un à 0 
      movwf T2CON                         
; "timer on", bit deux à 1 (mise en route du timer2. 0 : arrêt. 1 : marche)
                                          ; "postdiviseur à 1" bit trois à 0, bit quatre à 0, bit cinq à 0, bit six à 0
                                          
; dans registre de contrôle
                                         
      movlw B
'00001100'                   ; "1100" 4 bits mode pwm 
      movwf CCP1CON                       
; "00" 2 bits pour variation du rapport cyclique(RC2) 
      movwf CCP2CON                       
; "00" 2 bits pour variation du rapport cyclique(RC1) 

;***************** configuration des registres TRISA & TRISB & TRISC & TRISE ******************* 

      movlw B
'00100000'                   ; RA0(2), RA1(3), RA2(4), RA3(5), RA4(6), RA5(7), RA6(10), RA7(9)  
      movwf TRISA                         
; 

      movlw B
'11111111'                   ; RB0(21), RB1(22), RB2(23), RB3(24), RB4(25), RB5(26), RB6(27), RB7(28)
      movwf TRISB                         ; 

      movlw B
'00000000'                   ; RC0(11), RC1(12), RC2(13), RC3(14), RC4(15), RC5(16), RC6(17), RC7(18)     
      movwf TRISC                         
; 

      movlw B
'00001000'                   ; RE3(1) 
      movwf TRISE                         
;

                                          ; VSS(8), VSS(19), VDD(20) 

;**************************** configuration du registre INTCON2 ******************************** 

     movlw B
'00000000'                    ; B7 = 0 résistances en service
     movwf INTCON2                        
;

;****************************
 configuration du registre WPUB *********************************** 
                                        
     movlw B
'11111111'                    ; tirage de résistance sur        : RB0(21), RB1(22), RB2(23), RB3(24), RB4(25), RB5(26), RB6(27), RB7(28)  
     movwf WPUB                           
; pas de tirage de résistance sur :

;****************************
 configuration du registre INTCON *********************************      

    movlw B
'00000000'                     ; 
    movwf INTCON                          
; interruption hors service 

;************************************ départ du programme **************************************

      clrf CCPR1L                         ; sortie du Pwm(RC2) réglage de la luminosité des leds sur écran 
      clrf CCPR2L                         
; sortie du Pwm(RC1) activation du buzer

      clrf PORTA
      clrf PORTB
      clrf PORTC
   
      clrf LATA
      clrf LATB 
      clrf LATC
   
;**************************** " témoin sonore de mise en fonction" *****************************

      movlw buzzer                        ; témoin sonore activé (RC1)
      movwf CCPR2L

      rcall _100ms                        
; petite pause de 100 ms 

      clrf CCPR2L                         
; arrêt du témoin sonore (RC1)

;****************************
 " témoin visuel de mise en fonction" *****************************

      movlw D'2'                         ; pour 2 clignotements
      movwf loop4

clignote
      bsf LATC
,0   
      rcall _1s
      bcf LATC
,0   
      rcall _1s
      decfsz loop4
,F
      bra clignote

;******************* "initialisation de l'écran nokia en mode SPI bit bang" ********************     
      bsf ce                              
; arrét  
      nop
      bcf rst                             
; 
      nop
      bsf rst                             
; remise à zéro
;-----------------------------------------------------------------------------------------------                                         
      movlw B
'00100001'                   ; commandes étendues du lcd (0x21)
      movwf loop8      
      call spi_command 
;-----------------------------------------------------------------------------------------------
      movlw B'10111001'                   ; réglage du contraste du lcd (0xB1) à (0xBF)
      movwf loop8
      call spi_command
;-----------------------------------------------------------------------------------------------
      movlw B'00100000'                   ; Valider la modification (0x20)
      movwf loop8
      call spi_command
;-----------------------------------------------------------------------------------------------
      movlw B'00001100'                   ; vidéo en mode normal 0x0C ou 0x0D pour mode négatif
      movwf loop8
      rcall spi_command                
;-----------------------------------------------------------------------------------------------               
      movlw B
'00000001'                   ; effacer l'écran
      movwf loop8
      rcall spi_command  
;-----------------------------------------------------------------------------------------------
;-----------------------------------------------------------------------------------------------

      rcall cls_nokia                     ; efface l'
écran, et remets le curseur en début de ligne
                                      
      tableau graphique_1                 
; macro qui permets de se positionner a l'adresse demandé
       
      rcall pixel_nokia                   ; affichage graphique N°1

      rcall _3s                           ; temporisation de 3 secondes pour voir ce qui est affiché sur l'
écan
                                          
; 
      rcall cls_nokia                     
; efface l'écran, et remets le curseur en début de ligne

      tableau graphique_2                 ; macro qui permets de se positionner a l'
adresse demandé

      rcall pixel_nokia                   
; affichage graphique N°2

      rcall _3s                           
; temporisation de 3 secondes pour voir ce qui est affiché sur l'écan

      rcall cls_nokia                     ; efface l'
écran, et remets le curseur en début de ligne

      tableau graphique_3                 
; macro qui permets de se positionner a l'adresse demandé

      rcall pixel_nokia                   ; affichage graphique N°3                 

      rcall _3s                           ; temporisation de 3 secondes pour voir ce qui est affiché sur l'
écan

      rcall cls_nokia                     
; efface l'écran, et remets le curseur en début de ligne

      tableau graphique_4                 ; macro qui permets de se positionner a l'
adresse demandé

      rcall pixel_nokia                   
; affichage graphique N°4                 

      rcall _3s                           
; temporisation de 3 secondes pour voir ce qui est affiché sur l'écan

      rcall cls_nokia                     ; efface l'
écran, et remets le curseur en début de ligne

;-----------------------------------------------------------------------------------------------
      movlw D'42'                         ; longueur de la donnée 
      movwf phrase                        
;                       "R‚glage du pwm"  
                                          
;                       " sur  l'‚cran "
      movlw D'0'                          ;                       "  Nokia 5510  "
      movwf lecture                       ; emplacement du départ de la donnée à lire
                                         
      rcall affiche_nokia                 
;    
  
;-----------------------------------------------------------------------------------------------
      movlw D'14'                         ; affiche 14 fois le même caractère
      movwf loop4        
ret1
      movlw 
'*'                              
      rcall lettre_nokia                  
; afffiche un caractère   

      decfsz loop4
,F
      bra ret1         

      rcall canal_AN4                     
; sélection du canal RA5 analogique

;-----------------------------------------------------------------------------------------------  
scan_bargraphe       
      rcall scan_numérique                
;

      movf somme,W                        ; réglage de la luminosité des leds sur écran (RC2)
      movwf CCPR1L             

      movlw D
'39'                         
      mulwf somme                         
; multiplier W par "somme" résultat dans PRODH PRODL 
      
      locate 4
,18                         ; macro de positionnement hauteur, largeur
      
      movff PRODL
,res8
      movff PRODH
,res16

      rcall conversion                    
; conversion pour affichage à l'écran
    
      movlw '
%'                              
      rcall lettre_nokia                  ; afffiche un caractère   
    
      movlw '
 '                              
      rcall lettre_nokia                  ; afffiche un caractère   
      movlw '
 '                              
      rcall lettre_nokia                  ; afffiche un caractère   

      locate 5,0                          ; macro de positionnement hauteur, largeur 
      rcall lire_bargraphe                ; indication de la valeur du pwm par bargraphe

      rcall _10ms                        ; temporisation de 10 millisecondes, évite un effet fantôme  

      bra scan_bargraphe                  ; retour

;********************* "sélection du canal AN4 du convertiseur numérique" ********************** 
canal_AN4
      bcf ADCON0,6                        ; b6 = CHS4 sélection du canal RA5/AN4
      bcf ADCON0,5                        ; b5 = CHS3 sélection du canal RA5/AN4 
      bsf ADCON0,4                        ; b4 = CHS2 sélection du canal RA5/AN4  
      bcf ADCON0,3                        ; b3 = CHS1 sélection du canal RA5/AN4
      bcf ADCON0,2                        ; b2 = CHS0 sélection du canal RA5/AN4

      return    

;*********************************************************************************************** 
scan_numérique
      bsf ADCON0,ADON                     ; on lance l’acquisition (charge du condensateur)

      nop
      nop
      nop                                 ; pause, temps de charge du condensateur
   
      bsf ADCON0,GO                       ; lancer la conversion A/D

      btfsc ADCON0,GO                     ; si le bit GO est à 1 on va à la ligne 1        
      bra $-D'
2'                          ; convertion n'est pas terminer     

      bcf ADCON0
,ADON                     ; fin de conversion, éteindre convertisseur

      movff ADRESH
,somme                  ; transférer le résultat dans la variable "somme"

      return

;****************************** "affiche le texte sélectionner" ******************************** 
affiche_nokia    
      tableau info                        
; macro qui permets de se positionner a l'adresse demandé

      movf lecture,W                      ;
      addwf TBLPTRL,F                     ;                   

      incf lecture,F                      ; lecture pour le prochain passage 

      tblrd*                              ; effectue la lecture de l’octet pointé par TBLPTR 
                      
      movf TABLAT,W                       ; transfére le caractère récupéredans TABLAT vers W

lettre_nokia                        
      movwf lettre                        ; transfére le caractère récupére dans "lettre"
      movlw D'
32'                         ; récupère le caractère qui était placé dans W
      subwf lettre,W                      ; ((caractÞre-32) * 5) = adresse de la mémoire flash 

      mullw D'
5'                          ; multiplier W par 5, résultat dans PRODH PRODL                                        
    
      movlw D'
5'                          ; 5 passages pour créer un caractère
      movwf loop5


      tableau alphabet                    ; macro qui permets de se positionner a l'
adresse demandé
      
      movf PRODH
,W                        ;
      addwf TBLPTRH,F                     ;  

      movf PRODL
,W                        ;
      addwf TBLPTRL,F                     ;                                
ret2
      tblrd
*+                             ; effectue la lecture, et ensuite incrémente TBLPTR

      movff TABLAT
,loop8                  ; transfére la donnée récupére dans "loop8"
      rcall spi_données                   ;

      decfsz loop5,F          
      bra ret2

      movlw B
'00000000'                   ; avance d'un pixel sur la largeur  
      movwf loop8
      rcall spi_données

      decfsz phrase,F                     ; "phrase" est la longueur du texte
      bra affiche_nokia                   ; 

      incf phrase,F                       ; préparation au cas ou il faudrait lire un caractére  

      return 

;*********************"efface l'
écran & position le curseur au début" ************************** 
cls_nokia

      movlw D'2'                          ; pour effacement complet de l'écran, soit 504 octets
      movwf loop1

      movlw D'248'
      movwf loop2

      locate 0,0                          ; macro de positionnement hauteur, largeur                                            
cls
      movlw B'00000000' 
      movwf loop8
      rcall spi_données                   ; effacer les données existantes

      decfsz loop2,F      
      bra cls
      decfsz loop1,F      
      bra cls
      
      locate 0,0                          ; macro de positionnement hauteur, largeur   
     
      return

;***********************************"
Ecran Nokia 504 octets" *********************************** 
pixel_nokia 
      movlw D'2'                          ; pour la lecture complet de l'écran, soit 504 octets
      movwf loop1                         ;

      movlw D'248'                        ; 
      movwf loop2

lire_graphique
      tblrd*+                             ; effectue la lecture, et ensuite incrémente TBLPTR

      movff TABLAT,loop8                  ; transfére la donnée récupére dans "
loop8"
      rcall spi_données                   ;

      decfsz loop2,F
      bra lire_graphique
      decfsz loop1,F
      bra lire_graphique

      return

;*********************************************************************************************** 
lire_bargraphe
      clrf quotient
      clrf reste          

diviser
      movlw D'3'       
      subwf somme,F 
      btfsc STATUS,Z
      bra difference
      btfsc STATUS,C 
      bra retire
      bra difference
retire
      incf quotient,F
      bra diviser

difference      
      movf quotient,W
      sublw D'84'
      movwf reste
     
      movf quotient,W      
      xorlw D'0'
      btfsc STATUS,Z
      bra bar_blanc                                                  

bar_noir  
      movlw B'01111111' 
      movwf loop8 
      rcall spi_données                   ; ajouter les données
    
      decfsz quotient,F
      bra bar_noir

      movf reste,W      
      xorlw D'0'
      btfsc STATUS,Z
      return

bar_blanc      
      movlw B'00000000' 
      movwf loop8
      rcall spi_données                   ; effacer les données existantes 
     
      decfsz reste,F
      bra bar_blanc

      return

;*********************************************************************************************** 
spi_command
      bcf dc                              ; DC = 0  en mode commande
      bra envoie                          

;*********************************************************************************************** 
spi_données
      bsf dc                              ; DC = 1 en mode donnée
      bra envoie                          ;     

;*********************************************************************************************** 
envoie
      bcf ce                              ; marche

      movlw D'8'                          ; envoie de 8 bits 
      movwf loop7
ret3
      btfss loop8,7                       ; 1 lecture sur le bit 7
      bra suite_1
      bcf clk                             ; 
      bsf din                             ; envoie 1
      bsf clk                             ;
      bra suite_2
suite_1
      bcf clk                             ; 
      bcf din                             ; envoie 0
      bsf clk                             ; 
suite_2
      rlncf loop8,F                       ; rotation des bits à gauche sans carry
      decfsz loop7,F
      bra ret3

      bcf clk                             ; fin de transmission
      bsf ce                              ; arrét

      return

;************************************ "
position de y et x" ************************************* 
position                                   
      bsf loop8,6                         ; y = 0, à 5 = B'01000 Y2 Y1 Y0' hauteur de l'écran
      rcall spi_command                   ; 

      bsf loop9,7                         ; x = 0, à 83 = B'1 X6 X5 X4 X3 X2 X1 X0' largeur de l'écran
                                          ;  
      movf loop9,W                        ;
      movwf loop8                         ;    
      rcall spi_command                   ;

      return

;************************************** "
convertion" ******************************************* 
conversion
           
      clrf unité                  
      clrf dizaine              
      clrf centaine             
      clrf millieme             
      clrf dix_millieme         

; "
16 bits"

b16_7
      btfss res16,7
      goto b16_6

      movlw D'3'                          ; 32768  
      addwf dix_millieme,F
      movlw D'2'                          ;  2768  
      addwf millieme,F
      movlw D'7'                          ;   768
      addwf centaine,F                 
      movlw D'6'                          ;    68
      addwf dizaine,F                 
      movlw D'8'                          ;     8
      addwf unité,F                 

b16_6
      btfss res16,6
      goto b16_5

      movlw D'1'                          ; 16384  
      addwf dix_millieme,F
      movlw D'6'                          ;  6384  
      addwf millieme,F
      movlw D'3'                          ;   384
      addwf centaine,F                 
      movlw D'8'                          ;    84
      addwf dizaine,F                 
      movlw D'4'                          ;     4
      addwf unité,F                 

b16_5
      btfss res16,5
      goto b16_4

      movlw D'8'                          ; 8192  
      addwf millieme,F
      movlw D'1'                          ;  192
      addwf centaine,F                 
      movlw D'9'                          ;   92
      addwf dizaine,F                 
      movlw D'2'                          ;    2
      addwf unité,F                 

b16_4
      btfss res16,4
      goto b16_3            

      movlw D'4'                          ; 4096  
      addwf millieme,F
      movlw D'0'                          ;  096
      addwf centaine,F                 
      movlw D'9'                          ;   96
      addwf dizaine,F                 
      movlw D'6'                          ;    6
      addwf unité,F                 

b16_3
      btfss res16,3
      goto b16_2

      movlw D'2'                          ; 2048  
      addwf millieme,F
      movlw D'0'                          ;  048
      addwf centaine,F                 
      movlw D'4'                          ;   48
      addwf dizaine,F                 
      movlw D'8'                          ;    8
      addwf unité,F                 

b16_2
      btfss res16,2
      goto b16_1

      movlw D'1'                          ; 1024  
      addwf millieme,F
      movlw D'0'                          ;  024
      addwf centaine,F                 
      movlw D'2'                          ;   24
      addwf dizaine,F                 
      movlw D'4'                          ;    4
      addwf unité,F                 

b16_1
      btfss res16,1
      goto b16_0

      movlw D'5'                          ;  512
      addwf centaine,F                 
      movlw D'1'                          ;   12
      addwf dizaine,F                 
      movlw D'2'                          ;    2
      addwf unité,F                 

b16_0
      btfss res16,0
      goto b8_7

      movlw D'2'                          ;  256
      addwf centaine,F                 
      movlw D'5'                          ;   56
      addwf dizaine,F                 
      movlw D'6'                          ;    6
      addwf unité,F                 

;***********************************************************************************************

; "
8 bits"

b8_7
      btfss res8,7
      goto b8_6

      movlw D'1'                          ;  128
      addwf centaine,F                 
      movlw D'2'                          ;   28
      addwf dizaine,F                 
      movlw D'8'                          ;    8
      addwf unité,F                 

b8_6
      btfss res8,6
      goto b8_5            

      movlw D'6'                          ;   64
      addwf dizaine,F                 
      movlw D'4'                          ;    4
      addwf unité,F                 

b8_5
      btfss res8,5
      goto b8_4

      movlw D'3'                          ;   32
      addwf dizaine,F                 
      movlw D'2'                          ;    2
      addwf unité,F                 

b8_4
      btfss res8,4
      goto b8_3            

      movlw D'1'                          ;   16
      addwf dizaine,F                    
      movlw D'6'                          ;    6
      addwf unité,F                 

b8_3
      movlw B'00001111'                   ; 8, 4, 2, 1
      andwf res8,W    
    
      addwf unité,F     

;-----------------------------------------------------------------------------------------------

      movlw D'5'                          ; 5 variables à traiter
      movwf loop6
       
      lfsr FSR0,unité-1                   ; pointer  à l'adresse de la variable "
unité-1

assembler
      incf FSR0L,F                        ; variable suivante 
      movf INDF0,W                        ; récupérer la valeur dans W 
      movwf tmps                          ; transmettre dans la variable "
tmps"
 
      incf FSR0L,F                        ; variable suivante
      movf INDF0,W                        ; récupérer la valeur dans W 
      movwf temps                         ; transmettre dans la variable "
temps"

;***********************************************************************************************
tr0      
      movf tmps,W
      sublw D'10'                         ; retir 10 de W
      btfsc STATUS,Z                      ; 
      goto tr1                            ; 
      btfss STATUS,C                      ; 
      goto tr1                            ; 
      goto tr2                            ; 
tr1
      movlw D'10'                         ;
      subwf tmps,F                        ;
      incf temps,F                        ; 
      bra tr0                       

;*********************************************************************************************** 
tr2
      movf temps,W
      movwf INDF0                         ; nouvelle valeur à cette adresse

      decf FSR0L,F                        
      movf tmps,W      
      movwf INDF0                         ; nouvelle valeur à cette adresse

      movlw D'48'                         ; convertir en format ASCII 
      addwf INDF0,F                       

      decfsz loop6,F                      ; variable suivante
      goto assembler                
      
;-----------------------------------------------------------------------------------------------
; "
suprime les zéros qui sont à gauches
     
      movlw D'5'                        ; 5 variables à traiter
      movwf loop6    
    
      lfsr FSR0,dix_millieme            ; pointer à l'adresse de la variable "
dix_millieme"     

supprimer_zero
      movf INDF0,W        
      xorlw D'48'
      btfss STATUS,Z     
      goto imprime_ecran
      decf FSR0L,F
      decfsz loop6,F
      goto supprimer_zero

      movlw '0'                           ; tout est à zéro
      rcall lettre_nokia
      return 

; "
écrit les données sur l'écran"

imprime_ecran
      movf loop6,W
      xorlw D'
2'
      btfss STATUS,Z                      
      goto imprime_2

                                          ; return pour arrondir
      movlw '
.'                           ; on mets la virgule
      rcall lettre_nokia            

imprime_2
      movf INDF0,W          
      rcall lettre_nokia            
      decf FSR0L,F
      decfsz loop6,F
      goto imprime_ecran

      return

;****************************** "pour écrit dans l'
eeprom" ************************************* 
ecriture_eeprom
      movf adresse_hi,W                   ; adresse du poid fort
      movwf EEADRH                        ;

      movf adresse_low,W                  ; adresse du poid faible
      movwf EEADR                         ; 

      movf donner_low,W                   ;
      movwf EEDATA                        ; écriture de la donnée
 
      bcf EECON1,EEPGD                    ; préparation à l'autorisation 
      bcf EECON1,CFGS                     ; access eeprom

      bsf EECON1,WREN                     ; Enable writes   
 
      bcf INTCON,GIE                      ; couper les interruptions

      btfsc INTCON,GIE                    ; contrôl si les interruptions sont bien coupés
      bra $-D'2'                          ; remonte à la ligne 2 jusqu'a coupures des interruptions 

      movlw H'55'                         ; séquence spécifique (c'est comme ça, il faut le savoir)
      movwf EECON2                        ; séquence spécifique
      movlw H'AA'                         ; séquence spécifique
      movwf EECON2                        ; séquence spécifique

      bsf EECON1,WR                       ; lance une opération d'écriture

      btfsc    EECON1,WR                      ; on attend que l'operation d'ecriture soit finie (de l'ordre de la ms
      bra $-D'2'                          ; remonte à la ligne 2 jusqu'a fin d'écriture

      bcf EECON1, WREN                    ; interdiction de l'écriture

      return

;******************************** "
pour lire dans l'eeprom" ************************************ 
lecture_eeprom
      movf adresse_hi,W                   ; adresse du poid fort
      movwf EEADRH                        ;

      movf adresse_low,W                  ; adresse du poid faible
      movwf EEADR                         ; 

      bcf EECON1,EEPGD                    ; préparation à la lecture
      bcf EECON1,CFGS                     ; access EEPROM
      bsf EECON1,RD                       ; lecture de l'
EEPROM

      movf EEDATA
,W                       ; la valeur lue dans l'éeprom est placée dans W 
      movwf donner_low                    ; récupération du résultat  

      return

;************************* "pause de 3 secondes pour horloge de 8 Mhz" *************************       
_3s 
      movlw D'
4'
      movwf loop4
temps_3
      rcall _1s
      decfsz loop4,F
      bra temps_3

      return

;************************* "pause de 1 seconde pour horloge de 8 Mhz" **************************      
_1s         
      movlw D'
93'
      movwf loop1

      movlw D'
38'
      movwf loop2
     
      movlw D'
11'
      movwf loop3
     
      decfsz loop1
      bra $-D'
2'
      decfsz loop2
      bra $-D'
6'
      decfsz loop3
      bra $-D'
10'
      
      return
;********************* "pause de 100 millisecondes pour horloge de 8 Mhz" ********************** 
_100ms
      movlw D'
186'
      movwf loop1

      movlw D'
4'
      movwf loop2

      movlw D'
2'
      movwf loop3

      decfsz loop1
      bra $-D'
2'
      decfsz loop2
      bra $-D'
6'
      decfsz loop3
      bra $-D'
10'

      return

;********************** "pause de 10 millisecondes pour horloge de 8 Mhz" **********************
_10ms
      movlw D'
248'
      movwf loop1

      movlw D'
26'
      movwf loop2

      decfsz loop1
      bra $-D'
2'
      decfsz loop2
      bra $-D'
6'

      return


;************************* "affichage des phrases, 512 octets maximum" *************************
    ORG H'
8E00
                    
info
       db "R‚glage du pwm" 
       db " sur  l'
‚cran "    
       db "
  Nokia 5510  "

;***************************** "
table des caractères ASCII" ************************************
    ORG H'9000'

alphabet                        
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x00,0x00,0x00,0x07,0x00,0x07,0x00,0x14          
    db 0x7F,0x14,0x7F,0x14,0x24,0x2A,0x7F,0x2A,0x12,0x26,0x16,0x08,0x34,0x32,0x76,0x49                   
    db 0x55,0x22,0x50,0x00,0x00,0x05,0x03,0x00,0x00,0x1C,0x22,0x41,0x00,0x00,0x41,0x22     
    db 0x1C,0x00,0x14,0x08,0x3E,0x08,0x14,0x08,0x08,0x3E,0x08,0x08,0x00,0x50,0x30,0x00
    db 0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x60,0x60,0x00,0x00,0x20,0x10,0x08,0x04,0x02
    db 0x3E,0x51,0x49,0x45,0x3E,0x00,0x42,0x7F,0x40,0x00,0x42,0x61,0x51,0x49,0x46,0x21
    db 0x41,0x45,0x4B,0x31,0x18,0x14,0x12,0x7F,0x10,0x27,0x45,0x45,0x45,0x39,0x3C,0x4A
    db 0x49,0x49,0x30,0x01,0x01,0x79,0x05,0x03,0x36,0x49,0x49,0x49,0x36,0x06,0x49,0x49
    db 0x29,0x1E,0x00,0x36,0x36,0x00,0x00,0x00,0x56,0x36,0x00,0x00,0x00,0x08,0x14,0x22
    db 0x41,0x14,0x14,0x14,0x14,0x14,0x41,0x22,0x14,0x08,0x00,0x02,0x01,0x51,0x09,0x06
    db 0x3E,0x41,0x49,0x55,0x5E,0x7E,0x11,0x11,0x11,0x7E,0x7F,0x49,0x49,0x49,0x36,0x3E
    db 0x41,0x41,0x41,0x22,0x7F,0x41,0x41,0x22,0x1C,0x7F,0x49,0x49,0x49,0x41,0x7F,0x09
    db 0x09,0x09,0x01,0x3E,0x41,0x49,0x49,0x3A,0x7F,0x08,0x08,0x08,0x7F,0x00,0x41,0x7F
    db 0x41,0x00,0x20,0x41,0x41,0x3F,0x00,0x7F,0x08,0x14,0x22,0x41,0x7F,0x40,0x40,0x40
    db 0x40,0x7F,0x02,0x0C,0x02,0x7F,0x7F,0x04,0x08,0x10,0x7F,0x3E,0x41,0x41,0x41,0x3E
    db 0x7F,0x09,0x09,0x09,0x06,0x3E,0x41,0x51,0x21,0x5E,0x7F,0x09,0x19,0x29,0x46,0x46
    db 0x49,0x49,0x49,0x31,0x01,0x01,0x7F,0x01,0x01,0x3F,0x40,0x40,0x40,0x3F,0x1F,0x20
    db 0x40,0x20,0x1F,0x3F,0x40,0x3C,0x40,0x3F,0x63,0x14,0x08,0x14,0x63,0x07,0x08,0x70
    db 0x08,0x07,0x61,0x51,0x49,0x45,0x43,0x00,0x7F,0x41,0x41,0x00,0x02,0x04,0x08,0x10
    db 0x20,0x00,0x41,0x41,0x7F,0x00,0x04,0x02,0x01,0x02,0x04,0x40,0x40,0x40,0x40,0x40
    db 0x00,0x01,0x02,0x04,0x00,0x20,0x54,0x54,0x54,0x78,0x7F,0x48,0x44,0x44,0x38,0x38
    db 0x44,0x44,0x44,0x20,0x38,0x44,0x44,0x48,0x7F,0x38,0x54,0x54,0x54,0x18,0x08,0x7E
    db 0x09,0x01,0x02,0x08,0x54,0x54,0x54,0x3C,0x7F,0x08,0x04,0x04,0x78,0x00,0x44,0x7D
    db 0x40,0x00,0x20,0x40,0x44,0x3D,0x00,0x7F,0x10,0x28,0x44,0x00,0x00,0x41,0x7F,0x40
    db 0x00,0x7C,0x04,0x18,0x04,0x78,0x7C,0x08,0x04,0x04,0x78,0x38,0x44,0x44,0x44,0x38
    db 0x7C,0x14,0x14,0x14,0x08,0x08,0x14,0x14,0x18,0x7C,0x7C,0x08,0x04,0x04,0x08,0x48
    db 0x54,0x54,0x54,0x20,0x04,0x3F,0x44,0x40,0x20,0x3C,0x40,0x40,0x20,0x7C,0x1C,0x20
    db 0x40,0x20,0x1C,0x3C,0x40,0x38,0x40,0x3C,0x44,0x28,0x10,0x28,0x44,0x0C,0x50,0x50
    db 0x50,0x3C,0x44,0x64,0x54,0x4C,0x44,0x00,0x08,0x36,0x41,0x00,0x00,0x00,0x7F,0x00
    db 0x00,0x00,0x41,0x36,0x08,0x00,0x08,0x08,0x2A,0x1C,0x08,0x08,0x1C,0x2A,0x08,0x08
    db 0x1E,0xA1,0xE1,0x21,0x10,0x3D,0x40,0x40,0x20,0x7D,0x38,0x56,0x55,0x54,0x18,0x20
    db 0x56,0x55,0x56,0x78,0x20,0x55,0x54,0x55,0x78,0x20,0x54,0x55,0x56,0x78,0x20,0x54
    db 0x55,0x54,0x78,0x0E,0x51,0x71,0x11,0x08,0x38,0x56,0x55,0x56,0x18,0x38,0x55,0x54
    db 0x55,0x18,0x38,0x54,0x55,0x56,0x18,0x00,0x45,0x7C,0x41,0x00,0x00,0x46,0x7D,0x42
    db 0x00,0x00,0x45,0x7E,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38
    db 0x46,0x45,0x46,0x38,0x38,0x45,0x44,0x45,0x38,0x38,0x45,0x46,0x44,0x38,0x3C,0x42
    db 0x41,0x22,0x7C,0x3C,0x40,0x41,0x22,0x7C,0x0C,0x51,0x50,0x51,0x3C,0x00,0x00,0x00 
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x20,0x54,0x56,0x55,0x78,0x00,0x46,0x7D,0x40,0x00,0x38,0x44,0x46,0x45,0x38,0x3C
    db 0x42,0x41,0x20,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 
    db 0x55,0x00,0x55,0x00,0x55,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x16,0x7C,0x16,0x15,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0xF8,0x54,0x54,0x54,0x28,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x40
    db 0x40,0x20,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x05,0x02,0x00,0x00,0x38,0x44,0x48
    db 0x30,0x4C,0xF8,0x54,0x54,0x54,0x28,0x38,0x44,0x4C,0x54,0x24,0x28,0x54,0x54,0x44
    db 0x20,0x58,0x64,0x04,0x64,0x58,0x44,0x3C,0x04,0x7C,0x44,0x63,0x55,0x49,0x41,0x41

;**************************"
affichage d'un graphique N°1" **************************************
    ORG H'
EEEE'

graphique_1         
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x40,0x60,0x30,0x10,0x10
    db 0x08,0x88,0x84,0x84,0x04,0x02,0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,0x03,0x03
    db 0x03,0x03,0x83,0xC3,0x73,0x33,0x1A,0x1A,0x1A,0x1A,0x12,0x32,0x66,0xEC,0x88,0x18
    db 0x10,0x30,0x20,0x60,0x40,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0
    db 0x30,0x08,0x0C,0x06,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x06,0x8C,0xF8,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x60,0x30,0x18,0x0C,0x03,0x01,0x01,0x00,0xC0
    db 0x38,0x0C,0x06,0x06,0x03,0x01,0x01,0x81,0x83,0x02,0x06,0x0C,0x30,0xE0,0x80,0x00
    db 0x00,0x00,0x00,0x00,0xFC,0x07,0x01,0x00,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xF8,0x78
    db 0xF0,0xE0,0x01,0x0F,0xFC,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x06,0x8C,0xB8,0xE0
    db 0x40,0x60,0x20,0x37,0x1E,0x18,0x10,0x10,0x18,0x10,0x10,0x10,0x10,0x10,0x38,0x3C
    db 0x23,0x61,0xC0,0x80,0x80,0x00,0x00,0x00,0xF0,0x1E,0x01,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0xF0,0xF8,0xFC,0xFF,0xFF,0x8F,0x87,0xFF,0xFE
    db 0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x0F,0x30,0x40,0x80,0x00,0x0F,0x1F,0x3F
    db 0x7F,0x7F,0x7C,0x3C,0x1F,0x8F,0xC0,0x78,0x07,0x00,0x00,0x00,0x00,0x00,0x80,0xE0
    db 0x7F,0x11,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10
    db 0x30,0x20,0x20,0x60,0x00,0x00,0x00,0x00,0x01,0x03,0x0C,0xF8,0x1F,0xF0,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x18,0x30,0x60,0x40,0xC3,0x87,0x8F,0x8F
    db 0xC7,0x47,0x23,0x31,0x18,0x0C,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x03,0x06,0x84,0x84,0x84,0xC4,0xC4,0xE6,0xF3,0xF9,0x38,0x0C,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x0F,0x18,0xF0,0x20,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10
    db 0x10,0x10,0x30,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x7F
    db 0x00,0x01,0x07,0x0C,0x38,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x10,0x30,0xF0,0xF0,0xF0,0xF0,0xF0,0xF8,0xD8,0xC8,0xC8,0xC8,0xC4
    db 0xE4,0xE4,0xE2,0xE2,0xFA,0xF9,0xF9,0xFF,0xFF,0xFF,0xFF,0x3F,0x0F,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x61,0x27,0x1C,0x0C,0x08,0x18,0x30,0x30
    db 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,0x10,0x10,0x18,0x0C,0x04,0x06
    db 0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x06,0x06,0x0C
    db 0x08,0x18,0x10,0x30,0x20,0x20,0x60,0x40,0x40,0xC0,0x81,0x83,0x87,0x8F,0x9F,0xBF
    db 0xBF,0xBF,0xFF,0xFF,0xFF,0xFF,0xBF,0xBF,0x9F,0x8F,0x8F,0x87,0xC3,0x41,0x40,0x60
    db 0x20,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

;**************************"affichage d'
un graphique N°2" **************************************
    ORG H'F0EE'

graphique_2         
    db 0xE0,0xE0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60
    db 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60
    db 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x7E,0x60,0x60
    db 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60
    db 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60
    db 0x60,0x60,0xE0,0xE0,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0,0xE0
    db 0xE0,0x80,0x00,0x80,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0xE0,0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0,0x00,0x00,0x00,0xE0,0xE0
    db 0xE0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x7F,0x7F,0x7F,0x01,0x3F,0x7F,0x70,0x3F,0x3F,0x01,0x7F,0x7F,0x7F,0x00,0x00,0x00
    db 0x3E,0x7F,0x7F,0x49,0x49,0x6F,0x6F,0x2E,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x01,0x01
    db 0x01,0x00,0x3E,0x7F,0x7F,0x41,0x41,0x41,0x63,0x22,0x00,0x00,0x7F,0x7F,0x7F,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6F,0x6F,0x6F,0x00,0x00,0x00,0x6F,0x6F,0x00
    db 0x00,0x00,0x6F,0x6F,0x6F,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x7F,0x7F,0x60,0x60
    db 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60
    db 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60
    db 0x60,0x60,0x60,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0x60,0x60,0x60,0x60,0x60,0x60
    db 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60
    db 0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7F,0x7F
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00
    db 0x00,0x00,0x00,0xC0,0x70,0x08,0x88,0xA4,0x94,0xB6,0x96,0xA6,0x86,0x86,0xA6,0x96
    db 0xB4,0x94,0xA4,0x88,0x08,0x70,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xFF
    db 0xFF,0xFF,0x07,0x07,0x07,0x07,0x07,0x07,0x18,0x27,0x27,0x49,0xD1,0xBF,0xBF,0xA1
    db 0xA1,0xA1,0xA1,0xBF,0xDF,0x51,0x49,0x27,0x27,0x10,0x3F,0x7F,0x7F,0x7E,0x7C,0x7C
    db 0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00

;**************************"
affichage d'un graphique N°3" **************************************
    ORG H'
F2EE'
   
graphique_3
    db 0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0x60,0x40,0x00,0x00,0x80,0xC0,0x40,0x60,0x20
    db 0x30,0x10,0x10,0x18,0x18,0x08,0x08,0x08,0x08,0x88,0x88,0x88,0x88,0x88,0x08,0x08
    db 0x08,0x18,0x18,0x10,0x10,0x30,0x20,0x60,0x40,0xC0,0x80,0x80,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80
    db 0x80,0x80,0x00,0x00,0xFC,0x04,0x04,0x0C,0x18,0xF0,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC7,0x63,0x38,0xCC,0xE6,0x73,0x33,0x19
    db 0x18,0x18,0x18,0x10,0x30,0x60,0xE0,0x80,0x00,0x00,0x00,0x00,0x03,0x03,0x01,0x81
    db 0xC1,0x71,0x39,0xDC,0x6E,0x36,0x18,0x0C,0x8C,0xD8,0x60,0x20,0x20,0x00,0x01,0x01
    db 0x03,0x06,0x0C,0x18,0x70,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0xF8,0x4C,0x44,0x44
    db 0x47,0x4C,0xE0,0xB0,0x18,0x09,0x03,0x06,0x1F,0x00,0x00,0x40,0x60,0x7F,0x20,0x38
    db 0x1C,0x06,0x03,0x81,0xC1,0x61,0x3F,0x00,0x00,0xC0,0xFC,0x07,0x01,0x00,0x00,0x1F
    db 0x3F,0x70,0xC0,0x80,0x9E,0x33,0xF3,0xFF,0xFF,0xEF,0xE6,0x7F,0x1F,0x00,0x00,0x00
    db 0x80,0x80,0x80,0x81,0x80,0xC0,0xC3,0xC1,0xC0,0xE0,0xF6,0x7B,0x1F,0x03,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x7E,0xE0,0x00,0x00,0x00
    db 0x01,0x01,0x3F,0x61,0xC1,0x80,0x00,0x07,0x02,0x02,0x86,0x7C,0x00,0x00,0x00,0x80
    db 0xC0,0xE0,0x70,0x18,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xC0
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x01,0x10,0x10,0x10,0x3C,0x7E
    db 0xFE,0xF3,0xF1,0xF1,0xF9,0xF8,0xF8,0xFC,0xFC,0xFE,0xFF,0xFF,0x7F,0x3F,0x0F,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xF8
    db 0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x02,0x02,0x02
    db 0x02,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x03,0x0E,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x01,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x03,0x01
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x70
    db 0x38,0x0E,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x06
    db 0x0C,0x0C,0x18,0x18,0x10,0x30,0x20,0x20,0x60,0x60,0x40,0x40,0x40,0x40,0x40,0x40
    db 0x40,0x40,0x40,0x40,0x60,0x60,0x20,0x20,0x30,0x10,0x10,0x18,0x0C,0x0C,0x06,0x03
    db 0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

;**************************"affichage d'
un graphique N°4" **************************************
    ORG H'F4EE'
   
graphique_4
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x80,0xE0,0x20,0x30,0x10,0x10,0x10,0x18,0x08,0x0C,0x04,0x04,0x04
    db 0x04,0x06,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02
    db 0x02,0x02,0x02,0x06,0x04,0x04,0x04,0x04,0x04,0x0C,0x08,0x08,0x18,0x20,0x20,0x60
    db 0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x30,0x18,0x88
    db 0xE4,0x34,0x1C,0x0E,0x06,0x03,0x03,0xC3,0x62,0xBC,0xC0,0x60,0x20,0x20,0x20,0x20
    db 0x20,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x40,0x40,0x40,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x02,0x06,0x0C,0x18,0x30,0xE0,0x80,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0xFF,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x7E,0x19,0x06,0x03,0x01,0x00,0x00
    db 0x80,0xC0,0x20,0x98,0x8C,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0xC0,0x80,0x80,0x80
    db 0x80,0xC0,0x40,0x60,0x30,0x10,0x0C,0x04,0x06,0x03,0x01,0x00,0x80,0x80,0xC0,0xC0
    db 0xC0,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x01,0x0F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0xE0,0x38,0x0E,0x23,0x31,0x30,0x60,0xE0,0x41,0xC7,0x0F,0x03,0x03,0x03,0x00,0x00
    db 0x00,0x00,0x01,0x01,0x01,0x00,0x00,0xC0,0xE0,0x70,0x38,0x1C,0x0E,0x07,0x03,0x03
    db 0x03,0x01,0x01,0x01,0x01,0x09,0x05,0x05,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x06,0x0E,0x1C,0x14,0x64,0x44
    db 0xC2,0x82,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x80,0xC0,0x60,0x30
    db 0x18,0x0C,0x04,0x06,0x02,0x02,0x02,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x80,0xC0,0x60,0x30,0x18,0x0C,0x06,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x02,0x06,0x04,0x08,0x18,0x30,0x20,0x20
    db 0x20,0x60,0x40,0x40,0xC0,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x8C,0x87
    db 0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xC0,0x40,0x40,0x60,0x20,0x20,0x30
    db 0x10,0x18,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
    db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

;**************************"
affichage d'un graphique N°5" **************************************
    ORG H'
F6EE'

graphique_5


    End


Fichier à mettre dans le Pic
Nokia-2(Hex).zip

Fichier code
Nokia-2(Code).zip


Et une petite vidéo

https://www.youtube.com/watch?v=B_s8YRt-q9g

J'ai également créer un petit programme pour visionner les fichier Nokia 3310 & 5110 que vous pouvez télécharger ICI

Exemple pour un écran Nokia 5110

Smiley (pouce).jpg


Smiley (Horifier).jpg


Smiley (Clin d'oeil).jpg


Smiley (catatrophe).jpg


Vous avez une option pour récupérer l'image que vous visionnez dans le format de l'écran, ce qui permet par la suite de la modifier avec un éditeur d'image comme Paint qui je vous le rappelle est disponible gratuitement sous Windows.

Le programme gère actuellement l'hexadécimal suivi de virgule comme l'exemple ci-dessous, je pense qu'il doit être compatible pour pas mal de langage.

Exemple : db 0x4D,0xC4,0xC7,0x41,0x40,0xC1,0x43,0x46,0x44,0xE6,0xA6,0xA3,0xF3,0xD1,0xF8,0xF8

Mais bon je laisse le soins à venom pour terminer cette partie, dans tout les langages.

:roll: On rajouteras par la suite différents type d'écrans au fut à mesure de la demande et du temps que je peux avoir. :wink:

==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le mar. 9 févr. 2021 22:04, modifié 89 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Afficheur Nokia 3310 en ASM
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#2 Message par Gérard » ven. 16 août 2019 18:14

HS ON...
Question pour Temps-x
Est -il possible de lui faire afficher

**** GG ****
100% Basic
************

HS OFF

dehors!!
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Afficheur Nokia 3310 en ASM
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#3 Message par F6FCO » ven. 16 août 2019 23:22

Hello tous,
Je ne comprends pas Temps-X, tu mets le code en téléchargement et tu dis ensuite que tu ne le mets pas tout de suite ?
à moins que ce ne soit un autre code d'utilisation ?

Je vais suivre ce sujet de près, j'avais justement commandé un Nokia qui dort dans un tiroir.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Afficheur Nokia 3310 en ASM
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#4 Message par Temps-x » sam. 17 août 2019 00:06

Bonsoir F6FCO, et tout le forum,

:-) Content de te revoir sur le forum, je vais traiter les écrans,.. JMarc sera ravi...... :wink:

F6FCO a écrit :Source du message Je ne comprends pas Temps-X, tu mets le code en téléchargement


Non.... c'est pas le code ASM que je mets en téléchargement, c'est le fichier d’extension *.hex
celui qui est envoyé au Pic au moment de la programmation de celui-ci.

Ok si tu veux le code je te l'envoie par MP, Il fonctionne pour tous les Pic18F, du moment que tu disposes 480 octets d'eeproms.

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Afficheur Nokia 3310 en ASM
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#5 Message par JMarc » sam. 17 août 2019 12:07

Bonjour temps-x, Gerard, f6fco et tout le forum



Temps-x a écrit :
je vais traiter les écrans,.. JMarc sera ravi...... :wink:

==> A+




Effectivement je suis ravi que l’on pense à moi et que l’on traite les écrans

Je lis le forum tout les jours mais depuis que je me suis mis en tête que l'écran Serai mon iPhone, je pédale sévère avec ce langage compliqué qu’est le swift.
J’arrive à me connecter et envoyer des trames de données du pic au iPhone.
Je n’arrive pas dans l’autre sens mais cela ne serait tarder.

Des mon objectif atteint, je poste tout cela

Merci de penser à moi :+1: Merci !

Afficheur Nokia 3310 en ASM
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#6 Message par Gérard » sam. 17 août 2019 13:39

Bonjour à tous,
Temps-x, tu peux donner un lien d'où vient l'afficheur?
Merci d'avance.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Écran Nokia 5110 en ASM
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#7 Message par Temps-x » sam. 17 août 2019 19:08

Bonsoir Gérard, JMarc, F6FCO, et tout le forum,

Gérard a écrit :Source du message Temps-x, tu peux donner un lien d'où vient l'afficheur?


Je sais plus ou je l'avais acheté, mais c'est le même que celui-là

C'est un écran en noir est blanc, mais on peut afficher du graphique, le prochain sera en couleur, et en mode SPI (ça c'est un renseignement pour JMarc)

JMarc a écrit :Source du message Merci de penser à moi


j’oublie jamais les personnes qui son sympathique, et avec qui j'ai eu des échanges courtois et humoristique :wink:

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Écran Nokia 5110 en ASM
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#8 Message par Gérard » sam. 17 août 2019 20:31

Merci Temps-x, je ne manquerai pas de suivre la discussion sur l'afficheur couleur en SPI.

Je me suis bien marré avec ta dernière phrase, je crois bien que tu n'es pas prêt de m'oublier... :lol: :lol: :lol:
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Écran Nokia 5110 en ASM
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#9 Message par paulfjujo » dim. 18 août 2019 15:26

bonjour Temps-X et à tous,


j'ai testé ton programme, avec un peu de modif pour l'adapter à ma carte BASE 18F
qui etait raccordée à mon ecran 5110 ( testé en MikroC et SPI Hardware) ..OK

Code : Tout sélectionner

#DEFINE clk    LATC,3                 ; RC3 ==> horloge de synchronisation  SCLK SPI
#DEFINE din    LATC,5                 ; RC5 ==> sortie SPI MOSI vers DIN Nokia 
#DEFINE dc     LATA,2                 ; RA2 ==> sélection du mode : commande = 0 , donnée = 1  (was RC1 )
#DEFINE ce     LATC,0                 ; RC0 ==> activer device (composant)
#DEFINE rst    LATC,4                 ; RC4 ==> reset du Device  (was RC2)
#DEFINE Led    LATA,4                 ; Led sur RA4
 


j'ai rajouté une fonction nokia CLS qui nettoie,remplis l'ecran de 6 lignes de 14 car blanc (=ESPACE)
car aux premiers test j'avais des petits cracra dans la zone située apres la ligne d'etoiles .

mon 5110 BLEU accepte le 5V ( c'est marqué dessus 3,3 à 5V)
détails ICI

[a ttachment=0]Maquette_Test_nokia_5110_asm_190818.jpg[/attachment]
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera

Écran Nokia 5110 en ASM
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#10 Message par Temps-x » dim. 18 août 2019 16:27

Bonjour Gérard, JMarc, F6FCO, paulfjujo, et tout le forum,

paulfjujo a écrit :Source du message j'ai rajouté une fonction nokia CLS qui nettoie,remplis l'ecran de 6 lignes de 14 car blanc (=ESPACE)
car aux premiers test j'avais des petits cracra dans la zone située apres la ligne d'etoiles .


J'avais aussi ce problème, et je me suis rendu compte qu'il s’agit du programmateur Pickit3 branché sur le pic qui influence l'écran.
De plus, l'écran garde son graphique un certain temps après coupure d'alimentation.

Pour un effacement d'écran, j'ai pensée qu'un simple reset suffirait, j'ai pas fait cette fonction :oops: qui est portant bien utile

Je vais mettre l’alphabet en mémoire programme, ce qui va libérer la mémoire eeprom, et rajouter des symboles grec(pour l'électronique)

paulfjujo a écrit :Source du message mon 5110 BLEU accepte le 5V ( c'est marqué dessus 3,3 à 5V)


Le mien aussi fonction en 5 volts, mais j'ai lu sur certain site, qu'il n'est pas conseillé de le faire, car les données(DIN) supporte
très mal un niveau logique de 5 volts, ça fonctionne, mais ça diminue la durée de vie de l'écran... d'après ce que j'ai pu lire.

A voir avec la datasheet, si les ouï-dire son fondé, car il me semble l'avoir lu, mais comme tout est en anglais.... :furieux:

Maintenant que tu l'as modifié ca devient

Nokia(Paulfjujo).jpg


:sifflotte:

Gérard a écrit :Source du message je crois bien que tu n'es pas prêt de m'oublier... :lol: :lol: :lol:


:roll: On parle de toit avec venom même quand tu es en vacance, toutjours en bien .... :sifflotte:

==> A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 36 invités