要求,P1口接8个灯,1到8灯同时点亮一次,然后是1到8依次点亮一次,接着2,4,6,8灯依次点亮一次,其余灯不点亮。2,4,6,8灯依次点亮的这里要求循环3次。然后在循环到开头1到8灯同时点亮那里然后接下去,反复到永远。
好像还要用到, void delay (unsigned char i ) 还有J,k 什么小于2百多的那些语言
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp,i,k;
void delay(uint ms)
{
uchar j;
while(ms--)
for(j=0;j<123;j++);
}
void disp1() //P1口接8个灯,1到8灯同时点亮一次
{
P1=0x00;
delay(500);
P1=0xff;
delay(500);
}
void disp2() // 1到8依次点亮一次
{
temp=0xfe;
for(i=0;i<8;i++)
{
P1=temp;
delay(500);
temp=_crol_(temp,1);
}
P1=0xff;
delay(500);
}
void disp3() //2,4,6,8灯依次点亮的这里要求循环3次
{
temp=0xfd;
for(i=0;i<3;i++)
{
for(k=0;k<4;k++)
{
P1=temp;
delay(500);
temp=_crol_(temp,2);
}
}
}
void main()
{
while(1)
{
disp1();
disp2();
disp3();
}
}
追问我用软件测试了一下,那个灯闪的好块,能不能在多加点灯的延时啊。我是真不会改
追答不快呀,隔0.5S的
delay(500)就是500ms,你要改慢,就这个数加大。
QQ给我,我直接问你接下来的疑问
追答578743933