TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado 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
-
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
-
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 .