Compilador C para Microcontroladores - PIC y Scenix 

        Última actualización: 29 de Enero  de 2.000  

Ejemplo nº 1 - Contar en binario hasta 255 en los LEDs del Módulo de Aprendizaje 

         //
        // Nombre Fichero: Prog1.c
        //  29 de Enero del 2.000
        // Toma en bucle infinito valores de 0 a 255
        // y los presenta en el puerto B del microcontrolador
        // En nuestro caso enciende la barra de diodoes LEDs
        // del Módulo de Aprendizaje

            char bValorSalida; // Definimos una variable global tipo byte, 
   
                                     // utilizada para pasar datos a los 8 bits del puerto B

        //
        // Genera un Retardo, este es dependiente del microcontrolador
        //
        // Entrada: Nada
        // Salida: Nada
        //
            void subRetardo( void )
            {

                char bContador1; // Definimos una variable local de tipo byte, para contador
                char bContador2; // Definimos una variable local de tipo byte, para contador

            // Damos el valor 0 a la variable bContador1
            bContador1 = 0;

            // Iniciamos un bucle que termina cuando la variable bContador1 valga 150
            while( bContador1 < 150 )
                {

                // Incrementamos en una unidad el contenido de bContador1.
                // Es igual que en BASIC hacer bContador1 = bContador1 + 1
                bContador1++;

                // Damos el valor 0 a la variable bContador2
                bContador2 = 0;

                // Iniciamos un bucle que termina cuando la variable bContador2 valga 200
                // En esta ocasión la variable bContador2 se incrementa en una unidad en el
                // mismo lugar de la condición
                    while( bContador2++ < 200 )
                    {
                        // Ejecutamos un ciclo de inactividad
                            nop();
                    }

                }

            }

        //
        // Función principal. Representa la primera función que se 
        // ejecuta al iniciar el microcontrolador
        //
        main()
        {

        // Forzamos la deshabilitación de las interrupciones del microcontrolador
        disable_interrupt( GIE );

        // Apuntamos al segundo banco de registros
        set_bit( STATUS, RP0 );

        // Ajustamos las líneas del puerto B como salida
        set_tris_b( 0 );

        // Apunstamos el primer banco de registros
        clear_bit( STATUS, RP0 );

        // Iniciamos un bucle infinito
        while( 1 )
            {

            // Sacamos un valor de 8 bits a las líneas del puerto B
            output_port_b( bValorSalida );

            // Generamos un retardo
            subRetardo();

            // Incrementamos en una unidad el contenido de bValorSalida. Es lo mismo que hacer                 bValorSalida = bValorSalida + 1
            bValorSalida++;

            }

        }

Página en construcción