MCS51多开关控制多灯2_Proteus仿真

本文详细介绍了使用多开关控制多个LED灯的电路设计原理,通过两个不同的程序实现开关状态与LED灯亮灭的对应关系。程序1采用直接控制方式,而程序2通过延时函数实现软件防抖,避免了LED灯因开关快速切换产生的余辉现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多开关控制多灯2

硬件连接:
在这里插入图片描述
程序1:

ORG 10
START:
	;MOV		P0,#0FH
	JNB		P0.0,LOP1	;P0.0位为0则跳转至LOP1
	SETB	P0.4
	SJMP	NEXT1
LOP1:
	CLR		P0.4
NEXT1:
	JNB		P0.1,LOP2
	SETB	P0.5
	SJMP	NEXT2
LOP2:
	CLR		P0.5
NEXT2:
	JNB		P0.2,LOP3
	SETB	P0.6
	SJMP	NEXT3
LOP3:
	CLR		P0.6
	NEXT3:
	JNB		P0.3,LOP4
	SETB	P0.7
	SJMP	NEXT4
	LOP4:
	CLR		P0.7
	NEXT4:
	AJMP	START
	RET
	END

程序2:

	ORG		000H
START:
	MOV		P0,#0FFH	;高四位LED灯灭,低四位开关状态置1
	MOV		A,P0		;读P0口状态,送到累加器A中
	SWAP	A			;低四位、高四位状态互换
	ANL		A,#0F0H		;高四位值不变
	MOV		P0,A		;从P0口输出
	LCALL	Dealy
	SJMP	START		;循环
Dealy:					;延时子程序,软件防抖
	MOV		R7,#250
D1: MOV		R6,#250
D2:	NOP
	NOP
	DJNZ	R6,D2
	DJNZ	R7,D1
	RET
	END

仿真结果:
sa
若将程序2中延时函数注释
;LCALL Dealy
LED出现余辉:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值