Sui

51单片机系列-LED

字数统计: 306阅读时长: 1 min
2020/12/30 Share

51单片机系列-LED

单片机点亮LED是一项基本的操作,也是入门操作,通过分析电路以及原理来点亮LED。

可以看到单片机的8个LED接在了P2口上,那么通过操作P2口的高低电平就可以点亮或者关闭LED。

当P2口输出低电平时,可以点亮LED,输出高电平时,会熄灭LED。那么接下来看一下代码

1
2
3
4
5
6
7
8
9
#include <reg51.h>

sbit LED1 = P2^0;

void main() {
while(1) {
LED1 = 0;
}
}

直接通过sbit定义一个单片机的引脚,然后通过赋值低电平使其点亮。

流水灯

流水灯就涉及到了位操作,即左移与右移,使用函数_crol_可以实现左移,使用函数_cror_可以实现右移动

但是,使用这两种函数就需要引入头文件#include <intrins.h>

代码如下:

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
38
39
40
#include <reg51.h>
#include <intrins.h>

typedef unsigned char u8;
typedef unsigned int u16;

#define LED P2

void delay_ms(u16 time)
{
while(time--);
}

void main()
{

while(1)
{
int i = 0,j = 0;
LED = 0xfe;
delay_ms(50000);

for(; i < 3; i++)
{
LED = _crol_(LED, 2);
delay_ms(50000);
}

// 1111 1101
LED = 0xfd;
delay_ms(50000);

for(; j < 3; j++)
{
LED = _crol_(LED, 2);
delay_ms(50000);
}
}

}
CATALOG
  1. 1. 51单片机系列-LED
    1. 1.1. 流水灯