Proteus仿真STC51单片机流水灯注意事项

Proteus仿真STC51单片机流水灯


  • Proteus在绘制仿真STC单片机原理图是,注意Led灯一定要接限流电阻,不然,只能依次点亮3盏灯,后面的就不亮了。我开始搭建电路的时候图方便就省略掉了添加限流电阻,一开始一头雾水,程序代码应该没有问题,折腾了我好久,不知道是不是软件的一个bug。避免后面看到的人采坑。
    在这里插入图片描述
  • 代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <reg52.h> 

void delay\_ms(unsigned int n);

void main (){
unsigned char i;
while(1){
P3 = 0XFF;
for(i=0;i<8;i++){
P3 = P3<<1;
delay\_ms(500);
}
}
}

//延时n毫秒
void delay\_ms(unsigned int n)//@12MHz晶振
{
unsigned int i=0,j=0;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}

  • 往复流水灯效果
    在这里插入图片描述
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
#include <reg52.h> 

void delay\_ms(unsigned int n);

void main (){
unsigned char i,j;
while(1){
P3 = 0XFF;
for(i=0;i<8;i++){
P3 = P3<<1;
delay\_ms(500);
}

P3=0X7f;

for(j=0;j<8;j++){
P3 = P3>>1;
delay\_ms(500);


}
//}
}
}

//延时n毫秒
void delay\_ms(unsigned int n)//@12MHz晶振
{
unsigned int i=0,j=0;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}