...C语言编程:让8个LED流水灯以0.2s时间间隔从左到右依次点亮然后重复实 ...
发布网友
发布时间:2024-02-08 03:33
我来回答
共5个回答
热心网友
时间:2024-08-06 15:07
#include<reg52.h>
#include<intrins.h>
void delay(unsigned int z );
void main()
{
unsigned int a;
unsigned char b=0xfe;
for(a=0;a<8;a++)
{
P1=b;//P1口接8个LED灯
delay(200);
b=_crol_ (b,1);
}
}
void delay(unsigned int z)
{
unsigned int i;
for(;z>0;z--) //延迟时间自己算吧
for(i=110;i>0;i--);
}
用汇编写这个容易点
main: mov a,#0feh
mov r0,#8
loop: mov p1,a
acall delay
rl a
djnz r0,loop
delay:mov r6,#0ffh
loop1: mov r7,#01h
djnz r7,$
djnz r6,loop1
ret
end
好像是这样,延迟时间可能不太准,也是P1口接8个LED灯
热心网友
时间:2024-08-06 15:03
要求不高,就不用 C 语言。
ORG 0
MOV A, #127
LOOP: MOV P1, A
RL A
DL: DJNZ R7, $
DJNZ R6, DL
JMP LOOP
END
热心网友
时间:2024-08-06 15:07
#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();
}
}
热心网友
时间:2024-08-06 15:08
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;
}
}
热心网友
时间:2024-08-06 15:08
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);
}
}
单片机C语言编程:让8个LED流水灯以0.2s时间间隔从左到右依次点亮然后重...
void delay(unsigned int z );void main(){ unsigned int a;unsigned char b=0xfe;for(a=0;a<8;a++){ P1=b;//P1口接8个LED灯 delay(200);b=_crol_ (b,1);} } void delay(unsigned int z){ unsigned int i;for(;z>0;z--) //延迟时间自己算吧 for(i=110;i>0;i--)...
用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)
P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();}...
C语言控制单片机,控制八个流水灯从左到右依次亮,最后又从右到左依次亮...
假设P1接8 个LED,高电平时LED点亮,主程序如下:void main(void){ uchar i;while(1){ for(i=0;i<7;i++){ P1=1<<i;delay_ms(500);} for(i=0;i<7;i++){ P1=0x80>>i;delay_ms(500);} } }
c语言和汇编的程序八个LED依次左移逐个点亮,点亮后在依次右移逐个点亮不...
void delay(unsigned int a){ unsigned i,j;for(i=0;i<a;i++)for(j=0;j<1000;j++);} main(){ unsigned LED,i;LED = 0xfe;EA = 0;while(1){ for(i=0;i<7;i++){delay(100);LED = (LED<<1)|0x01;P3 = LED;} for(i=0;i<7;i++){delay(100);LED = (LED>>1)...
如何用汇编语言使流水灯(8个灯)从左向右依次点亮且不灭,之后从右往左...
RLC A LCALL DELAY DJNZ R2,LOOP1 MOV R2,#8 MOV A,#80HLOOP1: MOV P1,A SETB C RRC A LCALL DELAY DJNZ R2,LOOP1 SJMP MAINDELAY: MOV R2,#200DLY: MOV R3,#250 DJNZ R3,$ DJNZ R2,DLY RET END ...
控制8个LED灯,完成从左到右依次点亮,然后从右到左依次熄灭,魂环10次...
P0=led; led=led<<1; delay(200); } led=0x80; for(j=0;i<8;i++) { P0=led; led=(led>>1)|0x80; delay(200); } } P0=0xff; while(1);}
单片机C语言如何实现8个LED流水灯来回流动?
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:
单片机用汇编做一个控制8个LED灯泡从左到右依次点亮,最后全部亮,再全部...
void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } //主程序 void main(){ uint s;while(1){ P0=0xfe;DelayMS(150);for(s=8;s>1;s--){ P0=_crol_(P0,1); //P0 的值向左循环移动 DelayMS(150);} P0=0x00;DelayMS(150);p0=0xff;DelayMS(150);...
...从左到右依次单个点亮,从右到左再依次点亮;然后从左到右每次增加一...
P1=led; delay(200); led=_cror_(led,1); } led=0xfe; for(i=0;i<8;i++) { P1=led; led=led<<1; delay(200); } led=0x00; for(i=0;i<8;i++)
...假设有8个指示灯,从左到右以0.5s速度依次点亮,到达最右端后,再...
先mov一个1亮一个灯 使用SFR或者SFL右移左移指令,每0.5s就移动一次 到达最右端做个计数或者读取进位SM700 再反向移动过来