📄 2007-12-26lcd_tempkz.asm
字号:
LCALL XS
KAD9:
LJMP KEYEND
KEYLSN: LJMP KEYLS
KEYSB: JB P1.3,KEYLSN ;
LCALL YS20
JNB P1.3,$
KSBU1:
MOV A,2CH
CLR C
SUBB A,#00
JNZ KSBU2
MOV A,7BH
CJNE A,#0CH,KSBU11
MOV 7BH,#0BH
LCALL XS
LJMP KEYUP
KSBU11:
MOV 7BH,#0CH
LCALL XS
LJMP KEYEND
KSBU2:
MOV A,2CH
CLR C
SUBB A,#01
JNZ KSBU3
DEC 7AH
MOV A,7AH
CJNE A,#0FFH,KSBUV
MOV 7AH,#09H
LCALL XS
LJMP KEYUP
KSBU3:
MOV A,2CH
CLR C
SUBB A,#02
JNZ KSBU4
DEC 79H
MOV A,79H
CJNE A,#0FFH,KSBUV
MOV 79H,#09H
LCALL XS
LJMP KEYUP
KSBU4:
MOV A,2CH
CLR C
SUBB A,#03
JNZ KSBU5
DEC 78H
MOV A,78H
CJNE A,#0FFH,KSBUV
MOV 78H,#09H
LCALL XS
LJMP KEYUP
KSBU5:
MOV A,2CH
CLR C
SUBB A,#04
JNZ KSBU6
DEC 77H
MOV A,77H
CJNE A,#0FFH,KSBUV
MOV 77H,#09H
LCALL XS
LJMP KEYUP
KSBUV:
LCALL XS
LJMP KEYEND
KSBU6:
MOV A,2CH
CLR C
SUBB A,#05
JNZ KSBU7
DEC 76H
MOV A,76H
CJNE A,#0FFH,KSBUV
MOV 76H,#09H
LCALL XS
LJMP KEYUP
KSBU7:
MOV A,2CH
CLR C
SUBB A,#06
JNZ KSBU8
DEC 75H
MOV A,75H
CJNE A,#0FFH,KSBUV
MOV 75H,#09H
LCALL XS
LJMP KEYUP
KSBU8:
MOV A,2CH
CLR C
SUBB A,#07
JNZ KSBU9
DEC 7CH
MOV A,7CH
CJNE A,#0FFH,KSBUV
MOV 7CH,#09H
LCALL XS
KSBU9:
LJMP KEYEND
LJMP KEYEND
KEYLS: JB P1.2,KEYRS ;
LCALL YS20
JNB P1.2,$
DEC 2EH
DEC 2CH
MOV A,2EH
CJNE A,#14,KEYLS0
DEC 2EH
KEYLS0:
CJNE A,#9,KEYLS1
MOV 2EH,#18
MOV 2CH,#7
KEYLS1:
MOV DAT1,2EH;#10 ;光标位置设置
MOV DAT2,2FH;#7
LCALL CURSORSET ;
LJMP KEYEND
KEYRS: JB P1.1,KEYUP ;
LCALL YS20
JNB P1.1,$
INC 2EH
INC 2CH
MOV A,2EH
CJNE A,#14,KEYRS0
INC 2EH
KEYRS0:
CJNE A,#19,KEYRS1
MOV 2EH,#10
MOV 2CH,#0
KEYRS1:
MOV DAT1,2EH;#10 ;光标位置设置
MOV DAT2,2FH;#7
LCALL CURSORSET ;
LJMP KEYEND
KEYZJ: LJMP KEYSUB1
KEYUP:
JB P1.5,KEYEND ;
LCALL YS20
JNB P1.5,$
MOV 2CH,#00H ;
MOV 2DH,#00H ;
MOV 2EH,#10 ;光标位置设置
MOV 2FH,#7
CLR 2AH.0 ;
LCALL CURSORSREST
KEYEND:
KEYENDN:
RET
XS:
MOV 4BH,2BH
MOV 40H,7CH
MOV 41H,75H
MOV 42H,76H
MOV 43H,77H
MOV 44H,#0AH
MOV 45H,78H
MOV 46H,79H
MOV 47H,7AH
MOV 48H,7BH
SETB RS1
MOV R0,#48H
MOV 4CH,#50
LCALL DISPEN
CLR RS1
RET
;*******************************************************************
;
;数据比较子程序
;
;*******************************************************************
DATACAMP:
CLR C
MOV A,2DH
SUBB A,7BH
JNZ DTCEND0
LJMP DTCJB
DTCEND0:
CLR C
MOV A,3EH
CJNE A,7AH,DTCEND1
LJMP DTC01
DTCEND1:
JNC DTCEND1A
LJMP DTCEND
DTCEND1A:
LJMP DTCJB
DTC01:
CLR C
MOV A,3DH
CJNE A,79H,DTCEND2
LJMP DTC02
DTCEND2:
JNC DTCEND2A
LJMP DTCEND
DTCEND2A:
LJMP DTCJB
DTC02:
CLR C
MOV A,3CH
CJNE A,78H,DTCEND3
LJMP DTC03
DTCEND3:
JNC DTCEND3A
LJMP DTCEND
DTCEND3A:
LJMP DTCJB
DTC03:
CLR C
MOV A,38H
CJNE A,77H,DTCEND4
LJMP DTC04
DTCEND4:
JNC DTCEND4A
LJMP DTCEND
DTCEND4A:
LJMP DTCJB
DTC04:
CLR C
MOV A,37H
CJNE A,76H,DTCEND5
LJMP DTC05
DTCEND5:
JNC DTCEND5A
LJMP DTCEND
DTCEND5A:
LJMP DTCJB
DTC05:
CLR C
MOV A,36H
CJNE A,75H,DTCEND6
LJMP DTC06
DTCEND6:
JNC DTCEND6A
LJMP DTCEND
DTCEND6A:
LJMP DTCJB
DTC06:
CLR C
MOV A,35H
CJNE A,7CH,DTCEND7
LJMP DTC07
DTCEND7:
JNC DTCEND7A
LJMP DTCEND
DTCEND7A:
LJMP DTCJB
DTC07:
LCALL MZCX
LJMP DTCOUT
DTCJB:
LCALL JBCX
LJMP DTCOUT
DTCEND:
LCALL MZCXN
DTCOUT:
RET
DATAEQU:
CLR C
MOV A,2DH
SUBB A,7BH
JNZ DATAEND
CLR C
MOV A,3EH
SUBB A,7AH
JNZ DATAEND
CLR C
MOV A,3DH
SUBB A,79H
JNZ DATAEND
CLR C
MOV A,3CH
SUBB A,78H
JNZ DATAEND
CLR C
MOV A,38H
SUBB A,77H
JNZ DATAEND
CLR C
MOV A,37H
SUBB A,76H
JNZ DATAEND
CLR C
MOV A,36H
SUBB A,75H
JNZ DATAEND
CLR C
MOV A,35H
SUBB A,7CH
JNZ DATAEND
LCALL MZCX
LJMP DATEND
DATAEND:
LCALL MZCXN
DATEND:
RET
MZCX: ;满足要求
MOV DPTR,#PLCDM
MOV 4AH,#0
MOV 4BH,#8 ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
INC 4AH
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
RET
MZCXN: ;不满足要求
MOV DPTR,#PLCDM
MOV 4AH,#1
MOV 4BH,#8 ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
RET
JBCX: ;警报
MOV DPTR,#PLCDM
MOV 4AH,#0
MOV 4BH,#8 ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#JBDM
MOV 4AH,#0
MOV 4BH,#10 ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#JBDM
INC 4AH
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
MOV 4AH,#0
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
MOV DPTR,#PLCDM
MOV 4AH,#0
INC 4BH
INC 4BH ;X
MOV 4CH,#70 ;Y
LCALL SWXS
RET
;*******************************************************************
;
;时间子程序
;
;*******************************************************************
TIMSUB:
SETB RS0 ;
SETB RS1 ;
PUSH ACC ;
PUSH ACC ;
CLR RS0 ;
CLR RS1 ;
POP ACC ;
POP ACC ;
RET
;*******************************************************************
;
;点阵驱动子程序区
;
;*******************************************************************
;-------------------------------------------------------------------
;读状态寄存器
READ_STAT:
MOV DPTR,#C_ADD ;指令地址
MOVX A,@DPTR
RET
;S1S0状态的判断,S0指令读写,S1数据读写
JUDS1S0:
LCALL READ_STAT ;调用读状态子程序
ANL A,#03H
CLR C
SUBB A,#03H
JC JUDS1S0
RET
;S2状态的判断,S2 数据自动读状态
JUDS2:
LCALL READ_STAT ;调用读状态子程序
ANL A,#04H
CLR C
SUBB A,#04H
JC JUDS2
RET
;S3状态的判断,S3 数据自动写状态
JUDS3:
LCALL READ_STAT ;调用读状态子程序
ANL A,#08H
CLR C
SUBB A,#08H
JC JUDS3
RET
;S6状态的判断,S6 屏读/屏拷贝状态
JUDS6:
LCALL READ_STAT ;调用读状态子程序
ANL A,#040H
CLR C
SUBB A,#040H
JC JUDS6
RET
;读数据子程序, 出口DAT2
READ_DATA:
LCALL JUDS1S0
MOV DPTR,#D_ADD
MOVX A,@DPTR
MOV DAT2,A
RET
;写参数子程序 ,入口A
WRIT_PAM:
MOV DPTR,#D_ADD ;数据地址
MOVX @DPTR,A
RET
WRIT_DATA: ;数据输入
LCALL JUDS1S0
MOV A,DAT2
LCALL WRIT_PAM
RET
;写指令子程序,入口A
WRIT_ICN:
MOV DPTR,#C_ADD ;命令地址
MOVX @DPTR,A
RET
WRIT_CODE: ;指令写入
LCALL JUDS1S0
MOV A,COM
LCALL WRIT_ICN
RET
;写指令和数据子程序 ,入口DAT1 DAT2 COM
WRITEICN_DATA:
WRITE_DBDAT: ;写双数据入口
LCALL JUDS1S0 ;调用读状态子程序
MOV A,DAT1
LCALL WRIT_PAM ;调用写参数子程序
WRITE_FLDAT: ;写单数据入口
LCALL JUDS1S0
MOV A,DAT2
LCALL WRIT_PAM
WRITE_NOP:
LCALL WRIT_CODE ;写指令
RET
;液晶驱动初始化
LCDINT:
MOV DAT1,#00H ;
MOV DAT2,#00H ;
MOV COM,#40H ;
LCALL WRITE_DBDAT ;
MOV DAT1,#020H ;
MOV DAT2,#00H ;
MOV COM,#41H ;
LCALL WRITE_DBDAT ;
MOV DAT1,#00H ;
MOV DAT2,#08H ;
MOV COM ,#42H ;
LCALL WRITE_DBDAT ;
MOV DAT1,#20H ;
MOV DAT2,#00H ;
MOV COM,#43H ;
LCALL WRITE_DBDAT ;
MOV DAT1,#04H ;光标位置设置
MOV DAT2,#08H ;
MOV COM,#21H ;
LCALL WRITE_DBDAT ;
MOV COM,#0A3H ;光标形状设置A0~A7
LCALL WRIT_CODE ;写指令
MOV COM,#080H ;光标方式,图形与文本显示
LCALL WRIT_CODE ;写指令
MOV COM,#09CH ;显示开关,控制光标,文本,图形
LCALL WRIT_CODE ;写指令
RET
;光标设置 入口(DAT1低7位,DAT2低5位)表示光标地址
; 列0~01DH 行0~0FH ;
CURSORSET:
;MOV DAT1,#04H ;光标位置设置
;MOV DAT2,#08H ;
MOV COM,#21H ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -