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.
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.





