⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hkbus16.asm

📁 多数位分频器.............................................可直接编译
💻 ASM
📖 第 1 页 / 共 5 页
字号:
     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 + -