# Programar con MicroCode Studio 4 entradas analogas en 16f877



## josb86 (Nov 8, 2008)

Buenas yo de nuevo, quisiera su ayudaran con algo hace rato encontré un programa llamado  MicroCode Studio. Y encontré en tu pagina que ya lo han utilizado para programar el problema es que no se encuentra mucha información sobre este soft y lo que he hecho es tomar pedazos de los ejemplos que vienen con el programa al instalar. Lo que estoy haciendo es tratar de colocar 4 sensores en un PIC 16f877 pero hasta ahora solo me funciona uno solo quería saber si me podían ayudar con los comandos necesarios para poder colocar los 4 sensores. Se los agradecería inmensamente.

Aquí les dejo el programa que llevo hasta ahora para ver si me dicen como completarlo


```
Define	LCD_DREG	PORTD
Define	LCD_DBIT	4
Define	LCD_RSREG	PORTE
Define	LCD_RSBIT	0
Define	LCD_EREG	PORTE
Define	LCD_EBIT	1

' Define ADCIN parameters
Define	ADC_BITS	   8	' Set number of bits in result
Define	ADC_CLOCK	   3	' Set clock source (3=rc)
Define	ADC_SAMPLEUS  50	' Set samplificadorng time in uS

   adval	var	word		    ' Create adval to store result
   TRISA = 255	' Set PORTA to all input   %11111111
   ADCON1 = %00000010 	' Set PORTA analog  %00000010
   
   Low PORTE.2		    ' LCD R/W line low (W)
   Pause 500		    ' Wait .5 second

' inicio del sistema

   LCDOUT $fe, 1
   LCDOUT "inicio del" 
   LCDOUT $FE, $C0
   LCDOUT "sistema"
   PAUSE  600
   LCDOUT $fe, 1
   LCDOUT "Hola Jose"
   PAUSE 1200
   LCDOUT $fe, 1
   
loop:
   adcin 0, adval		        ' Read channel 0 to adval
   Lcdout $fe, 1		        ' Clear LCD
   lcdout  "Temp: ", DEC adval
   LCDOUT "C"
   pause 100
   goto loop
   
   End
```


----------



## Moyano Jonathan (Nov 8, 2008)

en basic no he programado nada , pero te puedo llegar a dar una mano en C de ccs


----------



## Ardogan (Nov 8, 2008)

Nunca usé el microcode studio, pero veo que falta algo si querés muestrear más de una entrada analógica.
El conversor AD del pic solo admite una entrada a la vez. Para configurarlo hace falta decirle que entradas del pic van a actuar como entradas analógicas (los bits PCFGx ) y también hace falta configurar que entrada analógica de las que definimos como posibles va a estar realmente conectada al conversor a través de los bits  CHSi.

En el loop principal veo que se lee el conversor con



> adcin 0, adval ' Read channel 0 to adval



Aparentemente (digo porque no uso el microCode) siempre se lee el canal 0 (AN0).
Si en lugar de eso pones algo como


```
adcin IndiceCanal, adval
----resto del código
----y justo antes de terminar el loop
IndiceCanal= (IndiceCanal+1) modulo 4
goto loop
```

te tendría (supongo) que ir leyendo las entradas AN0, luego en el siguiente ciclo AN1, en el otro AN2, luego AN3 y reinicia en el siguiente otra vez con AN0. 
Lo que va a pasar es que cambiaría muy rápido de una lectura a otra, vas a tener que meter retardos...

Bueno, a ver como te va. 

Saludos


----------



## josb86 (Nov 12, 2008)

ya logre programarlos muchas gracias era un pequeño error , pero ya funciona


----------



## Jeikir (Abr 2, 2012)

josb86 dijo:


> ya logre programarlos muchas gracias era un pequeño error , pero ya funciona



Disculpa podrias decirme que lcd usaste lo que pasa es que yo estoy haciendo algo similar con un sensor pero el lcd que compre al parecer no es compatible podrias decirme cual usuaste tu?


----------



## D@rkbytes (Abr 3, 2012)

Jeikir dijo:


> Disculpa podrias decirme que lcd usaste lo que pasa es que yo estoy haciendo algo similar con un sensor pero el lcd que compre al parecer no es compatible podrias decirme cual usuaste tu?


Saludos, si te fijas, este post es del 2008.
Pero mira, la mayoria de los proyectos que se describen en los foros,
usan el clasico display LCD 16x2 basado en el controlador Hitachi HD44780





Es cosa de que busques el datasheet de tu display y veas si es compatible.

Suerte y hasta luego.


----------

