流水灯89C51的查表法汇编程序
流水灯:
ORG 0000H ;单片机上电后从0000H地址执行
AJMP START ;跳转到主程序存放地址处
ORG 0030H ;设置主程序开始地址
START:MOV SP,#60H ;设置堆栈起始地址为60H
MOV A,#0FEH ;ACC中先装入LED1亮的数据(二进制的11111110)MOV P1,A;将ACC的数据送P1口
MOV R0,#7 ;将数据再移动7次就完成一个8位流水过程
LOOP:RL A;将ACC中的数据左移一位
MOV P1,A;把ACC移动过的数据送p1口显示
ACALL DELAY;调用延时子程序
DJNZ R0,LOOP ;没有移动够7次继续移动
AJMP START ;移动完7次后跳到开始重来,以达到循环流动效果0 DELAY: MOV R7,#250
DELAY1: MOV R6,#250
DELAY2:MOV R5,#4
DELAY3:DJNZ R5,DELAY3
DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET ;延时大约2u*4*255*255=0.5s
END
相关主题