📄 lcdcs.asm
字号:
;********************************
;* 初始化程序 *
;* 关闭回复信号, 发触摸屏命令 *
;* 设定波特率9600, 串口中断方式 *
;********************************
BMP_CHANG DATA 41H
KEY_COUNT DATA 40H
FLAG DATA 21H
;******************************************************************
;* *
;* (X1H X1L,Y1H Y1L) _________________________ *
;* | | *
;* | (XH XL,YH YL) | *
;* | | *
;* -------------------------- (X2H X2L,Y2H,Y2L) *
;* *
;******************************************************************
XH DATA 30H
XL DATA 31H
YH DATA 32H
YL DATA 33H
XH_L DATA 34H
XL_L DATA 35H
YH_L DATA 36H
YL_L DATA 37H
XH_R DATA 34H
XL_R DATA 35H
YH_R DATA 36H
YL_R DATA 37H
X1H DATA 34H
X1L DATA 35H
Y1H DATA 36H
Y1L DATA 37H
X2H DATA 38H
X2L DATA 39H
Y2H DATA 3AH
Y2L DATA 3BH
COM DATA 3CH
DAT1 DATA 3DH
DAT2 DATA 3EH
DAT3 DATA 3FH
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP TXINT
MAIN: MOV SP,#60H
MOV 21H,#00H
MOV SCON,#50H
MOV TMOD,#20H
MOV TH1,#0FAH
MOV TL1,#0FAH
MOV PCON,#80H
SETB TR1
MOV R7,#11 ;显示开机画面0
MOV DPTR,#TAB2
T_XS_BMP2:
LCALL TX_SUB
DJNZ R7,T_XS_BMP2
LCALL DELY
MOV R7,#06 ;发读触摸键命令
MOV DPTR,#TAB3
R_TOUCH_KEY:
LCALL TX_SUB
DJNZ R7,R_TOUCH_KEY
LCALL DELY
LCALL DELY
LCALL DELY
CLR RI
JNB RI,$
CLR RI
MOV R7,#11 ;显示开机画面1
MOV DPTR,#TAB4
T_XS_BMP1:
LCALL TX_SUB
DJNZ R7,T_XS_BMP1
LCALL DELY
MOV 41H,#00H
SETB ES
SETB EA
WAIT: CLR RI
JNB 21H.0,$
CLR 21H.0
MOV A,41H
CJNE A,#00H,KEY_SUB1
MOV DPTR,#KEY0_0
SJMP KEY_SUB
KEY_SUB1:
CJNE A,#02H,KEY_SUB2
MOV DPTR,#KEY1_1
SJMP KEY_SUB
KEY_SUB2:
MOV DPTR,#KEY0
KEY_SUB:
MOV A,40H
RL A
JMP @A+DPTR
KEY0: AJMP KEYBG
KEY1: AJMP KEYSY
KEY2: AJMP KEYSJ
KEY3: AJMP KEYAD
KEY4: AJMP KEYBMP
KEY5: AJMP KEYHZX
KEY6: AJMP KEYHY
KEY7: AJMP KEYQP
KEY8: AJMP KEYHJZ
KEY9: AJMP KEYHZXS
KEY10: AJMP KEYZFXS
KEY11: AJMP KEYJPSD
KEY0_0:AJMP KEYCPJS
KEY0_1:AJMP KEYDXYY
KEY0_2:AJMP KEYYHCS
KEY0_3:AJMP KEYFHSY
KEY1_1:AJMP KEYBGKQ
KEY1_2:AJMP KEYBGTZ
KEY1_3:AJMP KEYBGFH
KEYBG: MOV R7,#11 ;显示开机画面
MOV DPTR,#TAB5
T_XS_BMP01:
LCALL TX_SUB
DJNZ R7,T_XS_BMP01
LCALL DELY
MOV 41H,#02H
LJMP WAIT
KEYSY: NOP
LJMP WAIT
KEYSJ: NOP
LJMP WAIT
KEYAD: NOP
LJMP WAIT
KEYBMP: NOP
LJMP WAIT
KEYHZX: NOP
LJMP WAIT
KEYHY: NOP
LJMP WAIT
KEYQP: NOP
LJMP WAIT
KEYHJZ: NOP
LJMP WAIT
KEYHZXS: NOP
LJMP WAIT
KEYZFXS: NOP
LJMP WAIT
KEYJPSD: NOP
LJMP WAIT
KEYCPJS: NOP
LJMP WAIT
KEYDXYY: NOP
LJMP WAIT
KEYYHCS:
MOV R7,#11 ;显示开机画面
MOV DPTR,#TAB11
T_XS_BMP02:
LCALL TX_SUB
DJNZ R7,T_XS_BMP02
LCALL DELY
MOV 41H,#01H
LJMP WAIT
KEYFHSY: NOP
LJMP WAIT
KEYBGKQ: NOP
LJMP WAIT
KEYBGTZ: NOP
LJMP WAIT
KEYBGFH: MOV R7,#11 ;显示开机画面
MOV DPTR,#TAB11
T_XS_BMP06:
LCALL TX_SUB
DJNZ R7,T_XS_BMP06
LCALL DELY
MOV 41H,#01H
LJMP WAIT
TX_SUB:CLR ES
PUSH ACC
MOV A,#00H
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
INC DPTR
POP ACC
SETB ES
RET
TXINT: PUSH ACC
PUSH PSW
PUSH DPL
PUSH DPH
SETB RS0
;JBC RI,R_SUB
;LJMP LOOP1
R_SUB: MOV R7,#08H
MOV R0,#2cH
R_SUB_1:
MOV A,SBUF
MOV @R0,A
INC R0
JNB RI,$
CLR RI
DJNZ R7,R_SUB_1
MOV A,2FH
CJNE A,#37H,LOOP1
MOV 40H,#00H
MOV A,41H
CJNE A,#00H,LSM1
MOV DPTR,#TABB2
MOV R5,#4
SJMP LOOP2
LSM1: CJNE A,#02H,LSM2
MOV DPTR,#TABB3
MOV R5,#3
SJMP LOOP2
LSM2: MOV DPTR,#TABB1
MOV R5,#12
LOOP2: LCALL QCOMPKEY
LCALL COMP
JB 21H.0,LOOP1
INC 40H
DJNZ R5,LOOP2
LOOP1: POP DPH
POP DPL
POP PSW
POP ACC
RETI
;************************************************
;* 比较程序 *
;* XY=(30H)(31H)(32H)(33H),X1Y1=(34H)(35H)(36H)(37H),X2Y2=(34H)(35H)(36H)(37H)*
;* (如果X1Y1 < XY < X2Y2;那么就为确认的按键 *
;************************************************
COMP: MOV A,30H
MOV B,34H
CJNE A,B,COMP_1
MOV A,31H
MOV B,35H
CJNE A,B,COMP_2
COMP_11:
MOV A,32H
MOV B,36H
CJNE A,B,COMP_3
MOV A,33H
MOV B,37H
CJNE A,B,COMP_4
COMP_12:
LCALL QCOMPKEY
MOV A,34H
MOV B,30H
CJNE A,B,COMP_5
MOV A,35H
MOV B,31H
CJNE A,B,COMP_6
COMP_13:
MOV A,36H
MOV B,32H
CJNE A,B,COMP_7
MOV A,37H
MOV B,33H
CJNE A,B,COMP_8
COMP_14:
SETB 21H.0
RET
COMP_1:JNC COMP_11
SJMP ERR1
COMP_2:JNC COMP_11
SJMP ERR1
COMP_3:JNC COMP_12
SJMP ERR1
COMP_4:JNC COMP_12
SJMP ERR1
COMP_5:JNC COMP_13
SJMP ERR
COMP_6:JNC COMP_13
SJMP ERR
COMP_7:JNC COMP_14
SJMP ERR
COMP_8:JNC COMP_14
SJMP ERR
ERR: CLR 21H.0
RET
ERR1: LCALL QCOMPKEY
SJMP ERR
QCOMPKEY:
MOV A,#00H
MOVC A,@A+DPTR
MOV 34H,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 35H,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 36H,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV 37H,A
INC DPTR
RET
DELY: MOV R5,#200
DELY2: MOV R6,#200
DELY1:
NOP
NOP
NOP
DJNZ R6,DELY1
DJNZ R5,DELY2
RET
TAB1: DB 0F0H, 5AH, 16H, 01H,0A5H, 0F0H
TAB2: DB 0F0H, 5AH, 91H, 00H, 00H, 00H, 00H, 00H, 00H, 0A5H, 0F0H
TAB3: DB 0F0H, 5AH, 31H, 01H, 0A5H, 0F0H
TAB4: DB 0F0H, 5AH, 91H, 00H, 01H, 00H, 00H, 00H, 00H, 0A5H, 0F0H
TAB11:DB 0F0H, 5AH, 91H, 00H, 02H, 00H, 00H, 00H, 00H, 0A5H, 0F0H
TAB5: DB 0F0H, 5AH, 91H, 00H, 04H, 00H, 00H, 00H, 00H, 0A5H, 0F0H
TABB1: DB 00H, 38H,00H,23H,00H,90H,00H,50H
DB 01H, 35H,00H,23H,01H,82H,00H,50H
DB 02H, 22H,00H,23H,02H,78H,00H,50H
DB 00H, 38H,00H,73H,00H,90H,00H,99H
DB 01H, 35H,00H,73H,01H,82H,00H,99H
DB 02H, 22H,00H,73H,02H,78H,00H,99H
DB 00H, 38H,01H,29H,00H,90H,01H,56H
DB 01H, 35H,01H,29H,01H,82H,01H,56H
DB 02H, 22H,01H,29H,02H,78H,01H,56H
DB 00H, 38H,01H,79H,00H,90H,02H,05H
DB 01H,35H,01H,79H,01H,82H,02H,05H
DB 02H,22H,01H,79H,02H,78H,02H,05H
TABB2: DB 00H,63H,00H,28H,02H,49H,00H,61H ;产品介绍
DB 00H,63H,00H,78H,02H,49H,01H,08H ;典型应用
DB 00H,63H,01H,30H,02H,49H,01H,63H ;用户测试
DB 00H,63H,01H,81H,02H,49H,02H,18H ;返回首页
TABB3: DB 00H,93H,00H,66H,02H,03H,00H,99H ;开启
DB 00H,93H,01H,23H,02H,03H,01H,59H ;停止
DB 00H,93H,01H,82H,02H,03H,02H,18H ;返回
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -