AT8951单片机,关于一个简单的这流水灯程序,用汇编语言的。 要求是这样的: 在P1口接八个灯,运行后让八
展开全部
ORG 0000H;利用定时器中断产生延迟
AJMP MAIN;
ORG 000BH;定时器0入口地址
AJMP LABEL;进入中断服务程序
MAIN:
MOV TMOD,#01H;
SETB TR0;
SETB EA;
SETB ET0;
MOV TH0,#00H;
MOV TL0,#00H;以上是定时器中断初始化
MOV R1,#0FEH;我这里认为流水灯是低电平有效
SJMP $
LABEL:
MOV A,R1;
RR A;循环右移,如果要左移可以改为rl a
MOV P0,A;
MOV R1,P0
MOV TH0,#00H;
MOV TL0,#00H;
RETI;
END;
AJMP MAIN;
ORG 000BH;定时器0入口地址
AJMP LABEL;进入中断服务程序
MAIN:
MOV TMOD,#01H;
SETB TR0;
SETB EA;
SETB ET0;
MOV TH0,#00H;
MOV TL0,#00H;以上是定时器中断初始化
MOV R1,#0FEH;我这里认为流水灯是低电平有效
SJMP $
LABEL:
MOV A,R1;
RR A;循环右移,如果要左移可以改为rl a
MOV P0,A;
MOV R1,P0
MOV TH0,#00H;
MOV TL0,#00H;
RETI;
END;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
延时根据单片机调整.
ORG 00H
MOV P2,#80H
START:MOV A,#0FFH ;赋初值
CLR C
MOV R2,#8
LOOP:RRC A ; 带进位右移
MOV P1,A
CALL DELAY
DJNZ R2,LOOP
MOV R2,#7
LOOP1:RLC A ; 带进位左移
MOV P1,A
CALL DELAY
DJNZ R2,LOOP1
JMP START
DELAY:MOV R3,#20 ; 延时0.2秒
D1: MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END
请参考
ORG 00H
MOV P2,#80H
START:MOV A,#0FFH ;赋初值
CLR C
MOV R2,#8
LOOP:RRC A ; 带进位右移
MOV P1,A
CALL DELAY
DJNZ R2,LOOP
MOV R2,#7
LOOP1:RLC A ; 带进位左移
MOV P1,A
CALL DELAY
DJNZ R2,LOOP1
JMP START
DELAY:MOV R3,#20 ; 延时0.2秒
D1: MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET
END
请参考
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
汇编的啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题不完整啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询