//***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)
//***PROGRAMA PARA DEMOSTRAR EL USO DE EVALUAR VARIAS CONDICIONES EN UNA MISMA EXPRESIN*** #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 configuracin 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 parmetros son visibles desde todo el cdigo // /// por eso se les llama globales /// /// Al ser constantes, lo ms prctico 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 funcin principal main
Prof. Luis Zurita Microcontroladores II
/// Programa: LEDs Parpadeando como el Auto fantstico /// /// libreria para el manejo del pic16f877a #include <16F877A.h> ///configura los fusibles /// XT es la configuracin 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 rotacin 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(){ //Funcin para mostrar datos en los displays con multiplexacin 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 {
} 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{
Excel para principiantes: Aprenda a utilizar Excel 2016, incluyendo una introducción a fórmulas, funciones, gráficos, cuadros, macros, modelado, informes, estadísticas, Excel Power Query y más
Lean: La Guía Fundamental para Lean Startup, Lean Six Sigma, Lean Analytics, Lean Enterprise, Lean Manufacturing, Scrum, Gestión Agile de Proyectos y Kanban
ChatGPT Ganar Dinero Desde Casa Nunca fue tan Fácil Las 7 mejores fuentes de ingresos pasivos con Inteligencia Artificial (IA): libros, redes sociales, marketing digital, programación...
Inteligencia artificial: Lo que usted necesita saber sobre el aprendizaje automático, robótica, aprendizaje profundo, Internet de las cosas, redes neuronales, y nuestro futuro