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 ---
- 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 ---
Modérateur : mazertoc
Écran 1.8 TFT SPI 128x160 V1.1
Bonjour tout le forum,
J'ai acheté dernièrement un Écran 1.8 TFT SPI 128x160 au prix de 2.20 euros port compris (commande groupée), voici la datasheet de c'est écran datasheet
Voici en image
Je souhaite le mettre en fonction en langage ASM
, je sais que sylvain54 avait fait un tutoriel sur cette écran ICI en MicroC
Mais pour moi le MicroC ou l'arduino qui sont très similaires puisque le driver utilisé est quasiment le même à quelque chose près, et je n'y comprends pas grand-chose,
C'est pour cela que je vous demanderai de vous abstenir de me donner des exemples dans ces langages, il y en a bien trop sur internet, par contre
j'ai trouvé aucun exemple en langage ASM.
Sur cet écran, je crois avoir compris que la logique fonctionne en 3.3 volts, ainsi que le rétroéclairage, mais l'écran fonctionne en 5 volts, on y reviendra car sur la carte du circuit imprimé il y a une soudure qu'on peut faire sur J1, sûrement pour changer la tension d'alimentation
de l'écran.
Mise en fonction de l'écran 1.8 TFT SPI 128x160
Pour la mise en fonction de l'écran, je vais me servi d'un microcontrôleur Pic18F26K22, voici son datasheet
j'ai opté pour le mode SPI bit bang, ce qui permets de choisir les pattes quand veut sur le microcontrôleur, de plus ça le rends compatible
pour les microcontrôleurs ne possèdent pas du SPI
Voici mon branchement pour mode SPI
Le code ASM a été écrit avec jens file Editor 3.95
J'ai commencé le code mais pas grand-chose pour l'instant, quand ça sera ok je mets le code ici avec le programme compilé pour que vous puissiez
programmer cet exemple dans le Pic18F26K22 si vous le possédez, je ferai également un schéma.
Je rappelle que le compilateur pour ASM 8 bits est entièrement gratuit, vous pouvez le trouver dans MPLAB téléchargeable
sur le site de Microchip voici un lien ou vous pourrez choisir celui qui vous convient ICI
A+
J'ai acheté dernièrement un Écran 1.8 TFT SPI 128x160 au prix de 2.20 euros port compris (commande groupée), voici la datasheet de c'est écran datasheet
Voici en image
Je souhaite le mettre en fonction en langage ASM
Mais pour moi le MicroC ou l'arduino qui sont très similaires puisque le driver utilisé est quasiment le même à quelque chose près, et je n'y comprends pas grand-chose,
C'est pour cela que je vous demanderai de vous abstenir de me donner des exemples dans ces langages, il y en a bien trop sur internet, par contre
j'ai trouvé aucun exemple en langage ASM.
Sur cet écran, je crois avoir compris que la logique fonctionne en 3.3 volts, ainsi que le rétroéclairage, mais l'écran fonctionne en 5 volts, on y reviendra car sur la carte du circuit imprimé il y a une soudure qu'on peut faire sur J1, sûrement pour changer la tension d'alimentation
de l'écran.
Mise en fonction de l'écran 1.8 TFT SPI 128x160
Pour la mise en fonction de l'écran, je vais me servi d'un microcontrôleur Pic18F26K22, voici son datasheet
j'ai opté pour le mode SPI bit bang, ce qui permets de choisir les pattes quand veut sur le microcontrôleur, de plus ça le rends compatible
pour les microcontrôleurs ne possèdent pas du SPI
Voici mon branchement pour mode SPI
Code : Tout sélectionner
#DEFINE dc LATA,2 ; RA2 ==> sélection du mode : commande = 0 , donnée = 1
#DEFINE cs LATA,1 ; RA1 ==> activer ou désactiver la transmission
#DEFINE rst LATA,0 ; RA0 ==> reset de l'écran
#DEFINE sck LATC,3 ; RC3 ==> horloge de synchronisation
#DEFINE sda LATC,5 ; RC5 ==> envoyer les commandes et données sur écran 128x160
Le code ASM a été écrit avec jens file Editor 3.95
J'ai commencé le code mais pas grand-chose pour l'instant, quand ça sera ok je mets le code ici avec le programme compilé pour que vous puissiez
programmer cet exemple dans le Pic18F26K22 si vous le possédez, je ferai également un schéma.
Je rappelle que le compilateur pour ASM 8 bits est entièrement gratuit, vous pouvez le trouver dans MPLAB téléchargeable
sur le site de Microchip voici un lien ou vous pourrez choisir celui qui vous convient ICI
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le mar. 27 janv. 2026 13:14, modifié 10 fois.
Écran 1.8 TFT SPI 128x160 V1.1
Salut Temps-X
Génial content que tu ouvre un nouveau sujet sur l'asm
ça fait plaisir. Je n'y connais rien en asm je ne vais donc pas être d'une grande utilité, néanmoins je vais suivre ça
A bientôt
@++
Génial content que tu ouvre un nouveau sujet sur l'asm
A bientôt
@++
Écran 1.8 TFT SPI 128x160 V1.1
Bonsoir à tous,
Salut Temps-X, ça me rappelle le bon vieux temps des lcds avec JMarc.
Comme tu ne veux pas de C, je te fais un résumé du pilotage de ce lcd, le fonctionnement est très proche des lcds ILI9341. Je l'avais testé sur Arduino et en C sur pic, pas d'ASM pic.
Pour l'orientation on envoie la commande ST7735_SET_MA_CTL suivie d'un de ces octets :
0x00, 0xa0, 0xc0, 0x60, 0x80, 0xe0, 0x40, 0x20
Salut Temps-X, ça me rappelle le bon vieux temps des lcds avec JMarc.
Comme tu ne veux pas de C, je te fais un résumé du pilotage de ce lcd, le fonctionnement est très proche des lcds ILI9341. Je l'avais testé sur Arduino et en C sur pic, pas d'ASM pic.
Code : Tout sélectionner
// registres st7735s
// system function command
#define ST7735_MODE_SLEEP_ON 0x10 // sleep on
#define ST7735_MODE_SLEEP_OFF 0x11 // sleep out and booster on
#define ST7735_MODE_INVERSE_OFF 0x20 // display inversion off
#define ST7735_MODE_INVERSE_ON 0x21 // display inversion on
#define ST7735_MODE_DISPLAY_OFF 0x28 // display off
#define ST7735_MODE_DISPLAY_ON 0x29 // display on
#define ST7735_SET_COL 0x2a // column address set
#define ST7735_SET_ROW 0x2b // row address set
#define ST7735_WR_GRAM 0x2c // memory write (enable writing of image data)
#define ST7735_SET_MA_CTL 0x36 // memory data access control
#define ST7735_SET_DISP_PX_FRM 0x3a // interface pixel format
// panel function command
#define ST7735_SET_PW_CTL1 0xc0 // power control 1
#define ST7735_SET_PW_CTL2 0xc1 // power control 2
#define ST7735_SET_PW_CTL3 0xc2 // power control 3 (normal mode/full colors)
#define ST7735_SET_PW_CTL4 0xc3 // power control 4 (idle mode/8 colors)
#define ST7735_SET_PW_CTL5 0xc4 // power control 5 (partial mode/full colors)
#define ST7735_SET_VC_CTL1 0xc5 // vcom control 1
// pilotage du lcd
Init commande 8 bits datas 8 bits
ST7735_SET_PW_CTL1 0xa2 0x02 0x84 ; set power control params
ST7735_SET_PW_CTL2 0xc5
ST7735_SET_PW_CTL3 0x0a 0x00
ST7735_SET_PW_CTL4 0x8a 0x2a
ST7735_SET_PW_CTL5 0x8a 0xee
ST7735_SET_VC_CTL1 0x0e ; set vcom control param
ST7735_SET_DISP_PX_FRM 0x05 ; 16 bit/pixel, 65k colors rgb565
ST7735_MODE_INVERSE_OFF ; inverse video off
ST7735_MODE_SLEEP_OFF ; sleep off
ST7735_MODE_DISPLAY_ON ; display on
Zone commande 8 bits datas 16 bits ; envoi octet haut en premier
ST7735_SET_COL x1 x2 ; set gram rect
ST7735_SET_ROW y1 y2
ST7735_WR_GRAM ; write gram
Fill envoi de (x2-x1+1)*(y2-y1+1) couleurs 16 bits, envoi octet haut en premier
Pour l'orientation on envoie la commande ST7735_SET_MA_CTL suivie d'un de ces octets :
0x00, 0xa0, 0xc0, 0x60, 0x80, 0xe0, 0x40, 0x20
Écran 1.8 TFT SPI 128x160 V1.1
Bonjour satinas,
Je suis en mode SPI bit bang, voici ma configuration,
Définition des pattes
Initialisation de l'écran
Mode commands et données
L'écran c'est pour continuer mon oscilloscope, mais en version couleur, et en plus grande dimension, je vais le monter sur mon générateur de fonction MAX038 qui peut me fournir des fréquences sinusoïdales, fréquence carrée, fréquence en dent de scie, jusqu'à 10 MHz, de plus on peut faire de la distorsion sur les 3 games, le MAX038 possède aussi un PWM jusqu'à 10 Mhz
A+
Je suis en mode SPI bit bang, voici ma configuration,
Définition des pattes
Code : Tout sélectionner
#DEFINE dc LATA,2 ; RA2 ==> sélection du mode : commande = 0 , donnée = 1
#DEFINE cs LATA,1 ; RA1 ==> activer ou désactiver la transmission
#DEFINE rst LATA,0 ; RA0 ==> reset de l'écran
#DEFINE sck LATC,3 ; RC3 ==> horloge de synchronisation
#DEFINE sda LATC,5 ; RC5 ==> envoyer les données sur écran 128x160
Initialisation de l'écran
Code : Tout sélectionner
initialiser
bsf cs ; transmission arrêté
tempo 1 ; macro : temps(10 ms)
bcf rst ;
tempo 1 ; macro : temps(10 ms)
bsf rst ;
tempo 1 ; macro : temps(10 ms)
Mode commands et données
Code : Tout sélectionner
;----------------- "fonction pour mettre l'écran 128x160 en mode commande" -----------------
command_tft7735
bcf dc ; DC = 0 en mode commande
bra spi
;------------------ "fonction pour mettre l'écran 128x160 en mode donnée" ------------------
donner_tft7735
bsf dc ; DC = 1 en mode donnée
bra spi ;
;************************************* "mode SPI bit bang" *************************************
spi
movwf envoyer
movlw D'8' ; envoies de 8 bits
movwf bits
bcf cs ; marche
ev1_tft7735
btfss envoyer,7 ; 1 lecture sur le bit 7
bcf sda ; envoie 0
btfsc envoyer,7 ; 1 lecture sur le bit 7
bsf sda ; envoie 1
bsf sck ;
nop
bcf sck ;
rlncf envoyer,F ; rotation des bits à gauche sans carry
decfsz bits,F
bra ev1_tft7735
bsf cs ; arrêt
return
L'écran c'est pour continuer mon oscilloscope, mais en version couleur, et en plus grande dimension, je vais le monter sur mon générateur de fonction MAX038 qui peut me fournir des fréquences sinusoïdales, fréquence carrée, fréquence en dent de scie, jusqu'à 10 MHz, de plus on peut faire de la distorsion sur les 3 games, le MAX038 possède aussi un PWM jusqu'à 10 Mhz
Modifié en dernier par Temps-x le mar. 27 janv. 2026 13:35, modifié 4 fois.
Écran 1.8 TFT SPI 128x160 V1.1
Re
ça affiche des parasites,
bon c'est déjà pas mal hein ..... Si on continu comme ça on va faire revenir JMarc.
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le mar. 27 janv. 2026 17:07, modifié 1 fois.
Écran 1.8 TFT SPI 128x160 V1.1
Bonjour,
Le SPI bit-bang n'est pas très rapide. Il n'y a pas de module SPI sur ton pic ?
Autre chose, pourquoi pilotes-tu le CS à chaque octet envoyé, autant le faire une seule fois au début et à la fin d'une séquence d'envoi de données au lcd. Je ne pense pas que cela soit un problème, mais tu gagneras du temps.
Le SPI bit-bang n'est pas très rapide. Il n'y a pas de module SPI sur ton pic ?
Autre chose, pourquoi pilotes-tu le CS à chaque octet envoyé, autant le faire une seule fois au début et à la fin d'une séquence d'envoi de données au lcd. Je ne pense pas que cela soit un problème, mais tu gagneras du temps.
Écran 1.8 TFT SPI 128x160 V1.1
Bonjour satinas, et tout le forum,
C'est pour que tout le monde puisse utiliser le code, même avec un Pic16F84 qui ne possède pas de SPI
Bien sûr que si, et je sais le mettre en oeuvre
Voici un résultat
c'est pas du chauviniste le drapeau......
Autre chose, je voudrais savoir si on peut lire la couleur du pixel sur cet écran
, car mettre 61440 octets en sram, j'aurais un gros problème vu que ce PIc18F26K22 ne possède que 3896 octets
satinas
A+
satinas a écrit :Source du message Le SPI bit-bang n'est pas très rapide.
C'est pour que tout le monde puisse utiliser le code, même avec un Pic16F84 qui ne possède pas de SPI
satinas a écrit :Source du message Il n'y a pas de module SPI sur ton pic ?
Bien sûr que si, et je sais le mettre en oeuvre
Voici un résultat
Autre chose, je voudrais savoir si on peut lire la couleur du pixel sur cet écran
satinasVous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le mar. 27 janv. 2026 19:25, modifié 1 fois.
Écran 1.8 TFT SPI 128x160 V1.1
Temps-x a écrit :Autre chose, je voudrais savoir si on peut lire la couleur du pixel sur cet écran, car mettre 61440 octets en sram, j'aurais un gros problème vu que ce PIc18F26K22 ne possède que 3896 octets[/b]
Dans quel intérêt tu souhaites récupérer la couleur d'un pixel ?
@++
Écran 1.8 TFT SPI 128x160 V1.1
La lecture de pixels, c'est moins simple. Il me semble que cela fonctionnait sur celui-ci, avec un ILI9341:
viewtopic.php?f=11&t=542
viewtopic.php?f=11&t=542
Écran 1.8 TFT SPI 128x160 V1.1
Bonjour venom,
Pour plusieurs raisons, par exemple si tu fais un remplissage par diffusion (voir ICI) et cibles les couleurs que tu ne veux pas toucher ou toucher.
Un autre exemple : si tu ne veux pas réécrire sur un pixel qui aurait une couleur différente, bref.... il y a encore plein d'autres raisons.
Je vais regarder dans la datasheet du ST7735 voir s'il y a quelque chose dedans, en espérant que je comprenne leur language Anglo-Saxonnes.
A+
venom a écrit :Source du message Dans quel intérêt tu souhaites récupérer la couleur d'un pixel ?
Pour plusieurs raisons, par exemple si tu fais un remplissage par diffusion (voir ICI) et cibles les couleurs que tu ne veux pas toucher ou toucher.
Un autre exemple : si tu ne veux pas réécrire sur un pixel qui aurait une couleur différente, bref.... il y a encore plein d'autres raisons.
satinas a écrit :Source du message La lecture de pixels, c'est moins simple. Il me semble que cela fonctionnait sur celui-ci, avec un ILI9341:
Je vais regarder dans la datasheet du ST7735 voir s'il y a quelque chose dedans, en espérant que je comprenne leur language Anglo-Saxonnes.
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

