Savoirtoutfaire.com
Google
 

Index - Recherche avancée - S'enregistrer - Qui est en ligne ? - Connexion
Participez : encore 99 questions sans réponses !
Comment mesurer une tension avec pic16f877 ?

 
Poster un nouveau sujet   Répondre au sujet    Savoirtoutfaire Index du Forum -> Electronique
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
mejdi_electronique



Inscrit le: 22 Mar 2007
Messages: 4

MessagePosté le: 17 Mai 2007 9:04    Sujet du message: Comment mesurer une tension avec pic16f877 ?

salut...
tout d'abord je vous presente mon projet.
je suis entrain de réaliser une améliorantion d'un testeur de régulateur d'alternateur de voiture.
et cette amélioration consiste à introduire un afficheur lcd 4*20 caractère , un clavier 16 touches et un pic16f877 : donc ètre programmable.
j'ai essayé de réaliser ça et ça marche.. mais j'ai un problème .
moi j'utilise le porta du pic comme un convertisseur analogique/numèrique pour mesurer une tension. mais le problème dans mon programme qu'il m'affiche une valeur différent de celle que je veux .
voici mon problème et j'espère que je trouve quelqu'un qui peut m'aider .
c'est urgent.
ok donc je vous donne mon programme
le fichier hex et le schéma.
la simulation se fait :
1 - s'affiche un message
2- saisir le code par le clavier (c'est un code de 2 nombres et entre 10 et 49)
3-taper entrer (ds le schéma c'est ' = ')
3- s'affiche les références du régulateur
4- taper test (ds le schéma c'est ' ON/c '
5- s'affiche la valeur de tension
ma tension varie entre 12v et 24v et 32v selon un switch
puis elle varie selon ces valeurs :
si 12 elle varie de 12 à 15
-si 24 elle varie de 24 à 28
et le 32 ne varie pas.
merci..
voici la partie conversion :

ConversionAN
; initialisation
call LCD_CLEAR
BSF STATUS, RP0 ; Bank 1 selectonnee
MOVLW b'10000010' ; select RA0
MOVWF ADCON1 ; as analog inputs
BCF STATUS, RP0 ; Bank 0 selectonnee

MOVLW b'11000001' ; Select; RC osc, Ch2
MOVWF ADCON0 ; turn on A/D

Convert CALL Wait100µs ; provide necessary samplig time

BSF ADCON0, 2 ; Start new A/D conversion
loop
BTFSC ADCON0,2 ; A/D over ?
GOTO loop ; no then loop

CALL LCD_LOCATE_LINE0

MOVF ADRESH, W
CALL LCD_SEND_DECI ; print high bit of the result

CALL LCD_PRINT_SPACE
CALL LCD_PRINT_SPACE

BSF STATUS, RP0 ; Bank 1 selectonnee
MOVF ADRESL, W
BCF STATUS, RP0 ; Bank 0 selectonnee
CALL LCD_SEND_DECI ; print low bit of the result
CALL LCD_PRINT_SPACE
CALL LCD_PRINT_SPACE
MOVLW "V"
CALL LCD_SEND_CHAR
GOTO Convert ; boucle
LCD_SEND_DECI

MOVWF LCD_CHAR_HEXA ; On met W sans LCD_CHAR_HEXA,

; Calcul des centaines

MOVLW "0" ; On met le code ascii de 0 dans LCD_CHAR
MOVWF LCD_CHAR ; "

LCD_SEND_DECIMAL_100
MOVF LCD_CHAR_HEXA, W
ADDLW -D'100'
BTFSS STATUS, C
GOTO $ + 4
INCF LCD_CHAR, F
MOVWF LCD_CHAR_HEXA
GOTO LCD_SEND_DECIMAL_100

; Affiche les centaines
MOVF LCD_CHAR, W
CALL LCD_SEND_CHAR

; Calcul des dixaines

MOVLW "0" ; On met le code ascii de 0 dans LCD_CHAR
MOVWF LCD_CHAR ; "

LCD_SEND_DECIMAL_10
MOVF LCD_CHAR_HEXA, W
ADDLW -D'10'
BTFSS STATUS, C
GOTO $ + 4
INCF LCD_CHAR, F
MOVWF LCD_CHAR_HEXA
GOTO LCD_SEND_DECIMAL_10

; Affiche les dixaines
MOVF LCD_CHAR, W
CALL LCD_SEND_CHAR

MOVLW "0" ; On met le code ascii de 0 dans LCD_CHAR
MOVWF LCD_CHAR ; "

; Calcul des unitees

LCD_SEND_DECIMAL_1
MOVF LCD_CHAR_HEXA, W
ADDLW -D'1'
BTFSS STATUS, C
GOTO $ + 4
INCF LCD_CHAR, F
MOVWF LCD_CHAR_HEXA
GOTO LCD_SEND_DECIMAL_1

; Affiche les unitees
MOVF LCD_CHAR, W
CALL LCD_SEND_CHAR

; Fini !
RETURN
LCD_SEND_CHAR
MOVWF LCD_CHAR ; On met W sans LCD_CHAR

ANDLW 0xF0 ; masquage des bit de poids faible
ADDLW LCD_RS_VALUE ; on y ajoute LCD_RS_VALUE
CALL LCD_SEND_NO_WAIT ; on envoit a l'afficheur


SWAPF LCD_CHAR, W ; passage des bits de poids faibles en poids fort
ANDLW 0xF0 ; masquage des bit de poids faible
ADDLW LCD_RS_VALUE ; on y ajoute LCD_RS_VALUE

CALL LCD_SEND ; on envoit a l'afficheur

; fini

RETURN
merci
tazzz28



Inscrit le: 19 Juil 2007
Messages: 5

MessagePosté le: 19 Juil 2007 21:50    Sujet du message:

bonjour,

le programme ne me dit rine je n'y connait rien mais quelle est ton interface d'entrée sur ton pic??

cordialement
pic59



Inscrit le: 24 Avr 2008
Messages: 2

MessagePosté le: 24 Avr 2008 14:45    Sujet du message:

mejdi_electronique salu es ke tu pourer m'envoyer ton shéma et ton programme car j'ai le même projet et je galére un peu si tu peu m'aider je t'en remercie j'ai fai mon schéma mais j'arive pa à afficher
pic59



Inscrit le: 24 Avr 2008
Messages: 2

MessagePosté le: 23 Mai 2008 8:54    Sujet du message:

vou pourier repondre mai maintenan yé trop tard bande de bal
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Savoirtoutfaire Index du Forum -> Electronique Toutes les heures sont au format GMT
Page 1 sur 1
Sujets similaires :
Comment mesurer vitesse avec accéléromètre ?
COmment mesurer la vitesse avec un accelerometre ?
Comment augmenter une tension avec un simple circuit RC ?
Comment mesurer le courant à chaque étape ?
Combien est la tension max de ne555 ?
Comment limiter la tension a 13.2v ?
Comment abaisser la tension de 18v à 12v ?
Comment réguler la tension ?
Comment convertir la tension en température par pic ?
Comment faire un regulateur de tension 24V?
Comment doubler une tension continue ?
Comment créer une rampe de tension ?
Comment fabriquer un multiplicateur de tension ?
Comment faire un diviseur de tension ?
Comment transformer une frequence en une tension continue ?
Partagez votre savoir-faire et écrivez des articles sur le Wiki de SavoirToutFaire
Recherchez d'autres sites pour apprendre à faire sur




Savoirtoutfaire ©Tous droits réservés 2007