📄 yanchen.asm
字号:
MOV 3BH,#1
D7: MOV 48H,44H
MOV 49H,45H
MOV A,3BH
MOV B,#ZJS
MUL AB
ADD A ,42H
MOV 46H,A
XCH A,B
ADDC A ,43H
MOV 47H,A
MOV DPTR,#0100H
MOV 4AH,DPL
MOV 4BH,DPH
CLR P3.5
;;;;;;;;;;;;;;;PRE;;;;;;;
MOV R7,3AH;;;;;47---
D3: MOV R6,#ZJS
D4: MOV DPL ,46H
MOV DPH,47H
MOVX A,@DPTR
INC DPTR
MOV 46H,DPL
MOV 47H,DPH
MOV DPL ,4AH
MOV DPH,4BH
MOVX @DPTR,A
INC DPTR
MOV 4AH,DPL
MOV 4BH,DPH
DJNZ R6,D4
DJNZ R7,D3
;;;;;;;;;;;POST;;;;;;;;;;;;;
MOV R7,3BH;;;;1++
D1: MOV R6,#ZJS
D2: MOV DPL ,48H
MOV DPH,49H
MOVX A,@DPTR
INC DPTR
MOV 48H,DPL
MOV 49H,DPH
MOV DPL ,4AH
MOV DPH,4BH
MOVX @DPTR,A
INC DPTR
MOV 4AH,DPL
MOV 4BH,DPH
DJNZ R6,D2
DJNZ R7,D1
SETB P3.5
PUSH 44H
PUSH 45H
MOV 44H,#00
MOV 45H,#01
MOV R4,#CS
D5: LCALL PAGE1
DJNZ R4,D5
POP 45H
POP 44H
INC 3BH
;CLR P3.4 ;open LOE
DJNZ 3AH,D6
LCALL PAGE1
RET
D6: AJMP D7
;;;;;;;;;;;;OPEN1;;;;;;;
OPEN1:
MOV 3AH,#15
MOV 3BH,#2
MOV A,44H ; 44H,45H POST PAGE
ADD A ,#0E0H
MOV 44H,A
MOV A ,45H ;32*15=1E0
ADDC A ,#1H
MOV 45H,A
;;;;;;;;;;BLACK;;;;;;;
O11: MOV A , 3AH ;3AH=15---
JZ O12
MOV R7, A ;3AH=15---
O3: MOV R6,#ZJS
CLR A
O1: CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
O2: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,O2
DJNZ R6,O1
MOV R5,#08H
O200: SETB P1.0 ;lclk HARDWARE NEEDS
CLR P1.0
DJNZ R5,O200
SETB P1.1 ;HS
CLR P1.1
DJNZ R7,O3
;;;;;;;;;DATA;;;;;;;;;;;;;;
O12: MOV DPL ,44H
MOV DPH ,45H
MOV R7, 3BH ;3BH=2++
O6: MOV R6,#ZJS
O4: CLR P3.5
MOVX A,@DPTR
SETB P3.5
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
O5: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,O5
INC DPTR
DJNZ R6,O4
MOV R5,#08H
O50: SETB P1.0 ;lclk HARDWARE NEEDS
CLR P1.0
DJNZ R5,O50
SETB P1.1 ;HS
CLR P1.1
DJNZ R7,O6
;;;;;;;;NEXT PAGE;;;;;;;
MOV A,44H
CLR C
SUBB A,#32
MOV 44H,A
JNC O7
DEC 45H
O7: INC 3BH ;3BH=2++
INC 3BH
;;;;;;;;;;BLACK;;;;;;;
MOV A, 3AH ;3AH=15---
JZ O13
MOV R7, A ;3AH=15---
O8: MOV R6,#ZJS
CLR A
O9: CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
O10: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,O10
DJNZ R6,O9
MOV R5,#08H
O101: SETB P1.0 ;lclk HARDWARE NEEDS
CLR P1.0
DJNZ R5,O101
SETB P1.1 ;HS
CLR P1.1
DJNZ R7,O8
CLR P3.4 ;VS
SETB P3.4
DEC 3AH ;3AH=15---
MOV A, 3AH
CJNE A ,#0FFH, O14
O13: CLR P3.4 ;VS
SETB P3.4
RET
O14: AJMP O11
;;;;;;;;;;;;CLOSE1;;;;;;;;
CLOSE1:
MOV 3AH,#30
MOV 3BH,#1
MOV A,44H ; 44H,45H UP POST PAGE
ADD A ,#0E0H
MOV 46H,A
MOV A ,45H ;32*31=3E0
ADDC A ,#3H
MOV 47H,A ; 46H,47H DOWN POST PAGE
MOV R4,#16
;;;;;UP DATA;;;;;;;;;;;;;;
C1: MOV DPL ,44H
MOV DPH ,45H
MOV R7, 3BH ;3BH=1++
C2: MOV R6,#ZJS
C3: CLR P3.5
MOVX A,@DPTR
SETB P3.5
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
C4: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,C4
INC DPTR
DJNZ R6,C3
MOV R5,#08H
C40: SETB P1.0 ;lclk HARDWARE NEEDS
CLR P1.0
DJNZ R5,C40
SETB P1.1 ;HS
CLR P1.1
DJNZ R7,C2
;;;;;;;;;;BLACK;;;;;;;
MOV A, 3AH ;3AH=30---
JZ C8
MOV R7, A ;3AH=30---
C5: MOV R6,#ZJS
C6: CLR A
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
C7: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,C7
DJNZ R6,C6
MOV R5,#08H
C70: SETB P1.0 ;lclk HARDWARE NEEDS
CLR P1.0
DJNZ R5,C70
SETB P1.1 ;HS
CLR P1.1
DJNZ R7,C5
;;;;;DOWN DATA;;;;;;;;;;;;;;
C8: MOV DPL ,46H
MOV DPH ,47H
MOV R7, 3BH ;3BH=1++
C9: MOV R6,#ZJS
C10: CLR P3.5
MOVX A,@DPTR
SETB P3.5
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
C11: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,C11
INC DPTR
DJNZ R6,C10
MOV R5,#08H
C110: SETB P1.0 ;lclk HARDWARE NEEDS
CLR P1.0
DJNZ R5,C110
SETB P1.1 ;HS
CLR P1.1
DJNZ R7,C9
CLR P3.4 ;VS
SETB P3.4
;;;;;;;;NEXT PAGE;;;;;;;
MOV A,46H
CLR C
SUBB A,#32
MOV 46H,A
JNC C12
DEC 47H
C12: INC 3BH
DEC 3AH
DEC 3AH
DJNZ R4,C13
RET
C13: AJMP C1
;;;;;;;;;;OPEN;;;;;;;;;;;;;
OPEN:
MOV 3CH,#15
MOV 3DH,#0
OO15: MOV R7,#HS
MOV 3AH,#7
MOV 3BH,#1
OO14: MOV DPL,44H
MOV DPH ,45H
OO3: MOV A ,3CH
JZ OO20
;;;;;;;;BLACK;;;;;;;;;;;;;
MOV R6,A ;R6=15--
CLR A
OO2: CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
OO1: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,OO1
INC DPTR
DJNZ R6,OO2
;;;;;;;;UNCOMPLETE;;;;;;;;;;;;;
OO20: MOV A,3AH ;R6=3AH=7--
JZ OO50
;;;;;;;0 BIT ;;;;;;;;
CLR A
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,3AH ;R5=3AH=7--
OO51: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,OO51
;;;;;;;;;;;;;;;;;;;;;;;
MOV R6,3AH ;R6=3AH=7--
CLR P3.5
MOVX A,@DPTR
SETB P3.5
OO4: RR A
DJNZ R6,OO4
CLR P1.2 ;SELETE FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,3BH ;R5=3BH=1++
OO5: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,OO5
INC DPTR
;;;;;;;;COMPLETE;;;;;;
OO50: MOV A ,3DH
JZ OO8
MOV R6, 3DH ;3DH=0+2
OO6: CLR P3.5
MOVX A,@DPTR
SETB P3.5
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
OO7: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,OO7
INC DPTR
DJNZ R6,OO6
;;;;;;;;UNCOMPLETE;;;;;;;;;;;
OO8: MOV A,3AH ;R6=3AH=7--
JZ OO10
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR P3.5
MOVX A,@DPTR
SETB P3.5
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,3BH ;R5=3BH=1++
OO9: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,OO9
INC DPTR
;;;;;;;0 BIT ;;;;;;;;
CLR A
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,3AH ;R5=3AH=7--
OO80: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,OO80
;;;;;;;BLACK;;;;;;;;;;;;;;;;;;
OO10: MOV A ,3CH;
JZ OO21
MOV R6,A ;R6=3CH=15--
CLR A
OO11: CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
OO12: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,OO12
INC DPTR
DJNZ R6,OO11
OO21: MOV R5,#08H
OO210: SETB P1.0 ;lclk HARDWARE NEEDS
CLR P1.0
DJNZ R5,OO210
SETB P1.1 ;HS
CLR P1.1
DJNZ R7,OO23
CLR P3.4 ;VS
SETB P3.4
INC 3BH ;3BH=1++
DEC 3AH ;3AH=7---
MOV A, 3AH
JNZ OO22
INC 3DH ;3DH=0+2
INC 3DH
OO22: CJNE A ,#0FFH, OO13
DEC 3CH ;3CH=15--
MOV A ,3CH
CJNE A ,#0FFH, OO16
RET
OO16: AJMP OO15
OO13: AJMP OO14
OO23: AJMP OO3
;;;;;;;;;;CLOSE;;;;;;;;;;;;
CLOSE:
MOV 3CH,#30
MOV 3DH,#0
CC1: MOV R7,#HS
MOV 3AH,#7
MOV 3BH,#1
CC2: MOV DPL,44H
MOV DPH ,45H
;;;;;;;;COMPLETE;;;;;;
CC3: MOV A ,3DH
JZ CC6
MOV R6, A ;3DH=0++
CC4: CLR P3.5
MOVX A,@DPTR
SETB P3.5
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
CC5: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,CC5
INC DPTR
DJNZ R6,CC4
;;;;;;;;UNCOMPLETE;;;;;;;;;;;;;
CC6: MOV A,3AH ;R6=3AH=7--
JZ CC8
CLR P3.5
MOVX A,@DPTR
SETB P3.5
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,3BH ;R5=3BH=1++
CC7: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,CC7
;;;;;;;0 BIT ;;;;;;;;
CLR A
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,3AH ;R5=3AH=7--
CC70: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,CC70
INC DPTR
;;;;;;;;;;;BLACK;;;;;;;;;;
CC8: MOV A,3CH
JZ CC11
MOV R6,A ;R6=3CH=30--
CLR A
CC9: CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
CC10: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,CC10
INC DPTR
DJNZ R6,CC9
;;;;;;;;UNCOMPLETE;;;;;;;;;;;
CC11: MOV A,3AH ;R6=3AH=7--
JZ CC14
;;;;;;;0 BIT ;;;;;;;;
CLR A
CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,3AH ;R5=3AH=7--
CC110: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,CC110
;;;;;;;;;;;;;;;;;;;;;;;;
MOV R6,3AH ;R6=3AH=7--
CLR P3.5
MOVX A,@DPTR
SETB P3.5
CC12: RR A
DJNZ R6,CC12
CLR P1.2 ;SELETE FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,3BH ;R5=3BH=1++
CC13: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,CC13
INC DPTR
;;;;;;;;COMPLETE ;;;;;;;;
CC14: MOV A ,3DH
JZ CC17
MOV R6,A ;R6=3DH=0++
CC140: CLR P3.5
MOVX A,@DPTR
SETB P3.5
CC15: CLR P1.2 ;FIRST ROW
MOVX @DPTR,A ;SET DATA
SETB P1.2
MOV R5,#08H
CC16: SETB P1.0 ;lclk
CLR P1.0
DJNZ R5,CC16
INC DPTR
DJNZ R6,CC140
CC17: MOV R5,#08H
CC170: SETB P1.0 ;lclk HARDWARE NEEDS
CLR P1.0
DJNZ R5,CC170
SETB P1.1 ;HS
CLR P1.1
DJNZ R7,CC21
CLR P3.4 ;VS
SETB P3.4
INC 3BH ;3BH=1++
DEC 3AH ;3AH=7---
MOV A, 3AH
JNZ CC18
INC 3DH ;3DH=0++
CC18: CJNE A ,#0FFH, CC19
DEC 3CH ;3CH=30-2
DEC 3CH
MOV A ,3CH
CJNE A ,#0FEH, CC20
RET
CC19: LJMP CC2
CC20: LJMP CC1
CC21: LJMP CC3
;;;;;;;;;;INTER0 ;jump the time0 interrupter subroutine ;;;;;;;;
INTER0:
CLR ET0
CLR TR0
MOV TH0,#15H ; 30ms
MOV TL0,#0A0H ;
DJNZ R4,IN1
MOV R4,#33
DEC R3
IN1: SETB TR0
SETB ET0
RETI
RE: POP ACC
SETB TR0
SETB ES
RETI
;;;;;;;;;;;;;;;;;;;;;;;
COMM: PUSH ACC
LCALL RECEPTION
JC RE
CJNE A,#44H,RE
LCALL RECEPTION
JC RE
CJNE A,#44H,RE
LCALL RECEPTION
JC RE
CJNE A,#99H,CO1
LCALL CLEAR
SJMP TKT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CO1: CJNE A,#11H,CO2
SJMP RTN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CO2: CJNE A,#55H,RE
LCALL RECEPTION
JC RE
CJNE A,#0AAH,RE
LCALL RECEPTION
JC RE
CJNE A,#0CCH,RE
MOV A,#99H
LCALL TRANPC
MOV A,#0AAH
LCALL TRANPC
MOV A,#0CCH
LCALL TRANPC
LCALL CLEAR
MOV DPTR,#0000H ;
CLR P1.6 ;ARR16
CLR P3.5
LCALL RECEPTION ;receive the pages of data
JC RTN
MOV R0,A ; R0=PAGES
MOVX @DPTR,A
RL A
MOV R7,A ; R7=PAGES*2
RE1: LCALL RECEPTION
JC RTN
INC DPTR
MOVX @DPTR,A
DJNZ R7,RE1 ;begin to receive the data
MOV DPTR,#0100H;;;;;;;;;;;;300H ;SECOND SEGMENT;;;;;;;
RE2: MOV R1,#00H ; LOW BYTE 1536=600H
MOV R2,#01H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;www6H ; HIGH BYTE
RE6: CJNE R1,#00,RE4 ;begin to receive the data
CJNE R2,#00,RE5
DJNZ R0,RE2
SJMP RTN
RE5: DEC R2
RE4: DEC R1
LCALL RECEPTION
JC RTN
;CPL A;;;;;;;;;;;
MOVX @DPTR,A
INC DPTR
SJMP RE6
RTN: POP ACC
POP DPH
POP DPL
MOV DPTR,#BEGIN
PUSH DPL
PUSH DPH
SETB ES
SETB P3.5
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TKT: MOV DPTR,#0100H ;SECOND SEGMENT;;;;;;;
CLR P1.6 ;ARR16
CLR P3.5
MOV R1,#00H ; LOW BYTE 1536=600H
MOV R2,#01H;;;;;;;;;;;;;;;;;;;;;;;02H ; HIGH BYTE
RE06: CJNE R1,#00,RE04 ;begin to receive the data
CJNE R2,#00,RE05
POP ACC
POP DPH
POP DPL
MOV 44H,#00
MOV 45H,#01
MOV DPTR,#TICKET
PUSH DPL
PUSH DPH
SETB ES
SETB P3.5
RETI
RE05: DEC R2
RE04: DEC R1
LCALL RECEPTION
JC RTN
;CPL A;;;;;;;;;;;
MOVX @DPTR,A
INC DPTR
SJMP RE06
RECEPTION:
CLR C
MOV TH0,#00H
MOV TL0,#01H
SETB TR0
RECEWAIT:
JBC RI,RECEYES
JNB TF0,RECEWAIT
CLR TF0
CLR TR0
SETB C
RET
RECEYES:
CLR TR0
MOV A,SBUF
CLR TF0
RET
TRANPC:
MOV SBUF,A ;transmitter the data in the rigister ACC
JNB TI,$
CLR TI
RET
DELAY:
MOV 3EH,#40H
DE: MOV 3FH,#0FFH
DJNZ 3FH,$
DJNZ 3EH,DE
RET
CLEAR: CLR P3.4 ;close LOE
MOV R0,#HS
SETB P3.2 ;hd invalid
CL1: CLR P1.1 ;hck=0
NOP
NOP
SETB P1.1 ;hck=1
NOP
NOP
DJNZ R0,CL1
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -