keyboard.asm

来自「51单片机控制1602液晶显示模块,显示两行数据经实践检验可行,」· 汇编 代码 · 共 173 行

ASM
173
字号
      ORG    0000H

      ;DATA_P0 EQU 80H
      RS EQU P3.7
      RW EQU P3.6
      E EQU P3.5
      MOV P1,#01H;清除屏幕
      ACALL ENABLE
      MOV P1,#38H;8位点阵方式
      ACALL ENABLE
      MOV P1,#0FH;开显示
      ACALL ENABLE
      MOV P1,#06H;移动光标
      ACALL ENABLE
      MOV P1,#80H;显示位置
      ACALL ENABLE;;;;;;;;;;;;;;;;显示器初始化


      MOV    A,P0
      ANL    A,#12H;屏蔽无关端口
      ;MOV    DATA_P0,A
      MOV    50H,A
      LCALL  DELAY2
      MOV    A,P0
      ANL    A,#12H
      ;CJNE   A,DATA_P0,PASS
      CJNE   A,50H,PASS
      CJNE   A,#10H,TO2
      LJMP   KEY1

TO2:  CJNE   A,#02H,TO3
      LJMP   KEY2

TO3:  MOV    A,P2
      ANL    A,#92H;屏蔽无关端口
      ;MOV    DATA_P0,A
      MOV    50H,A
      LCALL  DELAY2
      MOV    A,P2
      ANL    A,#92H
      ;CJNE   A,DATA_P0,PASS
      CJNE   A,50H,PASS
      CJNE   A,#12H,TO4
      LJMP   KEY3

TO4:  CJNE   A,#82H,TO5
      LJMP   KEY4

TO5:  CJNE   A,#90H,PASS
      LJMP   KEY5

PASS: RET
      JMP $





KEY1: MOV DPTR,#TABLE1;送数据表1,MENU
      CALL WRITE1
      MOV P1,#0C0h;第一行的位置
      CALL ENABLE
KEY2: MOV DPTR,#TABLE2;
      CALL WRITE2
      MOV P1,#0C0h;第一行的位置
      CALL ENABLE
KEY3: MOV DPTR,#TABLE3;
      CALL WRITE3
      MOV P1,#0C0h;第一行的位置
      CALL ENABLE
KEY4: MOV DPTR,#TABLE4;
      CALL WRITE4
      MOV P1,#0C0h;第一行的位置
      CALL ENABLE
KEY5: MOV DPTR,#TABLE5;
      CALL WRITE5
      MOV P1,#0C0h;第一行的位置
      CALL ENABLE



ENABLE:
      CLR    RS
      CLR    RW
      CLR    E
      ACALL  DELAY
      SETB   E
      RET


WRITE1:
      MOV    R1,#00H
      A1:MOV A,R1
      MOVC   A,@A+DPTR
      CALL   WRITE
      INC    R1
      CJNE   A,#00H,A1
      RET
WRITE2:
      MOV    R1,#00H
      A2:MOV A,R1
      MOVC   A,@A+DPTR
      CALL   WRITE
      INC    R1
      CJNE   A,#00H,A2
      RET
WRITE3:
      MOV    R1,#00H
      A3:MOV A,R1
      MOVC   A,@A+DPTR
      CALL   WRITE
      INC    R1
      CJNE   A,#00H,A3
      RET
WRITE4:
      MOV    R1,#00H
      A4:MOV A,R1
      MOVC   A,@A+DPTR
      CALL   WRITE
      INC    R1
      CJNE   A,#00H,A4
      RET
WRITE5:
      MOV    R1,#00H
      A5:MOV A,R1
      MOVC   A,@A+DPTR
      CALL   WRITE
      INC    R1
      CJNE   A,#00H,A5
      RET
WRITE:
      MOV    P1,A
      SETB   RS
      CLR    RW
      CLR    E
      CALL   DELAY
      SETB   E
      RET




DELAY2:
      MOV    R7,#05H
LOOP1:MOV    R6,#0F9H
LOOP2:NOP
      NOP
      DJNZ   R6,LOOP2
      DJNZ   R7,LOOP1
      RET


DELAY:
      MOV    R7,#255
    D1:MOV   R6,#255
    D2:DJNZ  R6,D2
      DJNZ   R7,D1
      RET



TABLE1: DB 20H,20H,20H,20H,20H,20H,4DH,45H,4EH,55H,20H,20H,20H,20H,20H,20H,00H;数据MENU

TABLE2: DB 20H,20H,20H,20H,20H,5BH,54H,49H,4DH,45H,5DH,20H,20H,20H,20H,20H,00H;数据[TIME]

TABLE3: DB 20H,20H,20H,20H,20H,20H,5BH,55H,50H,5DH,20H,20H,20H,20H,20H,20H,00H;数据[UP]

TABLE4: DB 20H,20H,20H,20H,20H,5BH,44H,4FH,57H,4EH,5DH,20H,20H,20H,20H,20H,00H;数据[DOWN]

TABLE5: DB 20H,20H,20H,20H,20H,20H,5BH,4FH,4BH,5DH,20H,20H,20H,20H,20H,20H,00H;数据[OK]

END

⌨️ 快捷键说明

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