作业帮 > 综合 > 作业

这是我写的一个51单片机的流水灯程序,不知道为什么循环方式是这样的1-2-1-2-3-4-5-6-7-8

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/13 23:50:37
这是我写的一个51单片机的流水灯程序,不知道为什么循环方式是这样的1-2-1-2-3-4-5-6-7-8
#include
sbit been=P3^7;
void delay();
void main()
{
while(1)
{
P1=0x01;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led1
P1=0x02;
been=0;
delay();
P1=0x00;
been=1;
delay();

P1=0x04;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led3

P1=0x08;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led4
P1=0x10;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led5

P1=0x20;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led6

P1=0x40;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led7
P1=0x80;
been=0;
delay();
P1=0x00;
been=1;
delay(); //led8
}
}
void delay()
{
unsigned int x,y;
for(x=285;x--;x>0)
for(y=400;y--;y>0);
}
程序本身没看出什么问题,但是单片机初始化后各端口是高电平,虽然不能驱动二极管.所以建议你把发光二极管正极接电源,负极接单片机.用低电平点亮. 我仿真了你的程序没发现你说的问题.