Autor Tema: RELOJ CON PIC  (Leído 18225 veces)

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

Desconectado psykhon

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 823
Re: RELOJ CON PIC
« Respuesta #15 en: 23 de Enero de 2007, 09:59:43 »
modificalo cuanto te guste helena, lo unico que si lo haces despues pone tu codigo aca asi lo compartis con el resto
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado Helena

  • PIC10
  • *
  • Mensajes: 30
Re: RELOJ CON PIC
« Respuesta #16 en: 23 de Enero de 2007, 18:09:48 »
Hola chicos,

Pues voy a ponerle "cabeza" a este proyecto no se incomoden si pregunto mucho ji ji ji  :lol: los estare  molestando un poquito.


Besos

Helena :g)


Desconectado psykhon

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 823
Re: RELOJ CON PIC
« Respuesta #17 en: 23 de Enero de 2007, 19:16:56 »
metele helena y que te quede bonito
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado mincho

  • PIC12
  • **
  • Mensajes: 81
Re: RELOJ CON PIC
« Respuesta #18 en: 05 de Julio de 2007, 23:16:18 »
Hola Psykhon, Esta muy interesante el reloj para ir aprendiendo rutinas en proton.

Me gustaria simularlo, tienes el esquema???

Un Saludo....

:-/ Saludos  :-/ Desde  :-/ Colombia  :-/

Desconectado zagoaristides

  • PIC12
  • **
  • Mensajes: 99
    • deportes de contacto y fitness
Re: RELOJ CON PIC
« Respuesta #19 en: 09 de Diciembre de 2007, 16:36:06 »
metele helena y que te quede bonito

De verdad estás en ISLANDIA???
Nadie nació sabiendo...Que genio ese Nadie!!!

Desconectado psykhon

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 823
Re: RELOJ CON PIC
« Respuesta #20 en: 10 de Diciembre de 2007, 18:07:46 »
metele helena y que te quede bonito

De verdad estás en ISLANDIA???
nahhh, lo puse porque me recuenda al libro de verne
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
Re: RELOJ CON PIC
« Respuesta #21 en: 11 de Enero de 2008, 11:27:53 »
me uno al proyecto de helena de hacer un reloj con pic, pero si tengo la posibilidad de usar i2c lo hace para asi ir adquiriendo mas experiencias, haa la otra es que siempre he trabajado en picbasicPro pero desde este nuevo año emigrare a proton ya que note que se puedes declarar variables con mas de 16 bit que eso para mi era un problema wen picbasic.

bueno un saludos y desde hoy trabajo en el tema de reloj.

saludos y gracias por la oportunidad que me abristes helena jajajaj no tenia persado hacer un reloj pero no esta demas.
bye
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: RELOJ CON PIC
« Respuesta #22 en: 11 de Enero de 2008, 13:12:16 »
aa si y retomando esto. Aqui esta la rutina que uso para meter la hora en el RTC y visualizarla en el LCD, como en todo encontraran varios bugs o codigo de mas y aun no esta al 100%.

Código: FreeBasic
  1. '****************************************************************
  2. '*  Name    : Persiana.BAS                                      *
  3. '*  Author  : Max Eduardo Reyes Vera Juárez                     *
  4. '*  Notice  : Copyright (c) 2008 Protegido por leyes de autor   *
  5. '*          : All Rights Reserved                               *
  6. '*  Date    : 03/01/2008                                        *
  7. '*  Version : 1.0                                               *
  8. '*  Notes   :                                                   *
  9. '*          :                                                   *
  10. '****************************************************************
  11. device  = 16f88
  12. ansel   = 0       ' Salidas Digitales
  13. osctune = 0       ' Frecuencia Media
  14. osccon  = 126     ' %01111110  Oscilador Interno a 8MHZ
  15.  
  16. trisb   = %00001100
  17. trisa   = %00100000
  18. CLEAR PORTA
  19. CLEAR PORTB
  20. declare lcd_type alpha
  21. declare lcd_interface 4    ' LCD a 4 Bits
  22. declare lcd_lines     2    ' LCD 2 Filas
  23. DECLARE LCD_DTPIN PORTB.4  ' PORTB4-7 Salidas del LCD
  24. DECLARE LCD_ENPIN porta.2  ' RA6 Pin E LCD
  25. declare lcd_rspin porta.3  ' RA7 PIN RS LCD
  26.  
  27. declare sda_pin porta.0    ' PIN SDA I2C RTC
  28. declare scl_pin porta.1    ' Pin SCL I2C RTC
  29. declare slow_bus true      ' Bus Lento para I2C
  30.  
  31. symbol ctrl = 1            ' Constante para el flasheo de 1 segundo
  32.  
  33. dim ssec as byte           ' Variables para la configuracion del RTC
  34. dim smin as byte
  35. dim shor as byte
  36. dim swek as byte
  37. dim smon as byte
  38. dim sday as byte
  39. dim sano as byte
  40. dim rsec as byte
  41. dim rmin as byte
  42. dim rhor as byte
  43. dim rwek as byte
  44. dim rmon as byte
  45. dim rday as byte
  46. dim rano as byte
  47. dim d2hex as byte
  48. dim lsb   as byte
  49. dim msb   as byte
  50.  
  51. dim i as byte             ' Variable comodin
  52.                                                    
  53. dim bt1 as portb.3        ' Botones de Configuracion
  54. dim okk as portb.2
  55. dim cfg as porta.4
  56.                          
  57. dim izq as portb.1        ' Salidas a L293D
  58. dim der as portb.0
  59.  
  60.  
  61. delayms 1000              ' Pausa para LCD
  62.  
  63.  If cfg=1 then
  64.   gosub ConfRTC
  65.  else
  66.   Gosub NormalOP
  67.  endif
  68.  
  69. ConfRTC:
  70. shor=0
  71. smin=0
  72. ssec=0
  73. sday=0
  74. smon=0
  75. sano=0
  76.  
  77. h:
  78.  print $FE,1, " Ingrese Hora"
  79.  print $FE,$C0, dec shor, " Hora"
  80.  if bt1=1 then                        ' Ingresamos Hora
  81.   gosub pausa
  82.    if bt1=1 then
  83.     shor=shor+1
  84.     print $FE,$C0, dec shor, " Hora"  
  85.    endif
  86.  endif  
  87.  
  88.  IF SHOR>23 THEN SHOR=0 ENDIF
  89.  
  90.  if okk=1 then
  91.   D2HEX=shor  
  92.   gosub dec2hex
  93.   SHOR=d2hex
  94.   gosub save
  95.   goto m
  96.  endif
  97. gosub P2
  98. goto h  
  99.  
  100. m:
  101.  print $FE,1, "Ingrese minutos"
  102.  print $FE,$C0, dec smin, " mins"
  103.  if bt1=1 then                        ' Ingresamos Minutos
  104.   gosub pausa
  105.    if bt1=1 then
  106.     smin=smin+1
  107.     print $FE,$C0, dec smin, " mins"  
  108.    endif
  109.  endif  
  110.  
  111.  IF SMIN>59 THEN SMIN=0 ENDIF
  112.  
  113.  if okk=1 then
  114.   D2HEX=sMIN  
  115.   gosub dec2hex
  116.   SMIN=d2hex
  117.   gosub save
  118.   goto S1
  119.  endif
  120. gosub P2
  121. goto m
  122.  
  123. S1:
  124.  print $FE,1, "Ingrese Segundos"
  125.  print $FE,$C0, dec ssec, " segs"
  126.  if bt1=1 then                        ' Ingresamos Segundos
  127.   gosub pausa
  128.    if bt1=1 then
  129.     ssec=ssec+1
  130.     print $FE,$C0, dec ssec, " segs"  
  131.    endif
  132.  endif  
  133.  
  134.  IF SSEC>59 THEN SSEC=0 ENDIF
  135.  
  136. if okk=1 then
  137.   D2HEX=sSEC  
  138.   gosub dec2hex
  139.   SSEC=d2hex
  140.   gosub save
  141.   gosub d1
  142.  endif
  143. gosub p2
  144. GOSUB S1
  145.  
  146. d1:
  147. print $FE,1, "Ingrese Dia"
  148.  print $FE,$C0, dec sday
  149.  if bt1=1 then                        ' Ingresamos Dia
  150.   gosub pausa
  151.    if bt1=1 then
  152.     sday=sday+1
  153.     print $FE,$C0, dec sday  
  154.    endif
  155.  endif  
  156.  
  157.  IF Sday>31 THEN Sday=1 ENDIF
  158.  
  159. if okk=1 then
  160.   D2HEX=sday  
  161.   gosub dec2hex
  162.   Sday=d2hex
  163.   gosub save
  164.   gosub m1
  165.  endif
  166. gosub p2
  167. GOSUB d1
  168.  
  169. m1:
  170.  print $FE,1, "Ingrese mes"
  171.   print $FE,$C0, dec smon
  172.  if bt1=1 then                        ' Ingresamos Mes
  173.   gosub pausa
  174.    if bt1=1 then
  175.     smon=smon+1
  176.     print $FE,$C0, dec smon  
  177.    endif
  178.  endif  
  179.  
  180.  
  181.  IF Smon>12 THEN Smon=1 ENDIF
  182.  
  183. if okk=1 then
  184.   D2HEX=smon  
  185.   gosub dec2hex
  186.   Smon=d2hex
  187.   gosub save
  188.   gosub w1
  189.  endif
  190. gosub p2
  191. GOSUB m1
  192.  
  193. w1:
  194.  print $FE,1, "Ingrese Año"
  195.   print $FE,$C0, dec sano
  196.  if bt1=1 then                        ' Ingresamos Año
  197.   gosub pausa
  198.    if bt1=1 then
  199.     sano=sano+1
  200.     print $FE,$C0, dec sano  
  201.    endif
  202.  endif  
  203.  
  204.  IF Sano>99 THEN Sano=0 ENDIF
  205.  
  206. if okk=1 then
  207.   D2HEX=sano  
  208.   gosub dec2hex
  209.   Sano=d2hex
  210.   gosub save
  211.   gosub writertc
  212.  endif
  213. gosub p2
  214. GOSUB w1
  215.  
  216. WriteRTC:                              '*************Escribimos el RTC*******************
  217.  
  218. busout $D0,$00,[ ssec,  smin, shor,swek,  sday, smon, sano,ctrl]
  219. print $FE,1, "Configurando..."
  220. delayms 750
  221. Date:
  222. Print $FE,1, " Hora/Fecha ok? "    
  223. busin $D0,$00,[rsec,rmin,rhor,rwek,rday,rmon,rano]
  224.                                       ' Fecha y Hora OK? si NormalOP no repetimos configuracion
  225. print $FE,$C0,  hex rhor,":", hex RMIN,":", hex RSEC
  226.  
  227. gosub Pausa
  228.  
  229.  if okk=1 then NormalOP
  230.  if bt1=1 then confrtc
  231. goto date
  232.  
  233. Save:
  234.  Print $FE,1, "Guardado"          ' subrutina de msj guardado
  235.  delayms 750
  236. return
  237.  
  238. Pausa:                            ' pausa 50mS
  239.  delayms 50
  240. return
  241.  
  242. P2:                               ' Pausa 300mS
  243. delayms 300
  244. return
  245.  
  246. Dec2Hex:
  247.    lsb=d2hex//10                                'obtener lsb
  248.    msb=d2hex/10                                 'obtener msb
  249.    d2hex=msb*16                                 'convertir msb a bcd
  250.    d2hex=d2hex+lsb                              'juntar msb hex y lsb
  251. return
  252.  
  253.    
  254. NormalOP:
  255.  
  256.  busin $D0,$00,[rsec,rmin,rhor,rwek,rday,rmon,rano]
  257.  print $FE,1,  shex2 rhor,":", shex2 RMIN,":", shex2 RSEC
  258.  print $FE,$C3,  shex2 rday,"/", shex2 rmon,"/20", shex2 Rano
  259.  IF RHOR=$03 AND RMIN=$06 AND RSEC=$10 THEN
  260.   GOSUB BLINK
  261.   ENDIF  
  262.  delayms 100
  263. goto normalop
  264.  
  265. BLINK:
  266. FOR I=0 TO 10
  267.    HIGH PORTB.0:HIGH PORTB.1
  268.    GOSUB P2
  269.    LOW PORTB.0: LOW PORTB.1
  270.    GOSUB P2
  271.   NEXT
  272. RETURN

La fecha es la que me anda dolores de cabeza. 

PD. Olvide el pantallazo.


       


« Última modificación: 11 de Enero de 2008, 14:14:24 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: RELOJ CON PIC
« Respuesta #23 en: 12 de Enero de 2008, 05:20:04 »
¿Qué compilador es ese Navaismo?
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado doppel

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1536
Re: RELOJ CON PIC
« Respuesta #24 en: 12 de Enero de 2008, 11:58:23 »
eso es protón  :-)
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
Re: RELOJ CON PIC
« Respuesta #25 en: 05 de Febrero de 2008, 06:25:30 »
¿Qué compilador es ese Navaismo?


por lo que veo es compilador es mikrobasic
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: RELOJ CON PIC
« Respuesta #26 en: 05 de Febrero de 2008, 13:53:18 »
¿Qué compilador es ese Navaismo?


por lo que veo es compilador es mikrobasic

No, no es Mikrobasic, como bien ha dicho Hernan el compilador es PROTON
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
Re: RELOJ CON PIC
« Respuesta #27 en: 08 de Febrero de 2008, 17:45:11 »
Hola buenas tardes como les va les comento que no me habia iniciado con el proyecto del reloj por no disponer de un ds1307 y su respectivo cristal ya por fin me llego y desde hoy empieso el codigo para dicho proyecto el cual ya tengo una dudas pero aun no consigo una buena datasheets explicativa del ds1307 y alguien dispone de una lo mas explicativa posible se lo agradesco como por ejemplo que me explique la parte de control para el protocolo i2c usado con el ic reloj ya que asumo que no es como las eeprom de la serie 24cxxx.

haa la otra duda que tengo es como configurar el reloj por lo pco que vi se que tiene los pines de i2c mas su respectiva alimentacion (Vcc y Gnd) pero aparte tiene un voltaje de bateria el cual es de 3 volt maximo. bueno muchas dudas de momento mejor me documento un poco y les comento pero manos a la obra y helana no te dejes ganar conmigo usted comenso primero asi que es un reto es broma pero espero que aprendamos mucho en este codigo del reljo y que lo manipuulemos hasta con calendario.

saludos y quedo a sus comendarios de tenerlos
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: RELOJ CON PIC
« Respuesta #28 en: 08 de Febrero de 2008, 18:18:56 »
MIra segun yo lo poco que entendi y basto para configuararlo es:

Que este bicho trabaja bajo I2C -eso ya lo sabes-, que necesita el crystal de 32.xxxx para que funcione bien -Tambien ya lo sabes-, que la bateria que tiene es para que no pierda los datos a pesar de que el circuito no este energizado.

Y lo "importante" es que trabaja con datos Hexadecimales para leer y escribir; porlo que hay que direccionarlos asi. Que en las posiciones de memoria se encuentran como configurar MES DIA AÑO etc, por eso en el codigo cuando ponemos:

Código: FreeBasic
  1. busout $D0,$00,[ ssec,  smin, shor,swek,  sday, smon, sano,ctrl]

Le decimos que ne la direccion $D0 que corresponde al RTC, y comenzando con la direccion 00 escribiremos los datos que se ven en el argumento.


Y a "grosso modo" es lo que te podria decir de manera digerida.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado ASTROCAR

  • PIC24F
  • *****
  • Mensajes: 666
Re: RELOJ CON PIC
« Respuesta #29 en: 08 de Febrero de 2008, 19:06:52 »
Listo men que bueno, doy mi manera de ver las cosas ahora,  primero en cuando a la bateria es para que el ic no pierda la configuracion de la hora asi se desconecte del pic pero aun sigue una duda porque asuves tiene que estar los 5 voltis o es que el ic el mismo reconoce con cual alimentacion trabajar si el ve que le quitaron los 5 voltios entonce trabaja con la bateria de 3volt ejemplo que este funcionando copn una fuente que este a la red de 120vac y se corte el suministro de energia entonce el pasa a trabajar con la bateria de 3 voltios eso es mi gran duda en esa parte porque la bateria y los 5 voltios de una fuente extena. cosa que lo puedo averiguar en la practica.

Lo otro que entendi es que el protoco i2c para el ds1307 usa como control $D0=bin11010000 y para direccionar los parametros de seg, min, hor y esas cosas comienza desde cero cosa que me lo dira mejor una buena datasheets del ds1307.

Eso fue lo que maneje con su explicacion haaa y previamente tengo que configurar el reloj para para que es sepa desde que hora y segundo y minutos empezar a trabajar.

bueno saludos y en lo que este en la practica creo que aclarare mas mis dudas.
EL APRENDER ES NADA; MEJOR ES COMPARTIR EL APRENDIZAJE


 

anything