PIC C Compiler

Programas desarrollados en PIC C Compiler



1. Led Intermitente
 Diagrama de Circuito


Código para el Pic
<code>

///////////////////////////////////////////////////////////////////////////////////
//Título:Led Intermitente
//Versión:PIC C Compiler 4.023
//Correo: habacuc.electronics@gmail.com
///////////////////////////////////////////////////////////////////////////////////
//Descripción:Encendido de un led de forma automatica...
///////////////////////////////////////////////////////////////////////////////////
/*************************Directivas de Preprocesado*****************************/
#include <16f84A.h>                                     //Pic a utilizar
#fuses XT,NOWDT,NOPROTECT              //Ordenes para el programador
#use delay (clock=4M)                                  //Frecuencia del oscilador
#use standard_io(b)                                       //Manejo del puerto B
/*******************************Definiciones***********************************/
#define LB0 PIN_B0
/********************************Programa************************************/
void main(){
//////Configuración de Puertos///////
   set_tris_b(0b00000000);                      // Todos los pines como salidas.
////Inicialización de Periféricos////
   output_b(0b00000000);                       // Apaga todos los leds
/////////////////////////////////////
while(TRUE)
  {
   output_high(LB0);
   delay_ms(200);
   output_low(LB0);
   delay_ms(200);
   }

}
<code>


2. Led encendido por pulsador


Diagrama de Circuito


Código para el Pic

///////////////////////////////////////////////////////////////////////////////////
//Título:Encendido de un Led por pulsador
//Versión:PIC C Compiler 4.023
//Autor: Samuel Ramsbott
//Correo: sedjrp3@gmail.com
///////////////////////////////////////////////////////////////////////////////////
//Descripción: Encendido de un Led por pulsador
///////////////////////////////////////////////////////////////////////////////////
/*************************Directivas de Preprocesado********************************/
#include <16f84A.h>                                   //Pic a utilizar
#fuses XT,NOWDT,NOPROTECT             //Ordenes para el programador
#use delay (clock=4M)                                 //Frecuencia del oscilador
#use standard_io(a)                                      //Manejo del puerto A
#use standard_io(b)                                      //Manejo del puerto B
/*******************************Definiciones**************************************/
#define LB0 PIN_B0
#define PA0 PIN_A0
/********************************Programa**************************************/
void main(){
//////Configuración de Puertos///////
   set_tris_a(0b00000001);                  // PIN_A0 como entrada, el resto como salidas.
   set_tris_b(0b00000000);                 // Todos los pines como salidas.
////Inicialización de Periféricos////
   output_b(0b00000000);                   // Apaga todos los leds
///////////////////////////////////// 
   while(true){                                       // Ciclo infinito
/////////////////////////Enciende y Apaga LB0///////////////////////////////////
      if(!input(PA0)){                                // si el pulsador conectado a PIN_A0 fue presionado... 
       output_high(LB0);}                          // entonces se enciende LB0, conectado a PIN_B0
      else{                                                   // sino...
         output_low(LB0);}                        // se apaga LB0
   }
}

3. Leds encendidos por pulsadores


Diagrama del circuito


Código para el Pic

///////////////////////////////////////////////////////////////////////////////////
//Título:Led Intermitente
//Versión:PIC C Compiler 4.023
//Autor: Samuel Ramsbott
//Correo: sedjrp3@gmail.com
///////////////////////////////////////////////////////////////////////////////////
//Descripción: Leds encendidos por pulsadores
///////////////////////////////////////////////////////////////////////////////////
/*************************Directivas de Preprocesado*****************************/
#include <16f84A.h>                                      //Librería del PIC a utilizar
#fuses XT,NOWDT,NOPROTECT               //Ordenes para el uC
#use delay (clock=4M)                                   //Frecuencia del oscilador
#use standard_io(a)                                        //Manejo del puerto A
#use standard_io(b)                                       //Manejo del puerto B
/********************************Programa***************************************/
void main(){
   set_tris_a(0b00011111);               // PIN_A0 como entrada, el resto como salidas.
   set_tris_b(0b00000000);                // Todos los pines como salidas.
   output_b(0b00000000);                  // Apaga todos los leds
   while(true){                                    // Ciclo infinito
/////////////////////////Enciende y Apaga LB0///////////////////////////////////
      if(!input(PIN_A0)){                        // si el pulsador conectado a PIN_A0 fue presionado... 
       output_high(PIN_B0);}                  // entonces se enciende LB0, conectado a PIN_B0
      else{                                                // sino...
         output_low(PIN_B0);}                // se apaga LB0
/////////////////////////Enciende y Apaga LB1///////////////////////////////////
      if(!input(PIN_A1)){                        // si el pulsador conectado a PIN_A1 fue presionado... 
       output_high(PIN_B1);}                  // entonces se enciende LB1, conectado a PIN_B1
      else{                                                // sino...
         output_low(PIN_B1);}                // se apaga LB1
/////////////////////////Enciende y Apaga LB2///////////////////////////////////      
      if(!input(PIN_A2)){                       // si el pulsador conectado a PIN_A2 fue presionado... 
       output_high(PIN_B2);}                 // entonces se enciende LB2, conectado a PIN_B2
      else{                                                // sino...
         output_low(PIN_B2);}                // se apaga LB2
/////////////////////////Enciende y Apaga LB3///////////////////////////////////      
      if(!input(PIN_A3)){                      // si el pulsador conectado a PIN_A3 fue presionado... 
       output_high(PIN_B3);}                // entonces se enciende LB3, conectado a PIN_B3
      else{                                               // sino...
         output_low(PIN_B3);}              // se apaga LB3
/////////////////////////Enciende y Apaga LB4///////////////////////////////////      
      if(!input(PIN_A4)){                    // si el pulsador conectado a PIN_A4 fue presionado... 
       output_high(PIN_B4);}             // entonces se enciende LB4, conectado a PIN_B4
      else{                                            // sino...
         output_low(PIN_B4);}            // se apaga LB4
   }

}


4. Contador de 0 a 9


Diagrama del circuito


Código para el Pic

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Título: Manejo de Display
//Versión:PIC C Compiler 4.023
//Autor: Samuel Ramsbott
//Correo: sedjrp3@gmail.com
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Descripción: Conteo automatico con un display 7 Segmentos de catodo comun
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*************************Directivas de Preprocesado*****************************/
#include <16f84A.h>                                    //Pic a utilizar
#fuses XT,NOWDT,NOPROTECT             //Ordenes para el programador
#use delay (clock=4M)                                //Frecuencia del oscilador
#use standard_io(b)                                      //Manejo del puerto B
/****************************Variables Globales***********************************/
int conteo[10]= {0b00111111, 0b00000110, 0b01011011, 0b01001111,0b01100110
                  0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01100111};
int i= 0;
/********************************Programa**************************************/
void main(){
      set_tris_b(0b00000000);          //todos los pines como salida
      output_b(0b00000000);            //apaga todos lod segmentos del display
      while(true){
         for(i= 0; i<= 9; i++){           //Ciclo for establece el incremento del indice
                                                     //del arreglo
         output_b(conteo[i]);            //Presenta la salida del elemento i
         delay_ms(100);
         }

    }
5. Contador de 0 a 99


Diagrama del circuito


Código para el Pic

///////////////////////////////////////////////////////////////////////////////////
//Título:Conteo automatico de 0 a 99
//Versión:PIC C Compiler 4.023
//Autor: Samuel Ramsbott
//Correo: sedjrp3@gmail.com
///////////////////////////////////////////////////////////////////////////////////
//Descripción:Conteo automatico con un display 7 Segmentos de 0 a 99
///////////////////////////////////////////////////////////////////////////////////
/*************************Directivas de Preprocesado*****************************/
#include <16f84A.h>                                                      //Pic a utilizar
#fuses XT,NOWDT,NOPROTECT                              //Ordenes para el programador
#use delay (clock=4M)                                                 //Frecuencia del oscilador
#use standard_io(b)                                                     //Manejo del puerto B
/****************************Variables Globales***********************************/
int conteo[10]= {0b00111111, 0b00000110, 0b01011011, 0b01001111,0b01100110
                  0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01100111};
int16 i;
int16 Unid;
int16 Dece;
/********************************Programa***************************************/
void main(){
      set_tris_b(0b00000000);          //todos los pines como salida
      output_b(0b00000000);            //apaga todos lod segmentos del display
   
 do{
         for(i= 0; i<= 99; i++){             //Ciclo for establece el incremento del indice
                                                               //del arreglo
             Dece = i * 0.1;
             Unid = i - Dece * 10;
              
             output_a(0b00000001);
             output_b(conteo[Unid]);
             delay_ms(100);
            
             output_a(0b00000010);
             output_b(conteo[Dece]);
             delay_ms(100);
         }
    }while(TRUE);
}

Share on Google Plus

About Samuel Ramsbott

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comentarios:

Publicar un comentario