永发信息网

怎么写一个开关开关开,就显示八个流水灯闪烁,开关关八个流水灯全灭的程序

答案:2  悬赏:20  手机版
解决时间 2021-03-30 05:05
  • 提问者网友:雾里闻花香
  • 2021-03-29 09:18
怎么写一个开关开关开,就显示八个流水灯闪烁,开关关八个流水灯全灭的程序
最佳答案
  • 五星知识达人网友:洒脱疯子
  • 2021-03-29 10:16
2个方案:
第一种:

ORG 00H ;定义当前位置为 00H,
START: JB P1.0,NEXT1 ;位-为1转移到 接口1第0位,NEXT1
CLR P0.0 ;清0 接口0第0位,
SJMP NEX1 ;短转移到 NEX1,
NEXT1: SETB P0.0 ;位-置1 接口0第0位,
NEX1: JB P1.1,NEXT2 ;位-为1转移到 接口1第1位,NEXT2
CLR P0.1 ;清0 接口0第1位,
SJMP NEX2 ;短转移到 NEX2,
NEXT2: SETB P0.1 ;位-置1 接口0第1位,
NEX2: JB P1.2, NEXT3 ;位-为1转移到 接口1第2位,NEXT3
CLR P0.2 ;清0 接口0第2位,
SJMP NEX3 ;短转移到 NEX3,
NEXT3: SETB P0.2 ;位-置1 接口0第2位,
NEX3: JB P1.3,NEXT4 ;位-为1转移到 接口1第3位,NEXT4
CLR P0.3 ;清0 接口0第3位,
SJMP NEX4 ;短转移到 NEX4,
NEXT4: SETB P0.3 ;位-置1 接口0第3位,
NEX4: JB P1.4,NEXT5 ;位-为1转移到 接口1第4位,NEXT5
CLR P0.4 ;清0 接口0第4位,
SJMP NEX5 ;短转移到 NEX5,
NEXT5: SETB P0.4 ;位-置1 接口0第4位,
NEX5: JB P1.5,NEXT6 ;位-为1转移到 接口1第5位,NEXT6
CLR P0.5 ;清0 接口0第1位,
SJMP NEX6 ;短转移到 NEX6,
NEXT6: SETB P0.5 ;位-置1 接口0第1位,
NEX6: JB P1.6,NEXT7 ;位-为1转移到 接口1第6位,NEXT7
CLR P0.6 ;清0 接口1第6位,
SJMP NEX7 ;短转移到 NEX7,
NEXT7: SETB P0.6 ;位-置1 接口0第6位,
NEX7: JB P1.7,NEXT8 ;位-为1转移到 接口1第7位,NEXT8
CLR P0.7 ;清0 接口0第7位,
SJMP NEX8 ;短转移到 NEX8,
NEXT8: SETB P0.7 ;位-置1 接口0第7位,
NEX8: SJMP START ;短转移到 START,
END ;END
第二种:先说硬件连接
将8个灯接到P1口的8根线法
灯的排列为
1 2 3 4
5 6 7 8
分别对应
p1_0 p1_1 p1_2 P1_3
p1_7 p1_6 p1_5 P1_4
闪亮程序
unsigned char m;
for(n=0;n<4;n++)
{
m=1<m+=m<<4;//设第二行的灯
P1=m;
wait();//等待
}
依次亮
for(n=1;n<5;n++)
{
m=1<m+=m<<4;//设第二行的灯
P1=m;
wait();//等待
}
全亮是P1=0xFF;
全灭是P1=0x00;
自己组合。追问虽然你并没有解决我直接的问题,但是看到就你回答我别人都没有回答我我还是要给你个赞(采纳)
全部回答
  • 1楼网友:舍身薄凉客
  • 2021-03-29 11:34
我怎么感觉像是绕口令
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯