avait besoin d'aide dans l'interface et ADC0804 HY62256 (S-RAM) at89c52

V

vinash

Guest
Salut,
J'ai essayé de l'interface et ADC0804 HY62256 (S-RAM) à microcontrôleur AT89C52.L'idée est de faire une conversion A / D à l'aide ADC 0804 et que le stockage des données entrées dans la SRAM.Le code que j'avais développés ci-dessous pour référence.Il ne semble pas fonctionner.(

1.Tout d'abord, même si je ne donne pas un signal d'entrée à l'ADC, la LED s'allume
2.La LED s'allume et que OFF (je suppose indiquant que le S-RAM a atteint l'adresse requise)
3.L'afficheur indique toujours 0; même s'il est le signal d'entrée dans l'ADC.
)

# Include <reg52.h>

retard (void);
xdata données * addr unsigned char = 0x0000, / / déclare un pointeur regarder de l'adresse mémoire externe de 0x0000
sbit WRITE = ^ P3 0; / / définition du WR et INTR épingles
INTR sbit P3 = ^ 2; / / La broche INTR est connecté à la cheville dans, de sorte que chaque fois qu'il passe au niveau bas, il cause une interruption
sbit LIRE P3 ^ = 3; / / Ceci est la broche lecture (pour les ADC)
sbit LED = ^ P3 1;
BLANK sbit = ^ P3 5; / / Je suis l'aide de HP 5082-7340 (affichage) et les blancs d'affichage lorsque cette broche passe au niveau haut
advalue unsigned int, la valeur, j, convertis, k;
scanled (); / / pour afficher la valeur ADC sur HP 5082-7340 affichagevoid main (void) (while (1) (

WRITE = 0; / / conversion AD;
WRITE = 1;
while (INTR == 1);
retard ();
BLANK = 1;
P1 = 0xFF; / / P1 déclarant que les données d'entrée après la conversion A / D
LIRE = 0;

advalue = P1; / / l'attribution des bits d'entrée (A / D bits) à advalue
LIRE = 1;
if (<addr = 0x0014) / * continuer à stocker les bits 8 valeurs obtenues de l'ADC dans l'adresse à partir de 0x0000 jusqu'à
le S-RAM stocke des données jusqu'à l'adresse atteint 0x0014 * /
(LED = 1; / / pour vérifier s'il ya une conversion (en faisant basculer la LED)
* Addr = advalue; / / pour stocker les valeurs dans l'adresse
LED = 0;
scanled (); / / pour afficher la valeur du signal d'entrée sur un ADC
retard ();
) / / Pour vérifier s'il existe une conversion

else (
LED = 1;
)

retard ();)
)scanled ()
(
unsigned int de 10 [] = (0xE0, 0xF0, 0xE1, 0xF1, 0xE2, 0xF2, 0xE3, 0xF3, 0xE4, 0xF4) / / Configuration pour l'affichage de 0 à 9
P1 = 0x00; / / déclare P1 en sortie
BLANK = 0; / / Les Nuls est faible alors que l'affichage indique le nombre HP
convertis = (* addr) * (5 / 256); / / Convertit la valeur ADC a obtenu de sorte que le signal d'entrée est comprise entre 0-5V;
P1 = converti% [10]; / / Affichage de la valeur sur Port1;for (j = 0; j <20000; j );
)
retard (void) / / Delay Timer fonction en utilisant 0 pour 50 ms.
(
TMOD & = 0xF0;
TMOD | = 0x01;
ET0 = 0;
TH0 = 0x3C;
TL0 = 0xB0;
TF0 = 0;
TR0 = 1;
while (TF0 == 0);
TR0 = 0;

)Quelqu'un pourrait-il s'il vous plaît me dire si il ya quelque chose de mal avec mon code.Merci.

 
J'ai donné par exemple pour l'interfaçage avec ADC0804 port parallèle de l'ordinateur en C. Donc, je pense que vous aider.J'ai utilisé gratuitement mode de fonctionnement.Pour plus de détails, voir mon livre port parallèle

Mon expérience au port parallèle INTERFAÇAGE
Vous pouvez l'obtenir à partir du groupe yahoo-booksbybibin
h ** p: / / groups.yahoo.com / group / booksbybibin /

 

Welcome to EDABoard.com

Sponsor

Back
Top