单片机实验----跑马灯

本文介绍了一次单片机实验,通过RL和RR指令控制8只LED灯轮流从左到右、从右到左点亮,实现跑马灯效果。讲解了RL和RR指令的功能以及高128位单元中的特殊功能寄存器,包括累加器A、程序状态字寄存器PSW和数据指针DPTR的作用。
摘要由CSDN通过智能技术生成

单片机实验----跑马灯


实验效果:

  • 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的亮灭。

  1. RL指令
    格式:RL A
    功能:将acc中的数据循环左移一位,以形成新的数据

  2. RL指令
    格式:RR A
    功能:同上,循环左右移

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值