第1个回答 2011-03-17
void delay(int tick);//延时0.1*tick秒
void led8(unsigned char pat);//驱动8个LED,每个bit驱动1个.从bit7到bit0,从左到右排列.输出1表示点亮.
unsigned char pat = 0;
while (1)
{
pat = 0x00;
led8(pat);
delay(2);
for(i = 0; i < 7;i++)
{
pat |= (0x80 >> i);
led8(pat);
delay(2);
}
}
第2个回答 2011-03-17
#include<reg51.h>
void delay(void)
{
unsigned int i,j;
for(i=0;i<200;i++)
for(j=0;j<1000;j++)
;
}
void main(void)
{
while(1)
{
P3=0xfe; //第一个灯亮
delay(); //延时
P3=0xfd; //第二个灯亮
delay();
P3=0xfb; //第三个灯亮
delay();
P3=0xf7; //第四个灯亮
delay();
P3=0xef; //第五个灯亮
delay();
P3=0xdf; //第六个灯亮
delay();
P3=0xbf; //第七个灯亮
delay();
P3=0x7f; //第八个灯亮
delay();
}
}
第3个回答 2011-03-17
void delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<250;j++)
{;}
}
main()
{
unsigned char a=0xfe;
unsigned int k=0;
while(1)
for(k=0;k<8;k++)
{
P1=a;//假设LED连接的是P1口
delay(200);
a=~a;
a=a<<1;
a=~a;
}
}
第4个回答 2022-04-18
要求不高,就不用 C 语言。
ORG 0
MOV A, #127
LOOP: MOV P1, A
RL A
DL: DJNZ R7, $
DJNZ R6, DL
JMP LOOP
END