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

📄 键盘+静态显示.asm

📁 本程序是键盘扫描及静态显示的结合
💻 ASM
字号:
	KEY_ROW	        EQU     04H
	KEY_ARRAY	EQU	04H;键盘规模为4×4
	KEY_VALUE	EQU	60H;定义键值将存放在60H单元
	KEY_IO	        EQU     90H;定义P1口为键盘的输入输出口线
	INT1IN          BIT     P3.2

	ORG	0000H		;主程序入口
	LJMP	MAIN

	ORG	0003H		;外部中断0入口
	LJMP	INTO

;主程序
	ORG	0030H
MAIN:   MOV	SP,#30H	;堆栈指针指向位空间以后RAM空间
        LCALL   INITIAL
        SJMP    $
        
	;初始化子程序
INITIAL:MOV	PSW	,#00H	;通用寄存器可以不定义,硬件复位自动指向第0组
	MOV	KEY_IO	,#0FH	;定义键盘口线
        MOV     SCON    ,#00H   ;初始化串行口方式0
        SETB	IT0		;定义外部中断0下降沿触发方式
	SETB	EX0		;开启外部中断0
	SETB	EA		;开启总中断,EA是中断允许总控制位
        RET

;键盘扫描中断服务程序,读键值
INTO:      CLR	 EA	;关中断
	   PUSH	 ACC
	   PUSH	 PSW
	   MOV	 PSW	,#18H
       	   MOV	 R1	,#KEY_ROW  ;4
	   MOV	 R2     ,#KEY_ARRAY;4
	   MOV	 R3	,#00H
	   MOV	 R4	,#7FH

ARRAY_MOVE:MOV	KEY_IO	,R4
           MOV   R5, #01H
           MOV	A  ,KEY_IO
RIGHT_MOVE:RRC	A
	   JC	ROW_MOVE
	   LCALL DELAYFUNC
           MOV	A ,KEY_IO
       LET:RRC  A
           DJNZ R5,LET
	   JC	ROW_MOVE
  	   MOV	KEY_VALUE,R3
           ACALL DISPLAY
           SJMP RETURN

 ROW_MOVE:INC	R3
          INC   R5
          DJNZ	R1 ,RIGHT_MOVE
	  MOV	R1 ,#KEY_ROW
	  MOV	A  ,R4
	  RR	A
	  MOV   R4 ,A
	  DJNZ  R2 ,ARRAY_MOVE

   RETURN:POP PSW
 	  POP ACC
	  MOV KEY_IO,#0FH
	  SETB EA
	  RETI
          
;1位LED显示子程序
DISPLAY:MOV  A,KEY_VALUE
	MOV  DPTR,#TAB
        MOVC A,@A+DPTR
        MOV  SBUF,A;送串行口显示
        RET

DELAYFUNC:PUSH  PSW
          MOV	PSW,#10H
	  MOV	R6,#5
     DEL3:MOV	R7,#250
     DEL4:DJNZ	R7,DEL4
          DJNZ	R6,DEL3
          POP	PSW
          RET

TAB:    DB 3FH ,06H, 5BH, 4FH
        DB 66H, 6DH ,7DH ,07H
        DB 7FH ,6FH, 77H, 7CH
        DB 39H ,5EH ,79H ,71H
        END

⌨️ 快捷键说明

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