51单片机按键亮灯汇编,作者刚刚开始学习汇编

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


51单片机按键亮灯

ORG     0000H
		LCALL   DEF
		LCALL   ABC
		LCALL   BCD
		LCALL   CDE
    	LCALL   MAIN
DEF:                 ;按下k1,p2.0和p2.7的灯亮起,若想只亮一   	盏灯,即删除其中的一个LED就可以
		LED0 BIT P2.0
		LED7 BIT P2.7
		K1  BIT P3.1
ABC:                 ;同上
		LED1 BIT P2.1
		LED6 BIT P2.6
		K2  BIT P3.0
BCD:                 ;同上
		LED2 BIT P2.2
		LED5 BIT P2.5
		K3  BIT P3.2
CDE:                 ;同上
		LED3 BIT P2.3
		LED4 BIT P2.4	
		K4  BIT P3.3
DELAY:              ;延时函数
		MOV    R5,#2
		MOV    R6,#0
        MOV    R7,#0
DELAYLOOP:       
		NOP
        DJNZ   R7,DELAYLOOP
        DJNZ   R6,DELAYLOOP
		DJNZ   R5,DELAYLOOP
        RET
KEY1:					;定义按键key1,按下k1,LED0和LED7灯亮起
		JB K1, KEY_OUT
		LCALL DELAY 
		CPL LED0
		CPL LED7
		JB K1, KEY_OUT
		
KEY2:
		JB K2, KEY_OUT
		LCALL DELAY
		CPL LED1
		CPL LED6 		
		JB K2, KEY_OUT
		
KEY3:		
		JB K3, KEY_OUT
		LCALL DELAY 
		CPL LED2
		CPL LED5
		JB K3, KEY_OUT
KEY4:		 
		
		JB K4, KEY_OUT
		LCALL DELAY 
		CPL LED3
		CPL LED4
		JB K4, KEY_OUT 	
KEY_LOOP:	
		JNB K1, KEY_LOOP 
		JNB K2, KEY_LOOP 
		JNB K3, KEY_LOOP 
		JNB K4, KEY_LOOP 
KEY_OUT:
		RET
MAIN:  	    
		LCALL  KEY1
		LCALL  KEY2
		LCALL  KEY3
		LCALL  KEY4
        LJMP   MAIN
		RET
		
		END

总结

CSDN上有更加优化的51单片机按键亮灯的开发,我写的比较简单易懂 ,作为新人,有不足请各位大佬指出,谢谢!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值