📄 触摸键盘、拼音输入法、动态曲线和区域图片切换.txt
字号:
MOV TEXTY_H,A
CLR C
MOV A,TEXTY_L
SUBB A,#164
JNC BKPRO1
MOV TEXTY_H,#00H
MOV TEXTY_L,#164
MOV TEXTX_H,#00H
MOV TEXTX_L,#6
BKPRO1: MOV COLORH,#0FFH
MOV COLORL,#0FFH
MOV BCOLORH,#00H
MOV BCOLORL,#1FH
LCALL COLORSET
MOV DPTR,#CMD54
LCALL TXROMS
MOV R0,#TEXTX_H
MOV R7,#4
LCALL TXRAMS
MOV A,#" "
LCALL TXBYTE
LCALL TXFEND
RET
;选择一个汉字
HZSEL: MOV DPTR,#0FFH
MOVX A,@DPTR
JZ HZSELE
DEC A
CLR C
SUBB A,HZPOS
JC HZSELE
MOV COLORH,#0FFH
MOV COLORL,#0FFH
MOV BCOLORH,#00H
MOV BCOLORL,#1FH
LCALL COLORSET
MOV DPTR,#CMD54
LCALL TXROMS
MOV R0,#TEXTX_H
MOV R7,#4
LCALL TXRAMS
MOV A,HZPOS
CLR C
RLC A
MOV DPL,A
MOV DPH,#00H
MOVX A,@DPTR
LCALL TXBYTE
INC DPTR
MOVX A,@DPTR
LCALL TXBYTE
LCALL TXFEND
MOV A,TEXTX_L ;调整坐标位置
ADD A,#16
MOV TEXTX_L,A
CLR A
ADDC A,TEXTX_H
MOV TEXTX_H,A
CLR C
MOV A,TEXTX_L
SUBB A,#67H
MOV A,TEXTX_H
SUBB A,#02H
JC HZSELE
MOV TEXTX_H,#0
MOV TEXTX_L,#6
MOV A,TEXTY_L
ADD A,#18
MOV TEXTY_L,A
CLR A
ADDC A,TEXTY_H
MOV TEXTY_H,A
CLR C
MOV A,TEXTY_L
SUBB A,#199
MOV A,TEXTY_H
SUBB A,#00H
JC HZSELE
MOV TEXTY_H,#0
MOV TEXTY_L,#164
HZSELE: NOP
RET
;************拼音输入法*********
PYPRO: MOV DL200MS,#10
LCALL DELAY ;延时100mS
MOV DPTR,#CMDB001
LCALL TXROMS
MOV R0,#PYCODE0
MOV R7,#6
PYPRO0: MOV A,@R0
MOV B,A
CLR C
SUBB A,#"A"
JC PYPR0E
MOV SBUF0,B
JNB TI0FLG,$
CLR TI0FLG
PYPR0E: INC R0
DJNZ R7,PYPRO0
LCALL TXFEND
CLR RI0FLG
MOV SBUF0_RX,#00H
MOV DL200MS,#10 ;最多等待100mS应答
CLR TCHOK
MOV R7,#00H
MOV R6,#00H
MOV R5,#00H
MOV R4,#00H
PYPRO1: JB TCHOK,PYPROE
MOV A,DL200MS
JZ PYPROE
JNB RI0FLG,PYPRO1
MOV A,R6
MOV R7,A
MOV A,R5
MOV R6,A
MOV A,R4
MOV R5,A
MOV R4,SBUF0_RX
CLR RI0FLG
CJNE R7,#0AAH,PYPRO1
CJNE R6,#0B0H,PYPRO1
CJNE R5,#01H,PYPRO1
MOV A,R4
JZ PYPROE
MOV DPTR,#0FFH
MOVX @DPTR,A
MOV A,R4
CLR C
RLC A
MOV R4,A
MOV R7,A
MOV DPTR,#0000H
MOV DL200MS,#3
PYPRO2: MOV A,DL200MS
JZ PYPROE
JNB RI0FLG,PYPRO2
MOV A,SBUF0_RX
CLR RI0FLG
MOVX @DPTR,A
INC DPTR
DJNZ R7,PYPRO2
MOV DL200MS,#5
LCALL DELAY ;延时50mS
MOV COLORH,#0F8H
MOV COLORL,#00H
MOV BCOLORH,#00H
MOV BCOLORL,#1FH
LCALL COLORSET
MOV DPTR,#CMDPY0
LCALL TXROMS
LCALL TXFEND
MOV DPTR,#CMDPY1
LCALL TXROMS
MOV DPTR,#0000H
PYPR21: MOVX A,@DPTR
LCALL TXBYTE
INC DPTR
DJNZ R4,PYPR21
LCALL TXFEND
PYPROE: MOV DL200MS,#5
LCALL DELAY
RET
CMDB001:DB 0AAH,0B0H,01H,0FFH
CMDPY0: DB 0AAH,5AH
DW 3,202,636,236
DB 0FFH
CMDPY1: DB 0AAH,54H
DW 3,203
DB 0FFH
;把触摸位置转换成按键
TCHKEY: CLR KEYOK
MOV DPTR,#KEYTAB
TCHKEY1:CLR A
MOVC A,@A+DPTR
MOV R7,A
CJNE A,#0FFH,TCHKEY2
CLR TCHOK
RET ;结束
TCHKEY2:MOV A,#01H
MOVC A,@A+DPTR
MOV R6,A ;左上角X坐标
CLR C
MOV A,R6
SUBB A,RXXL
MOV A,R7
SUBB A,RXXH
JNC TCHKEYE
MOV A,#02H
MOVC A,@A+DPTR
MOV R7,A
MOV A,#03H
MOVC A,@A+DPTR
MOV R6,A ;左上角Y坐标
CLR C
MOV A,R6
SUBB A,RXYL
MOV A,R7
SUBB A,RXYH
JNC TCHKEYE
MOV A,#04H
MOVC A,@A+DPTR
MOV R7,A
MOV A,#05H
MOVC A,@A+DPTR
MOV R6,A ;右上角X坐标
CLR C
MOV A,R6
SUBB A,RXXL
MOV A,R7
SUBB A,RXXH
JC TCHKEYE
MOV A,#06H
MOVC A,@A+DPTR
MOV R7,A
MOV A,#07H
MOVC A,@A+DPTR
MOV R6,A ;右上角Y坐标
CLR C
MOV A,R6
SUBB A,RXYL
MOV A,R7
SUBB A,RXYH
JC TCHKEYE
SETB KEYOK
CLR A
MOV C,CAPSLK
ADDC A,#08H
MOVC A,@A+DPTR
MOV KEYCODE,A
CJNE A,#0AH,HZKEY4
CLR C
MOV A,RXYL
SUBB A,#202
MOV B,#16
DIV AB
MOV B,#40
MUL AB
PUSH ACC
MOV A,RXXH
SWAP A
ANL A,#0F0H
MOV B,A
MOV A,RXXL
SWAP A
ANL A,#0FH
ADD A,B
MOV B,A
CLR C
SUBB A,#40
JC HZKEY3
MOV B,#39
HZKEY3: POP ACC
ADD A,B
MOV HZPOS,A
HZKEY4: CLR TCHOK
RET
TCHKEYE:MOV A,DPL
ADD A,#10
MOV DPL,A
CLR A
ADDC A,DPH
MOV DPH,A
LJMP TCHKEY1
RET
KEYTAB: DW 5,249,40,294 ;第一排
DB "1!"
DW 43,249,78,294
DB "2@"
DW 80,249,115,294
DB "3#"
DW 118,249,153,294
DB "4$"
DW 155,249,190,294
DB "5%"
DW 193,249,228,294
DB "6^"
DW 230,249,265,294
DB "7&"
DW 268,249,303,294
DB "8*"
DW 305,249,340,294
DB "9("
DW 343,249,378,294
DB "0)"
DW 380,249,415,294
DB "-_"
DW 418,249,453,294
DB "=+"
DW 457,249,508,294
DB 00H,00H ;BACK SPACE
DW 4,298,55,333 ;第二排
DB 01H,01H ;TAB
DW 58,298,93,333
DB "qQ"
DW 95,298,130,333
DB "wW"
DW 133,298,168,333
DB "eE"
DW 170,298,205,333
DB "rR"
DW 208,298,243,333
DB "tT"
DW 245,298,280,333
DB "yY"
DW 283,298,318,333
DB "uU"
DW 320,298,355,333
DB "iI"
DW 358,298,393,333
DB "oO"
DW 395,298,430,333
DB "pP"
DW 433,298,468,333
DB "[{"
DW 472,298,507,333
DB "]}"
DW 4,337,63,372 ;第三排
DB 02H,02H ;CAPS LOCK
DW 67,337,102,372
DB "aA"
DW 106,337,141,372
DB "sS"
DW 145,337,180,372
DB "dD"
DW 184,337,219,372
DB "fF"
DW 221,337,256,372
DB "gG"
DW 259,337,294,372
DB "hH"
DW 296,337,331,372
DB "jJ"
DW 334,337,369,372
DB "kK"
DW 373,337,408,372
DB "lL"
DW 410,337,445,372
DB ";:"
DW 448,337,507,372 ;enter
DB 03H,03H
DW 4,376,55,411 ;第四排
DB 04H,04H ;Esc
DW 58,376,93,411
DB "zZ"
DW 95,376,130,411
DB "xX"
DW 133,376,168,411
DB "cC"
DW 170,376,205,411
DB "vV"
DW 208,376,243,411
DB "bB"
DW 245,376,280,411
DB "nN"
DW 283,376,318,411
DB "mM"
DW 320,376,355,411
DB ",<"
DW 358,376,393,411
DB ".>"
DW 395,376,430,411
DB "/?"
DW 433,376,468,411
DB "\|"
DW 472,376,507,411
DB "`~"
DW 5,415,40,450 ;第五排
DB "@@"
DW 43,415,78,450
DB "--"
DW 80,415,115,450
DB "++"
DW 118,415,153,450
DB "=="
DW 155,415,340,450
DB " "
DW 343,415,378,450
DB "<<"
DW 380,415,415,450
DB ">>"
DW 418,415,453,450
DB "??"
DW 457,415,508,450
DB 05H,05H ;中/英
DW 519,275,631,310
DB 06H,06H ;文本功能介绍
DW 519,318,631,353
DB 07H,07H ;图形功能介绍
DW 519,360,631,395
DB 08H,08H ;应用功能介绍
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -