TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: edbaci en 26 de Noviembre de 2008, 13:25:26

Título: RELOJ CON DISPLAY ++++++++++++++++++++++++
Publicado por: edbaci en 26 de Noviembre de 2008, 13:25:26
HOLAS, ESTUVE VIENDO ESTE CODIGO QUE MUESTRA LA HORA (HH:MM) EN 4 DISPLAY CON PIC16F628A, BUENO LO HE IMPLEMENTADO EN PROTEUS PERO NO MUESTRA LO KE DEBE Y TAMBIEN ME PUEDEN AYUDAR A  ENTENDER  ESTE CODIGO??, KE SIGNIFICA LookUp(...), y cómo  funciona?.
A demás mi duda es, si este codigo va a funcionar para mostrar la HH:MM.
Adjunto archivo de proteus y el .hex
Gracias


'-----CONFIGURAMOS PUERTOS----------
AllDigital  'Todos los pines del PORTA como E/S

'Configuro el PORTA:
TRISA.0 = 0
TRISA.1 = 0
TRISA.2 = 0  'DATA7 HH:MM
TRISA.3 = 0  'CLOCK7 HH:MM
TRISA.4 = 0
TRISA.5 = 0

'Configuro el PORTB:
TRISB.0 = 1  'Entrada pulsos del DS1307
TRISB.1 = 0  'Salida, LEDs ":" en display "HH:MM"
TRISB.2 = 0  'pin SCA del DS1307
TRISB.3 = 0  'pin SCL del DS1307
TRISB.4 = 1  'Entrada Pulsador 1
TRISB.5 = 1  'Entrada Pulsador 2
TRISB.6 = 1  'Entrada Pulsador 3
TRISB.7 = 1  'Entrada Pulsador 4

'SIMBOLOS
Symbol clock7 = PORTA.3
Symbol data7 = PORTA.2

'VARIABLES
Dim i As Byte
Dim col As Byte
Dim aux As Byte
Dim aux1 As Byte
Dim hora As Byte
Dim minu As Byte

'Limpio el contenido del registro de desplazamiento
'escribiendo 32 "0" seguidos:
For i = 1 To 32
      data7 = 0
      clock7 = 0
      clock7 = 1
Next i

'Esta rutina muestra HH:MM
muestro_hhmm:
   'Muestro las decenas de las horas
   aux1 = hora / 10
   aux = LookUp(175, 40, 157, 188, 58, 182, 183, 46, 191, 190), aux1
   Gosub escribo

   'Muestro las unidades de las horas
   aux1 = hora - (hora / 10) * 10
   aux = LookUp(175, 40, 157, 188, 58, 182, 183, 46, 191, 190), aux1
   Gosub escribo

   'Muestro las decenas de los minutos
   aux1 = minu / 10
   aux = LookUp(175, 40, 157, 188, 58, 182, 183, 46, 191, 190), aux1
   Gosub escribo

   'Muestro las unidades de los minutos
   aux1 = minu - (minu / 10) * 10
   aux = LookUp(175, 40, 157, 188, 58, 182, 183, 46, 191, 190), aux1
   Gosub escribo
Goto muestro_hhmm
End                                               

escribo:
For col = 1 To 8
      'Si el bit es "0", escribo un "0".
      If aux.0 = 0 Then
         data7 = 0
         clock7 = 0
         clock7 = 1
      Else
      'Si el bit es "1", escribo un "1".
         data7 = 1
         clock7 = 0
         clock7 = 1
      Endif
      'Paso al bit siguiente
      aux = ShiftRight(aux, 1)
Next col
Título: Re: RELOJ CON DISPLAY ++++++++++++++++++++++++
Publicado por: doppel en 26 de Noviembre de 2008, 14:02:15
Hola edbaci

Primero que nada te recomiendo que no escribas en Mayúsculas, no está permitido, para estar al tanto de las reglas del foro (http://www.todopic.com.ar/foros/index.php?action=globalAnnouncements;id=1) te sugiero que las leas con atención.-

Con respecto a tu consulta sobre LOOK UP , abunda mucha info en el foro sobre esto solo tienes que utilizar el buscador o leer el manual del compilador que utilizas donde está todo bien detallado, te dejo un enlace a un ejemplo de look up y su explicación  :-)

LOOK UP sintaxis y uso (http://www.todopic.com.ar/foros/index.php?topic=22618.40)

saludos

Hernán
Título: Re: RELOJ CON DISPLAY ++++++++++++++++++++++++
Publicado por: electronando en 27 de Noviembre de 2008, 00:20:14
Talcomo ves en el enlace dado por Doopel , falta un indice o puntero , me parece que esta la aplicado en el programa que pusistes , ademas ten en cuenta que al usar multiplexacion de displays es posible que el proteus no lo haga como debe ser aun estando bien el programa pues los displays usando multiplexacion no puede hacer ese efecto visual que sucede en la realidad , a algunos le funciona pero es porque dieron con un tiempo que el simulador acepta o algo asi .