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

📄 key_scan_lcd_dis_asm_source.asm

📁 LCD 128643 Driver,Driver IC KS0108
💻 ASM
字号:
;定义LCD控制PIN    

                 DI    EQU  P3.2  ;H-DATA L-DISPINSTRUCT
                 RW    EQU  P3.3
                 E     EQU  P3.6  ;H->L   WRITE DATA TO LCM	
 
                 CS1   EQU  P3.4
                 CS2   EQU  P3.5
                 RST   EQU  P3.7

                 XX    EQU  30H
                 YY    EQU  31H


;程序开始
                 ORG     0000H
                 LJMP    MAIN

;主程序
                 ORG     0100H
MAIN:            MOV     SP,#1FH
                 MOV     R3,#00H
CYCLE:           MOV     P2,#0FH
                 NOP
                 MOV     A,P2
                 LCALL   GET_ROW_KEY
                 MOV     P2,#0F0H 
                 NOP
                 MOV     A,P2  
                 LCALL   GET_COL_KEY
                 NOP
                 MOV     A,R0
                 ADD     A,R1
                 NOP 
                 LCALL   GET_KEY_VAL
                 NOP
                 CJNE	 R3,#00H,LCD_DIS
                 LJMP    CYCLE
               
            
;判断按下键的行号0,1,2,3 

GET_ROW_KEY:     PUSH   ACC   

ROW_0:           CJNE	A,#0EH,ROW_1
                 MOV    R0,A
ROW_1:           CJNE	A,#0DH,ROW_2
                 MOV    R0,A 
ROW_2:           CJNE	A,#0BH,ROW_3
                 MOV    R0,A 
ROW_3:           CJNE	A,#07H,ROW_NO
                 MOV    R0,A
 
ROW_NO:          MOV    A,#00H

                 POP    ACC

                 RET


;判断按下键的列号0,1,2,3

GET_COL_KEY:     PUSH   ACC   

COL_0:           CJNE	A,#0E0H,COL_1
                 MOV    R1,A
COL_1:           CJNE	A,#0D0H,COL_2
                 MOV    R1,A 
COL_2:           CJNE	A,#0B0H,COL_3
                 MOV    R1,A 
COL_3:           CJNE	A,#070H,COL_NO
                 MOV    R1,A
 
COL_NO:          MOV    A,#00H

                 POP    ACC
            
                 RET  


;判断按下键的键值0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

GET_KEY_VAL:     PUSH   ACC   

KEY_0:           CJNE	A,#0EEH,KEY_1
                 MOV    R3,A
KEY_1:           CJNE	A,#0DEH,KEY_2
                 MOV    R3,A 
KEY_2:           CJNE	A,#0BEH,KEY_3
                 MOV    R3,A 
KEY_3:           CJNE	A,#07EH,KEY_4
                 MOV    R3,A
KEY_4:           CJNE	A,#0EDH,KEY_5
                 MOV    R3,A
KEY_5:           CJNE	A,#0DDH,KEY_6
                 MOV    R3,A 
KEY_6:           CJNE	A,#0BDH,KEY_7
                 MOV    R3,A 
KEY_7:           CJNE	A,#07DH,KEY_8
                 MOV    R3,A
KEY_8:           CJNE	A,#0EBH,KEY_9
                 MOV    R3,A
KEY_9:           CJNE	A,#0DBH,KEY_A
                 MOV    R3,A 
KEY_A:           CJNE	A,#0BBH,KEY_B
                 MOV    R3,A 
KEY_B:           CJNE	A,#07BH,KEY_C
                 MOV    R3,A
KEY_C:           CJNE	A,#0E7H,KEY_D
                 MOV    R3,A
KEY_D:           CJNE	A,#0D7H,KEY_E
                 MOV    R3,A 
KEY_E:           CJNE	A,#0B7H,KEY_F
                 MOV    R3,A 
KEY_F:           CJNE	A,#077H,KEY_NO
                 MOV    R3,A
 
KEY_NO:          MOV    A,#00H

                 POP    ACC
            
                 RET      




;LCD显示子程序

;***************************************************************************************
;文件名:LCD128X64.ASM                                                            
;功能:图形液晶的驱动程序                                                     
;本程序采用I/O口模仿总线时序,故无需做任何硬件扩展.屏幕显示:"您好,欢迎使用爱思单片机仿真实验仪"
;***************************************************************************************




LCD_DIS:  MOV A,#3EH   
          LCALL INST
          SETB RST
          LCALL DLY10
          LCALL DLY10
          LCALL DLY10
          CLR RST
          LCALL DLY10
          LCALL DLY10
          LCALL DLY10
          SETB RST
          LCALL DLY10
          LCALL DLY10
          LCALL DLY10

          SETB CS1
          CLR  CS2
          MOV R7,#4H
          MOV R6,#4H
   
 AA: MOV XX,R6
     DEC XX
     MOV YY,R7
     DEC YY
     MOV DPTR,#BI0
     LCALL WRITE
     DJNZ R6,AA
     MOV R6 ,#4H
     DJNZ R7,AA

     
     MOV XX,#0H
     MOV YY,#0H
     MOV DPTR,#BI1
     LCALL WRITE
     MOV XX,#01H
     MOV YY,#00H
     MOV DPTR,#BI2
     LCALL WRITE
     MOV XX,#02H
     MOV YY,#01H
     MOV DPTR,#BI3
     LCALL WRITE
     MOV XX,#03H
     MOV YY,#01H
     MOV DPTR,#BI4
     LCALL WRITE
     MOV XX,#00H
     MOV YY,#02H
     MOV DPTR,#BI5
     LCALL WRITE
     MOV XX,#01H
     MOV YY,#02H
     MOV DPTR,#BI6
     LCALL WRITE
     MOV XX,#02H
     MOV YY,#02H
     MOV DPTR,#BI7
     LCALL WRITE
     MOV XX,#03H
     MOV YY,#02H
     MOV DPTR,#BI8
     LCALL WRITE
    
     MOV A,#3FH
     LCALL INST

     CLR CS1
     SETB CS2
     MOV R7,#4H
     MOV R6,#4H
   
 AA1:MOV XX,R6
     DEC XX
     MOV YY,R7
     DEC YY
     MOV DPTR,#BI0
     LCALL WRITE
     DJNZ R6,AA1
     MOV R6 ,#4H
     DJNZ R7,AA1
     MOV XX,#0H
     MOV YY,#1H
     MOV DPTR,#BII1
     LCALL WRITE
     MOV XX,#01H
     MOV YY,#01H
     MOV DPTR,#BII2
     LCALL WRITE
     MOV XX,#02H
     MOV YY,#01H
     MOV DPTR,#BII3
     LCALL WRITE
     MOV XX,#03H
     MOV YY,#01H
     MOV DPTR,#BII4
     LCALL WRITE
     MOV XX,#00H
     MOV YY,#02H
     MOV DPTR,#BII5
     LCALL WRITE
     MOV XX,#01H
     MOV YY,#02H
     MOV DPTR,#BII6
     LCALL WRITE
     MOV XX,#02H
     MOV YY,#02H
     MOV DPTR,#BII7
     LCALL WRITE
     MOV XX,#03H
     MOV YY,#02H
     MOV DPTR,#BII8
     LCALL WRITE    
     MOV A,#3FH
     LCALL INST
     SJMP $


WRITE:  MOV A,XX
        MOV B,#10H
        MUL AB
        ADD A,#40H
        MOV XX,A
        LCALL INST
        MOV A,YY
        MOV B,#2H
        MUL AB
        ADD A,#0B8H
        MOV YY,A
        LCALL INST
        MOV R0,#10H
        MOV R1,#0H
TT:  MOV A,R1
     MOVC A,@A+DPTR
     LCALL INDA
     INC R1
     DJNZ R0,TT
     MOV A,YY
     INC A
     LCALL INST
     MOV A,XX
     LCALL INST
     MOV R0,#10H
TT1: MOV A,R1
     MOVC A,@A+DPTR
     LCALL INDA
     INC R1
     DJNZ R0,TT1
     RET

INST:  CLR E
       CLR  DI
       CLR RW
       MOV P0,A
       LCALL DLY10
       CLR E
       LCALL DLY10
       SETB E
       LCALL DLY10
       CLR E
       LCALL DLY10
       LCALL DLY10
       LCALL DLY10
       RET
INDA:  CLR E
       SETB DI
       CLR RW
       MOV P0,A
       LCALL DLY10
       CLR E
       LCALL DLY10
       SETB E
       LCALL DLY10
       CLR E
       LCALL DLY10
       LCALL DLY10
       LCALL DLY10
       RET
DLY10: MOV R3,#01H
DL1:   MOV R4,#01H
DL2:   MOV R2,#0FH
DL3:   DJNZ R2,DL3
       DJNZ R4,DL2
       DJNZ R3,DL1
       RET
BI0:
	DB   00H,  00H,  00H, 00H,  00H,   00H,  00H,  00H
	DB   00H,  00H,  00H, 00H,  00H,   00H,  00H,  00H
	DB   00H,  00H,  00H, 00H,  00H,   00H,  00H,  00H
	DB   00H,  00H,  00H, 00H,  00H,   00H,  00H,  00H
BI1:
	DB   40h,  20h, 0F8h,  07h,  40h,  20h,  18h,  0Fh
	DB   08h, 0C8h,  08h,  08h,  28h,  18h,  00h,  00h
	DB   00h,  00h, 0FFh,  00h,  00h,  08h,  04h,  43h
	DB   80h,  7Fh,  00h,  01h,  06h,  0Ch,  00h,  00h
BI2:
	DB   10h,  10h, 0F0h,  1Fh,  10h, 0F0h,  80h,  82h
	DB   82h,  82h, 0E2h,  92h,  8Ah, 0C6h,  80h,  00h
	DB   40h,  22h,  15h,  08h,  14h,  63h,  00h,  00h
	DB   40h,  80h,  7Fh,  00h,  00h,  00h,  00h,  00h
BI3:
	DB   04h,  34h, 0C4h,  04h, 0C4h,  3Ch,  20h,  10h
	DB   0Fh, 0E8h,  08h,  08h,  28h,  18h,  00h,  00h
	DB   10h,  08h,  06h,  01h,  82h,  8Ch,  40h,  30h
	DB   0Ch,  03h,  0Ch,  10h,  60h, 0C0h,  40h,  00h
BI4:
	DB   40h,  42h,  44h, 0C8h,  00h, 0FCh,  04h,  02h
	DB   82h, 0FCh,  04h,  04h,  04h, 0FEh,  04h,  00h
	DB   00h,  40h,  20h,  1Fh,  20h,  47h,  42h,  41h
	DB   40h,  7Fh,  40h,  42h,  44h,  63h,  20h,  00h
BI5:
	DB   00h,  00h, 0F8h,  49h,  4Ah,  4Ch,  48h, 0F8h
	DB   48h,  4Ch,  4Ah,  49h, 0FCh,  08h,  00h,  00h
	DB   10h,  10h,  17h,  12h,  12h,  12h,  12h, 0FFh
	DB   12h,  12h,  12h,  12h,  13h,  18h,  10h,  00h

BI6:
	DB   00h,  00h, 0FEh,  20h,  20h,  20h,  20h,  20h
	DB   3Fh,  20h,  20h,  20h,  20h,  30h,  20h,  00h
	DB   80h,  40h,  3Fh,  01h,  01h,  01h,  01h,  01h
	DB   01h, 0FFh,  00h,  00h,  00h,  00h,  00h,  00h
BI7:
	DB   10h,  10h, 0D0h, 0FFh,  90h,  10h,  00h, 0FCh
	DB   04h,  04h,  04h, 0FEh,  04h,  00h,  00h,  00h
	DB   04h,  03h,  00h, 0FFh,  80h,  41h,  20h,  1Fh
	DB   00h,  00h,  00h,  3Fh,  40h,  40h,  70h,  00h

BI8:
	DB   80h,  40h,  20h, 0F8h,  07h,  10h,  10h,  10h
	DB  0F1h,  96h,  90h,  90h, 0D0h,  98h,  10h,  00h
	DB   00h,  00h,  00h, 0FFh,  00h,  80h,  40h,  30h
	DB   0Fh,  40h,  80h,  40h,  3Fh,  00h,  00h,  00h
BII1:
	DB   40h,  20h, 0F8h,  07h,  04h, 0F4h,  14h,  14h
	DB   14h, 0FFh,  14h,  14h,  14h, 0F6h,  04h,  00h
	DB   00h,  00h, 0FFh,  00h,  80h,  43h,  45h,  29h
	DB   19h,  17h,  21h,  21h,  41h, 0C3h,  40h,  00h
BII2:
	DB   00h,  00h, 0FEh,  22h,  22h,  22h,  22h, 0FEh
	DB   22h,  22h,  22h,  22h, 0FFh,  02h,  00h,  00h
	DB   80h,  60h,  1Fh,  02h,  02h,  02h,  02h,  7Fh
	DB   02h,  02h,  42h,  82h,  7Fh,  00h,  00h,  00h
BII3:
	DB   40h, 0B0h,  92h,  96h,  9Ah,  92h, 0F2h,  9Eh
	DB   92h,  91h,  99h,  95h,  91h,  50h,  30h,  00h
	DB   00h,  00h,  40h,  30h,  8Ch,  83h,  46h,  2Ah
	DB   12h,  2Ah,  26h,  42h, 0C0h,  40h,  00h,  00h
BII4:
	DB   00h,  00h, 0FEh,  22h,  22h,  22h,  22h, 0FEh
	DB   22h,  22h,  22h,  22h, 0FFh,  02h,  00h,  00h
	DB   40h,  30h,  07h,  72h,  82h,  82h,  8Ah,  93h
	DB  0B2h,  82h,  82h, 0E2h,  17h,  20h,  60h,  00h
BII5:
	DB   00h,  04h,  04h, 0F4h,  54h,  54h,  54h,  5Fh
	DB   54h,  54h,  54h, 0FCh,  16h,  04h,  00h,  00h
	DB   10h,  10h,  90h,  5Fh,  35h,  15h,  15h,  15h
	DB   15h,  15h,  35h,  5Fh, 0D0h,  18h,  10h,  00h
BII6:
	DB   10h,  0Ch,  04h,  44h,  8Ch,  94h,  35h,  06h
	DB  0F4h,  04h,  04h,  04h,  04h,  14h,  0Ch,  00h
	DB   02h,  82h,  82h,  42h,  42h,  23h,  12h,  0Eh
	DB   03h,  0Ah,  12h,  22h,  42h, 0C3h,  02h,  00h
BII7:
	DB   02h, 0FAh,  02h,  02h, 0FFh,  42h,  20h,  50h
	DB   4Ch,  43h,  4Ch,  50h,  20h,  60h,  20h,  00h
	DB   10h,  31h,  11h,  49h,  89h,  7Fh,  42h,  5Ch
	DB   40h,  4Fh,  60h,  58h,  47h,  60h,  40h,  00h

BII8:

	DB   80h,  40h,  20h, 0F8h,  07h,  00h,  38h, 0C0h
	DB   02h,  04h,  0Ch,  80h,  60h,  1Ch,  00h,  00h
	DB   00h,  00h,  00h, 0FFh,  80h,  40h,  20h,  10h
	DB  00Bh,  04h,  0Ah,  11h,  60h, 0C0h,  40h,  00h

        
        END

     


⌨️ 快捷键说明

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