⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led_4.asm

📁 用89S52进行DS1820温度读取程序
💻 ASM
字号:
;四键控制四个灯
;查表法实现灯的亮灭
               key             bit     p3.3


		ORG		0000H				;伪指令		
		LJMP		MAIN				;跳转到单片机的主程序
		ORG		0100H				;伪指令,单片机主程序的开始
MAIN:		MOV		P1,	#0FFH		;将P1口上的灯全部关掉
                MOV             P2,#0FFH
                clr             key                     ;将键盘列线拉低
		MOV		A,	P2		;从P2口上读出按键状态
		ANL		A,	#11111100B	;选出状态位置
		CJNE		A,	#01111100B,M_01	;比较键值,是第一个键吗
		LJMP		M_001			;是的
M_01:		CJNE		A,	#10111100B,M_02	;是第二个键吗
		LJMP		M_002			;是第二个键
M_02:		CJNE		A,	#11011100B,M_03	;是第三个键吗
		LJMP		M_003			;是第三个键
M_03:		CJNE		A,	#11101100B,M_04	;是第四个键吗
		LJMP		M_004			;是第四个键
M_04:           CJNE		A,	#11110100B,M_05	;是第五个键吗
		LJMP		M_005			;是第五个键
M_05:		CJNE		A,	#11111000B,M_06	;是第六个键吗
		LJMP		M_006			;是第六个键
M_06:		LJMP		MAIN			;无键,跳回去重新判断
M_001:	CLR		P1.0				;打开第一个灯
		LCALL		DEL			;调延时子程序
		SETB		P1.0			;关闭第一个灯
		LJMP		MAIN			;跳回去重新判断
M_002:	CLR		P1.1				;打开第二个灯
		LCALL		DEL
		SETB		P1.1
		LJMP		MAIN
M_003:	CLR		P1.2				;打开第三个灯
		LCALL		DEL
		SETB		P1.2
		LJMP		MAIN
M_004:	CLR		P1.3				;打开第四个灯
		LCALL		DEL
		SETB		P1.3	
		LJMP		MAIN
M_005:	CLR		P1.4				;打开第五个灯
		LCALL		DEL
		SETB		P1.4
		LJMP		MAIN
M_006:	CLR		P1.5				;打开第六个灯
		LCALL		DEL
		SETB		P1.5	
		LJMP		MAIN


DEL:		MOV		R6,	#0FFH			;延时子程序
DEL_1:	MOV		R7,	#0FFH
DEL_0:	NOP
		NOP
		DJNZ		R7,	DEL_0
		DJNZ		R6,	DEL_1
		RET
		END	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -