Autor Tema: hacer funcionar 5 salidas comandadas por 5 pulsadores con una condicion  (Leído 25930 veces)

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

Desconectado ubvredes

  • PIC10
  • *
  • Mensajes: 4
Re: hacer funcionar 5 salidas comandadas por 5 pulsadores con una condicion
« Respuesta #90 en: 17 de Abril de 2012, 19:46:15 »
Saludos nuevamente, he podido resolver el punto numero 1 y el numero2. Aun estoy en el punto numero 3, no he logrado que cuando le dé click se ponga en "on", y cuando le dé click nuevamente en el puslador se coloque en "off". Todo esto debe visualizarse en el lcd.


gracias

Desconectado bigluis

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 511
    • Tutoriales de Qt C++
Re: hacer funcionar 5 salidas comandadas por 5 pulsadores con una condicion
« Respuesta #91 en: 17 de Abril de 2012, 20:47:14 »
Prueba a cambiar estas líneas

Código: [Seleccionar]
Print At 3,-3, "led1 :  ON -OFF- "
Print At 4,-3, "led2 : -ON- OFF "

por estas

Código: [Seleccionar]
Lcd_Out(3,3,"led1 :  ON -OFF- ")   
Lcd_Out(3,4,"led2 : -ON- OFF ")

Si no me equivoco eso te esta dando errores
« Última modificación: 17 de Abril de 2012, 20:54:37 por bigluis »
Tutoriales de Qt C++

No es necesario que hagamos Grandes cosas, sino que lo que hagamos sea importante.

SI la NECESIDAD es la MADRE del CONOCIMIENTO, SEGURAMENTE la PEREZA su TÍA.

Cuando el ARTE requiere de PRECISION le llamamos CIENCIA

Desconectado ubvredes

  • PIC10
  • *
  • Mensajes: 4
Re: hacer funcionar 5 salidas comandadas por 5 pulsadores con una condicion
« Respuesta #92 en: 17 de Abril de 2012, 21:05:13 »
De hecho no tenbgo errores en la compilacion, y cuando lo simulo en proteus en mi circuito; me enciende cuando presiono una vez y me muestra el led que enciendo en el lcd. Pero cuando le doy click nuevamente en el pulsador no me cambia a "off" y tampoco se apaga el led. La unica forma que me cambie es que presione otro pulsador.

este es el codigo que tengo ahora.


Device =16F877
Xtal = 4

Dim sec As Byte

Dim aux As Byte
     
TRISA.0=1
TRISA.1=1
TRISA.2=1

TRISB.0=0
TRISB.1=0
TRISB.2=0

Symbol uno=PORTA.0
Symbol dos=PORTA.1
Symbol tres=PORTA.2
Symbol led0=PORTB.0
Symbol led1=PORTB.1
Symbol led2=PORTB.2

Input PORTA
Output PORTB

 LCD_DTPin = PORTD.4
 LCD_RSPin = PORTD.2
 LCD_ENPin = PORTD.3
 LCD_Interface = 4
 LCD_Lines = 2
 LCD_Type = 0
 
All_Digital = On

TRISB=0
 pantalla:
    Cls
    Print At 2,1, "led0 : ON  OFF "
    Print At 3,-3, "led1 : ON  OFF "
    Print At 4,-3, "led2 : ON  OFF "
 

inicio:

If PORTA=0 Then
   
   ElseIf uno=0 And dos=0 And tres=0 Then
            GoTo inicio
   
    ElseIf uno=1  And dos=0 And tres=0 Then       
             GoTo op1
           
            ElseIf uno=0 And dos=1 And tres=0 Then
                    GoTo op2
     
                ElseIf uno=0 And dos=0 And tres=1 Then
                        GoTo op3 
 EndIf



conteo:
PORTA= 1
   
   
  While PORTA=0        'mientras no presionen ningun pulsador el PIC se mantendra en este bucle, hasta que se presionen alguno de ellos
   Wend             
   DelayMS 40         'Tiempo necesario para evitar rebotes     
   aux = PORTA '^ aux    'recordemos que 1 xor 1=0, 0 xor 1 = 1 y 0 xor 0 = 0, se encenderian los pines que estan apagados y apagaria los encendidos.
                        'es decir al presionar un pulsador se produce un cambio de estado en las salidas
   If (aux.0+aux.1+aux.2)=3 Then
                         'Contamos cuantas salidas deberian estar activas, si son menos de 2.
      PORTB=aux         'En el puerto B se encenderan los pines necesarios
   Else                 'de lo contrario
     aux=PORTB         'se guradara el estado anterior de PORTB en aux
   End If
   While PORTA<>0       'El PIC se mantendra en este bucle hasta que se suelten todos los pulsadores.
   Wend





 
op1:                         
     PORTB.0=1
     PORTB.1=0
     PORTB.2=0 
    Print At 2,1, "led0:-ON- OFF "
    Print At 3,-3, "led1 : ON -OFF-"
    Print At 4,-3, "led2 : ON -OFF-"
    DelayMS 200
    GoTo inicio

op2:                         
     PORTB.0=0
     PORTB.1=1
     PORTB.2=0
     
    Print At 2,1, "led0: ON  OFF "
    Print At 3,-3, "led1:-ON- OFF "
    Print At 4,-3, "led2 : ON -OFF-"
    DelayMS 200
 
   GoTo inicio
   
   
op3:                         
     PORTB.0=0
     PORTB.1=0
     PORTB.2=1
     
    Print At 2,1, "led0 : ON -OFF- "
    Print At 3,-3, "led1 : ON -OFF- "
    Print At 4,-3, "led2 :-ON- OFF "
    DelayMS 200
     
     
  GoTo inicio