Juego de luces con IF-THEN SELECT-CASE Con el PIC16F84A Entrada005

Por | 14:49 1 comment
En el mundo de la programación, se manejan estructuras de control estas nos facilitan el proceso lógico al realizar un programa.
En basic la estructura IF-ELSE suele utilizarse como IF-THEN y ENDIF, esta estructura funciona asi:
 SI (se cumple esto) ENTONCES (Ocurre esto) FIN
IF en BASIC para PBP:
                IF ocurre esto THEN
                Sucede esto
                ENDIF
Muy fácil! Es asi! se darán cuenta que todas las estructuras solo siguen una secuencia lógica, no se requiere ser un genio o tener  elevados conocimientos de matemáticas… si tienes un cerebro con 2 neuronas y un ordenador listo!,
La estructura SELECT CASE para PBP, es una variante del IF THEN para varias condiciones  
SELECT CASE (variable)
                Case (dato 1)
                               Conclusión 1
                Case (dato 2)
                               Conclusión 2
                Case (dato 3)
                               Conclusión 3
                Case Else
                               Conclusión 4
END SELECT
Mejor aprender de un ejemplo:
‘*********************PROGRAMA***********************************’
'Juego de luces con IF-THEN SELECT-CASE pjt002'
'Juego de luces con IF-THEN SELECT-CASE pjt002'
'Se pretende iniciar el parpadeo de led 1 con bt1 y led 2 con bt2'
'un poco de seudocodigo'
'1. Iniciar Progrmama luces'
'2. Definir que puertos del pic y pines de entrada y salida'
'3. si el pin 0 del pueto A esta en alto i= 1'
'4. si el pin 4 del puerto A esta en alto i= 2'
'5. caso si i=1 parpadeo x pin 1 del puerto A
'               si el pin 4 del puerto A esta en alto ir a led2'      
'6. caso si i=2 parpadeo x pin 2 del puerto A
'               si el pin 0 del puerto A esta en alto ir a led1''

i var byte  'Declaramos un variable tipo byte'

TRISB = 010001  'Define los pines del puerto B entradas o salidas'

luces:  'inicia el programa'
               
                IF PORTA.0 = 1 THEN  'si el pin 0 del puerto A esta en alto'
                i = 1                                                        'asignar 1 a la variable i '
                ENDIF                                                   'terminar IF'     
                IF PORTA.4 = 1 THEN
                i = 2
                ENDIF


                SELECT CASE i                    'elejir la variable i'

                CASE 1                                                 ' si el valor de i = 1'
                led1:                                                     ' Realizar'
                               IF PORTA.4 = 1 THEN 'durarante el bucle si el pin 4 del puerto A esta en alto'
                               i = 2                                       'asignar el valor de i = 2 '
                               GOTO luces                       'volvemos a luces'
                               ENDIF

                               high PORTA.1    'Iniciamos el tren de pulso, parpadeo de leds'
                               Pause 200
                               low PORTA.1
                               pause 200
                goto led1

                CASE 2                                                  'si el valor de i = 2 ejecutar'
                led2:
                               IF PORTA.0 = 1 THEN
                               i = 1
                               GOTO luces
                               ENDIF

                               high PORTA.2
                               Pause 200
                               low PORTA.2
                               pause 200
                goto led2

                END SELECT
               

goto luces                                            'volver a repetir el programa indefinidamente'

'**********************FIN**************************'
Lo nuevo en este programa es la instruccion TRIS: 
                        TRIS: Este comando define un puerto como entrada o salida, depende del valor asignado (1 para salida y 0 para entrada digital)  el comando se utiliza asi 
                                 TRISpuerto = valor Asignado
                                 TRISA = %11111111  significa que los 8 pines son de salida 

Juego de luces con el PIC16F84A IF-ELSE SELECT-CASE
NOTA: se nota que se añadio en el MCLR un button este funciona para resetear al pic. 



1 comentario: Leave Your Comments

  1. se equivoca en ej 1 es puerto B no A, la asignacion tris 1 es entrada y 0 salida.

    ResponderEliminar