2-江科大-点灯

目录

正文

image-20240416215800777

image-20240416220801779

1
2
3
4
5
6
7
8
9
10
11
12
#include <REGX52.H>
//点亮第一个LED,通过控制寄存器写出数据

void main(){

// 1为高电平,0为低电平
P2=0xfe; // 1111 1110
while(1){

}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <INTRINS.H>

//延时函数 500ms
void Delay500ms(){
unsigned char i,j,k;

_nop_();
i = 4;
j= 205;
k = 187;

do{
do{
while(--k);

}while(--j);
}while(--i);

}
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
#include <REGX52.H>
#include <INTRINS.H>
//led闪烁

//延时函数 500ms
void Delay500ms(){
unsigned char i,j,k;

_nop_();
i = 4;
j= 205;
k = 187;

do{
do{
while(--k);

}while(--j);
}while(--i);

}

void main(){


while(1){
// 1为高电平,0为低电平
P2=0xfe; // 1111 1110
Delay500ms();
P2=0xff; // 1111 1110
Delay500ms();
}

}
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
41
42
43
44
45
46
47
48
49
50
#include <REGX52.H>
#include <INTRINS.H>
//LED流水灯

//延时函数 500ms
void Delay500ms(){
unsigned char i,j,k;

//什么也不做,可以删掉,但是未了解细节TODO
_nop_();
i = 4;
j= 205;
k = 187;

do{
do{
while(--k);

}while(--j);
}while(--i);

}

void main(){


while(1){
// 1为高电平,0为低电平
P2=0xfe; // 1111 1110
Delay500ms();
P2=0xfd; // 1111 1110
Delay500ms();
// 1为高电平,0为低电平
P2=0xfb; // 1111 1110
Delay500ms();
P2=0xf7; // 1111 1110
Delay500ms();
// 1为高电平,0为低电平
P2=0xef; // 1111 1110
Delay500ms();
P2=0xdf; // 1111 1110
Delay500ms();
// 1为高电平,0为低电平
P2=0xbf; // 1111 1110
Delay500ms();
P2=0x7f; // 1111 1110
Delay500ms();
}

}

image-20240416224202037