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

Bonjour à toute l'équipe du forum
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#71 Message par JMarc » mar. 4 déc. 2018 19:48

content d'avoir de tes nouvelles nondediode et courage a tout les deux

voici mon devoir :-D

Code : Tout sélectionner

        CtlAff 0x80             select CG ROM afficheur et mode OR
    
DataAff_16 0x0000,0x42  ;set grp en 0000h
    DataAff_16 0x2800
,0x43     ;     // set pavé grp 6x8 (40) ou 8x8 (30)
    
DataAff_16 0x0017,0x40         ;     // set text en 1700h
    
DataAff_16 0x2800,0x41     ;     // set pavé grp 6x8 (40) ou 8x8 (30)
    
CtlAff  0xa0            ;    // épaisseur curseur 1 lignes (1 à 8)
    
CtlAff  0x9c            ;    // afficher grp/txt et cacher curseur

    
DataAff_16   0x1700,0x24


Code : Tout sélectionner

CtlAff macro ctr
        movlw   ctr
        movwf   CMD
        call    Envoi_cmd
        endm

DataAff_16 macro x1
,x2
        movlw   
(x1) / 0x100
        movwf   DATA_H
        movlw   
(x1) % 0x100
        movwf   DATA_L
        movlw   x2
        movwf   CMD
        call    Envoi_data_16
        call    Envoi_cmd
        endm

Bonjour à toute l'équipe du forum
nondediode
Amateur
Amateur
Messages : 148
Enregistré en : novembre 2018
Localisation : Lyon

#72 Message par nondediode » mar. 4 déc. 2018 19:59

Bonsoir J Marc,

Joli travail :-D

Simplement que tu me dises comment l'insérer dans le prg et lequel dois-je utiliser.

Merci !

Bonjour à toute l'équipe du forum
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#73 Message par satinas » mar. 4 déc. 2018 20:04

N'allons pas trop vite, c'est pas fini, il faut envoyer un texte.

Lol, JMarc on a fait un aller-retour. Ta macro "envoi_aff_16" précédente était bonne !
Le lcd attend DATA_L DATA_H CMD
et c'est pas très joli, alors grâce aux (puissantes !) macros, on inverse l'ordre des arguments, car c'est plus lisible avec la commande en premier. donc c'est :
DataAff_16 0x42, 0x0000 ; set grp en 0000h
Et dans la macro on fait ce qu'on veut

Bonjour à toute l'équipe du forum
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#74 Message par JMarc » mar. 4 déc. 2018 20:50

un grand merci satinas

donc voici la nouvelle mouture

Code : Tout sélectionner

    bsf LCD_WR      ;  RB2  |    35  |  S  Data Write afficheur  
    bsf LCD_RD      
;  RB3  |    36  |  S  Data Read afficheur
    bsf LCD_CE      
;  RB4  |    37  |  S  Chip Enable
    bsf LCD_CD      
;  RB5  |    38  |  S  C/D
    bsf LCD_RESET   
;  RB7  |    40  |  S  Reset
    call    Delay50mS

    bcf     LCD_RESET    
;  RB7  |    40  |  S  Reset
    call    Delay50mS
    bsf     LCD_RESET

    CtlAff 0x80             
select CG ROM afficheur et mode OR
    
DataAff_16 0x42,0x0000  ;set grp en 0000h
    DataAff_16 0x43
,0x2800  ;set pavé grp 6x8 (40ou 8x8 (30)
    
DataAff_16 0x40,0x0017  ;set text en 1700h
    DataAff_16 0x41
,0x2800  ;  set pavé grp 6x8 (40ou 8x8 (30)
    
CtlAff  0xa0            ;  épaisseur curseur 1 lignes (1 à 8)
    
CtlAff  0x9c            afficher grp/txt et cacher curseur

    DataAff_16   0x24
,0x1700


avec les macros

Code : Tout sélectionner

CtlAff macro ctr
        movlw   ctr
        movwf   CMD
        call    Envoi_cmd
        endm

DataAff_8 macro x1
,x2
        movlw   x1
        movwf   CMD
        movlw   x2
        movwf   DATA_L
        call    Envoi_data_8
        call    Envoi_cmd
        endm

DataAff_16 macro x1
,x2
        movlw   x1
        movwf   CMD
        movlw   
(x2) / 0x100
        movwf   DATA_H
        movlw   
(x2) % 0x100
        movwf   DATA_L
        call    Envoi_data_16
        call    Envoi_cmd
        endm


et les sous routines

Code : Tout sélectionner

Envoi_cmd
    bsf     LCD_CD      
etat haut pour commande
    bcf     LCD_CE      
Chip Enable
    movf    CMD
,w
    movwf   LCD_DATA
    bcf     LCD_WR     
;  Data Write afficheur actif etat bas
    nop  
    bsf     LCD_WR    
    
return
    
Envoi_data_8
    bcf     LCD_CD      
etat bas pour données
    bcf     LCD_CE      
Chip Enable
    movf    DATA_L
,w
    movwf   LCD_DATA
    bcf     LCD_WR     
;  Data Write afficheur actif etat bas
    nop  
    bsf     LCD_WR   
    bsf     LCD_CE      
Chip disable
    
return

Envoi_data_16
    bcf     LCD_CD      
etat bas pour données
    bcf     LCD_CE      
Chip Enable
    movf    DATA_L
,w
    movwf   LCD_DATA
    bcf     LCD_WR     
;  Data Write afficheur actif etat bas
    nop  
    bsf     LCD_WR 
    movf    DATA_H
,w
    movwf   LCD_DATA
    bcf     LCD_WR     
;  Data Write afficheur actif etat bas
    nop 
    bsf     LCD_WR 
    bsf     LCD_CE      
Chip disable
    
return 


mais il me reste a mettre des tempos car sur le programme de nondediode, le pic attend une reponse de l'afficheur donc je pensai ignorer le test de reponse et le remplacer par une tempo et comprendre le datasheet pour mettre les bonnes initialisations

nondediode, il faudra quand même ouvrir le bouquin de bigonoff :sifflotte: car nous sommes loin d'avoir fini
as tu un lien d'achat de ton ecran ?

Bonjour à toute l'équipe du forum
nondediode
Amateur
Amateur
Messages : 148
Enregistré en : novembre 2018
Localisation : Lyon

#75 Message par nondediode » mar. 4 déc. 2018 20:59

Non l'écran est une récup sur une vieille imprimante.
En revanche, j'ai un Toshiba qui semble compatible avec celui que j'utilise.
Tu veux que je te l'envoie?
Je récupère bcp et j'ai un joli petit stock d'afficheur

Bonjour à toute l'équipe du forum
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#76 Message par JMarc » mar. 4 déc. 2018 21:23

non ne l'envoi pas, il aurait vraiment été identique oui mais nous allons continuer a jouer comme cela :-D

je te met le programme pour que tu puisses suivre mais il n'est pas fini, branche une led sur ra0 et une autre sur ra1

Code : Tout sélectionner

;---------------------------------------------------------GESTION AFFICHEUR-----------------------------------------------------------------

;
 TITRE: Gestion d'un afficheur LCD graphique
; DATE: 10/11/2018
; AUTEUR: nondediode
; PIC UTILISE: PIC16F877
; Gestion PP845 version 2019
; le quartz est de 4MHz
 ; essai JMarc Version 1,01
;----------------------------------------------------Brochage du PIC sur la carte--------------------------------------------------------- 
;
;  Port | Broche | E/S | Description

;  RA0  |    02  |  S  | Relais "MUTE"
;  RA1  |    03  |  S  | Relais "PHASE"
;  RA2  |    04  |  S  | LED droite
;  RA3  |    05  |  S  | LED gauche
;  RA4  |    06  |  S  | Relais de cde HT gauche et droit
;  RA5  |    07  |  S  | Relais statique gauche et droit

;  RB0  |    33  |  E  | Inter "on / off"
;  RB1  |    34  |  E  | Bouton poussoir "OK"
;  RB2  |    35  |  S  | Data Write afficheur  
;  RB3  |    36  |  S  | Data Read afficheur
;  RB4  |    37  |  S  | Chip Enable
;  RB5  |    38  |  S  | C/D
;  RB6  |    39  |  S  | Font Size Select
;  RB7  |    40  |  S  | Reset

;  RC0  |    15  |  S  | Adressage entrée audio bit A
;  RC1  |    16  |  S  | Adressage entrée audio bit B
;  RC2  |    17  |  S  | Adressage entrée audio bit C
;  RC3  |    18  |  S  | Adressage entrée audio bit D
;  RC4  |    23  |  S  | LEDs Rouge droit et gauche
;  RC5  |    24  |  E  | Bouton poussoir "INPUT"
;  RC6  |    25  |  E  | Bouton poussoir "PHASE"
;  RC7  |    26  |  E  | Bouton poussoir "MUTE"

;  RD0  |    19  |  S  | Sortie bit D7 du LCD
;  RD1  |    20  |  S  | Sortie bit D6 du LCD
;  RD2  |    21  |  S  | Sortie bit D5 du LCD
;  RD3  |    22  |  S  | Sortie bit D4 du LCD
;  RD4  |    27  |  S  | Sortie bit D3 du LCD
;  RD5  |    28  |  S  | Sortie bit D2 du LCD
;  RD6  |    29  |  S  | Sortie bit D1 du LCD
;  RD7  |    30  |  S  | Sortie bit D0 du LCD

;--------------------------------------------------DIRECTIVE D'
ASSEMBLAGE POUR MPLAB-------------------------------------------------------

     list p=16f877
    
#include <p16f877.inc>
    radix dec                      ; on travaille en décimal par défaut

    __CONFIG   _CP_OFF 
& _DEBUG_OFF & _WRT_ENABLE_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC 

OPTIONVAL    EQU    B
'00001111'
;-------------------------------------------------Definition de la RAM------------------------------------------------------

        cblock        0x20
                TEMP            
;temp buffer
                DATAL            
;instruction donnée =0
                DATAH            
;instruction donnée =1
                COMMAND            
;instruction
                TABLECOUNT        
;tablecounter
        endc

        cblock        0x70
      w_temp 
: 1        ; Sauvegarde registre W
    status_temp 
: 1        ; sauvegarde registre STATUS
    FSR_temp 
: 1        ; sauvegarde FSR (si indirect en interrupt)
    PCLATH_temp : 1        ; sauvegarde PCLATH (si prog>2K)
    Tempj : 1
    delai1_LED_TEMOIN 
: 1
    delai2_LED_TEMOIN 
: 1
    temptmr0 
: 1
    temp1tmr1 
: 1
    DATA_L 
: 1
    DATA_H 
: 1
    CMD 
: 1


              STATUS_TEMP        
;interruptcontextsave for STATUS

                PCLATH_TEMP        
;interruptcontextsave for PCLATH
                COUNT1            
;delaycounter 1
                COUNT2            
;delaycounter 2
                COUNT3            
;delaycounter 3
                DATA_EE_ADDR        
;data EEPROM address buffer
                DATA_EE_DATA        
;data EEPROM data buffer
        endc

group udata   0x90
GlcdControlBus res 1

;-------------------------------------------------Definition des constantes------------------------------------------------------
#DEFINE LED_TEMOIN      PORTA,1
#DEFINE LED_TEMOIN2     PORTA,0
#DEFINE LCD_WR  PORTB,2     ;  RB2  |    35  |  S  | Data Write afficheur  
#DEFINE LCD_RD  PORTB,3     ;  RB3  |    36  |  S  | Data Read afficheur
#DEFINE LCD_CE  PORTB,4     ;  RB4  |    37  |  S  | Chip Enable
#DEFINE LCD_CD  PORTB,5     ;  RB5  |    38  |  S  | C/D
#DEFINE LCD_RESET  PORTB,7  ;  RB7  |    40  |  S  | Reset
LCD_DATA EQU PORTD

;--------------------------------------------Definition des registres temporaires------------------------------------------------------



;--------------------------------------------
Directives des programmes------------------------------------------------------

;=====================================
Macro=====================================
led_cligno_lent macro 
    movlw   0x28                
; longueur
    movwf   delai1_LED_TEMOIN
    movlw   0x5A                
; fréquence
    movwf   delai2_LED_TEMOIN
    clrf    temp1tmr1
    endm

led_cligno_rapide macro 
    movlw   0x08                
; longueur
    movwf   delai1_LED_TEMOIN
    movlw   0x0A                
; fréquence
    movwf   delai2_LED_TEMOIN
    clrf    temp1tmr1
    endm

led_cligno_flash macro 
    movlw   0x29                
; longueur
    movwf   delai1_LED_TEMOIN
    movlw   0x2A                
; fréquence
    movwf   delai2_LED_TEMOIN
    clrf    temp1tmr1
    endm

CtlAff macro ctr
        movlw   ctr
        movwf   CMD
        call    Envoi_cmd
        endm

DataAff_8 macro x1
,x2
        movlw   x1
        movwf   CMD
        movlw   x2
        movwf   DATA_L
        call    Envoi_data_8
        call    Envoi_cmd
        endm

DataAff_16 macro x1
,x2
        movlw   x1
        movwf   CMD
        movlw   
(x2) / 0x100
        movwf   DATA_H
        movlw   
(x2) % 0x100
        movwf   DATA_L
        call    Envoi_data_16
        call    Envoi_cmd
        endm
    
;===============================================================================
        org        0x000            ; Debut du programme principale
        goto        START            
; Saut à START

;*****************************************************************************
;
                     ROUTINE INTERRUPTION                                   *
;*****************************************************************************
            ;sauvegarder registres    
            
;---------------------
    org 0x004        ; adresse d'interruption
    movwf   w_temp      ; sauver registre W
    swapf    STATUS,w    ; swap status avec résultat dans w
    movwf    status_temp    ; sauver status swappé
    movf    FSR , w        ; charger FSR
    movwf    FSR_temp    ; sauvegarder FSR

    bsf     STATUS,RP0      ; sélectionner banque1
    btfss    PIE1,TMR1IE     ; tester si interrupt autorisée
    goto     intsw1          ; non sauter
    bcf     STATUS,RP0      ; oui, sélectionner banque0
    btfss    PIR1,TMR1IF     ; oui, tester si interrupt en cours
    goto     intsw1          ; non sauter

    MOVLW    0x3C            ; int toute le 100ms    
    MOVWF    TMR1H
    MOVLW    0xB3
    movwf    TMR1L  

   incf    temp1tmr1,f

   movf   delai2_LED_TEMOIN,w   ;on test si  Xfois 
   subwf   temp1tmr1,W
   btfss   STATUS,Z
   goto    suite_led_temoin
   bcf     LED_TEMOIN 
 ;  bsf     LED_TEMOIN
   clrf    temp1tmr1
   goto     sautintsw9

suite_led_temoin
   movf   delai1_LED_TEMOIN,w
   subwf   temp1tmr1,W
   btfss   STATUS,Z
   goto    sautintsw9
   bsf     LED_TEMOIN
;   bcf     LED_TEMOIN       ;   inversion des sorties pour la platine essais

sautintsw9
    bcf     PIR1,TMR1IF    ; effacer flag interupt 

intsw1 
    bcf     STATUS,RP0      ; oui, sélectionner banque0
            ;restaurer registres
            ;-------------------
restorereg
    bcf     STATUS,RP0
    movf    FSR_temp , w    ; charger FSR sauvé
    movwf    FSR        ; restaurer FSR
    swapf    status_temp,w    ; swap ancien status, résultat dans w
    movwf   STATUS        ; restaurer status
    swapf   w_temp,f    ; Inversion L et H de l'
ancien W
                               
; sans modifier Z
    swapf   w_temp
,w      ; Réinversion de L et H dans W
                
; W restauré sans modifier status
    retfie  

;-------------------------------------------------INITIALISATION------------------------------------------------------
START
            
; Registre d'options (banque 1)
            ; -----------------------------
    BANKSEL    OPTION_REG    ; sélectionner banque 1
    movlw    OPTIONVAL    ; charger masque
    movwf    OPTION_REG    ; initialiser registre option

            ; registres interruptions (banque 1)
            ; ----------------------------------
    bsf    INTCON,PEIE    ; autoriser interruptions périphériques
    bcf     STATUS,RP0    ; passer banque 0
        ; autoriser interruptions (banque 0)
            ; ----------------------------------


    bsf T1CON,0X4
    bcf T1CON,0X5

    MOVLW   0x3C            ; int toute le 100ms    
    MOVWF   TMR1H
    MOVLW   0xB3
    movwf   TMR1L  

    BSF      T1CON,TMR1ON      ;on TMR1    bit a 1

        CLRF        PORTA            ; Remise à 0 du port A
        CLRF        PORTB            ; Remise à 0 du port B
        CLRF        PORTC            ; Remise à 0 du port C
        CLRF        PORTD            ; Remise à 0 du port D
        CLRF        PORTE            ; Remise à 0 du port E

    bsf     STATUS,RP0      ; Banque 1

    clrf    TRISA           ; PortA en sortie
    movlw   b'
00000110'
    movwf   ADCON1              ; sortie digital

                                      ; PORTA, PORTB, PORTC, and PORTE outputs
        CLRF        TRISB            ; PORTD defaults to input
        CLRF        TRISC            ; 
        CLRF        TRISE            ; 
  
    BSF     PIE1,TMR1IE      ;valide le TMR1    

    bcf     STATUS,RP0      ; Banque 0

    led_cligno_lent

    bsf     INTCON,GIE    ; valider interruptions

    bsf LCD_WR      ;  RB2  |    35  |  S  | Data Write afficheur  
    bsf LCD_RD      ;  RB3  |    36  |  S  | Data Read afficheur
    bsf LCD_CE      ;  RB4  |    37  |  S  | Chip Enable
    bsf LCD_CD      ;  RB5  |    38  |  S  | C/D
    bsf LCD_RESET   ;  RB7  |    40  |  S  | Reset
    call    Delay50mS

    bcf     LCD_RESET    ;  RB7  |    40  |  S  | Reset
    call    Delay50mS
    bsf     LCD_RESET

    CtlAff 0x80             ; select CG ROM afficheur et mode OR    10000000
    DataAff_16 0x42,0x0000  ;set grp en 0000h
    DataAff_16 0x43,0x2800  ;set pavé grp 6x8 (40) ou 8x8 (30)
    DataAff_16 0x40,0x0017  ;set text en 1700h
    DataAff_16 0x41,0x2800  ;  set pavé grp 6x8 (40) ou 8x8 (30)
    CtlAff  0xa0            ;  épaisseur curseur 1 lignes (1 à 8)   10100000
    CtlAff  0x9c            ; afficher grp/txt et cacher curseur    10011100

    DataAff_16   0x24,0x1700

 ;   DataAff('
A'-32); CtlAff10(0xc0);                // afficher 'A'
    DataAff_8 0x24,0xc0     ; afficher '
D'


loop

        nop
        led_cligno_rapide
        GOTO      loop           ;  boucle principale


;-------------------------------------------------Programme tempo------------------------------------------------------

Delay50mS
        MOVLW        0x40            ; Charge la valeur dans W
        MOVWF        COUNT1            ; Transfert de W sur COUNT1
        MOVWF        COUNT2            ; Transfert de W sur COUNT2
        DECFSZ        COUNT1,F        ; On décrémente COUNT1,F
        GOTO        $-1            ; Comptage de boucle
        DECFSZ        COUNT2,F        ; On décrémente COUNT2,F
        GOTO        $-3            ; Comptage de boucle
        RETURN
Delay    
        MOVWF        COUNT3            ; Transfert de W sur COUNT3
        CALL        Delay50mS        ; Appel de l'
étiquette Delay50mS
        DECFSZ        COUNT3
,F        ; On décrémente COUNT3,F
        GOTO        
$-2            ; Comptage de boucle
        RETURN
;===============================================================================

Envoi_cmd
    bsf     LCD_CD      
; etat haut pour commande
    bcf     LCD_CE      
; Chip Enable
    movf    CMD
,w
    movwf   LCD_DATA
    bcf     LCD_WR     
;  Data Write afficheur actif etat bas
    nop  
    bsf     LCD_WR    
    return
    
Envoi_data_8
    bcf     LCD_CD      
; etat bas pour données
    bcf     LCD_CE      
; Chip Enable
    movf    DATA_L
,w
    movwf   LCD_DATA
    bcf     LCD_WR     
;  Data Write afficheur actif etat bas
    nop  
    bsf     LCD_WR   
    bsf     LCD_CE      
; Chip disable
    return

Envoi_data_16
    bcf     LCD_CD      
; etat bas pour données
    bcf     LCD_CE      
; Chip Enable
    movf    DATA_L
,w
    movwf   LCD_DATA
    bcf     LCD_WR     
;  Data Write afficheur actif etat bas
    nop  
    bsf     LCD_WR 
    movf    DATA_H
,w
    movwf   LCD_DATA
    bcf     LCD_WR     
;  Data Write afficheur actif etat bas
    nop 
    bsf     LCD_WR 
    bsf     LCD_CE      
; Chip disable
    return



        END
Modifié en dernier par JMarc le mer. 5 déc. 2018 08:33, modifié 2 fois.

Bonjour à toute l'équipe du forum
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#77 Message par satinas » mar. 4 déc. 2018 21:26

J'avais un Toshiba TLX 1741, le néon faisait un petit bruit sympa. Mais toutes ces tensions d'alim ...

- il manque un "bsf LCD_CE" à la fin de "Envoi_cmd"
- et la broche FS du lcd ?

Quelques lignes à modifier ...

Code : Tout sélectionner

  DataAff_16  0x42, 0x0000  ; set grp en 0000h
  DataAff_16  0x43, 30      ; set grp 8x8 (30*8 pixels par ligne)
  DataAff_16  0x40, 0x1700  ; set txt en 1700h
  DataAff_16  0x41, 40      ; set txt 6x8 (40 caractères par ligne)

  DataAff_16  0x24, 0x1700  ; écrire en haut à gauche
  DataAff_8   0xc0, 'D'-32  ; afficher 'D'

Les commandes 0x43 et 0x41 doivent être cohérentes avec l'état de la broche FS, ça devrait pas gêner les premiers essais.
Si l'on met FS à 1, on est en font 6x8, plus jolie que la 8x8 trop espacée, mais cela doit obliger à gérer le graphique par des segments de ligne de 6 pixels par octet, à vérifier.
Modifié en dernier par satinas le mer. 5 déc. 2018 19:16, modifié 3 fois.

Bonjour à toute l'équipe du forum
JJE
Passioné
Passioné
Messages : 399
Âge : 83
Enregistré en : novembre 2017
Localisation : Picardie

#78 Message par JJE » mer. 5 déc. 2018 11:42

Réponse à JMarc
pas de soucis pour moi, ci-dessous le listing d'assemblage obtenu en insérant les 3 lignes invoquées dans un programme en cours de développement. J'ai juste remplacé le nom du port de sortie par un qui existe sur mon Pic (12F675).
0xfe, c'est bien ~(1<<RS)

Code : Tout sélectionner


                                                  607
:   init
                                                  608
:   RS EQU 0
   072    0805     MOVF 0x5
W                    609:       movf    GPIOW        met la pin RS à l'état bas (ce n'est pas un pulse
   073    39FE     ANDLW 0xfe                     610
:       andlw        ~(1<<RS)
   
074    0085     MOVWF 0x5                      611:       movwf    GPIO
                                                  612
:    


cordialement
Cordialement

JJE

C'est pas parcequ'on n'a rien à dire qu'il faut fermer sa G....e

Bonjour à toute l'équipe du forum
nondediode
Amateur
Amateur
Messages : 148
Enregistré en : novembre 2018
Localisation : Lyon

#79 Message par nondediode » mer. 5 déc. 2018 12:09

Bonjour tout le monde,

Voilà je suis installé avec le matos, on va pouvoir vivre les évolutions ensemble :wink:
Pour répondre à SATINAS au sujet du modèle de l'écran Toshiba. Celui dont je dispose est la référence: TLX-711A-E0. Il était monté sur une autre imprimante du même type mais je n'ai plus en mémoire la marque et la référence des imprimantes. il y a qq années où j'ai débarrassé l'entreprise d'un collègue de tout un stock de matériel mesure. Certains étaient HS d'autres réparables, j'ai sauvé ce que j'ai pu et j'ai désossé tout le reste. Donc bcp de matos en épave que j'ai redistribué et conservé en pièces détachées.

A présent je vais charger le prg et commencer les tests :wink:

Je vous rejoins dans qq minutes

Bonjour à toute l'équipe du forum
nondediode
Amateur
Amateur
Messages : 148
Enregistré en : novembre 2018
Localisation : Lyon

#80 Message par nondediode » mer. 5 déc. 2018 12:46

Résultat fichier JMarc version 1.01

Juste qu'à la compilation une erreur s'affiche pour la ligne "group udata 0x90" placée dans le pavé -------- définition de la RAM---------.
L'erreur est déclarée comme directive non autorisée " Directive only allowed when generating an object files"

J'ai donc isolé cette ligne et j'ai lancé le programme :razz:

L'écran s'affiche avec le trait horizontale qui s’efface qq secondes après. Y'a donc du bon malgré l'erreur de cette ligne.
En revanche, aucunes LED clignote

A+


Retourner vers « Langage ASM »

Qui est en ligne

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