SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
//***SENCILLO PROGRAMA QUE ACTIVA Y DESACTIVA DOS LEDS DE FORMA INTERMITENTE CADA 1 SEGUNDO***
#include<16f84A77.h>
#fuses XT,NOWDT,PUT,NOPROTECT
#USE delay(clock=4000000)
#use fast_io(B)


void main()
{
        set_tris_B(0);
while (TRUE)
        {
        output_high(PIN_B0);
        output_low(PIN_B1);
        delay_ms(1000);
        output_low(PIN_B0);
        output_high(PIN_B1);
        delay_ms(1000);
        }
}




Prof. Luis Zurita                                                                                Microcontroladores II
//***PROGRAMA PARA DEMOSTRAR EL USO DE EVALUAR VARIAS CONDICIONES EN UNA MISMA EXPRESIÓN***
#include            <16F877.h>
#fuses              XT,NOWDT,NOLVP,NOPROTECT
#use                delay(clock=4000000)
#use                fast_io(A)
#use                fast_io(B)
void     main (void){
         set_tris_A(0x0f);
         set_tris_B(0x00);
         output_B(0);
         while (true) {
         if         ((input(PIN_A0)==0) && (input(PIN_A1)==0) && (input(PIN_A2)==1)){
                    output_high(PIN_B0);
                    output_low(PIN_B1);}
         else {
                    output_high(PIN_B1);
                    output_low(PIN_B0);}
         }
}




Prof. Luis Zurita                                                                             Microcontroladores II
Prof. Luis Zurita   Microcontroladores II
///              Programa: CONTADOR DE 8 bits por el puerto B             ///
///////////////////////////// DIRECTIVAS DE PREPROCESADO //////////////////////
/// libreria para el manejo del pic16f877a
#include <16F877A.h>
/// declara la frecuencia del cristal
#use delay(clock=4000000)
///configura los fusibles
/// XT es la configuración del oscilador para 4 Mhz.
/// NOWDT deshabilita el Watch Dog Timer
/// NOPUT deshabilita le reseteo de power up timer
/// NOPROTECT deshabilita la proteccion del codigo del pic.
#fuses XT,NOWDT,NOPUT,NOPROTECT
/// asignamos a variable port_b el espacio memoria 0x06 que es la dir de port_b
#byte port_b=0x06
//////////////////////////GLOBALES//////////////////////////////////////////////
///     Estos parámetros son visibles desde todo el código             //
///            por eso se les llama globales                      ///
///      Al ser constantes, lo más práctico es declararlas aquí.       //
////////////////////////////////////////////////////////////////////////////////
int contador;

void main(){ // Principal //
set_tris_b(0);            /// declaramos el puerto B como salidas
/// lo igualamos con cero para que tengamos un valor inicial
port_b=0;
/// bucle infinito para que las instrucciones que tiene siempre se ejecuten
contador=0x00;
         while (true)
         {
         contador++;
         /// activa todos los pins del puerto B



Prof. Luis Zurita                                                                  Microcontroladores II
port_b=contador;
          /// Retardo de 1 segundo
          delay_ms(1000);
          } /// fin de bucle while
} /// fin de función principal main




Prof. Luis Zurita                     Microcontroladores II
///        Programa: LEDs Parpadeando como el Auto fantástico                ///
/// libreria para el manejo del pic16f877a
#include <16F877A.h>
///configura los fusibles
/// XT es la configuración del oscilador para 4 Mhz.
/// NOWDT deshabilita el Watch Dog Timer
/// NOPUT deshabilita le reseteo de power up timer
/// NOPROTECT deshabilita la proteccion del codigo del pic.
#fuses XT,NOWDT,NOPUT,NOPROTECT
/// declara la frecuencia del cristal
#use delay(clock=4000000)
/// asignamos a variable port_b el espacio memoria 0x06 que es la dir de port_b
#byte port_b=0x06
void main()         //Programa principal
{
          set_tris_b(0); //Puerto B como salida
          port_b=0x01;
while (true){           /// bucle infinito para que las instrucciones que tiene siempre se ejecuten
          port_b=port_b<<1;           //Rota un bit a la izquierda
                    if (port_b==0){ //Si llega a cero carga el valor inicial para rotar a la derecha
                             port_b=0b10000000; //y entra en el bucle de rotación a la derecha
                             while (true){
                                      port_b=port_b>>1;        //Rota un bit a la derecha
                                      if (port_b==0){          //Si llega a cero carga valor inicial
                                               port_b=0x01; //y sale de este bucle regresando al bucle anterior
                                               break;}
                             delay_ms(100);
                             }
                    }
          delay_ms(100);              // Retardo de 100 milisegundo
          } // fin de bucle while
} // fin de funcion principal main


Prof. Luis Zurita                                                                                                 Microcontroladores II
Prof. Luis Zurita   Microcontroladores II
//***PROGRAMA QUE DEMUESTRA EL USO DEL CASE***
#include <16F84A.h>
#fuses XT,NOWDT,PUT,NOPROTECT
#use fast_io(A)
#use fast_io(B)
int DATOA=0;

void main (){
       set_tris_a(0x1f);
       set_tris_b(0x00);
       output_b(0);
       while (TRUE){
               DATOA=input_a();
               switch (DATOA){
               case 0:
                        output_b(0b00000011);
                        break;
               case 1:
                        output_b(0b00001100);
                        break;
               case 2:
                        output_b(0b00000111);
                        break;
               default:
                        output_b(0b00001111);
                        break;
               }
       }
}




Prof. Luis Zurita                                Microcontroladores II
Prof. Luis Zurita   Microcontroladores II
//***PROGRAMA DE UN CONTADOR SENCILLO DE DOS CIFRAS ASCENDENTES***
#include <16f877.h>
#fuses XT,NOWDT,PUT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
int UNI=0,DEC=0;
void mostrar(){
          output_low(PIN_B1);
          output_low(PIN_B2);
          output_a(UNI);
          output_high(PIN_B1);
          output_low(PIN_B2);
          delay_ms(5);
          output_low(PIN_B1);
          output_low(PIN_B2);
          output_a(DEC);
          output_low(PIN_B1);
          output_high(PIN_B2);
          delay_ms(5);
          output_low(PIN_B2);
          }
void mostrar1(){
          output_low(PIN_B1);
          output_low(PIN_B2);
          output_a(UNI);
          output_high(PIN_B1);
          output_low(PIN_B2);
          delay_ms(5);
          }
void main ( )      // Programa principal
{
  set_tris_B(0x01);
  set_tris_A(0);



Prof. Luis Zurita                                                    Microcontroladores II
while (1)
           {
                    if (bit_test (PORTB,0)==0)
                              {
                                      if (DEC==0){
                                      mostrar1();}
                                      else{
                                               mostrar();}
                                               delay_ms(5);
                                               if (bit_test (PORTB,0)==1) {
                                                         if (UNI>=9){
                                                                  UNI=0;
                                                         if (DEC>=9){
                                                                  DEC=0;}
                                                         else{
                                                                  DEC=DEC+1;}
                                                         }
                                                         else {
                                                                  UNI=UNI+1;
                                                         }

                                                         }

                                     }

                                     else if (DEC==0){
                                     mostrar1();}
                                     else
                                     {
                                     mostrar();
                                     }
                    }
}




Prof. Luis Zurita                                                               Microcontroladores II
Prof. Luis Zurita   Microcontroladores II
//***PROGRAMA DEL ESTACIONAMIENTO EN LENGUAJE C***
#include <16f877.h>
#fuses XT,NOWDT,PUT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
int UNI=0,DEC=0;


void mostrar(){         //Función para mostrar datos en los displays con multiplexación
         output_low(PIN_B0);
         output_low(PIN_B1);
         output_a(UNI);
         output_high(PIN_B0);
         output_low(PIN_B1);
         delay_ms(5);
         output_low(PIN_B0);
         output_low(PIN_B1);
         output_a(DEC);
         output_low(PIN_B0);
         output_high(PIN_B1);
         delay_ms(5);
         output_low(PIN_B1);
         }
void main ( )     // Programa principal
{
  set_tris_B(0b11110000);
  set_tris_A(0);
    while (true)
           {
                                if(input(PIN_B4)==0) //Pregunta si se activó la entrada 1
                                {


Prof. Luis Zurita                                                                           Microcontroladores II
mostrar();
                            delay_ms(5);
                            if(input(PIN_B4)==1){
                                     if (UNI>=9){
                                             UNI=0;
                                     if (DEC>=4){
                                             DEC=5;
                                             output_high(PIN_B3); //Led NOHAYCUPO=0n
                                             output_low(PIN_B2); //Led HAYCUPO=0ff
                                             }
                                     else{
                                             DEC=DEC+1;}
                                     }
                                     else {
                    if (DEC==5){
                                                    DEC=5;
                                                    output_high(PIN_B3); //Led NOHAYCUPO=0n
                                                    output_low(PIN_B2);} //Led HAYCUPO=0ff
                                             else{
                                                    UNI=UNI+1;}
                                     }

                                    }

                    }
                    else if(input(PIN_B5)==0)         //Pregunta si se activó la entrada 2
                    {
                              mostrar();
                              delay_ms(5);
                              if(input(PIN_B5)==1){
                                       if (UNI>=9){
                                               UNI=0;


Prof. Luis Zurita                                                                             Microcontroladores II
if (DEC>=4){
                                             DEC=5;
                                             output_high(PIN_B3);
                                             output_low(PIN_B2);
                                             }
                                     else{
                                             DEC=DEC+1;}
                                     }
                                     else {
                                             if (DEC==5){
                                                     UNI=0;
                                                     DEC=5;
                                                     output_high(PIN_B3);
                                                     output_low(PIN_B2);}
                                             else{
                                                     UNI=UNI+1;}
                                     }

                                     }

                    }
                    else if(input(PIN_B6)==0)          //Pregunta si se activó la salida 1
                    {
                              mostrar();
                              delay_ms(5);
                              if(input(PIN_B6)==1){
                                       if (UNI<=0){
                                               UNI=9;
                                       if (DEC<=0){
                                               DEC=0;
                                               UNI=0;}
                                       else{


Prof. Luis Zurita                                                                            Microcontroladores II
DEC=DEC-1;
                                            output_high(PIN_B2);     //Led HAYCUPO=0n
                                            output_low(PIN_B3);      //Led NOHAYCUPO=off
                                            }
                                            }
                                            else {
                                            UNI=UNI-1;
                                            output_high(PIN_B2);     //Led HAYCUPO=0n
                                            output_low(PIN_B3);      //Led NOHAYCUPO=off
                                            }

                                            }

                          }
                          else if(input(PIN_B7)==0)          //Pregunta si se activó la salida 2
                          {
                                    mostrar();
                                    delay_ms(5);
                                    if(input(PIN_B7)==1){
                                             if (UNI<=0){
                                                     UNI=9;
                                             if (DEC<=0){
                                                     DEC=0;
                                                     UNI=0;}
                                             else{
                                                     DEC=DEC-1;
                                             output_high(PIN_B2);
                                             output_low(PIN_B3);
                                             }
                                             }
                                             else {
                    UNI=UNI-1;


Prof. Luis Zurita                                                                                  Microcontroladores II
output_high(PIN_B2);
                                     output_low(PIN_B3);
                                     }

                                     }

                        }
                        else
                        {
                        mostrar();
                        }
                    }
}




Prof. Luis Zurita                                           Microcontroladores II
Prof. Luis Zurita   Microcontroladores II

Más contenido relacionado

La actualidad más candente

Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorLuis Zurita
 
Sesion multiplexores y demultiplexores
Sesion  multiplexores y demultiplexores Sesion  multiplexores y demultiplexores
Sesion multiplexores y demultiplexores Marco Antonio
 
Problema nuestra del calculo de factor de rizo E1
Problema nuestra del calculo de factor de rizo E1Problema nuestra del calculo de factor de rizo E1
Problema nuestra del calculo de factor de rizo E1Tensor
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjtFenix Alome
 
Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555Israel Magaña
 
Practica 8 lab elect i curva del bjt final...
Practica 8 lab elect i curva del bjt final...Practica 8 lab elect i curva del bjt final...
Practica 8 lab elect i curva del bjt final...Israel Chala
 
Transformada de fourier y convolucion
Transformada de fourier y convolucionTransformada de fourier y convolucion
Transformada de fourier y convolucionjesus vera
 
Amplificador en Base Comun y Colector Comun
Amplificador en Base Comun y Colector ComunAmplificador en Base Comun y Colector Comun
Amplificador en Base Comun y Colector Comuniscped
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCuplGilbert_28
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Luis Zurita
 
Amplificadores Operacionales - Seguidor, Inversor y No Inversor
Amplificadores Operacionales - Seguidor, Inversor y No InversorAmplificadores Operacionales - Seguidor, Inversor y No Inversor
Amplificadores Operacionales - Seguidor, Inversor y No InversorCris Mascote
 
Ejercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresEjercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresBertha Vega
 
Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Julio Daniel Ruano
 

La actualidad más candente (20)

Uso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensambladorUso de las tablas en lenguaje ensamblador
Uso de las tablas en lenguaje ensamblador
 
Sesion multiplexores y demultiplexores
Sesion  multiplexores y demultiplexores Sesion  multiplexores y demultiplexores
Sesion multiplexores y demultiplexores
 
Configuración Emisor Común
Configuración Emisor ComúnConfiguración Emisor Común
Configuración Emisor Común
 
Problema nuestra del calculo de factor de rizo E1
Problema nuestra del calculo de factor de rizo E1Problema nuestra del calculo de factor de rizo E1
Problema nuestra del calculo de factor de rizo E1
 
El transistor bjt
El transistor bjtEl transistor bjt
El transistor bjt
 
Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555
 
Practica 8 lab elect i curva del bjt final...
Practica 8 lab elect i curva del bjt final...Practica 8 lab elect i curva del bjt final...
Practica 8 lab elect i curva del bjt final...
 
Transformada de fourier y convolucion
Transformada de fourier y convolucionTransformada de fourier y convolucion
Transformada de fourier y convolucion
 
MARLON
MARLONMARLON
MARLON
 
Amplificador en Base Comun y Colector Comun
Amplificador en Base Comun y Colector ComunAmplificador en Base Comun y Colector Comun
Amplificador en Base Comun y Colector Comun
 
Programacion en WinCupl
Programacion en WinCuplProgramacion en WinCupl
Programacion en WinCupl
 
Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2Guía de ejercicios resueltos tema 2
Guía de ejercicios resueltos tema 2
 
Subrutinas de retardo
Subrutinas de retardoSubrutinas de retardo
Subrutinas de retardo
 
Amplificadores Operacionales - Seguidor, Inversor y No Inversor
Amplificadores Operacionales - Seguidor, Inversor y No InversorAmplificadores Operacionales - Seguidor, Inversor y No Inversor
Amplificadores Operacionales - Seguidor, Inversor y No Inversor
 
Convolucion
ConvolucionConvolucion
Convolucion
 
Ejercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadoresEjercicios de Multiplexores y decodificadores
Ejercicios de Multiplexores y decodificadores
 
Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)Apuntes y ejercicios Señales y sistemas (Borrador)
Apuntes y ejercicios Señales y sistemas (Borrador)
 
Conexión darlington transistor
Conexión darlington transistorConexión darlington transistor
Conexión darlington transistor
 
Modelo híbrido del bjt
Modelo híbrido del bjtModelo híbrido del bjt
Modelo híbrido del bjt
 
Complemento A Dos
Complemento A DosComplemento A Dos
Complemento A Dos
 

Destacado

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APALuis Zurita
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 3
GUÍA DE EJERCICIOS RESUELTOS TEMA 3GUÍA DE EJERCICIOS RESUELTOS TEMA 3
GUÍA DE EJERCICIOS RESUELTOS TEMA 3Luis Zurita
 
Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Luis Zurita
 
EJERCICIO ADICIONAL 1ER EXAMEN
EJERCICIO ADICIONAL 1ER EXAMENEJERCICIO ADICIONAL 1ER EXAMEN
EJERCICIO ADICIONAL 1ER EXAMENLuis Zurita
 

Destacado (6)

Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
GUÍA DE EJERCICIOS RESUELTOS TEMA 3
GUÍA DE EJERCICIOS RESUELTOS TEMA 3GUÍA DE EJERCICIOS RESUELTOS TEMA 3
GUÍA DE EJERCICIOS RESUELTOS TEMA 3
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4Guía de ejercicios resueltos y propuestos tema 4
Guía de ejercicios resueltos y propuestos tema 4
 
EJERCICIO ADICIONAL 1ER EXAMEN
EJERCICIO ADICIONAL 1ER EXAMENEJERCICIO ADICIONAL 1ER EXAMEN
EJERCICIO ADICIONAL 1ER EXAMEN
 

Similar a EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C

Leccion3 y4 agosto25_2011solucion
Leccion3 y4 agosto25_2011solucionLeccion3 y4 agosto25_2011solucion
Leccion3 y4 agosto25_2011solucionJair BG
 
Micc final feb03_2011_solucion
Micc final feb03_2011_solucionMicc final feb03_2011_solucion
Micc final feb03_2011_solucionJair BG
 
Micc final feb03_2011_solucion
Micc final feb03_2011_solucionMicc final feb03_2011_solucion
Micc final feb03_2011_solucionJair BG
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2Luis Zurita
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"Diego Rojas Ruiz
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
Micc final sep02_2010 solucion
Micc final sep02_2010 solucionMicc final sep02_2010 solucion
Micc final sep02_2010 solucionJair BG
 
Micc final sep02_2010 solucion
Micc final sep02_2010 solucionMicc final sep02_2010 solucion
Micc final sep02_2010 solucionJair BG
 
Codigo adc
Codigo adcCodigo adc
Codigo adcmonimi
 
ARDUINO - LADDER PROYECTO CX3 RESET TEMP EH EN 2 CILINDROS BI MONO...
ARDUINO  - LADDER   PROYECTO  CX3 RESET  TEMP  EH  EN   2  CILINDROS  BI MONO...ARDUINO  - LADDER   PROYECTO  CX3 RESET  TEMP  EH  EN   2  CILINDROS  BI MONO...
ARDUINO - LADDER PROYECTO CX3 RESET TEMP EH EN 2 CILINDROS BI MONO...Jovanny Duque
 
Micc mejoramiento feb_28_2009_soluc
Micc mejoramiento feb_28_2009_solucMicc mejoramiento feb_28_2009_soluc
Micc mejoramiento feb_28_2009_solucJair BG
 
Reporte de grafos con semagforos de 3,3,4 y 6 procesos
Reporte de grafos con semagforos de 3,3,4 y 6 procesosReporte de grafos con semagforos de 3,3,4 y 6 procesos
Reporte de grafos con semagforos de 3,3,4 y 6 procesosAntares Zehcnas
 
Examen final micros t1 2011
Examen final micros t1 2011Examen final micros t1 2011
Examen final micros t1 2011Jair BG
 
ARDUINO GRAFCET - ESTRUCTURAS GRAFCET - ECUACION BINODAL CON ARDUINO.pdf
ARDUINO  GRAFCET   -  ESTRUCTURAS GRAFCET   -  ECUACION BINODAL  CON ARDUINO.pdfARDUINO  GRAFCET   -  ESTRUCTURAS GRAFCET   -  ECUACION BINODAL  CON ARDUINO.pdf
ARDUINO GRAFCET - ESTRUCTURAS GRAFCET - ECUACION BINODAL CON ARDUINO.pdfJovanny Duque
 
Micc mej feb18_2010_solucion
Micc mej feb18_2010_solucionMicc mej feb18_2010_solucion
Micc mej feb18_2010_solucionJair BG
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y tecladoLuis Zurita
 

Similar a EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C (20)

Leccion3 y4 agosto25_2011solucion
Leccion3 y4 agosto25_2011solucionLeccion3 y4 agosto25_2011solucion
Leccion3 y4 agosto25_2011solucion
 
Micc final feb03_2011_solucion
Micc final feb03_2011_solucionMicc final feb03_2011_solucion
Micc final feb03_2011_solucion
 
Micc final feb03_2011_solucion
Micc final feb03_2011_solucionMicc final feb03_2011_solucion
Micc final feb03_2011_solucion
 
Nueva secuencia
Nueva secuenciaNueva secuencia
Nueva secuencia
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
 
Arduino Basico.pptx
Arduino Basico.pptxArduino Basico.pptx
Arduino Basico.pptx
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Micc final sep02_2010 solucion
Micc final sep02_2010 solucionMicc final sep02_2010 solucion
Micc final sep02_2010 solucion
 
Micc final sep02_2010 solucion
Micc final sep02_2010 solucionMicc final sep02_2010 solucion
Micc final sep02_2010 solucion
 
Codigo adc
Codigo adcCodigo adc
Codigo adc
 
ARDUINO - LADDER PROYECTO CX3 RESET TEMP EH EN 2 CILINDROS BI MONO...
ARDUINO  - LADDER   PROYECTO  CX3 RESET  TEMP  EH  EN   2  CILINDROS  BI MONO...ARDUINO  - LADDER   PROYECTO  CX3 RESET  TEMP  EH  EN   2  CILINDROS  BI MONO...
ARDUINO - LADDER PROYECTO CX3 RESET TEMP EH EN 2 CILINDROS BI MONO...
 
Micc mejoramiento feb_28_2009_soluc
Micc mejoramiento feb_28_2009_solucMicc mejoramiento feb_28_2009_soluc
Micc mejoramiento feb_28_2009_soluc
 
Reporte de grafos con semagforos de 3,3,4 y 6 procesos
Reporte de grafos con semagforos de 3,3,4 y 6 procesosReporte de grafos con semagforos de 3,3,4 y 6 procesos
Reporte de grafos con semagforos de 3,3,4 y 6 procesos
 
Examen final micros t1 2011
Examen final micros t1 2011Examen final micros t1 2011
Examen final micros t1 2011
 
ARDUINO GRAFCET - ESTRUCTURAS GRAFCET - ECUACION BINODAL CON ARDUINO.pdf
ARDUINO  GRAFCET   -  ESTRUCTURAS GRAFCET   -  ECUACION BINODAL  CON ARDUINO.pdfARDUINO  GRAFCET   -  ESTRUCTURAS GRAFCET   -  ECUACION BINODAL  CON ARDUINO.pdf
ARDUINO GRAFCET - ESTRUCTURAS GRAFCET - ECUACION BINODAL CON ARDUINO.pdf
 
Micc mej feb18_2010_solucion
Micc mej feb18_2010_solucionMicc mej feb18_2010_solucion
Micc mej feb18_2010_solucion
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
DIMMER DIGITAL.docx
 DIMMER DIGITAL.docx DIMMER DIGITAL.docx
DIMMER DIGITAL.docx
 
Reporte viernes 24
Reporte viernes 24Reporte viernes 24
Reporte viernes 24
 

Más de Luis Zurita

PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUSLuis Zurita
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13Luis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronicaLuis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iycLuis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronicaLuis Zurita
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronicaLuis Zurita
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Luis Zurita
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013Luis Zurita
 

Más de Luis Zurita (20)

PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
 
Pevmicro2013
Pevmicro2013Pevmicro2013
Pevmicro2013
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013
 
TMR0 Y RB0_INT
TMR0 Y RB0_INTTMR0 Y RB0_INT
TMR0 Y RB0_INT
 

EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C

  • 1. //***SENCILLO PROGRAMA QUE ACTIVA Y DESACTIVA DOS LEDS DE FORMA INTERMITENTE CADA 1 SEGUNDO*** #include<16f84A77.h> #fuses XT,NOWDT,PUT,NOPROTECT #USE delay(clock=4000000) #use fast_io(B) void main() { set_tris_B(0); while (TRUE) { output_high(PIN_B0); output_low(PIN_B1); delay_ms(1000); output_low(PIN_B0); output_high(PIN_B1); delay_ms(1000); } } Prof. Luis Zurita Microcontroladores II
  • 2. //***PROGRAMA PARA DEMOSTRAR EL USO DE EVALUAR VARIAS CONDICIONES EN UNA MISMA EXPRESIÓN*** #include <16F877.h> #fuses XT,NOWDT,NOLVP,NOPROTECT #use delay(clock=4000000) #use fast_io(A) #use fast_io(B) void main (void){ set_tris_A(0x0f); set_tris_B(0x00); output_B(0); while (true) { if ((input(PIN_A0)==0) && (input(PIN_A1)==0) && (input(PIN_A2)==1)){ output_high(PIN_B0); output_low(PIN_B1);} else { output_high(PIN_B1); output_low(PIN_B0);} } } Prof. Luis Zurita Microcontroladores II
  • 3. Prof. Luis Zurita Microcontroladores II
  • 4. /// Programa: CONTADOR DE 8 bits por el puerto B /// ///////////////////////////// DIRECTIVAS DE PREPROCESADO ////////////////////// /// libreria para el manejo del pic16f877a #include <16F877A.h> /// declara la frecuencia del cristal #use delay(clock=4000000) ///configura los fusibles /// XT es la configuración del oscilador para 4 Mhz. /// NOWDT deshabilita el Watch Dog Timer /// NOPUT deshabilita le reseteo de power up timer /// NOPROTECT deshabilita la proteccion del codigo del pic. #fuses XT,NOWDT,NOPUT,NOPROTECT /// asignamos a variable port_b el espacio memoria 0x06 que es la dir de port_b #byte port_b=0x06 //////////////////////////GLOBALES////////////////////////////////////////////// /// Estos parámetros son visibles desde todo el código // /// por eso se les llama globales /// /// Al ser constantes, lo más práctico es declararlas aquí. // //////////////////////////////////////////////////////////////////////////////// int contador; void main(){ // Principal // set_tris_b(0); /// declaramos el puerto B como salidas /// lo igualamos con cero para que tengamos un valor inicial port_b=0; /// bucle infinito para que las instrucciones que tiene siempre se ejecuten contador=0x00; while (true) { contador++; /// activa todos los pins del puerto B Prof. Luis Zurita Microcontroladores II
  • 5. port_b=contador; /// Retardo de 1 segundo delay_ms(1000); } /// fin de bucle while } /// fin de función principal main Prof. Luis Zurita Microcontroladores II
  • 6. /// Programa: LEDs Parpadeando como el Auto fantástico /// /// libreria para el manejo del pic16f877a #include <16F877A.h> ///configura los fusibles /// XT es la configuración del oscilador para 4 Mhz. /// NOWDT deshabilita el Watch Dog Timer /// NOPUT deshabilita le reseteo de power up timer /// NOPROTECT deshabilita la proteccion del codigo del pic. #fuses XT,NOWDT,NOPUT,NOPROTECT /// declara la frecuencia del cristal #use delay(clock=4000000) /// asignamos a variable port_b el espacio memoria 0x06 que es la dir de port_b #byte port_b=0x06 void main() //Programa principal { set_tris_b(0); //Puerto B como salida port_b=0x01; while (true){ /// bucle infinito para que las instrucciones que tiene siempre se ejecuten port_b=port_b<<1; //Rota un bit a la izquierda if (port_b==0){ //Si llega a cero carga el valor inicial para rotar a la derecha port_b=0b10000000; //y entra en el bucle de rotación a la derecha while (true){ port_b=port_b>>1; //Rota un bit a la derecha if (port_b==0){ //Si llega a cero carga valor inicial port_b=0x01; //y sale de este bucle regresando al bucle anterior break;} delay_ms(100); } } delay_ms(100); // Retardo de 100 milisegundo } // fin de bucle while } // fin de funcion principal main Prof. Luis Zurita Microcontroladores II
  • 7. Prof. Luis Zurita Microcontroladores II
  • 8. //***PROGRAMA QUE DEMUESTRA EL USO DEL CASE*** #include <16F84A.h> #fuses XT,NOWDT,PUT,NOPROTECT #use fast_io(A) #use fast_io(B) int DATOA=0; void main (){ set_tris_a(0x1f); set_tris_b(0x00); output_b(0); while (TRUE){ DATOA=input_a(); switch (DATOA){ case 0: output_b(0b00000011); break; case 1: output_b(0b00001100); break; case 2: output_b(0b00000111); break; default: output_b(0b00001111); break; } } } Prof. Luis Zurita Microcontroladores II
  • 9. Prof. Luis Zurita Microcontroladores II
  • 10. //***PROGRAMA DE UN CONTADOR SENCILLO DE DOS CIFRAS ASCENDENTES*** #include <16f877.h> #fuses XT,NOWDT,PUT,NOPROTECT,NOLVP #use delay(clock=4000000) #use fast_io(A) #use fast_io(B) int UNI=0,DEC=0; void mostrar(){ output_low(PIN_B1); output_low(PIN_B2); output_a(UNI); output_high(PIN_B1); output_low(PIN_B2); delay_ms(5); output_low(PIN_B1); output_low(PIN_B2); output_a(DEC); output_low(PIN_B1); output_high(PIN_B2); delay_ms(5); output_low(PIN_B2); } void mostrar1(){ output_low(PIN_B1); output_low(PIN_B2); output_a(UNI); output_high(PIN_B1); output_low(PIN_B2); delay_ms(5); } void main ( ) // Programa principal { set_tris_B(0x01); set_tris_A(0); Prof. Luis Zurita Microcontroladores II
  • 11. while (1) { if (bit_test (PORTB,0)==0) { if (DEC==0){ mostrar1();} else{ mostrar();} delay_ms(5); if (bit_test (PORTB,0)==1) { if (UNI>=9){ UNI=0; if (DEC>=9){ DEC=0;} else{ DEC=DEC+1;} } else { UNI=UNI+1; } } } else if (DEC==0){ mostrar1();} else { mostrar(); } } } Prof. Luis Zurita Microcontroladores II
  • 12. Prof. Luis Zurita Microcontroladores II
  • 13. //***PROGRAMA DEL ESTACIONAMIENTO EN LENGUAJE C*** #include <16f877.h> #fuses XT,NOWDT,PUT,NOPROTECT,NOLVP #use delay(clock=4000000) #use fast_io(A) #use fast_io(B) int UNI=0,DEC=0; void mostrar(){ //Función para mostrar datos en los displays con multiplexación output_low(PIN_B0); output_low(PIN_B1); output_a(UNI); output_high(PIN_B0); output_low(PIN_B1); delay_ms(5); output_low(PIN_B0); output_low(PIN_B1); output_a(DEC); output_low(PIN_B0); output_high(PIN_B1); delay_ms(5); output_low(PIN_B1); } void main ( ) // Programa principal { set_tris_B(0b11110000); set_tris_A(0); while (true) { if(input(PIN_B4)==0) //Pregunta si se activó la entrada 1 { Prof. Luis Zurita Microcontroladores II
  • 14. mostrar(); delay_ms(5); if(input(PIN_B4)==1){ if (UNI>=9){ UNI=0; if (DEC>=4){ DEC=5; output_high(PIN_B3); //Led NOHAYCUPO=0n output_low(PIN_B2); //Led HAYCUPO=0ff } else{ DEC=DEC+1;} } else { if (DEC==5){ DEC=5; output_high(PIN_B3); //Led NOHAYCUPO=0n output_low(PIN_B2);} //Led HAYCUPO=0ff else{ UNI=UNI+1;} } } } else if(input(PIN_B5)==0) //Pregunta si se activó la entrada 2 { mostrar(); delay_ms(5); if(input(PIN_B5)==1){ if (UNI>=9){ UNI=0; Prof. Luis Zurita Microcontroladores II
  • 15. if (DEC>=4){ DEC=5; output_high(PIN_B3); output_low(PIN_B2); } else{ DEC=DEC+1;} } else { if (DEC==5){ UNI=0; DEC=5; output_high(PIN_B3); output_low(PIN_B2);} else{ UNI=UNI+1;} } } } else if(input(PIN_B6)==0) //Pregunta si se activó la salida 1 { mostrar(); delay_ms(5); if(input(PIN_B6)==1){ if (UNI<=0){ UNI=9; if (DEC<=0){ DEC=0; UNI=0;} else{ Prof. Luis Zurita Microcontroladores II
  • 16. DEC=DEC-1; output_high(PIN_B2); //Led HAYCUPO=0n output_low(PIN_B3); //Led NOHAYCUPO=off } } else { UNI=UNI-1; output_high(PIN_B2); //Led HAYCUPO=0n output_low(PIN_B3); //Led NOHAYCUPO=off } } } else if(input(PIN_B7)==0) //Pregunta si se activó la salida 2 { mostrar(); delay_ms(5); if(input(PIN_B7)==1){ if (UNI<=0){ UNI=9; if (DEC<=0){ DEC=0; UNI=0;} else{ DEC=DEC-1; output_high(PIN_B2); output_low(PIN_B3); } } else { UNI=UNI-1; Prof. Luis Zurita Microcontroladores II
  • 17. output_high(PIN_B2); output_low(PIN_B3); } } } else { mostrar(); } } } Prof. Luis Zurita Microcontroladores II
  • 18. Prof. Luis Zurita Microcontroladores II