ayuda necesaria en la interconexión ADC0804 y HY62256 (S-RAM) AT89C52

V

vinash

Guest
¡Hola!
He tratado de interfaz ADC0804 y HY62256 (S-RAM) al microcontrolador AT89C52.La idea es hacer una conversión A / D con ADC 0804 y de almacenar la entrada de datos a la SRAM.El código que se había desarrollado el siguiente artículo.No parece funcionar.(

1.En primer lugar, incluso cuando yo no doy una señal de entrada al ADC, los interruptores LED
2.Los interruptores LED y de fuera (supongo que indica que el S-RAM ha alcanzado la dirección requerida)
3.La pantalla indica siempre 0; aunque no hay señal de entrada en el CAD.
)

# Include <reg52.h>

demora (void);
char sin signo xdata * addr data = 0x0000; / / declara un puntero mirando desde la dirección de memoria externa de 0x0000
sbit WRITE = ^ P3 0; / / definir el WR y INTR alfileres
INTR sbit = ^ P3 2; / / El pin INTR está conectado a la clavija en, por lo que cada vez que pasa a nivel bajo, que causa una interrupción
sbit LEA = ^ P3 3; / / Este es el pin LEA (por ADC)
sbit LED = ^ 1 P3;
BLANCO sbit = ^ P3 5; / / Estoy utilizando HP 5082-7340 (pantalla) y los espacios en blanco la pantalla cuando este pin va alto
advalue entero sin signo, el valor, j, convertido, k;
scanled (); / / para mostrar el valor de ADC en pantalla HP 5082-7340void main (void) (while (1) (

WRITE = 0; / / Conversión AD;
WRITE = 1;
while (INTR == 1);
delay ();
BLANCO = 1;
P1 = 0xFF; / / declara la P1 como datos de entrada después de la conversión A / D
LEA = 0;

advalue = P1; / / asignación de los bits de entrada (A / D bits) para advalue
LEA = 1;
if (<= addr 0x0014) / * seguir almacenando el bit 8 valores obtenidos de la ADC en dirección a partir del 0x0000 hasta
el S-RAM almacena los datos hasta que llega a la dirección 0x0014 * /
(LED = 1; / / para comprobar si existe alguna conversión (activando el LED)
* = Addr advalue; / / para almacenar los valores en la dirección
LED = 0;
scanled (); / / para mostrar el valor de la señal de entrada de un ADC
delay ();
) / / Para comprobar si existe alguna conversión

else (
LED = 1;
)

delay ();)
)scanled ()
(
unsigned int a [10] = (0xE0, 0xF0, 0xE1, 0xf1, 0xE2, 0xF2, 0xE3, 0xF3, 0xE4, 0xF4); / / Configuración de pantalla 0-9
P1 = 0x00; / / declara P1 como salida
En blanco = 0; / / El blanco se baja para que la pantalla muestra los números de HP
convertidos = (* addr) * (5 / 256); / / Convertir el valor obtenido ADC para que la señal de entrada es entre 0-5V;
P1 = a convertirse% [10]; / / Mostrar el valor en puerto 1;for (j = 0; j <20000; j );
)
demora (void) / / Delay función usando Timer 0 para 50 ms.
(
TMOD & = 0xF0;
TMOD | = 0x01;
ET0 = 0;
TH0 = 0x3C;
TL0 = 0xB0;
TF0 = 0;
TR0 = 1;
while (TF0 == 0);
TR0 = 0;

)¿Podría alguien por favor dígame si hay algo mal en mi código.Gracias.

 
He dado ejemplo para la interfaz ADC0804 con puerto paralelo del ordenador en C. Así que creo que le ayudará.Solía modo de ejecución libre.Para más detalles, véase mi libro de puerto paralelo

MI EXPERIENCIA EN EL PUERTO PARALELO ENTRETELA
lo puede conseguir de yahoo grupos booksbybibin
h ** p: / / groups.yahoo.com / group / booksbybibin /

 

Welcome to EDABoard.com

Sponsor

Back
Top