单片机实验----跑马灯
实验效果:
- 8只LED灯轮流点亮,从左到右,再从右到左,不断循环。
知识点:
- RL指令
- RR指令
- 高128位单元
代码:
ORG 0000H ;主程序
MAIN: MOV A,#0FEH ;acc初始化,11111110B
LOOP: MOV P1,A ;将acc的数据传送到P1口
LCALL DELAY ;调用延迟子程序
RL A ;将acc中的数据左右一位
LJMP LOOP ;回到LOOP标记处,点亮下一盏灯
DELAY: MOV R1,#200 ;延时子程序
D1: MOV R2,#150
D2: DJNZ R2,D2
DJNZ R1,D1
RET ;返回主程序
END
我们知道控制P1口的数值可以使得LED灯亮或者灭。
那怎么改变P1口的数值呢?
我们可以通过RL指令。
原理:
我们将11111110B传给P1口,再用RL指令将11111110B左移,改变11111110B中0的位置,来达到改变P1口8位的数值,从而控制LED的亮灭。
-
RL指令
格式:RL A
功能:将acc中的数据循环左移一位,以形成新的数据 -
RL指令
<
格式:RR A
功能:同上,循环左右移