AMIGOS

Hacemos toda clase de trabajos con microcontroladores PIC, comunicarse a proyectoselectronicos_@hotmail.com.

Vendo grabadores de PIC puerto serial con zocalo ZIF a 35 soles, este precio no incluye el envio a todo el Peru.

miércoles, 30 de noviembre de 2011

3 TERMOMETROS CON PIC16F877A

Hola amigos esta vez haremos uso de 3 conversores analogicos del pic16f877a de los 8 que posee este pic, de sensor emplearemos 3 lm35 en cada entrada en Ra0 Ra1 y Ra3 y para mostrar el resultado empleamos un LCD de 2*16


;EL PROGRAMA

DEFINE LCD_DREG PORTB             ;bit de datos del LCD empezando
DEFINE LCD_DBIT 0                         ;por B.0, B.1, B.2 y B.3
DEFINE LCD_RSREG PORTB           ;bit de registro del LCD conectar
DEFINE LCD_RSBIT 5                       ;en el puerto B.5
DEFINE LCD_EREG PORTB              ;bit de Enable conectar en el
DEFINE LCD_EBIT 4                          ;puerto B.4

s1 VAR BYTE                                     ;variable para almacenar sensor1
s2 VAR BYTE                                     ;variable para almacenar sensor2
s3 VAR BYTE                                     ;variable para almacenar sensor3
ADCON1 =%100                                ;configura PortA 0,1, 3 en conversores A/D

Inicio:
PAUSE 300
medicion1:
ADCON0 =%1000001                    ;activar canal 0 a Fosc/8
GOSUB medir
s1= ADRESH
medicion2:
ADCON0 =%1001001                    ;activar canal 1 a Fosc/8
GOSUB medir
s2= ADRESH
medicion3:
ADCON0 =%1011001                    ;activar canal 3 a Fosc/8
GOSUB medir
s3= ADRESH
LCDOUT $fe, 1," T1 T2 T3"           ;limpiar LCD y sacar texto
LCDOUT $fe,$c1,#s1                     ;casilla 1 el valor decimal de s1
LCDOUT $fe,$c6,#s2                     ;casilla 7 el valor decimal de s2
LCDOUT $fe,$cb,#s3                     ;casilla 12 el valor decimal de s3
GOTO inicio

medir:                                               ;subrutina para leer el conversor A/D
PAUSEUS 50                                  ;pausa para setear el canal
ADCON0.2 = 1                               ;iniciar conversión
PAUSEUS 50                                  ;pausa para la conversión
RETURN                                         ;retornar al GOSUB que lo envió
END
 
 




9 comentarios:

  1. funciona bien gracias.

    ResponderEliminar
  2. oye que onda lo ocupo en mplab y no me funciona debo cambiar algo o agregar algo mas?

    ResponderEliminar
  3. Para compilarlo (crear el archivo HEX.) lo tienes que hacer con el microcode studio que es un compilador para picbasic, el mplab es para compilar progemas en asembler

    ResponderEliminar
  4. Oies enbes de darme la temperatura q aparece en el LM35, me aparece pero la mitad

    ResponderEliminar
  5. mejor lo pruebas en protoboard, por que simulandolo no creoq q te de el resultado exacto.

    ResponderEliminar
  6. Hola me gustaria probarlo en el proto, pero tengo una duda, es necesario crear la rutina de inicializacion para la lcd. Es que se me hace tan facil que no puedo creer que valla a funcionar. ¿Apoco con solo estas instrucciones funciona realmente en un pic real?

    ResponderEliminar
  7. Esa es la ventaja de usar lenguajes para pics avanzados,las rutinas de inicializacion de lcds ya estan inmersas dentro del mismo lenguaje picbasic, si no crees prueba o simulalos y convencete.

    ResponderEliminar
  8. espero que leas esto funcionara con un 16f887 que es basicamente lo mismo que el 77a pero sin ocilador externo ?

    ResponderEliminar
  9. El pic16f877a no tiene oscilador interno por eso usa el cristal externo, ahora si el pic16f887 tiene oscilador interno hay que configurarlo y lo puedes usar sin cristal externo

    ResponderEliminar