Bonjours a tous
je cherche a connecter un LCD 240*64 sur un pic et je calle
j'ai essayé plusieurs choses mais rien ne fonctionne pas d'affichage
besoin d'aide merci
email supprimé, lire la CHARTE svp
-----
Bonjours a tous
je cherche a connecter un LCD 240*64 sur un pic et je calle
j'ai essayé plusieurs choses mais rien ne fonctionne pas d'affichage
besoin d'aide merci
email supprimé, lire la CHARTE svp
Dernière modification par monnoliv ; 22/08/2005 à 09h03.
coucou
j'ai travaillé avec un LCD et un PIC. c'était un LCD 240*128. J'avais une datasheet d'écran avec pas grand chose dessus par contre la datasheet du contrôleur de cet écran m'a beaucoup aidée.
bonjuors
je veux mettre en place le montage du n°59 de electronique magazine le systeme de charge solaire
je prog mon pic avec picbasic plus 1.24
et je vois des tas d'erreurs que j'ai corrigé en partie mais je calle sur des trucs qui sont en rouge voila le prog
'[SIZE="1
'***************************** **********************
'* EF513-2
'* Afficheur pour régulateur de charge
'* Basé sur un PIC16F877
'* Dernière mise à jour 02/01/2004
'***************************** **********************
Device 16F877
XTAL = 20
'configuration LCD
Declare LCD_DTPIN PORTD.0
Declare LCD_RSPIN PORTB.6
Declare LCD_ENPIN PORTB.7
Declare LCD_LINES 2
Declare LCD_INTERFACE 8
'configuration usart 9600
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_BAUD 9600
DEFINE HSER_CLROERR 1
'configuration AD
DEFINE ADC_BITS 10 ' RESOLUTION 10 BIT
DEFINE ADC_CLOCK 3 ' SOURCE CLOCK
DEFINE ADC_SAMPLEUS 5000 ' ECHANTILLONNAGE
' EN MICROSECONDES
'définition' des ports
SYMBOL P1=PORTa.4 'POUSSOIR
SYMBOL POWER=PORTD.2 'POWER
HIGH POWER
LCDOut $FE,1 'EFFACE LE DISPLAY
'définition' des variables
V0 VAR WORD[12]
V1 VAR WORD[12]
VB VAR WORD[12]
VM VAR WORD[12]
IM VAR WORD[12]
IBC VAR WORD[12]
IBS VAR WORD[12]
DONNEE VAR WORD
TMP VAR BYTE
TMPOLD VAR BYTE
'delayms VAR WORD
PRESSION VAR BYTE
CONTINU VAR BYTE
COMPTE VAR BYTE
TIMER VAR WORD
'DESHABILITE LES CONVERTISSEURS A/N
ADCON0=0
ADCON1=7
ADCON1.7=1 'ALIGNEMENT A DROITE 0000001111111111
OPTION_REG.7=1 'DESHABILITE RÉSISTANCES DE PULL-UP
EEPROM 1,[0]
delayms 500
LCDOut $FE,$01," Charge batterie "
LCDOut $FE,$C0," Solaire "
delayms 1000
CLEAR
TMP=1
delayms 500
PRESSION=0
TMPOLD=1
TIMER=0
READ 1,CONTINU 'LIS DANS LA MÉMOIRE LA DERNIÈRE MODALITE DE FONCTIONNEMENT
IF CONTINU=0 THEN
delayms 2000
ELSE
delayms 20
ENDIF
FOR COMPTE=0 TO 10 'CHARGE LES VARIABLES
GOSUB LECTUREAD
delayms 10
NEXT COMPTE
COMPTE=0
Main:
IF CONTINU=1 THEN
TIMER=TIMER+2000
ELSE
TIMER=TIMER+100
ENDIF
IF TIMER>=60000 THEN 'APRÈS 1 MINUTE ETEINS TOUT
TIMER=0
delayms 500
LOW POWER
delayms 1000
ENDIF
IF TMPOLD <> TMP AND CONTINU=0 THEN
delayms 500
TMPOLD=TMP
ENDIF
IF P1=0 THEN
TIMER=0
IF TMP<8 THEN
TMP=TMP+1
ELSE
TMP=1
ENDIF
CONTINU=0
PRESSION=0
WHILE P1=0
PRESSION=PRESSION+1
delayms 10
IF PRESSION>=200 THEN
CONTINU=1
TMP=1
LCDOut $FE,$01," SELECTIONNE "
LCDOut $FE,$C0," MODE CONTINU "
delayms 2000
ENDIF
WEND
ENDIF
IF CONTINU=1 THEN
'WRITE 1,1 IF TMP<4 THEN
TMP=TMP+1
ELSE
TMP=1
ENDIF
delayms 1000
FOR COMPTE=0 TO 10
GOSUB LECTUREAD
delayms 100
NEXT COMPTE
ELSE
delayms 100
'WRITE 1,0 GOSUB LECTUREAD
ENDIF
IF compte>=10 THEN
compte=0
ELSE
compte=compte +1
ENDIF
'EFFECTUE LA MOYENNE DES 10 LECTURES
VM[11]=(VM[1]+VM[2]+VM[3]+VM[4]+VM[5]+VM[6]+VM[7]+VM[8]+VM[9]+VM[0])/10
VB[11]=(VB[1]+VB[2]+VB[3]+VB[4]+VB[5]+VB[6]+VB[7]+VB[8]+VB[9]+VB[0])/10
IM[11]=(IM[1]+IM[2]+IM[3]+IM[4]+IM[5]+IM[6]+IM[7]+IM[8]+IM[9]+IM[0])/10
IBS[11]=(IBS[1]+IBS[2]+IBS[3]+IBS[4]+IBS[5]+IBS[6]+IBS[7]+IBS[8]+IBS[9]+IBS[0])/10
IBC[11]=(IBC[1]+IBC[2]+IBC[3]+IBC[4]+IBC[5]+IBC[6]+IBC[7]+IBC[8]+IBC[9]+IBC[0])/10
V0[11]=(V0[1]+V0[2]+V0[3]+V0[4]+V0[5]+V0[6]+V0[7]+V0[8]+V0[9]+V0[0])/10
V1[11]=(V1[1]+V1[2]+V1[3]+V1[4]+V1[5]+V1[6]+V1[7]+V1[8]+V1[9]+V1[0])/10
SELECT CASE TMP
CASE 1
VM[11]=((VM[11]*48)/10)*11
LCDOut $FE,$01,"Tension Module"
LCDOut $FE,$C0," ",#VM[11]," mV"
delayms 1
CASE 2
VB[11]=((VB[11]*48)/10)*11
LCDOut $FE,$01,"Tension Batt. "
LCDOut $FE,$C0," ",#VB[11]," mV"
delayms 1
CASE 3
IF IM[11]>5 THEN
IM[11]=(((IM[11]-5)*500)/11)+500
LCDOut $FE,$01,"Courant Module"
LCDOut $FE,$C0," ",#IM[11]," mA"
ELSE
LCDOut $FE,$01,"Courant Module"
LCDOut $FE,$C0," < 500 mA "
ENDIF
delayms 1
CASE 4
if IBS[11]>IBC[11] THEN
IF IBS[11]>5 THEN
IBS[11]=(((IBS[11]-5)*500)/11)+500
LCDOut $FE,$01,"Courant Batt."
LCDOut $FE,$C0,"Décharge ",#IBS[11]," mA"
ELSE
LCDOut $FE,$01,"Courant Batt."
LCDOut $FE,$C0,"Décharge < 500 mA"
ENDIF
ELSE
IF IBC[11]>5 THEN
IBC[11]=(((IBC[11]-5)*500)/11)+500
LCDOut $FE,$01,"Courant Batt."
LCDOut $FE,$C0,"Charge ",#IBC[11]," mA"
ELSE
LCDOut $FE,$01,"Courant Batt."
LCDOut $FE,$C0,"Charge < 500 mA"
ENDIF
ENDIF
delayms 1
CASE 5
V0[11]=(V0[11]*48)
LCDOut $FE,$01," Tension V0 "
LCDOut $FE,$C0," ",#V0[11]," mV"
delayms 1
CASE 6
V1[11]=(V1[11]*48)/10
LCDOut $FE,$01," Tension V1 "
LCDOut $FE,$C0," ",#V1[11]," mV"
delayms 1
CASE 7
V0[11]=(V0[11]*48)/10
VM[11]=((VM[11]*48)/10)*11
LCDOut $FE,$01," VM ",#VM[11]," mV"
LCDOut $FE,$C0," V0 ",#V0[11]," mV"
delayms 1
CASE 8
V1[11]=(V1[11]*48)/10
VB[11]=((VB[11]*48)/10)*11
LCDOut $FE,$01," VB ",#VB[11]," mV"
LCDOut $FE,$C0," V1 ",#V1[11]," mV"
delayms 1
END SELECT
GOTO MAIN
LECTUREAD:
Adcin 5,DONNEE
VM[COMPTE]=DONNEE
Adcin 6,DONNEE
VB[COMPTE]=DONNEE
Adcin 4,DONNEE
IM[COMPTE]=DONNEE
Adcin 3,DONNEE
IBS[COMPTE]=DONNEE
Adcin 2,DONNEE
IBC[COMPTE]=DONNEE
Adcin 0,DONNEE
V0[COMPTE]=DONNEE
Adcin 1,DONNEE
V1[COMPTE]=DONNEE
RETURN
le picbasic plus me jette sur les code qui sont en rouge sur ce listing et je ne trouve pas
merci de votre aide
###########
Tu ferais bien de lire les remarques que te font les modérateurs!!!
Ce n'est pas la peine non plus de poster le même sujet à plusieurs endroits. Je rappelle que c'est également interdit par la charte. Tu devrais prendre cinq minutes pour la lire attentivement.
De plus, il serait préférable de mettre ton programme en fichier joint, pour éviter d'encombrer des pages et des pages
Dernière modification par Jack ; 07/10/2006 à 09h29.