TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: electronando en 20 de Noviembre de 2004, 20:37:00
-
Que tal amigos del foro la verdad quisiera saber como hacer con el 16f84 un reloj y si es posible un visor de temperatura ,y si se pudiera que aparesca en lcd a solo si fuera posible si no en el 16f877 aunque nunca a parte del proteus no e trabajado conm el invoco a toda la genialidad que en este foro habita para que me den una idea o si no derepente alguien ya lo hizo lo comparta aqui se lo agradecere bastante














a y me olvidaba si se hace en el pbp o pbplus e oido que no es tan exacto como hacerlo en el laborioso asembler?
-
Hola electronando:
Este es un programa en PBP pero solamente es para reloj, es con un LCD que va conectado unicamente al puerto B d un pic 16F84 y utiliza 3 pulsantes conectados a RA0, RA1 y RA2 estos son para configurar hora minuto y segundo...
"Programa para reloj con pic 16f84 y LCD
"Definición de registros del LCD
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 1
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_BITS4
DEFINE LCD_LINES 2
"Declaración de variables
hour var byte
minute var byte
second var byte
update var byte
cnt var word
flag var byte
h var byte
m var byte
s var byte
TRISB=%00001100
TRISA=%00111
OPTION_REG=2
on interrupt goto ISR
pause 1000
lcdout $FE,1,"CONFIGURAR HORA:"
h=0 : m=0 : s=0
strt:
flag=0
while flag=0
if PORTA.0=0 then
pause 500
h=h+1
if h > 23 then
h=0
endif
lcdout $FE,1,"HORA: ", dec2 h
endif
if PORTA.1=0 then
pause 500
m=m+1
if m > 59 then
m=0
endif
lcdout $FE,1,"MINUTO: ", dec2 m
endif
if PORTA.2=0 then
pause 500
s=s+1
if s > 59 then
s=0
endif
lcdout $FE,1,"SEGUNDO: ", dec2 s
endif
if PORTB.2=0 then
TMR0=131
INTCON=$A0
flag=1
hour=h
minute=m
second=s
cnt=0
endif
wend
loop:
if update=1 then
update=0
lcdout $FE,1
lcdout dec2 hour,":",dec2 minute,":",dec2 second
endif
if PORTB.3=0 then
h=hour
m=minute
s=second
INTCON=0
lcdout $FE,1,"CONFIGURAR HORA:"
goto strt
endif
goto loop
disable
ISR:
TMR0=131
cnt=cnt+1
if cnt<979 then noupdate "define el segundo exacto tomando en
update=1 "cuenta el tiempo que se demora en
cnt=0 "realizar las instrucciones 979
second=second+1
if second>59 then
second=0
minute=minute+1
if minute>59 then
minute=0
hour=hour+1
if hour>23 then
hour=0
endif
endif
endif
noupdate:
INTCON.2=0
resume
enable
end
A mi me funciona bien salvo que se me adelanta un poco, hay un bucle en el que se incrementan los segundos, minutos y horas, tienes que probar cual es el mejor tiempo para te hacerques mas a un segundo real.
Si tienes algún problema hazmelo saber.
Saludos desde ECUADOR!!!
LordLafebre
-
detalle suyo lorlafebre le agradesco por la gentileza ahora mismo ire a probarlo ,le queria hacer una pregunta para que e sirve esos de los define que le ponen a los leds o es porque esta asi en el manual o uno lo diseña y eso de lo on interrup la verdad que el manual que tengo en castellano no me convence de donde me aconsejas aprender señor lordlafebre o algun amigo del foro sobre todo estas sentencias que me confunden en verdad pero gracias por lo del rel;oj mira mas arriba elabore un reloj pero que me saliera la hora y los minutos en binario pero no me compla me sale error de compilacion por q sera pues para mi esta bien segun mi logica me etoy volviendo









-
En esta direccion tambien hay un codigo para pic y lcd para un reloj.
http://miarroba.com/foros/ver.php?foroid=8826&temaid=621018&marcar=rutinas+programas
suerte !!
-
Hola Nuevamente:
Con respecto a lo de define lo hago para definir los bits y registros del lcd, en este caso lo estoy definiendo solamente para trabajar con el puerto B, y lo de interupt es para cuando haya una interrupción vaya a un Label y haga cierta acción, en este caso se presentan interrupciones cuando presionas uno de los tres "pulsantes" que tienes conectado en RA0, RA1 y Ra2.
y si quieres un manual en castellano hay en la pagina de todopic:
http://www.todopic.com.ar/pbp_sp.html#introduccion
Hazme saber como te fue y si tienes alguna duda de igual manera.
Saludos desde ECUADOR !!!
LordLafebre
-
le agradesco bastante la deferencia para con este novato en el tema cualquiier diseño se lo hare saber señor lafebre





-
Holas:
Hecho electronando y espero que t sirva para lo que setabas necesitando y no olvides dar una mano a los que tengamos problemas en cosas en las que tu sepas.
Hasta Siempre:
Un saludo desde ECUADOR !!!!
LordLafebre