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.

domingo, 29 de mayo de 2011

FRECUENCIMETRO con LCD

Haremos el famoso frecuencimetro con un pic16f628a y un LCD para visualizar los datos medidos, la instruccion usada es COUNT o contar pulsos en español.
LA DECLARACIÓN COUNT. Sirve para contar el número de pulsos que ingresan por un pin en un determinado tiempo, este a su vez lo guarda en una variable para su posterior procesamiento, la manera de utilizarlo es la siguiente:
        COUNT portb.1,1000,cuenta                                   
Lo interpretamos así: cuenta pulsos a través del puerto B1 en un período de 1000 milisegundos y lo guarda en la variable previamente creada llamada cuenta, el período podemos variarlo de 1 a 65535.
EL  CIRCUITO: 


;EL PROGRAMA

CMCON = 7                                                ;
Puerto A con  In/out  digitales    

Define LCD_DREG PORTB                      ;Rb4-Rb7 conectados
Define LCD_DBIT 4                                   ;al  lcd  D4-D7                             
Define LCD_RSREG PORTA
Define LCD_RSBIT 0                                 ;
Rs del lcd conectado a Ra0
Define LCD_EREG PORTA
Define LCD_EBIT 2                                    ;
E del lcd conectado a  Ra2

cuenta VAR WORD                                    ;variable CUENTA,  de  0  a  65535

inicio:
COUNT portb.0,1000,cuenta                          ;
contar pulsos en el puerto B.0
LCDOUT $FE, 1                                               ;limpiar pantalla LCD
LCDOUT $FE,$82,"Frecuencia:"                   ;cursor centrado en 1era línea
LCDOUT $FE,$C5, DEC cuenta," Hertz"      ;2da línea  sacar el valor
GOTO inicio                                                    ;decimal de la variable cuenta
end

Aqui esta al archivo HEX. lo bajan de este link:
http://www.4shared.com/file/LmBUs1Il/frecuencimetro.html
Para  probar este ckto podriamos implementar un astable con el LM555 y conectar su salida  a la entrada RB0 del pic16f628a, pero ojo, alimentar  solo con 5 voltios DC ambos circuitos.





13 comentarios:

  1. Interesante el proyecto pero solo podemos medir bajas frecuencias, y ademas depende del oscilador que se use, creo q con el pic trabajando a maxima velocidad solo se pueden medir hasta unos 120 Khz; pero el problema biene cuando queremos medir altas frecuencias, ya que en teoria el pic puede medir hasta unos 60Mhz usando el tmr0, y es un poco complicado hacer el codigo en pic basic pero no imposible, yo he llegado a medir hasta unos 10 mhz con una resolucion de 1 hz usando un cristal de 10Mhz, haciendo uso del preescaler y el propio tmr0 y la interrupcion con lo que se consigue un contar hasta los 16777215 Hz; para medir frecuencias mas altas he tenido que insertar rutinas de ensamblador y anular la interrupcion por desbordamiento del tmr0 y usar un artilugio para poder llegar al maximo de medicion factible con el pic unos 50 Mhz.
    Esto no es complicado de hacer en assembler, pero el lenguaje de alto nivel si es engorroso.

    ResponderEliminar
  2. Exactamente ahi estan las ventajas y desventajas del picbasicpro vs assembler, me atrevo a decir que mas son las ventajas del picbasicpro que sus desventajas, pero eso en casos especificos es conveniente usar el asembler por ser el lenguaje nativo de un pic con lo cual se ocupa menos memoria y es mas rapido la ejecucion del programa. en todo caso el picbasic pro permite tambien usar instrucciones en asembler.
    A todo esto tambien tengo una pagina en asembler http://www.proyectoselectronicos1.blogspot.com/
    en donde al final haciendo una comparacion entre estos programas de picbasicpro vs assembler decidi usar mas el picbasic pro por las facilidades de programacion :)

    ResponderEliminar
  3. gracias, por el blogs. quiero ver si alguien me puede ayudar quiero armar un frecuencimetro que cuente hasta 10mhz con picbasicpro, yo uso el microcode estudio plus para generar el .hex bueno dejo mi correo por si alguien del blogs me da una manito

    ce6ugt@gmail.com

    ResponderEliminar
  4. Hola necesito que alguien me mande el Codigo en C del Frecuencimetro con PIC16f628A.

    Gracias, alexaleon13@gmail.com

    ResponderEliminar
  5. Hola amigos!!! estoy comenzando a ontroducirme en el mundo de los PIC, llegue a esta pagina buscando un oscilador con 555, y al ver la posibilidad de facilitar la programacion con PICbasic, quiero preguntar como puedo hacer para comenzar a estudiar este tema? espero su grata ayuda, gracias!!!

    ResponderEliminar
  6. Primero tienes q escoger un lenguaje de programacion para PICs te sugiero el picbasicpro para empezar, y despues aprender a compilar y grabar pìcs.

    ResponderEliminar
  7. una ayuda mario quiero hacer que cuente hasta 20mhz ?? ò mas si se pudiera usando el mismo codigo .asm gracias saludos...

    ResponderEliminar
  8. Hasta cuanto mide en Hz este frecuencimetro, hiciste la prueba? yo porel tiempo no hice eso, me lo comunicas.

    ResponderEliminar
  9. este frecuencimetro solo mide maximo 20 khz, yo mmismo hice las pruebas

    ResponderEliminar
  10. hola que tal, la instruccion count cuanta pulsos pero si detectaa un puslo y despues ejecuta otras instrucciones como sumar pulso o prender led y enseguida regresa a la instruccion count y si aun sigue el mismo pulso este lo contara?? o sabra q es el mismo pulso y no lo contara asta q alla una bajada y subida??.. saludos.

    ResponderEliminar
  11. los pulsos son por un puerto especifico, un solo pin se utiliza para contar. para otros procesos se aplica otro puertos y diferentes pines.

    ResponderEliminar
  12. hola como puedo hacer encender un led con sensor cny70 ayuda

    ResponderEliminar