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
nondediode
Amateur
Amateur
Messages : 100
Enregistré en : novembre 2018
Localisation : Entre l'emetteur et le collecteur

#1 Message par nondediode » sam. 17 nov. 2018 11:47

Bonjour à toutes et à tous,

Un retraité Lyonnais de 68ans viens vous rejoindre sur votre forum, non pas qu'il veuille venir pour vous apporter sa science (il en n'a pas du moins dans ce domaine puisqu'il vient en chercher) mais simplement pour conforter sa passion de l'électronique et lancer un appel au secours sur le développement d'un programme "assembleur" sous MPLAB avec un PIC16F877 pour gérer un afficheur GLCD 240x64.

Je sais beaucoup me disent qu'il faut abandonner l'asm et migrer vers les outils modernes que c'est bcp plus simple, plus rapide et plus adapté à la gestion d'un GLCD. Le pb c'est qu'à mon âge on a pris ses habitudes et ses repères et que les moyens matériel ont un coût qu'un retraité ne peut malheureusement satisfaire. Il faut donc faire avec les moyens du bord et pour ça j'ai quand même du matos mais ça date de ma génération donc moins évident.

D'abord, afin de mieux cibler le personnage que je suis, commençons par ma carrière professionnel:
De formation électromécanique, j'étais dans un laboratoire de recherche d'une grande société automobile. J'avais en devoir de créer des systèmes électronique dédié à la mesure embarquée, de dépanner le matériel mesure et de l'entretenir, de mettre en place la norme ISO et manager un parc de matériel mesure. Bcp de diplômes en mécanique et des formations en électronique analogique et numérique. Pour résulter tout ça; mes connaissances électroniques me permettent de bien comprendre mais je suis vite limité quand il s'agit de programmer.

Passionné d'électronique, je continue dans le bricolage et la réalisation d'amplis audio à lampe mais aussi dans le dépannage dans un large domaine.

A présent que je me suis un peu mieux dévoilé, rentrons dans le vif du sujet.

Il s'agit et vous l'avez bien compris, de programmer un PIC 16f877 pour gérer un afficheur GLCD.

Côté matériel :
Afficheur OPTREX DMF5005 240x64
http://www.rigelcorp.com/8051/Optrex_Dmf5000.pdf
Outil de développement et de programmation:
MPLAB Version 5.5 et Easypic3 de chez Mikroelectronica
Pic utilisé :
PIC 16F877 avec quartz 4MHz
Langage assembleur .

La partie pilotage est réalisé sur une carte qui rassemble le PIC, les liaisons avec l’afficheur, l’alimentation et le rétroéclairage + une petite carte avec qq poussoirs et des LEDs.
Tout fonctionne correctement, le contraste réagit bien et l’alimentation 5V est correcte. J’ai monté un support 40 pins à force d’insertion nul pour pouvoir déplacer aisément le PIC du programmateur à la carte.
Les directives d’assemblage du PIC ont été définis en fonction des ports E/S affectés aux différents besoins.

Voici le début de programme que j'ai commencé à écrire et qui pourra vous servir à comprendre les raccordements. A partir de là je suis bloqué Merci !

; RB1 | 34 | E | Bouton poussoir "OK"
; RB2 | 35 | S | Ecriture afficheur
; RB3 | 36 | S | Lecture 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>
__CONFIG _CP_OFF & _DEBUG_OFF & _WRT_ENABLE_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

;-------------------------------------------------DEFINITION DES REGISTRES TEMPORAIRES------------------------------------------------------
PORTA EQU 0X05
PORTB EQU 0X06
PORTC EQU 0X07
PORTD EQU 0X08
PORTE EQU 0X09
TRISA EQU 0X85
TRISB EQU 0X86
TRISC EQU 0X87
TRISD EQU 0X88
TRISE EQU 0X89
CPT2 EQU 0X0D
CPT3 EQU 0X0E
RETARD1 EQU 0X0C
RETARD2 EQU 0X0F
RETARD3 EQU 0X10
RETARD4 EQU 0X11
RETARD5 EQU 0X12
CONVERT EQU 0X13
VAL1 EQU 0X14
VAL2 EQU 0X15
RESULT EQU 0X16

;--------------------------------------------PROGRAMME PRINCIPAL----------------------------------------
ORG 0000h ; Adresse de reset
GOTO INIT
;-----------------------------------------PROGRAMME D'INITIALISATION----------------------------------------


Les photos:

[imgPhoto1][/img]


Au plaisir de vous lire

JP
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

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

#2 Message par JMarc » sam. 17 nov. 2018 19:19

Bonjour nondediode

J’ai lu ta présentation et bien venu à toi. Belle présentation...mais je n’ai pas compris si tu as des connaissances en asm car le listing s’arrête pile poil au début du programme. Car c’est du boulot pour arriver à faire fonctionner cet afficheur :sifflotte:

Donc je suppose que tu connais déjà la gestion des tempos, passer les ports en sortie, envoyer des données sur ces dites sorties ?
Faire simplement clignoter une led à des fréquences différentes qui t’aidera à vérifier le bon déroulement de ton programme

Il y a des cours gratuits sur internet, https://www.abcelectronique.com/bigonoff/

Car je peux t’aider pour ton afficheur comme d’autres membres de ce forum mon si gentiment aidé mais il faut s’avoir d’ou l’on part :sifflotte:

Bonjour à toute l'équipe du forum
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 844
Âge : 65
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#3 Message par F6FCO » sam. 17 nov. 2018 19:44

Bonjour Nomdediode,
Je suis débutant en asm comme toi, tu es tombé au bon endroit pour trouver de l'aide, ils sont vraiment forts ici.
Je regrette juste de n'avoir pas trouvé ce pseudo avant toi :lol:

Pourquoi ces deux gros redresseurs sur ta carte si c'est juste pour alimenter un PIC et un LCD ?

Je ne connais pas ton LCD, les autres t'aideront bien mieux que moi, il te reste à faire le programme mais si tu utilises MPLab comme ide il te faudra rajouter le fichier .inc du 18F877 et toutes tes déclarations d'adresses seront alors superflues.
Une porte nand prend 2 bits en entrée... la cochonne !!! 8-)

Bonjour à toute l'équipe du forum
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 1253
Enregistré en : juillet 2016
Localisation : Terre

#4 Message par Temps-x » sam. 17 nov. 2018 20:23

Bonsoir nondediode,

Soit le bienvenue sur le forum, et j'espère que tu y passeras des bons moment comme nous,

nondediode ou Nom de Zeus un fan de retour vers le futur. :roll:

nondediode a écrit :Source du message MPLAB Version 5.5


Tu devrais passer à MPLAB IDE v8.92 tu peux le télécharger ICI
j'explique comment on s'en sert.

Dans ton programme tu n'as pas configuré les registres, est ce que c'est tout ton programme :?:

J'ai regardé le datasheet rapidement, à la fin il montre un exemple de programmation en assembleur, mais c'est pas de
l’assembleur Pic

Je crois qu'il faut partir sur cette base

==> A+
Modifié en dernier par Temps-x le sam. 17 nov. 2018 20:56, modifié 2 fois.
Quand la souris nargue le chat, c'est que son trou n'est pas loin.

Bonjour à toute l'équipe du forum
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 622
Âge : 33
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#5 Message par venom » sam. 17 nov. 2018 20:37

Bonjour nondediode,

soit le bienvenue ici. Tout comme F6FCO j'adore ton pseudo, bien trouvé :wink: (a chaque foi que je le lis, je revois la tête de christopher lloyd) :langue:
Perso je ne suis pas du tout ASM mais il y en a des bons sur ce forum. :wink:
A très vite






@++
En fait tout est une question de BIT ? :-D

Bonjour à toute l'équipe du forum
nondediode
Amateur
Amateur
Messages : 100
Enregistré en : novembre 2018
Localisation : Entre l'emetteur et le collecteur

#6 Message par nondediode » dim. 18 nov. 2018 09:53

Bonjour à tous,

Je viens juste de prendre connaissance de vos réponses et je vous en remercie.

Je vais commencer par répondre à ttes vos interrogations.

Mes connaissances sur l'assembleur avec MPLAB est complètement autodidacte, j'ai eu des formations sur le numérique quand j'étais encore en activité et les premières approches en programmation était le langage assembleur. C'est donc grâce à ça qu'un jour je suis tombé sur un ouvrage ETFS qui traitait les PICs en assembleur avec bcp d'exemples et c'est comme ça que j'ai démarré. Donc forcement mes connaissances ne sont pas au top mais je me débrouille avec tous les PICs supportés par mon environnement matériel. J'ai réalisé bcp de petits programmes avec gestion d'interruptions pour essentiellement asservir des montages audio qui est ma passion favorite en électronique mais aussi pour des petits montages domotique, marine et automobile. Les afficheurs LCD m'ont motivé à vouloir aller plus loin vers les afficheurs graphiques. Je pensais pouvoir traiter le prg comme pour un LCD classique avec une petite difficulté supplémentaire qui me semblait pas insurmontable. Sauf que; Un GLCD est autrement plus complexe à mettre en oeuvre mais tant pis j'y vais quand même!
C'est comme ça que je suis amené à solliciter les forums pour arriver à en comprendre le fonctionnement.

Le programme que j'ai posté est juste là pour montrer l'affectation des ports et les directives d'assemblage. Il est fort probable que je soit amené à le retoucher pour l'adapter à l'afficheur. N'en tenez pas trop compte.

Les gros redresseurs peuvent en effet faire sourire mais j'en ai tellement dans les tiroirs que j'ai pris ça. Je part du principe qui peut le plus peut le moins.
En tout cas le fonctionnement reste le même, les alims sont corrects, le contrast réagit bien et le rétroéclairage aussi.

Mon soucis actuel, c'est de pouvoir écrire un programme qui puisse faire fonctionner ce type d'afficheur en utilisant le langage que je maîtrise et les outils dont je dispose. N'étant pas très riche (je fait parti de ceux que Macron a ponctionné violemment) le retraité que je suis n'a plus trop les moyens d'investir dans le loisir. J'ai vu qu'il existe un logiciel qui me semble simple à utiliser mais trop cher pour moi (VisualGLCD V.2.7) il faut donc me tourner sur des moulinettes gratuites et pas tjrs évidentes à utiliser.

Si vous avez d'autres questions me concernant n’hésitez pas.

Cdlt à tous

Bonjour à toute l'équipe du forum
F6FCO
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 844
Âge : 65
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#7 Message par F6FCO » dim. 18 nov. 2018 13:36

nondediode a écrit :. N'étant pas très riche (je fait parti de ceux que Macron a ponctionné violemment)

Tiens ! on fait partie du même club.

Je ne pourrai pas t'aider pour ton afficheur mais je vais suivre ce sujet avec grand intérêt.
Une porte nand prend 2 bits en entrée... la cochonne !!! 8-)

Bonjour à toute l'équipe du forum
nondediode
Amateur
Amateur
Messages : 100
Enregistré en : novembre 2018
Localisation : Entre l'emetteur et le collecteur

#8 Message par nondediode » dim. 18 nov. 2018 14:36

+1 pour la signature! :lol:

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

#9 Message par JMarc » dim. 18 nov. 2018 18:17

Bonjour tout le monde

Ça tombe bien, avec asm tout est gratuis, logiciel d’assemblage et les cours

J’ai trouvé ce lien https://exploreembedded.com/wiki/Interfacing_GLCD(128x64)_with_PIC16F877A , c’est du C mais avec les foromeur fana du C pourront facilement nous expliquer ce que nous devons codé en asm :langue:

Poste déjà ton programme voir si l’on peut t’aider

Bonjour à toute l'équipe du forum
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 1253
Enregistré en : juillet 2016
Localisation : Terre

#10 Message par Temps-x » dim. 18 nov. 2018 18:27

Bonsoir,

JMarc a écrit :Source du message Ça tombe bien, avec asm tout est gratuis


Un remède contre Macron exit dehors!!

==> A+
Quand la souris nargue le chat, c'est que son trou n'est pas loin.


Retourner vers « Langage ASM »

Qui est en ligne

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