Академический Документы
Профессиональный Документы
Культура Документы
En este ejercicio vamos a programar un conversor PCF8591 de 8-bit que trabaja en modo
Analgico/Digital o Digital/Analgico segn sea la configuracin. En este caso vamos a
programarlo atravez del PIC18f4550 para que trabaje Analogico/Digital utilizando el Bus I2Cya
que es el medio por donde adquirimos o enviamos la direccin, control y datos del dispositivo.
Para programar el pic y controlar el conversor de manera correcta, lo que debemos hacer es
leer las caracteristicas que nos da el fabricante. Podemos ver que, para trabajar con el Bus
I2C es necesario enviar en Bytes la direccion valida del dispositivo.
Esta direccion consta de una parte fija y una programable. La parte programable se establece
de acuerdo a los bits de los pines A0, A1 y A2 que son las entradas analogicas. El ultimo bit
corresponde a la lectura o escritura de los datos. Esta direccion tiene que ser enviada como
primer byte despues de la condicion de arranque del protocolo I2C i2c_start();.
///////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Marzo 2011
VERSIN: 1.0
// Entorno IDE:
// TARJETA DE APLICACIN:
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
10
///////////////////////////////////////////////////////////////////////////////
11
12
13
///////////////////////////////////////////////////////////////////////////////
//
14
15
///////////////////////////////////////////////////////////////////////////////
16
// CABECERA ///////////////////////////////////////////////////////////////////
17
///////////////////////////////////////////////////////////////////////////////
18
#include <18F4550.h>
19
#fuses INTHS
20
#use delay(internal=8mhz,RESTART_WDT)
21
#use i2c(Master,sda=PIN_B0,scl=PIN_B1,restart_wdt)
22
#include <LCD_flexible.c>
23
24
///////////////////////////////////////////////////////////////////////////////
25
26
///////////////////////////////////////////////////////////////////////////////
27
float lectura;
28
29
///////////////////////////////////////////////////////////////////////////////
30
// FUNCIONES //////////////////////////////////////////////////////////////////
31
///////////////////////////////////////////////////////////////////////////////
32
33
///////////////////////////////////////////////////////////////////////////////
34
// PRINCIPAL //////////////////////////////////////////////////////////////////
35
///////////////////////////////////////////////////////////////////////////////
36
void main()
37
38
lcd_init();
39
lcd_putc("Conversor A/D");
40
i2c_start();
41
42
delay_ms(10);
43
44
delay_ms(10);
45
i2c_start();
46
47
for(;;)
48
49
lcd_gotoxy(1,2);
50
lectura=i2c_read();
51
52
53
54
Una vez hecho el cdigo el siguiente paso ser disear el circuito en Proteus para poder
simularlo y comprobar que funcione correctamente.
Una vez terminado el diseo con proteus, lo siguiente es pasar con Ares. Colocamos los
componentes y cuando tengamos definido las medidas con las que vamos a trabajar, que caras
vamos a usar, que en nuestro caso solo seran dos, la top y la bottom; Una vez definido estos
puntos solo nos quedaria hacer el autorutado de las pistas y ver como queda todo el diseo en
3D.