SlideShare a Scribd company logo
1 of 18
Download to read offline
//***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

More Related Content

What's hot

Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
Guia de practicas s7 1200 tia portal
Guia de practicas s7 1200 tia portalGuia de practicas s7 1200 tia portal
Guia de practicas s7 1200 tia portalDavidSnchez297251
 
Informe practica 8 diodos zener
Informe practica 8 diodos zenerInforme practica 8 diodos zener
Informe practica 8 diodos zenerderincampos19
 
Syllabus procesamiento digital de señale_sjc
 Syllabus procesamiento digital de señale_sjc Syllabus procesamiento digital de señale_sjc
Syllabus procesamiento digital de señale_sjcjcbenitezp
 
Cuadro comparativo de familias logicas
Cuadro comparativo de familias logicasCuadro comparativo de familias logicas
Cuadro comparativo de familias logicasGermanGeorge
 
Sistemas de comunicaciones - Práctica 04
Sistemas de comunicaciones - Práctica 04Sistemas de comunicaciones - Práctica 04
Sistemas de comunicaciones - Práctica 04Cristian Ortiz Gómez
 
Amplificadores TBJ
Amplificadores TBJAmplificadores TBJ
Amplificadores TBJBertha Vega
 
54599266 ejercicios-flip-flops
54599266 ejercicios-flip-flops54599266 ejercicios-flip-flops
54599266 ejercicios-flip-flopsSENA-CIMI-GIRON
 
Sumador de 4 bits
Sumador de 4 bitsSumador de 4 bits
Sumador de 4 bitsAbril Bello
 
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
 
Circuitos de disparo con aislamiento
Circuitos de disparo con aislamientoCircuitos de disparo con aislamiento
Circuitos de disparo con aislamientoCésar Sánchez
 
Transistor como interruptor
Transistor como interruptorTransistor como interruptor
Transistor como interruptorRogelio Beltrán
 
direccionamiento microcontroladores pic
direccionamiento microcontroladores picdireccionamiento microcontroladores pic
direccionamiento microcontroladores piczfsasfasd
 
Informe 555 aestable
Informe 555 aestableInforme 555 aestable
Informe 555 aestableLuchito-elec
 

What's hot (20)

Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Guia de practicas s7 1200 tia portal
Guia de practicas s7 1200 tia portalGuia de practicas s7 1200 tia portal
Guia de practicas s7 1200 tia portal
 
Informe practica 8 diodos zener
Informe practica 8 diodos zenerInforme practica 8 diodos zener
Informe practica 8 diodos zener
 
Syllabus procesamiento digital de señale_sjc
 Syllabus procesamiento digital de señale_sjc Syllabus procesamiento digital de señale_sjc
Syllabus procesamiento digital de señale_sjc
 
Cuadro comparativo de familias logicas
Cuadro comparativo de familias logicasCuadro comparativo de familias logicas
Cuadro comparativo de familias logicas
 
Sistemas de comunicaciones - Práctica 04
Sistemas de comunicaciones - Práctica 04Sistemas de comunicaciones - Práctica 04
Sistemas de comunicaciones - Práctica 04
 
Tema04 leccion10
Tema04 leccion10Tema04 leccion10
Tema04 leccion10
 
Amplificadores TBJ
Amplificadores TBJAmplificadores TBJ
Amplificadores TBJ
 
54599266 ejercicios-flip-flops
54599266 ejercicios-flip-flops54599266 ejercicios-flip-flops
54599266 ejercicios-flip-flops
 
Sumador de 4 bits
Sumador de 4 bitsSumador de 4 bits
Sumador de 4 bits
 
50824079 datasheet-pic18f4550-espanol
50824079 datasheet-pic18f4550-espanol50824079 datasheet-pic18f4550-espanol
50824079 datasheet-pic18f4550-espanol
 
Optoacopladores
OptoacopladoresOptoacopladores
Optoacopladores
 
Protocolo comunicación serial
Protocolo comunicación serialProtocolo comunicación serial
Protocolo comunicación serial
 
Practica 7 Flip Flop
Practica 7 Flip FlopPractica 7 Flip Flop
Practica 7 Flip Flop
 
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
 
Informe 4 digitales
Informe 4 digitalesInforme 4 digitales
Informe 4 digitales
 
Circuitos de disparo con aislamiento
Circuitos de disparo con aislamientoCircuitos de disparo con aislamiento
Circuitos de disparo con aislamiento
 
Transistor como interruptor
Transistor como interruptorTransistor como interruptor
Transistor como interruptor
 
direccionamiento microcontroladores pic
direccionamiento microcontroladores picdireccionamiento microcontroladores pic
direccionamiento microcontroladores pic
 
Informe 555 aestable
Informe 555 aestableInforme 555 aestable
Informe 555 aestable
 

Viewers also liked

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
 
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
 
EJERCICIO ADICIONAL 1ER EXAMEN
EJERCICIO ADICIONAL 1ER EXAMENEJERCICIO ADICIONAL 1ER EXAMEN
EJERCICIO ADICIONAL 1ER EXAMENLuis Zurita
 

Viewers also liked (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
 
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
 
EJERCICIO ADICIONAL 1ER EXAMEN
EJERCICIO ADICIONAL 1ER EXAMENEJERCICIO ADICIONAL 1ER EXAMEN
EJERCICIO ADICIONAL 1ER EXAMEN
 

Similar to 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 to 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
 

More from 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
 

More from 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