📄 biao.asm
字号:
;---------------------------------------------------------------------------------------------------
;指示性语句--------------
CS1ADDR EQU 0FAFFH ;P2.2
CS2ADDR EQU 0FCFFH ;P2.1
A0ADDR EQU 0100H ;P2.0 COMMAND:0 DATA:1
XPOS EQU 20H
YPOS EQU 21H
SEE EQU 30H ;显示缓冲区
SEER EQU 3DH
SEERR EQU 2FH
SEE09 EQU 32H
SEE08 EQU 33H
SEE07 EQU 34H
SEE06 EQU 35H
SEE05 EQU 36H
SEE04 EQU 37H
SEE03 EQU 38H
SEE02 EQU 39H
SEE01 EQU 3AH
SEE00 EQU 3BH
SEE17 EQU 57H
SEE16 EQU 58H
SEE15 EQU 59H
SEE14 EQU 5AH
SEE13 EQU 5BH
SEE12 EQU 5CH
SEE11 EQU 5DH
SEE10 EQU 5EH
DEL EQU 31H
KEYW EQU 22H
S1 EQU 97H ;P1.7
RE EQU 3CH
SLA EQU 08H
NUMBYT EQU 09H
SCL EQU 0B0H ;P3.0
SDA EQU 0B1H ;P3.1
MTD EQU 0EH ;E2PROM写缓冲区
MTD1 EQU 0FH
MTD2 EQU 10H
MTD3 EQU 11H
MTD4 EQU 12H
MTD5 EQU 13H
MTD6 EQU 14H
MTD7 EQU 15H
MTD8 EQU 16H
MRD EQU 17H ;E2PROM读缓冲区
MRD1 EQU 18H
MRD2 EQU 19H
MRD3 EQU 1AH
MRD4 EQU 1BH
MRD5 EQU 1CH
MRD6 EQU 1DH
MRD7 EQU 1EH
MRD8 EQU 1FH
SCLI EQU 94H ;P1.4
SDAI EQU 93H ;P1.3
MTDI EQU 3EH ;IC卡写缓冲区
MTD1I EQU 3FH
MTD2I EQU 40H
MTD3I EQU 41H
MTD4I EQU 42H
MTD5I EQU 43H
MTD6I EQU 44H
MTD7I EQU 45H
MTD8I EQU 46H
MRDI EQU 47H ;IC卡读缓冲区
MRD1I EQU 48H
MRD2I EQU 49H
MRD3I EQU 4AH
MRD4I EQU 4BH
MRD5I EQU 4CH
MRD6I EQU 4DH
MRD7I EQU 4EH
MRD8I EQU 4FH
VCCI EQU 96H ;P1.6
VCCDL EQU 95H ;P1.5
K2 EQU 92H ;P1.2
YDL1 EQU 50H
YDL2 EQU 51H
YDL3 EQU 52H
YDL4 EQU 53H
SDL1 EQU 54H
SDL2 EQU 55H
SDL3 EQU 56H
DYKG EQU 91H ;P1.1
JWW EQU 18H ;23H.00H
COL EQU 5FH
ZY4 EQU 24H
ZY3 EQU 25H
ZY2 EQU 26H
ZY1 EQU 27H
ZS3 EQU 28H
ZS2 EQU 29H
ZS1 EQU 2AH
ORG 0000H
LJMP MAIN ;跳主程序运行
ORG 0003H
LJMP DDJC ;跳外中断0服务程序运行
ORG 000BH
LJMP DLCS ; 跳定时器0服务程序运行
ORG 0100H
;-----------------------------------------------------------------------
;主程序-------------
MAIN: MOV SP,#60H ;堆栈设置
LCALL DIRRST ;执行显示复位程序
LCALL KEYRST ;执行键盘复位程序
LCALL AT24RST ;执行E2PROM复位程序
LCALL AT24RSTI ;执行IC卡复位程序
LCALL DDJCRST ;设置中断
LCALL DLCSRST ;设置定时器0
MAIN1: LCALL KEY ;执行键扫描程序
MOV A,SEER
CJNE A,SEE,MAIN3
MOV A,#1
CJNE A,SEE,MAIN2
SJMP MAIN4
MAIN2: MOV A,#2
CJNE A,SEE,MAIN5
SJMP MAIN4
MAIN3: MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
MAIN4: LCALL DIR ;执行显示程序
MAIN5: LCALL ICK ;执行IC卡检测及读写程序
AJMP MAIN1
;--------------------------------------------------------------
; IC卡检测及读写程序
ICK: JNB K2,ICK1
SETB VCCI
RET
ICK1: MOV DEL,#10
LCALL DELY
JNB K2,ICK2
SETB VCCI
RET
ICK2: CLR VCCI
MOV DEL,#10
LCALL DELY
JB VCCDL,ICK3
SETB VCCI
MOV SEERR,SEE
MOV SEE,#5
MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
MOV DEL,#60
LCALL DELY
MOV SEE,SEERR
RET
ICK3: MOV MRDI,#00H
MOV NUMBYT,#8
MOV SLA,#0A0H
LCALL RDNBYTI
MOV A,#0AAH
CJNE A,MRD1I,ICK4
CJNE A,MRD2I,ICK4
CJNE A,MRD3I,ICK4
CJNE A,MRD4I,ICK4
CJNE A,MRD5I,ICK4
CJNE A,MRD6I,ICK4
CJNE A,MRD7I,ICK4
CJNE A,MRD8I,ICK4
SJMP ICK5
ICK4: MOV SEERR,SEE
MOV SEE,#4
MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
MOV DEL,#60
LCALL DELY
MOV SEE,SEERR
RET
ICK5: MOV MRDI,#10H
MOV NUMBYT,#3
MOV SLA,#0A0H
LCALL RDNBYTI
MOV A,#00H
CJNE A,MRD1I,ICK6
CJNE A,MRD2I,ICK6
CJNE A,MRD3I,ICK6
MOV SEERR,SEE
MOV SEE,#7
MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
MOV DEL,#60
LCALL DELY
MOV SEE,SEERR
RET
ICK6: MOV SEERR,SEE
MOV SEE,#8
MOV SEER,SEE
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
MOV MTD1I,#00H
MOV MTD2I,#00H
MOV MTD3I,#00H
MOV MTDI,#10H
MOV NUMBYT,#4
MOV SLA,#0A0H
LCALL WRNBYTI
CLR ET0
CLR TR0
MOV A,MRD3I
CLR C
ADD A,SDL3
MOV SDL3,A
MOV A,MRD2I
ADDC A,SDL2
MOV SDL2,A
MOV A,MRD1I
ADDC A,SDL1
MOV SDL1,A
LCALL ZHCS
MOV TH0,#0FFH
MOV TL0,#0FEH
SETB ET0
SETB TR0
MOV DEL,#60
LCALL DELY
MOV SEE,#12
LCALL LCDRESET ;执行液晶显示器复位程序
MOV A,#00H
LCALL LCDFILL
LCALL DIR
ICK7: JB K2,ICK8
SJMP ICK7
ICK8: SETB VCCI
MOV SEE,#2
RET
;----------------------------------------------------------------
;定时器0初始化程序
DLCSRST: MOV TMOD,#05H
MOV TH0,#0FFH
MOV TL0,#0FFH
MOV MRD,#00H
MOV SLA,#0A0H
MOV NUMBYT,#7
LCALL RDNBYT
MOV YDL1,MRD1
MOV YDL2,MRD2
MOV YDL3,MRD3
MOV YDL4,MRD4
MOV SDL1,MRD5
MOV SDL2,MRD6
MOV SDL3,MRD7
LCALL ZHCS
MOV A,SDL1
CJNE A,#00H,DLCSRST1
MOV A,SDL2
CJNE A,#00H,DLCSRST1
MOV A,SDL3
CJNE A,#00H,DLCSRST1
SETB DYKG
MOV SEE,#9
RET
DLCSRST1: CLR DYKG
MOV DEL,#10
LCALL DELY
SETB EA
SETB ET0
SETB TR0
RET
;----------------------------------------------------------
;定时器0中断服务程序
DLCS: PUSH A
PUSH B
PUSH DPL
PUSH DPH
PUSH 00H
PUSH 01H
PUSH 02H
PUSH 03H
PUSH 04H
PUSH 05H
PUSH 06H
PUSH 07H
MOV JWW,C
MOV A,SDL1
CJNE A,#00H,DLCS1
MOV A,SDL2
CJNE A,#00H,DLCS1
MOV A,SDL3
CJNE A,#00H,DLCS1
SETB DYKG
MOV SEE,#9
CLR ET0
CLR TR0
AJMP DLCS3
DLCS1: CLR DYKG
MOV A,#100
CLR C
ADD A,YDL4
MOV YDL4,A
CLR A
ADDC A,YDL3
MOV YDL3,A
CLR A
ADDC A,YDL2
MOV YDL2,A
CLR A
ADDC A,YDL1
MOV YDL1,A
MOV A,SDL3
CLR C
SUBB A,#100
MOV SDL3,A
MOV A,SDL2
SUBB A,#00H
MOV SDL2,A
MOV A,SDL1
SUBB A,#00H
MOV SDL1,A
LCALL ZHCS
MOV A,SDL1
CJNE A,#00H,DLCS2
MOV A,SDL2
CJNE A,#4EH,DLCS2
MOV A,SDL3
CJNE A,#20H,DLCS2
MOV SEERR,SEE
MOV SEE,#13
DLCS2: MOV TH0,#0FFH
MOV TL0,#0FFH
SETB ET0
SETB TR0
DLCS3: MOV C,JWW
POP 07H
POP 06H
POP 05H
POP 04H
POP 03H
POP 02H
POP 01H
POP 00H
POP DPH
POP DPL
POP B
POP A
RETI
ZHCS: MOV ZY4,YDL4
MOV ZY3,YDL3
MOV ZY2,YDL2
MOV ZY1,YDL1
MOV ZS3,SDL3
MOV ZS2,SDL2
MOV ZS1,SDL1
MOV R7,#32
CLR A
MOV R2,A
MOV R3,A
MOV R4,A
MOV R5,A
MOV R6,A
YBCDT1: CLR C
MOV A,ZY4
RLC A
MOV ZY4,A
MOV A,ZY3
RLC A
MOV ZY3,A
MOV A,ZY2
RLC A
MOV ZY2,A
MOV A,ZY1
RLC A
MOV ZY1,A
MOV A,R6
ADDC A,R6
DA A
MOV R6,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
DA A
MOV R3,A
MOV A,R2
ADDC A,R2
DA A
MOV R2,A
DJNZ R7,YBCDT1
MOV A,R2
ANL A,#0FH
MOV SEE08,A
MOV A,R2
SWAP A
ANL A,#0FH
MOV SEE09,A
MOV A,R3
ANL A,#0FH
MOV SEE06,A
MOV A,R3
SWAP A
ANL A,#0FH
MOV SEE07,A
MOV A,R4
ANL A,#0FH
MOV SEE04,A
MOV A,R4
SWAP A
ANL A,#0FH
MOV SEE05,A
MOV A,R5
ANL A,#0FH
MOV SEE02,A
MOV A,R5
SWAP A
ANL A,#0FH
MOV SEE03,A
MOV A,R6
ANL A,#0FH
MOV SEE00,A
MOV A,R6
SWAP A
ANL A,#0FH
MOV SEE01,A
MOV R7,#24
CLR A
MOV R2,A
MOV R3,A
MOV R4,A
MOV R5,A
SBCDT1: CLR C
MOV A,ZS3
RLC A
MOV ZS3,A
MOV A,ZS2
RLC A
MOV ZS2,A
MOV A,ZS1
RLC A
MOV ZS1,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
DA A
MOV R3,A
MOV A,R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -