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

📄 touch_key.asm

📁 一个关于蓝海微芯LJK——ZN——3200的演示程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
COM        DATA  29H 
XH         DATA  30H
XL         DATA  31H
YH         DATA  32H
YL         DATA  33H
NUMBRH     DATA  38H
NUMBRL     DATA  39H 
TIMER0     DATA  3AH ;延时时间的初值
TIMER1     DATA  3BH ;调用延时子程序的次数
COLOR      DATA  3CH
KEYNO      DATA  3DH
KEYVALUE   DATA  3EH
X2H        DATA  40H
X2L        DATA  41H
Y2H        DATA  42H
Y2L        DATA  43H
PAGNO      DATA  44H

        ORG 0000H
 	LJMP MAIN
        ORG  0023H
        LJMP LCOM
	ORG  0030H
 	
MAIN:  MOV SP,#60H
       SETB   EA
       LCALL INIT_SIO
       LCALL NEW_BUDE
;-------------------------------
       SETB EA
       MOV SCON,#50H
       MOV TMOD,#20H
       MOV TH1,#0FFH
       MOV TL1,#0FFH
       MOV PCON,#80H
       SETB ES
       SETB TR1
;-------------------------------
       LCALL SCREEN_CLR
       LCALL DELAY20
       MOV NUMBRH,#00H
       MOV NUMBRL,#00H
       LCALL BMP
       LCALL DELAY20
       LCALL TOUCH  
       LCALL DELAY20   
       MOV DPTR,#TAB0
       LCALL TX
       LCALL DELAY100 
       MOV PAGNO,#00H
       LCALL PAG
       LCALL DELAY100 
KEY:   JNB 24H.0,$
       CLR 24H.0
       MOV A,53H
       CJNE A,#31H,KEY
       MOV NUMBRH,#00H
       MOV NUMBRL,#01H
       LCALL BMP
       LCALL DELAY20
       
       MOV PAGNO,#01H
       LCALL PAG
       LCALL DELAY100
KEY1:  JNB 24H.0,$
       CLR 24H.0
       MOV A,53H
       CJNE A,#34H,KEY1
       MOV NUMBRH,#00H
       MOV NUMBRL,#02H
       LCALL BMP
       LCALL DELAY100
       MOV PAGNO,#02H
       LCALL PAG
       LCALL DELAY100
KEY2:  JNB 24H.0,$
       CLR 24H.0
       MOV A,53H
       CJNE A,#36H,K11
       MOV NUMBRH,#00H
       MOV NUMBRL,#03H
       LCALL BMP
       LCALL DELAY20
       SJMP $
K11:   CJNE A,#37H,K22
       MOV NUMBRH,#00H
       MOV NUMBRL,#04H
       LCALL BMP
       LCALL DELAY20
K22:   CJNE A,#38H,K33
       SJMP $
K33:   CJNE A,#39H,K44
       MOV NUMBRH,#00H
       MOV NUMBRL,#05H
       LCALL BMP
       LCALL DELAY20
K44:   CJNE A,#3AH,K55
       MOV NUMBRH,#00H
       MOV NUMBRL,#06H
       LCALL BMP
       LCALL DELAY20
K55:   CJNE A,#3BH,K66
       MOV NUMBRH,#00H
       MOV NUMBRL,#07H
       LCALL BMP
       LCALL DELAY20
K66:   CJNE A,#3CH,K77
       MOV NUMBRH,#00H
       MOV NUMBRL,#08H
       LCALL BMP
       LCALL DELAY20
K77:   CJNE A,#3DH,K88
       LCALL SCREEN_CLR
       LCALL DELAY20
K88:   CJNE A,#3EH,K99
       MOV NUMBRH,#00H
       MOV NUMBRL,#09H
       LCALL BMP
       LCALL DELAY20
K99:   CJNE A,#3FH,KAA
       MOV NUMBRH,#00H
       MOV NUMBRL,#10H
       LCALL BMP
       LCALL DELAY20
KAA:   CJNE A,#40H,KBB
       MOV NUMBRH,#00H
       MOV NUMBRL,#11H
       LCALL BMP
       LCALL DELAY20
KBB:   CJNE A,#41H,KCC
       SJMP $
KCC:   LJMP KEY2
       AJMP $

;*****************************************************
;*     串口初始化,波特率9600                        *
;*****************************************************
INIT_SIO:
       MOV SCON,#50H
       MOV TMOD,#20H
       MOV TH1,#0FAH
       MOV TL1,#0FAH
       MOV PCON,#80H
       SETB TR1
       RET
;*****************************************************
;*     修改波特率(F0 5A 15 00 E1 00 A5 F0) 57600   *
;*****************************************************
NEW_BUDE:
       MOV COM,#15H
       LCALL COMMD_HEAD
       MOV A,#00H
       LCALL SEND_BYTE
       MOV A,#0E1H
       LCALL SEND_BYTE
       MOV A,#00H
       LCALL SEND_BYTE
       LCALL COMMD_END
       RET
;*******************************************************
TX:  MOV R7,#16
TX1: MOV A,#00H
     MOVC A,@A+DPTR
     LCALL SEND_BYTE
     INC DPTR
     DJNZ R7,TX1
     RET

;*****************************************************
;*     清屏(F0 5A 82 00 A5 F0)                       *
;*****************************************************
SCREEN_CLR:                      
    MOV COM,#82H
    LCALL COMMD_HEAD
    MOV A,#00H                  ;00代表蓝色,01代表白色
    LCALL SEND_BYTE
    LCALL COMMD_END
    RET
;*****************************************************
;*     触摸值(F0 5A 3B 01 A5 F0)                       *
;*****************************************************
TOUCH:                      
    MOV COM,#3BH
    LCALL COMMD_HEAD
    MOV A,#01H                  ;00代表坐标,01代表键值
    LCALL SEND_BYTE
    LCALL COMMD_END
    RET
;*****************************************************
;*     显示图像(F0 5A 91 00 00 00 00 00 00 A5 F0)  *
;*****************************************************
BMP:MOV COM,#91H
    LCALL COMMD_HEAD
   
    MOV A,NUMBRH
    LCALL SEND_BYTE
    MOV A,NUMBRL
    LCALL SEND_BYTE
    MOV XH,#00H
    MOV A,XH
    LCALL SEND_BYTE
    MOV XL,#00H
    MOV A,XL
    LCALL SEND_BYTE
    MOV YH,#00H
    MOV A,YH
    LCALL SEND_BYTE
    MOV YL,#00H
    MOV A,YL
    LCALL SEND_BYTE
    LCALL COMMD_END
    RET
;*****************************************************
;*     画点(F0 5A 92 01 10 01 00 01 10 A5 F0)      *
;*****************************************************
DOT:MOV COM,#92H
    LCALL COMMD_HEAD
    MOV XH,#01H
    MOV A,XH
    LCALL SEND_BYTE
    MOV XL,#10H
    MOV A,XL
    LCALL SEND_BYTE
    MOV YH,#01H
    MOV A,YH
    LCALL SEND_BYTE
    MOV YL,#00H
    MOV A,YL
    LCALL SEND_BYTE
    MOV COLOR,#01H
    MOV A,COLOR
    LCALL SEND_BYTE
    MOV A,#10H
    LCALL SEND_BYTE
    LCALL COMMD_END
    RET
;*****************************************************
;* 画线(F0 5A 93 01 00 01 20 02 00 01 20 01 A5 F0) *
;*****************************************************
LINE:MOV COM,#93H
    LCALL COMMD_HEAD
    MOV XH,#01H
    MOV A,XH
    LCALL SEND_BYTE
    MOV XL,#00H
    MOV A,XL
    LCALL SEND_BYTE
    MOV YH,#01H
    MOV A,YH
    LCALL SEND_BYTE
    MOV YL,#20H
    MOV A,YL
    LCALL SEND_BYTE
    MOV XH,#02H
    MOV A,XH
    LCALL SEND_BYTE
    MOV XL,#00H
    MOV A,XL
    LCALL SEND_BYTE
    MOV YH,#01H
    MOV A,YH
    LCALL SEND_BYTE
    MOV YL,#20H
    MOV A,YL
    LCALL SEND_BYTE
    MOV COLOR,#01H
    MOV A,COLOR
    LCALL SEND_BYTE
    LCALL COMMD_END
    RET
;*****************************************************
;*     画圆(F0 5A 94 01 60 01 20 01 00 01 A5 F0)   *
;*****************************************************
CIRCLE:MOV COM,#94H
    LCALL COMMD_HEAD
    MOV XH,#01H
    MOV A,XH
    LCALL SEND_BYTE
    MOV XL,#60H
    MOV A,XL
    LCALL SEND_BYTE
    MOV YH,#01H
    MOV A,YH
    LCALL SEND_BYTE
    MOV YL,#20H
    MOV A,YL
    LCALL SEND_BYTE
    MOV A,#01H
    LCALL SEND_BYTE
    MOV A,#00H
    LCALL SEND_BYTE
    MOV A,#01H
    LCALL SEND_BYTE
    LCALL COMMD_END
    RET

⌨️ 快捷键说明

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