-
20/05/2006 - 10h01 solid_sneak06 resultat d'une conversion A/N
bonjour à tous,
J'ai reussi à faire une conversion A/N avec mon pic 16F877,le resultat de ma conversion est dans mes deux registres ADRESH et ADRESL. Ce que je veux savoir c'est la nature ou le type du resultat,est ce que c'est un resultat binaire et il faut juste le convertir en decimale et apres je l'affiche sur mon ecran LCD? sinon c'est quoi et comment faire?plz
et merci
-
20/05/2006 - 10h18 Jack
Re : resultat d'une conversion A/N
Dans les systèmes numériques, µC entre entres, les données sont toujours constituées de 0 et de 1.
Après, binaire, octal, décimal, hexadécimal sont des bases de numération qui expriment toutes la même quantité.
Pour afficher cette valeur sur ton LCD, il va falloir utiliser des instructions qui manipulent ces bits ou octets afin de les représenter dans une base ou code que l'on peut comprendre.
exemple: tu convertis ton octet en décimal, puis tu le convertis en un code 7 segments avant de l'afficher sur un afficheur 7 segments.
A+
-
20/05/2006 - 20h10 solid_sneak06 Re : resultat d'une conversion A/N
tout ce que je veux moi, c'est convertir le resultat de mes deux registres ADRESH et ADRESL en decimal. le resultat est sur 10 bits: les huit bits du poid faible sont sur le registre ADRESL et les deux qui restent sont dans le ADRESH...pour l'affichage sur l'ecran LCD et l'initialisation je sais comment faire.j'ai besoin de votre aide
-
20/05/2006 - 20h31 PA5CAL
Re : resultat d'une conversion A/N
Sans rentrer dans le détail du code (je ne sais pas ce que le 16F877 propose comme instruction) l'algorithme de conversion binaire->décimal repose sur suite de divisions par 10, dont on extrait les restes successifs.
Si tu dois convertir la valeur positive A0 sur 10 bits de binaire en décimal, tu dois faire les opérations suivantes:
- A1 = A0 divisé par 10 ($0A), reste dans B0
- A2 = A1 divisé par 10 ($0A), reste dans B1
- A3 = A2 divisé par 10 ($0A), reste dans B2
A ce stade, A3 doit être égal à 0 ou 1 puisqu'il n'y avait que 10 bits au départ (A0<1024).
Le résultat est A3 B2 B1 B0.
Pour traiter les valeurs négatives, on teste et on change de signa avant la conversion.
Application numérique: conversion de $0387.
$0387/$0A = $005A reste $03
$005A/$0A = $0009 reste $00
$0009/$0A = $0000 reste $09
Donc $0387 donne 0903 en décimal. CQFD.
-
20/05/2006 - 20h57 solid_sneak06
Re : resultat d'une conversion A/N
merci pascal, mais la tu fais une conversion de l'hexa en decimal et en plus je crois pas que le pic fait une division!vraiment je panique la!!!!
-
20/05/2006 - 21h22 McFly Aidez le le pauvre !!
vraiment je panique la!!!!
Allez binome accroche toi !!
-
20/05/2006 - 21h56 Jack
Re : resultat d'une conversion A/N
Si tu programme en langage C ça ne devrait pas poser de problème.
Si c'est en assembleur, il faut revenir aux bases de la division: faire une division consiste à faire des soustractions successives.
A+
-
20/05/2006 - 22h24 solid_sneak06
Re : resultat d'une conversion A/N
Oui,je travaille en assembleur,ce que je dois faire c'est concaténer mes deux resultats que j'ai enregistré sur deux varyable x et y et je dois convertir en decimal.
est ce que tu peux me donner plus d'explication sur la conersion en binaire - la soustraction-...
-
20/05/2006 - 22h36 Jack
Re : resultat d'une conversion A/N
tu prends ton nombre de 10 bits et tu fais une boucle en lui retirant 10 jusqu'à ce que le résultat devienne négatif.
Ajoute 1 au nombre d'itérations que tu auras effectuées et tu aura le résultat de la division.
Ajoute 10 au nombre négatif que tu as obtenu à la dernière soustraction et tu auras le reste de la division.
Par exemple 35/10 -> 100011/1010
100011 - 1010 = 11001 1ère itération
11001 - 1010 = 1111 2ème itération
1111 - 1010 = 101 3ème itération
101 - 1010 = négatif 4ème itération
4-1 = 3
le nombre négatif + 1010 = 101 -> 5
3 dizaine et 5 unités ça fait bien 35 en décimal
A+
-
20/05/2006 - 23h03 solid_sneak06
Re : resultat d'une conversion A/N
merci bcp jack,ca va bcp m'aider...j'ai juste une derniére question,est ce que t'as une idée comment on fait pour concaténer deux valeur?:
ex '00' avec '11111111'--->'0011111111'
-
20/05/2006 - 23h19 Jack
Re : resultat d'une conversion A/N
il ne me semble pas que cette famille de pic possède de registres 16 bits.
Il te faudra donc travailler octet par octet.
Mais es-tu sur d'avoir besoin d'une résolution de bits sur ton convertisseur.
Si 8 bits suffisent, le problème devient plus simple.
A+
-
20/05/2006 - 23h28 solid_sneak06
Re : resultat d'une conversion A/N
j'ai pas encore tester mon programme de conversion car car j'ai pas chez moi le materiel qu'il faut...mais je crois que comme tu as dit un resultat sur 8 bits et l'argement suffisant puisque moi je vais pas mesurer des grandes tensions et non plus les tension negatives.non?
-
20/05/2006 - 23h34 Jack
Re : resultat d'une conversion A/N
c'est à toi de le savoir. Je ne connais pas ton cahier des charges.
Je te laisse tomber pour ce soir
Bon courage
A+
-
20/05/2006 - 23h42 solid_sneak06
Re : resultat d'une conversion A/N
ok,merci jack -
20/05/2006 - 23h45 McFly
Re : resultat d'une conversion A/N
Oui merci pour lui aussi Jack | | |