Commander un afficheur lcd avec pic16f876a

zakzak19 Messages postés 4 Date d'inscription lundi 17 janvier 2011 Statut Membre Dernière intervention 25 janvier 2015 - 28 févr. 2011 à 08:56
 Utilisateur anonyme - 19 févr. 2012 à 00:55
je veux piloter un afficheur lcd de type 1602E avec un pic 16f876 en utilisant le logiciel MikroC , j ai ecrit le programme mais l 'afficheur ne donne rien , il est meme pas allumé, j ai bien verifié l alimentation mais ça fonctionne pas . Pouvez vous m'aider merci.
mon e-mail: alfatron13@live.fr

5 réponses

Duke49 Messages postés 552 Date d'inscription jeudi 12 octobre 2006 Statut Non membre Dernière intervention 24 janvier 2023 4
6 mars 2011 à 16:44
Si il existe dans ton gestionnaire de périphérique tu peux t'inspirer de cette méthode:
http://www.dreamincode.net/forums/topic/148684-turn-off-your-lcd/
0
cathyminnie Messages postés 2 Date d'inscription mercredi 30 novembre 2011 Statut Membre Dernière intervention 18 février 2012
18 févr. 2012 à 22:09
Kikou,

J'utilise la source assembleur suivante pour un module DEM16217 (même brochage et chipset Hitachi 44780 que le 1602E, mais jamais testé sur 1602) :

AFFICH
CALL TEMPO1 ; Affichage sur un DEM 16217 SYH LCD
BCF PORTC,3 ; Enable=0 DB0 a DB7 sur port B RS register select sur port C,4
NOP ; RW read write sur port c,5 E enable sur port C,3
NOP ; Function set 00 0011 NFXX N=0 1 line mode F=0 5x7 dots
BCF PORTC,4 ; RS
BCF PORTC,5 ; RW
MOVLW 0x30 ;0011 0000
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP ; Display on/off control D=1 display on C=1 cursor on B=1 blink off
BCF PORTC,4 ; RS 00 0000 1DCB
BCF PORTC,5 ; RW
MOVLW 0x0F ;0000 1111
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP ; Clear display
BCF PORTC,4 ; RS 00 0000 0001
BCF PORTC,5 ; RW
MOVLW 0x01 ;0000 0001
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP ; Entry mode set
BCF PORTC,4 ; RS 00 0000 01(ID)(SH) ID=1 increment mode SH=0 entire shift off
BCF PORTC,5 ; RW
MOVLW 0x06 ;0000 0110
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
BSF PORTC,4 ; RS ecriture 10 XXXX XXXX
BCF PORTC,5 ; RW
BTFSS signe,0
GOTO ADigt0
MOVLW 0x2D ;2D=45 signe -
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
GOTO ADigt1
ADigt0 MOVF D0,0
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
ADigt1 MOVF D1,0
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
MOVF D2,0
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
MOVLW 0x2E ;2E=46 separateur decimal .
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
MOVF D3,0
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
MOVF D4,0
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
MOVLW 0x20 ; 20 = 32 espace
MOVWF PORTB
BSF PORTC,3 ; Enable=1
CALL TEMPO1
BCF PORTC,3 ; Enable=0
CALL TEMPO1
NOP
RETURN

Les codes de lecture d'entrée analogique 10bits, conversion IEEE754 32bits virgule flottante, calculs en grandeur physique, re-conversion en DCB et affichage fonctionnent aussi. J'ai un peu levé le pied sur ces projets mais résultats prometteurs pour faire des instruments de mesures...

A+, Cathy...
0
Utilisateur anonyme
19 févr. 2012 à 00:40
Bonjour enfin non, moi non plus

Déjà, vous êtes dans la section VB.NET, je ne vois pas le rapport...

zakzak:
Concernant la question de base vous trouverez sur CE LIEN (entre autres) un peu d'information.

cathyminnie:
J'utilise la source assembleur suivante
ce n'est pas de l'assembleur, ça ressemble un peu au Basic11 (sans l'être) un genre de basic interprété par ton compilateur en assembleur.
re-conversion en DCB et affichage
Quoi qu'on puisse faire le 1602E sera toujours piloté en binaire (en parallèle 8 bits, ou en serie), le fait de passer en BCD ou DCB n'y changera rien puisqu'on lui envoie (par exemple) PORTC %01011000 et non PORTC 88

Et enfin, vous trouverez également sur ce site un forum dédié à l'Assembleur avec pas mal d'exemples.


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
19 févr. 2012 à 00:42
PS: BCD = Binaire Codé en Décimal et l'inverse pour DCB


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
19 févr. 2012 à 00:55
Pardon,
PORTC %01011000 et PORTC 88
On peux le faire aussi en décimal, une raison de plus pour ne pas avoir besoin du DCB.


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Rejoignez-nous