Red de conocimientos turísticos - Información de alquiler - ¿Cuál es la innovación del control de luces LED por microordenador de un solo chip?

¿Cuál es la innovación del control de luces LED por microordenador de un solo chip?

El punto innovador de utilizar un microordenador de un solo chip para controlar las luces LED es que todos los ánodos del LED están conectados al electrodo positivo (fuente de alimentación). Cuando el electrodo negativo está conectado al cátodo de. el LED, emitirá luz, porque el cátodo del LED está conectado al puerto P2 de la computadora de un solo chip, si desea encender ese LED, asigne el pin correspondiente del microcontrolador a nivel bajo. Los detalles son los siguientes: 1. Conocimiento básico de LED

El LED es un tipo de diodo emisor de luz que tiene las características de conducción unidireccional. La placa de desarrollo 51 utiliza diodos emisores de luz tipo parche. y el voltaje de conducción directa está entre 1,8 y 2,2 V, la corriente durante el funcionamiento es de 1 a 20 mA. Cuando la corriente cambia entre 1 y 5 mA, el cambio de brillo se puede observar a simple vista, pero cuando la corriente cambia entre 5 y 20 mA, el cambio de brillo es menos obvio. Si la corriente continúa aumentando, el diodo puede quemarse. El resto del conocimiento del LED no se describirá. El esquema del LED se muestra en la siguiente figura.

Diagrama esquemático del LED

2. Encienda la primera lámpara LED.

Como se puede ver en el diagrama esquemático, todos los ánodos del LED están conectados a el electrodo positivo (fuente de alimentación). Solo cuando el electrodo negativo esté conectado al cátodo del LED emitirá luz, porque el cátodo del LED está conectado al puerto P2 del microcontrolador si desea encender ese LED. , simplemente asigne el pin correspondiente del microcontrolador a un nivel bajo. El procedimiento específico es el siguiente:

#include "reg52.h" //Este archivo define algunos registros de funciones especiales del microcontrolador

sbit led=P2^0; //Definir el puerto P2.0 del microcontrolador como led

void main()

{

while(1)

{

led=0; //El puerto P2.0 está configurado en nivel bajo

}

}

1

2

3

4

5

6

7

8

9

10

11

12

1

2

3

4

5

6

7

8

9

10

11

12

3 . LED parpadeando

Si desea que el LED parpadee, hay un retraso. Hay muchas formas de retrasar el microcontrolador. Aquí recomendamos un asistente de programa relativamente simple: el microcontrolador elf, que puede configurar directamente. tiempo y generar el código correspondiente.

El programa para hacer parpadear el LED del pin P2^0 a intervalos de un segundo es el siguiente:

#include "reg52.h" //Este archivo define algunas funciones especiales de el microcontrolador.Registrar

#include "intrins.h" //Archivo de encabezado

sbit led=P2^0 //Definir el puerto P2.0 del microcontrolador como led

void delay1s() //Retraso 1s, error 0us

{

unsigned char a, b, c

for(c; =46; cgt; 0; c--)

para (b=152; bgt; 0; b--)

para (a=70; agt; 0; a --) ;

_nop_(); //si Keil, requiere uso intrins.h

}

void main()//programa principal

{

while(1)

{

led=0; //El puerto P2.0 está configurado en nivel bajo

delay1s(); //Llamar a la función de retardo

led=1; //El puerto P2.0 está configurado en nivel bajo

delay1s();

}

}

1

2

3

4

5

6

7

8

9

10

11

p>

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

1

2

3

4

5

6

7

8

9

10

p>

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

Para expresar mejor el programa, el hexadecimal es se utiliza para expresar el programa de la siguiente manera:

#include "reg52.h" //Este archivo define algunos registros de funciones especiales del microcontrolador

#include "intrins.h" /. /Archivo de encabezado

void delay1s() //Retraso 1s, error 0us

{

unsigned char a, b, c

for(c= 46;cgt;0;c--)

for(b=152;bgt;0;b--)

for(a=70;agt ;0;a- -);

_nop_(); //si es Keil, requiere uso intrins.h

}

vo

id main()//Programa principal

{

while(1)

{

P2=0xFE; El puerto 0 está configurado en nivel bajo

delay1s(); //Llama a la función de retardo

P2=0xFF //El puerto P2.0 está configurado en nivel bajo

retraso1s();

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

Lo anterior es Para el diseño de una luz LED, el siguiente diseño está diseñado para que 8 luces LED parpadeen en secuencia. El procedimiento específico es el siguiente:

#include "reg52.h" //Este archivo define algunos. registros de funciones especiales del microcontrolador

#include "intrins.h" //Archivo de encabezado

void delay1s() //Retraso 1s, error 0us

{

caracteres sin firmar a, b, c;

for(c=46;cgt;0;c--)

for(b=152; bgt;0;b- -)

for(a=70; agt; 0; a--);

_nop_(); //si Keil, requiere uso de intrins. h

}

void main()//programa principal

{

while(1)

{

P2=0xFE; //1111 1110

delay1s(); //Llamar a la función de retardo

P2=0xFD; p>

retraso1s ();

P2=0xFB; //1111 1011

retraso1s();

P2=0xF7; //1111 0111

retardo1s();

P2=0xEF; //1110 1111

retardo1s();

P2=0xDF; 1101 1111

retraso1s();

P2=0xBF; //1011 1111

retraso1s();

P2=0x7F; //0111 1111

p>

retraso1s();

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18 p>

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

1

2

3

4

5

6

7

8

p>

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

p>

34

35

4. El LED se mueve hacia la izquierda y hacia la derecha

Lo que se describe arriba es el diseño de uso. retraso y asignación de valores al pin del puerto P2 La luz LED parpadea, por lo que el programa es más complicado. A continuación usaremos "desplazamiento a la izquierda" y "desplazamiento a la derecha" para diseñar, crol (a, b), bucle izquierdo. a es el valor del desplazamiento hacia la izquierda, b es el número de dígitos para desplazarse hacia la izquierda; cror(a, b), bucle hacia la derecha, a es el valor desplazado hacia la derecha y b es el número de bits desplazados hacia la derecha. Contenido en la función de biblioteca instrins.h.

El programa específico es el siguiente:

#include "reg52.h" //Este archivo define algunos registros de funciones especiales del microcontrolador

#include "intrins.h" //Encabezado archivo, contiene retrasos (_nop_) y bucles de funciones

typedef unsigned int u16; //Declarar un nuevo nombre de tipo

typedef unsigned char u8 //Declarar un nuevo nombre de tipo

p>

#define led P2//Definición de macro

void delay1s() //Retraso 1s, error 0us

{

u8 a, b , c ;

for(c=46;cgt;0;c--)

for(b=152;bgt;0;b--)

for(a=70; agt; 0; a--);

_nop_(); //si Keil, requiere uso intrins.h

}

void main()//Programa principal

{

u8 i; //Definir el tipo de i

led=0xFE;

delay1s();

while(1)

{

for(i=0;ilt;7;i)//desplazamiento a la izquierda

{

led=_crol_(led, 1

retraso1s()

}

for(i =0;ilt;7;i)//Desplazamiento hacia la derecha

{

led=_cror_(led, 1);

delay1s() ;

p>

}

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

1

2

3

4

5

6

7

8

9

10

p>

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

p>

35

36

37

5. Resumen

Los procedimientos anteriores han sido verificados experimentalmente y son completamente correctos. . Para el control de luces LED, se puede diseñar en conjunto con los botones para lograr más funciones, las cuales serán actualizadas más adelante. Para aquellos que no tienen una placa de desarrollo de microcontrolador, pueden utilizar el software de simulación proteus para diseñar.