Autor Tema: Problema con Leds y un solo pulsador  (Leído 4828 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Problema con Leds y un solo pulsador
« Respuesta #15 en: 04 de Enero de 2014, 14:21:53 »
He quitado el Include del SeUp de la placa EBbasic.
Se le ha eliminado la configuración del display y del puerto serie.
Solo he dejado la configuración de los pin I/O y del reloj interno.
Como el micro no es el mismo que el tuyo tienes que reconfigurar los fuses, los pin de entrada y los de salida.
Y si cambias los pin en las etiquetas (symbol) no tienes que tocar el resto del programa.

Código: [Seleccionar]
'**********************************************************************************
'Programa de ejemplo para trabajar con led y teclas
'Placa PicEBasic, 01/2014
'Basic Pic Simulator IDE (PSI), v6.96_04, Pic16F88
'**********************************************************************************
'----------------------------------------------------------------------------------
Define CONF_WORD = 0x2f50
Define CONF_WORD_2 = 0x3ffc
Define CLOCK_FREQUENCY = 8  'Oscilador a 8Mhz
'Define SIMULATION_WAITMS_VALUE = 1  'Activar para simulación
'-----------------------------------------
AllDigital  'Los pin I/O digitales
OSCCON = 0x7e  'Reloj interno a 8Mhz
TRISA = 0x00  'Puerto A como salidas
TRISB = 0x00  'Puerto B como salidas
TRISA.6 = 1  'Como entrada (RA6, tecla S1)
TRISA.5 = 1  'Como entrada (RA5, tecla S2)
'-----------------------------------------
WaitMs 1000  'Pausa de 1 Seg.
'-----------------------------------------
Symbol ledv = RB0  'Etiqueta al led verde
Symbol leda = RA7  'Etiqueta al led amarillo
Symbol tecla1 = RA6  'Etiqueta a la tecla S1
Symbol tecla2 = RA5  'Etiqueta a la tecla S2
Const ledon = 0  'Led encendido
Const ledoff = 1  'Led apagado
Const teclaon = 0  'Tecla pulsada

ledv = ledoff  'Led verde a Off
leda = ledoff  'Led ambar a Off

Dim flag As Bit  'Bandera de control, establece el turno del led
flag = 0  'Bit a cero

'Rutina principal
void_main:

If tecla2 = teclaon And flag = 0 Then Gosub led1  'Si se cumple, salto con retorno a Led1
If tecla2 = teclaon And flag = 1 Then Gosub led2  'Si se cumple, salto con retorno a Led2

Goto void_main
End                                              
'Rutina para el control del parpadeo led1
led1:
ledv = ledon  'Pin RA1 a estado alto
WaitMs 500  'Pausa de medio segundo
ledv = ledoff  'Pin RA1 a estado bajo
WaitMs 300
Toggle flag  'Invierte bit
Return                                            
'Rutina para el control del parpadeo led2
led2:
leda = ledon
WaitMs 500
leda = ledoff
WaitMs 300
Toggle flag
Return
« Última modificación: 04 de Enero de 2014, 21:42:48 por dogflu66 »
Saludos desde Granada, España.

Desconectado Atomium

  • PIC10
  • *
  • Mensajes: 16
    • Mecatronica
Re: Problema con Leds y un solo pulsador
« Respuesta #16 en: 19 de Enero de 2014, 17:27:02 »
Hola,

Primero dar las gracias a dogflu66 por su ayuda, sin su ayuda me habria sido imposible hacerlo.

Haciendole unos cambios me ha llegado a funcionar el el Real Pic Simulator:

Aqui pongo el codigo con los cambios efectuados por si lo necesita alguien:

'**********************************************************************************
'Programa de ejemplo para trabajar con led y pulsador
' Pic16F84 a 4 Mhz
'**********************************************************************************
'----------------------------------------------------------------------------------

Define CLOCK_FREQUENCY = 4  'Oscilador a 4Mhz

'-----------------------------------------
AllDigital          'Los pin I/O digitales
TRISA = 0x00  'Puerto A como salidas
TRISB = 0x00  'Puerto B como salidas
TRISA.0 = 1    'Como entrada (RA6, tecla S1)
'-----------------------------------------
WaitMs 1000  'Pausa de 1 Seg.
'-----------------------------------------
Symbol ledv = RA1        'Etiqueta al led verde
Symbol leda = RA2        'Etiqueta al led amarillo
Symbol tecla1 = RA0      'Etiqueta a la tecla S1
Const ledon = 0             'Led encendido
Const ledoff = 1             'Led apagado
Const teclaon = 0           'Tecla pulsada

ledv = ledoff                'Led verde a Off
leda = ledoff                'Led ambar a Off

Dim flag As Bit               'Bandera de control, establece el turno del led
flag = 0  'Bit a cero

'Rutina principal
void_main:

   If tecla1 = teclaon And flag = 0 Then Gosub led1         'Si se cumple, salto con retorno a Led1
   If tecla1 = teclaon And flag = 1 Then Gosub led2         'Si se cumple, salto con retorno a Led2

Goto void_main
End
'Rutina para el control del parpadeo led1
led1:
   ledv = ledoff  'Pin RA1 a estado bajo
   WaitMs 500    'Pausa de medio segundo
   ledv = ledon  'Pin RA1 a estado alto
   WaitMs 300
   Toggle flag    'Invierte bit
Return
'Rutina para el control del parpadeo led2
led2:
   leda = ledoff
   WaitMs 500
   leda = ledon
   WaitMs 300
   Toggle flag
Return


Saludos desde Jaen

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Problema con Leds y un solo pulsador
« Respuesta #17 en: 20 de Enero de 2014, 05:44:42 »
Felicidades; me alegró saber que te ha funcionado. ((:-))
Saludos desde Granada, España.


 

anything