⚡ Descuentos en cursos en video - Lleva tu aprendizaje técnico al siguiente nivel y aprovecha precios especiales antes de que termine la oferta. 🔥 Aprovechar oferta ahora 🔥
Microcontroladores y sistemas digitales

Programación de pic 16f877A

Mariano85
hace 8 años
hace 8 años
Estimados buen día, Estoy haciendo con el PIC C Compiler un soft para seleccionar distintos puertos de salida del 16f877a. Hace muchísimo que no programo por lo cual me está costando mucho y necesito ayuda El programa tiene que hacer lo siguiente: Enciendo y está Habilitado el puerto b0, meto un pulso por pulsador y se apaga este puerto y enciende el b1. Luego meto otro pulso se apaga el b1 y se enciende el b2. Luego así por pulso enciende b0 y b1, otro pulso se apaga b1 y enciende b0 y b2 y por ultimo enciende b2 y b0. Cuando llego a esta última combinación de puertos meto un pulso y se vuelve a encender solo b1 de nuevo, osea que comienza la rutina, abajo esta lo que vengo haciendo si bien es el principio del programa. como puerto de entrada puse al puerto B3 que es donde conectaria al pulsador. Agradecería si alguien me puede guiar. Saludos #include <16f877A.h> #fuses hs, void main() { int i; i=0; set_tris_b(0b11111000); while(1) output_b(0b00000001); for(i=0;i<=8;i=i+1) { if(i=1) {output_b(0b00000010); } else {output_b(0b00000000); } if(i=1) {output_b(0b00000010); } else {output_b(0b00000000); } } }
inge.estratus
hace 8 años
hace 8 años
si es con un solo pish botton te recomendaria hacer una rutina con swicht...si me das un poco de tiempo y si aun lo necesiyas te lo envio te lo envio...
inge.estratus
hace 8 años
hace 8 años
ola hace tiempo hice un programa parecido al que tu quieres...pero este lo realice en ccs compiler...solo tendrias que cambiar los puertos de salida.. el programa es el siguiente: #include <16f877.h> #device ICD=TRUE #fuses HS,NOLVP,NOWDT,PUT #use delay(clock=4000000) #define LED_VERDE PIN_A5 #define LED_AMARILLO PIN_B4 #define LED_ROJO PIN_B5 #define PUSH_BUTTON PIN_A4 #define ENCENDER output_high #define APAGAR output_low ENCENDER_LED(int LED) { switch(LED) { case 1 : ENCENDER(LED_VERDE); APAGAR(LED_AMARILLO); APAGAR(LED_ROJO); break; case 2 : ENCENDER(LED_AMARILLO); APAGAR(LED_VERDE); APAGAR(LED_ROJO); break; case 3 : APAGAR(LED_VERDE); APAGAR(LED_AMARILLO); ENCENDER(LED_ROJO); break; } } LEER_PUSH_BUTTON() { while(input(PUSH_BUTTON)) ; while(!input(PUSH_BUTTON)) ; } main() { while(TRUE) { ENCENDER_LED(1); LEER_PUSH_BUTTON(); ENCENDER_LED(2); LEER_PUSH_BUTTON(); ENCENDER_LED(3); LEER_PUSH_BUTTON(); } } espero te sirva... y un saludo[/url]
Mariano85
hace 8 años
hace 8 años
Gracias. Me sirvió perfecto.
Reparaciones similares solucionadas

¿Conoces una solución?

¡Aprende a reparar con estos cursos YoReparo!

4.93
(14)

Curso Reparación de Equipos de Audio de Alta Fidelidad

Maximiliano Resch
$ 60 USD
$ 20 USD
4.73
(22)

Curso Reparación de Fuentes Conmutadas de PC y Equipos Electrónicos

Maximiliano Resch
$ 40 USD
$ 20 USD
4.94
(16)

Curso Refrigeración Comercial Aplicado a Diagnóstico y Reparación

Ing. Georga Melgarejo
$ 40 USD
$ 13 USD
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos?
Regístrate gratis