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

📄 keyline.asm

📁 读者使用源代码时
💻 ASM
字号:
;说明使用到的外部变量
EXTRN		DATA(KEYSTATE)
;定义全局函数KEY(),按键识别函数
PUBLIC		KEY
KEYRAM	SEGMENT DATA
KEYP		SEGMENT	CODE
RSEG		KEYRAM
LAST:		DS	1

RSEG	KEYP
KEY:		MOV 	P1,			#0FH			; 输出0000列和1111行
		MOV 	A, 			P1			; 读P1的状态
		ANL 	A, 			#0FH			; 从P1口读取行状态
		MOV 	LAST, 			A				; 保存原始行状态
		CJNE 	A, 			#0FH, PRESS		; 没有键按下
		SJMP	NOKEY		
PRESS:		MOV 	R7,			#100			; 有键按下,延时10毫秒
DELAY:		MOV 	R6, 			#31
		DJNZ 	R6, 			$
		DJNZ 	R7, 			DELAY
		MOV	A, 			P1			; 重新读取P1状态
		ANL 	A,			#0FH			; 从P1口读取行状态l
		CJNE 	A, 			LAST, NOKEY		;I判断那个键按下
		ORL	A,			#0F0H			; 输出行状态,并检查列状态
		MOV	P1, 			A		
		MOV 	A, 			P1
		ANL 	A,			#0F0H
		ORL 	A, 			LAST			; 合并行、列状态
		MOV 	KEYSTATE, 	A				; 读取行列状态,并保存到20H地址
		ACALL 	RELEASE						; 等待键松开
		SJMP	KEYQUIT
NOKEY:		MOV 	KEYSTATE, 	#00H				; 没有键按下d
KEYQUIT:	RET
RELEASE:	MOV 	P1,			#0FH			; 等待键松开
		MOV 	A, 			P1
		ANL	A,			#0FH
		CJNE 	A, 			#0FH, RELEASE	
		RET
		END

⌨️ 快捷键说明

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