Autor Tema: como hacer un reloj en pbp o pbplus  (Leído 3413 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
como hacer un reloj en pbp o pbplus
« 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 FlashdesquiciadoFlashdesquiciadoFlashdesquiciadoFlashdesquiciadoFlashdesquiciadoFlashdesquiciadoFlashdesquiciado
 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?

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: como hacer un reloj en pbp o pbplus
« Respuesta #1 en: 21 de Noviembre de 2004, 13:28:00 »
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 Sonrisa Gigante

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
RE: como hacer un reloj en pbp o pbplus
« Respuesta #2 en: 21 de Noviembre de 2004, 19:04:00 »
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 locolocolocolocolocolocolocolocolocoloco

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: como hacer un reloj en pbp o pbplus
« Respuesta #3 en: 22 de Noviembre de 2004, 15:43:00 »
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 !!Sonrisa Gigante
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: como hacer un reloj en pbp o pbplus
« Respuesta #4 en: 24 de Noviembre de 2004, 13:45:00 »
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 !!!

LordLafebreSonrisa Gigante

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
RE: como hacer un reloj en pbp o pbplus
« Respuesta #5 en: 24 de Noviembre de 2004, 21:13:00 »
le agradesco bastante la deferencia para con este novato en el tema cualquiier diseño se lo hare saber señor lafebre SonrisaSonrisaSonrisaSonrisaSonrisaSonrisa

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: como hacer un reloj en pbp o pbplus
« Respuesta #6 en: 26 de Noviembre de 2004, 21:35:00 »
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 Sonrisa Gigante