¿Cómo conectar dos leds y dos pulsadores con 8051?

0

Estoy usando 8051 mcu para hacer algunas pruebas. Estoy tratando de usar dos entradas para dos pulsadores y dos salidas para dos Leds. SW1 = pulsador 1 SW2 = pulsador 2 LED1 = led1 LED2 = led2

por ejemplo -si presiono S1, el Led1 brillará continuamente. -si presiono S2, el Led2 brillará continuamente.

Estos dos comandos funcionan de forma independiente.

Así que aquí lo que intenté: Solo S1 y Led1 están funcionando. Por favor ayuda, gracias.

#include <reg51.h>

sbit S1 = P2^0;
sbit S2 = P2^1;

sbit Led = P1^0;
sbit Led2 = P1^1;

void main()
 {
    S1 = 1;
    S2 = 1;

     while(1)  // For ever 
       {
         if(S1 == 0)  // if press Push button
          { 
            Led = 0;// ON LED ( active low )
            while(S1 == 0);// Wait here for release of push button
          }
      Led = 1;
       }

{
  if (S2 == 0)
    {
      Led2 = 0;
      while (S2 == 0);
       }
       Led2 = 1;
   }
}
    
pregunta Mimi Cracra

2 respuestas

0

Tienes paréntesis no pareados o extra.

void main() {
    S1 = 1;
    S2 = 1;

    while(1) {  // For ever 
      if(S1 == 0) {  // if press Push button
         Led = 0;// ON LED ( active low )
         while(S1 == 0);// Wait here for release of push button
      }
      Led = 1;
      } // LOOPS BACK TO WHILE
    { // ***EXTRA***
    if (S2 == 0) {
      Led2 = 0;
      while (S2 == 0);
    }
    Led2 = 1;

   } // While?
} // Main?

Solucionado:

void main() {
    S1 = 1;
    S2 = 1;

    while(1) {  // For ever 
      if(S1 == 0) {  // if press Push button
         Led = 0;// ON LED ( active low )
         while(S1 == 0);// Wait here for release of push button
      }

      Led = 1;

      if (S2 == 0) {
         Led2 = 0;
         while (S2 == 0);
      }

      Led2 = 1;

   } // While
} // Main
    
respondido por el Passerby
0

la instrucción while (1) solo encierra el código del controlador de prensa S1. cuente las llaves {} y mueva el código del controlador S2 dentro del conjunto de llaves que pertenecen a la cadena.

while(1) // forever
{
    // all code goes here
    if(....) 
    {
    }
    if(...)
    {
    }
} // end of while(1)
// anything after this point never runs
    
respondido por el MarkU

Lea otras preguntas en las etiquetas