Texte en memoire dans pic

yalein Messages postés 6 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 19 mai 2006 - 9 mars 2006 à 01:17
yalein Messages postés 6 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 19 mai 2006 - 22 mars 2006 à 21:56
Bonjour a tous, je suis débutant dans la programmation en assembleur et la je coince sur un probleme. J'utilise un pic 16f877 avec un afficheur et je voudrais pouvoir stocker en memoire des message pré defini que je pourrais appeler puis afficher. mon idée était de rentrer dans une variable l'adresse de départ où se situerais le début du message 1 par exemple puis afficher caractere par caractere le message sur le LCD. Seul probleme, je ne sais pas comment et où placer mes messages.
Pour l'instant je n'ai réussi a afficher des caracteres quand ne faisant des lignes du types:

banksel PORTA
movlw 0x40
movwf EEADR1

movlw "B"
movwf EEDATA1
CALL ECRITURE_EEPROM
incf EEADR1
movlw "O"
movwf EEDATA1
CALL ECRITURE_EEPROM
incf EEADR1
movlw "N"
movwf EEDATA1
CALL ECRITURE_EEPROM
incf EEADR1
movlw "J"
movwf EEDATA1
CALL ECRITURE_EEPROM
incf EEADR1
movlw "O"
movwf EEDATA1
CALL ECRITURE_EEPROM
incf EEADR1
movlw "U"
movwf EEDATA1
CALL ECRITURE_EEPROM
incf EEADR1
movlw "R"
movwf EEDATA1
CALL ECRITURE_EEPROM
incf EEADR1
movlw "#"
movwf EEDATA1
CALL ECRITURE_EEPROM

return

Ici le message BONJOUR est afficher.
Pouvez vous m'aider pour faire evoluer mon programme ???????????????

merci d'avance à tous.

5 réponses

cs_paulF Messages postés 1 Date d'inscription lundi 13 juin 2005 Statut Membre Dernière intervention 14 mars 2006
14 mars 2006 à 20:57
bonsoir,

Si tes messages sont pré-définis , tu peux donc les programmer directement dans la zone Eeprom du PIC
exemple pour Pic16F628 , affiche le N0 du message défini en EEPROM PIC

....
call LCD_Clear1
movlw 1
movwf Pointer_Msg
Call AffNumMsgEeprom
.....

puis avec un bout de programme aller lire ces message pour les afficher

;==============================
; affiche Nø Msg en eeprom
;==============================
AffNumMsgEeprom
movf Pointer_Msg,w
movwf Cpt2
bcf STATUS,C
rlf Cpt2,f
rlf Cpt2,f
rlf Cpt2,f
rlf Cpt2,f ; pointeur = NøMsg * 16
clrf Cpt3
affMsg_
movf Cpt3,w
addwf Cpt2,w
bank1
MOVWF EEADR
BSF EECON1,RD ; bit 0
MOVF EEDATA,W
bank0
call LCD_Putchar
incf Cpt3,f
btfss Cpt3,4 ; 16em car ?
goto affMsg_
return

ORG 0x2100
;message modulo 16 (si LCD de 16 car par ligne !)
; "1234567890123456"
EE0 dt "Bonjour ",0
EE1 dt "message 1",0
EE2 dt "message 2",0
0
yalein Messages postés 6 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 19 mai 2006
16 mars 2006 à 01:28
Bonjour, tout dabord un grand merci pour ta réponse car je vois que tu as compris exactement se que j'essaie de faire.
Sinon quelques petites questions: j'ai essayer cette méthode mais j'ai quelques erreur quand je compile. J'obtiens ceci:
Symbol not previously defined (Pointer_Msg)
Symbol not previously defined (Cpt2)
Symbol not previously defined (Cpt3)

J'ai donc l'impression qu'il ne reconnait pas ces variables. Est ce que se sont des variables que tu as déclaré quelque par ou bien se sont des variables propres au pic.

Et sinon, pour afficher les autres messages est ce qu'il suffit de remplacer le " movlw 1 " par "
movlw 2 " ou bien "
movlw 3 "

merci d'avance
0
phenojeff Messages postés 87 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 4 avril 2008
22 mars 2006 à 16:21
Allo
déclare tes variable au début
CBLOCK 0x20
Pointer_Msg :1
Cpt2:1
Cpt3:1
ENDC
pas besion de faire movlw 2 car dans
affMsg_
movf Cpt3,w
addwf Cpt2,w ; Cpt3 + Cpt2 = Cpt2
;si tu regarde a la fin il y a

btfss Cpt3,4 ; 16em car ? Boucle jusqua 3
goto affMsg_
a++
0
phenojeff Messages postés 87 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 4 avril 2008
22 mars 2006 à 16:24
petite corection sest la quil fait +1

call LCD_Putchar
incf Cpt3,f ; <-- +1 save dans Cpt3
btfss Cpt3,4 ; 16em car ?
goto affMsg_
a+
0

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

Posez votre question
yalein Messages postés 6 Date d'inscription jeudi 9 mars 2006 Statut Membre Dernière intervention 19 mai 2006
22 mars 2006 à 21:56
Bonsoir,

Merci le complement d'information.
En faite j'ai réussi a afficher les messages en allant directement lire à l'adresse du debut de message stocher dans l'eeprom.
merci encore de ton aide
0
Rejoignez-nous