📄 hkbus16.asm
字号:
MOVX A,@DPTR
MOV A,#00
LCALL PX
RET
;-------------------------------------------------
W1287:MOV A,#04H
LCALL PX
; MOV 78H,#00H ;秒
MOV DPTR,#7F0BH
MOV A,#0A2H
MOVX @DPTR,A
MOV DPTR,#7F00H
MOV A,78H
MOVX @DPTR,A
INC DPTR
INC DPTR
MOV A,7FH ;分
MOVX @DPTR,A
INC DPTR
INC DPTR
MOV A,7EH ;时
MOVX @DPTR,A
INC DPTR
INC DPTR
MOV A,7DH ;星期
MOVX @DPTR,A
INC DPTR
MOV A,7CH ;日
MOVX @DPTR,A
INC DPTR
MOV A,7BH ;月
MOVX @DPTR,A
INC DPTR
MOV A,7AH ;年低
MOVX @DPTR,A
MOV A,79H ;年高
MOV DPTR,#7F0EH
MOVX @DPTR,A
MOV DPTR,#7F0AH
MOV A,#2FH
MOVX @DPTR,A
MOV DPTR,#7F0CH
MOVX A,@DPTR
INC DPTR
MOVX A,@DPTR
MOV DPTR,#7F0BH
MOV A,#42H
MOVX @DPTR,A
MOV A,#00
LCALL PX
RET
;----------------------------------------------------------
AMP: MOV DPTR,#0000H
AMCL: MOV A,#0
MOVX @DPTR,A
INC DPTR
MOV A,DPL
CJNE A,#SUM1,AMCL
MOV A,DPH
CJNE A,#SUM2,AMCL
LCALL R1287
MOV A,#HOR
CLR 09H
CLR C
SUBB A,#28 ;显示总字节长度
JC AMP1
RRC A ;剩余字节数/2,分中显示
MOV 71H,A
JMP AMP2
AMP1: MOV 70H,#00
MOV 71H,#00
SETB 09H
LJMP AMP4
AMP2: MOV 70H,#00H
MOV R5,70H
MOV R6,71H
MOV R0,#79H ;年高
MOV A,@R0
SWAP A
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV A,@R0
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV R0,#7AH ;年低
MOV A,@R0
SWAP A
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV A,@R0
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV DPTR,#YEAR
LCALL TIANT ;填一个区位码字模
MOV A,71H
ADD A,#02
MOV 71H,A
MOV A,70H ;70H,71H+2
ADDC A,#0
MOV 70H,A
AMP4: MOV R5,70H
MOV R6,71H
MOV R0,#7BH ;月
MOV A,@R0
SWAP A
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV A,@R0
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV R0,#7AH
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV DPTR,#MONTH
LCALL TIANT ;填一个区位码字模
MOV A,71H
ADD A,#02
MOV 71H,A
MOV A,70H ;70H,71H+2
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV R0,#7CH ;日
MOV A,@R0
SWAP A
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV A,@R0
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV R0,#7AH
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV DPTR,#DAY
LCALL TIANT ;填一个区位码字模
MOV A,71H
ADD A,#02
MOV 71H,A
MOV A,70H ;70H,71H+2
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV DPTR,#XING ;星
LCALL TIANT ;填一个区位码字模
MOV A,71H
ADD A,#02
MOV 71H,A
MOV A,70H ;70H,71H+2
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV DPTR,#QI ;期
LCALL TIANT ;填一个区位码字模
MOV A,71H
ADD A,#02
MOV 71H,A
MOV A,70H ;70H,71H+2
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV R0,#7DH ;星期
MOV A,@R0
CJNE A,#01,XIQ2
MOV DPTR,#XQ1 ;一
LJMP XIQ8
XIQ2: CJNE A,#02,XIQ3
MOV DPTR,#XQ2 ;二
LJMP XIQ8
XIQ3: CJNE A,#03,XIQ4
MOV DPTR,#XQ3 ;三
LJMP XIQ8
XIQ4: CJNE A,#04,XIQ5
MOV DPTR,#XQ4 ;四
LJMP XIQ8
XIQ5: CJNE A,#05,XIQ6
MOV DPTR,#XQ5 ;五
LJMP XIQ8
XIQ6: CJNE A,#06,XIQ7
MOV DPTR,#XQ6 ;六
LJMP XIQ8
XIQ7: MOV DPTR,#XQ7 ;天
XIQ8: LCALL TIANT ;填一个区位码字模
MOV A,71H
ADD A,#02
MOV 71H,A
MOV A,70H ;70H,71H+2
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV R0,#7EH ;时
MOV A,@R0
SWAP A
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV A,@R0
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV R0,#7AH
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV DPTR,#HOUR
LCALL TIANT ;填一个区位码字模
MOV A,71H
ADD A,#02
MOV 71H,A
MOV A,70H ;70H,71H+2
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV R0,#7FH ;分
MOV A,@R0
SWAP A
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
MOV R5,70H
MOV R6,71H
MOV A,@R0
ANL A,#0FH
LCALL TIANS ;填1个ASCII码字模
MOV R0,#7AH
MOV A,71H
ADD A,#01
MOV 71H,A
MOV A,70H ;70H,71H+1
ADDC A,#0
MOV 70H,A
JB 09H,AMP9
MOV R5,70H
MOV R6,71H
MOV DPTR,#MINUTE
LCALL TIANT ;填一个区位码字模
MOV A,71H
ADD A,#02
MOV 71H,A
MOV A,70H ;70H,71H+2
ADDC A,#0
MOV 70H,A
; MOV R5,70H
; MOV R6,71H
; MOV R0,#78H ;秒
; MOV A,@R0
; SWAP A
; ANL A,#0FH
; LCALL TIANS ;填1个ASCII码字模
; MOV A,71H
; ADD A,#01
; MOV 71H,A
; MOV A,70H ;70H,71H+1
; ADDC A,#0
; MOV 70H,A
; MOV R5,70H
; MOV R6,71H
; MOV A,@R0
; ANL A,#0FH
; LCALL TIANS ;填1个ASCII码字模
; MOV R0,#7AH
; MOV A,71H
; ADD A,#01
; MOV 71H,A
; MOV A,70H ;70H,71H+1
; ADDC A,#0
; MOV 70H,A
; MOV R5,70H
; MOV R6,71H
; MOV DPTR,#SECOND
; LCALL TIANT ;填一个区位码字模
; MOV A,71H
; ADD A,#02
; MOV 71H,A
; MOV A,70H ;70H,71H+2
; ADDC A,#0
; MOV 70H,A
; MOV R5,70H
; MOV R6,71H
AMP9: RET
;---------------------------------------
TIANS:MOV DPTR,#W816 ;入口参数:数字A,填字模地址R5,R6
MOV B,#16
MUL AB
ADD A,DPL ;DPTR=#W816+A*16
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV R7,#16
TIANS1:MOV A,#0
MOVC A,@A+DPTR
LCALL CRLA ;把A倒序放
INC DPTR
PUSH DPH
PUSH DPL
MOV DPH,R5
MOV DPL,R6
MOVX @DPTR,A
MOV B,#HOR ;32 ;R5,R6+32
MOV A,R6
ADD A,B
MOV R6,A
MOV A,R5
ADDC A,#0
MOV R5,A
POP DPL
POP DPH
DJNZ R7,TIANS1
RET
;---------------------------------------
TIANT: MOV R7,#16 ;入口参数:字模所在地址DPTR,填字模地址R5,R6
TIANT1:MOV A,#0
MOVC A,@A+DPTR
LCALL CRLA ;把A倒序放
MOV R1,A
INC DPTR
MOV A,#0
MOVC A,@A+DPTR
LCALL CRLA ;把A倒序放
MOV R2,A
INC DPTR
PUSH DPH
PUSH DPL
MOV DPH,R5
MOV DPL,R6
MOV A,R1
MOVX @DPTR,A
INC DPTR
MOV A,R2
MOVX @DPTR,A
MOV B,#HOR; 32 ;R5,R6+32
MOV A,R6
ADD A,B
MOV R6,A
MOV A,R5
ADDC A,#0
MOV R5,A
POP DPL
POP DPH
DJNZ R7,TIANT1
RET
;-----------------------------------------------------
CRLA:MOV 64H,#08H
MOV B,A
CRLA1:MOV A,B
RLC A
MOV B,A
MOV A,63H
RRC A
MOV 63H,A
DJNZ 64H,CRLA1
RET
;----------------------------------------------------------
R29C040:MOV DPTR,#0000H ;0000H--FFFFH
MOV A,#06
LCALL PX
R29C0: SETB P1.6 ;片选29C040第1区
SETB P1.7
MOVX A,@DPTR
CLR P1.6 ;片选628128高64K放区位码
CLR P1.7
MOVX @DPTR,A
INC DPTR
MOV A,DPL
; CPL P1.0 ;看门狗信号输入--A
CJNE A,#00H,R29C0
MOV A,DPH
CJNE A,#00H,R29C0
RET
;----------------------------------------------------------
W29CS1: MOV DPTR,#0FF00H ;从FF00H---FFFFH
MOV A,#06 ;片选29C040第1区
LCALL PX
W29CS2: MOV R1,DPL
MOV R2,DPH
SETB P1.6 ;片选29C040第1区
SETB P1.7
MOV DPTR,#5555H
MOV A,#0AAH ;先写几个软件保护数据
MOVX @DPTR,A
MOV DPTR,#2AAAH
MOV A,#55H
MOVX @DPTR,A
MOV DPTR,#5555H
MOV A,#0A0H ;80H
MOVX @DPTR,A
MOV DPL,R1
MOV DPH,R2
W29CS3: CLR P1.6 ;片选628128高64K放区位码
CLR P1.7
MOVX A,@DPTR
SETB P1.6 ;片选29C040第1区
SETB P1.7
MOVX @DPTR,A
INC DPTR
MOV A,DPL
CJNE A,#00H,W29CS3
MOV R3,#10 ;11MHz
W29CS4: MOV R4,#0
DJNZ R4,$
DJNZ R3,W29CS4
RET
;----------------------------------------------------------
W29C040:MOV DPTR,#0000H ;从0000H---FFFFH
MOV A,#06 ;片选29C040第1区
LCALL PX
W29C00: MOV R1,DPL
MOV R2,DPH
SETB P1.6 ;片选29C040第1区
SETB P1.7
MOV DPTR,#5555H
MOV A,#0AAH ;先写几个软件保护数据
MOVX @DPTR,A
MOV DPTR,#2AAAH
MOV A,#55H
MOVX @DPTR,A
MOV DPTR,#5555H
MOV A,#0A0H ;80H
MOVX @DPTR,A
MOV DPL,R1
MOV DPH,R2
W29C0: CLR P1.6 ;片选628128高64K放区位码
CLR P1.7
MOVX A,@DPTR
SETB P1.6 ;片选29C040第1区
SETB P1.7
MOVX @DPTR,A
INC DPTR
MOV A,DPL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -