利用单片机控制八个led灯,要求:全亮全灭 ,四亮四灭,以从右到左的 流水形式编程,不是用c语言 编
答案:2 悬赏:80 手机版
解决时间 2021-11-27 04:45
- 提问者网友:缘字诀
- 2021-11-26 05:26
利用单片机控制八个led灯,要求:全亮全灭 ,四亮四灭,以从右到左的 流水形式编程,不是用c语言 编
最佳答案
- 五星知识达人网友:玩世
- 2021-11-26 05:41
#include
#define LED P0
void delay (int);
main()
{
int i;
while(1)
{
LED=0xfe;
for(i=0;i<7;i++)
{
delay(100);
LED=(LED<<1)|0x01;
}
for(i=0;i<7;i++)
{
delay(100);
LED=(LED>>1)|0x80;
}
LED=0xff;
for(i=0;i<4;i++)
{
delay(300);
LED=~LED;
}
}
}
#define LED P0
void delay (int);
main()
{
int i;
while(1)
{
LED=0xfe;
for(i=0;i<7;i++)
{
delay(100);
LED=(LED<<1)|0x01;
}
for(i=0;i<7;i++)
{
delay(100);
LED=(LED>>1)|0x80;
}
LED=0xff;
for(i=0;i<4;i++)
{
delay(300);
LED=~LED;
}
}
}
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-11-26 06:26
因为我知道这是你单片机实习报告,老师李欢欢。org 0100H
jmp start
start: mov A,#0FFH
mov P0,A
mov R1,#07FH
mov R2,#02H
mov R3,#09H
mov R4,#09H
mov R5,#0FEH
loop1: dec R2
jz over
loop2: dec R3
jz loop3
mov A,R1
rl A
mov P0,A
call delay
mov R1,A
jmp loop2
loop3: dec R4
jz loop1
mov A,R5
rr A
mov P0,A
call delay
mov R5,A
jmp loop3
delay: mov R0,#07FH
djnz R0,delay
ret
over: nop
end
用Proteus仿真只有左边第一个灯亮而且一直亮着,当我把那个延时程序去掉仿真时,8个灯间隔的显示,但显示的顺序有点混乱,达不到预期效果。
预期效果是:让8个LED等从左到右显示再从右到左显
jmp start
start: mov A,#0FFH
mov P0,A
mov R1,#07FH
mov R2,#02H
mov R3,#09H
mov R4,#09H
mov R5,#0FEH
loop1: dec R2
jz over
loop2: dec R3
jz loop3
mov A,R1
rl A
mov P0,A
call delay
mov R1,A
jmp loop2
loop3: dec R4
jz loop1
mov A,R5
rr A
mov P0,A
call delay
mov R5,A
jmp loop3
delay: mov R0,#07FH
djnz R0,delay
ret
over: nop
end
用Proteus仿真只有左边第一个灯亮而且一直亮着,当我把那个延时程序去掉仿真时,8个灯间隔的显示,但显示的顺序有点混乱,达不到预期效果。
预期效果是:让8个LED等从左到右显示再从右到左显
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯