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

📄 45d041.asm

📁 关于45D041的操作例程参考
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;;;the command:  
;;;1: ----main memory page read:
;;;;  52h + 24 bits(include 4 reserved bits) +32 bits(don't care )
;;;2: ----buffer1 read:
;;;   54h + 15 bits(don't care ) +9 bits(address bits) + 8 bits(don't care)
;;;3: ----buffer2 read:
;;;   56h + 15 bits(don't care ) +9 bits(address bits) + 8 bits(don't care)
;;;4: ----main memory page to buffer1 transfer:
;;;   53h +


;;;REQ     EQU   P3.2
BUSY     EQU   P1.0
RES      EQU   P1.3

CS       EQU   P1.4
SO       EQU   P1.6
SCLK     EQU   P1.7
SI       EQU   P1.5

HHHH     EQU   12H     ;;;;THE HIGHEST ADDRESS LINES
HHLL     EQU   13H     ;;;;SECOND 
LLLL     EQU   14H     ;;;;LOW  LINES
YYYY     EQU   15H
MM       EQU   17H
DD       EQU   18H


       ORG 0
     JMP INIT
     RETI
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP

     ;--- TIMER T0 INT.
     ORG 0BH
     LJMP BEGIN
     ;------------
     NOP
     NOP
     NOP
     NOP
     NOP
     RETI
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     RETI
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     ;-- COMM INT
     ORG 23H
     JMP  BEGIN
     ;------
     NOP
     NOP
     NOP
     NOP
     NOP
     RETI
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     NOP
    ORG  50H 
HBCD:DB  00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
     DB  10H,11H,12H,13H,14H,15H
    ORG  100H
INIT:
       MOV   A,#00H
       MOV   PSW,A
       MOV   SP,#80H
       CLR   RES
       LCALL DELAY 
       SETB  RES
       CLR   EA

BEGIN:
      NOP
      NOP
      NOP
      LCALL  RSTATUS   
      MOV    C,P1.0
      NOP
      NOP
      MOV    R0,#HHLL
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#LLLL
      MOV    A,#00H
      MOV    @R0,A
      MOV    R2,#80    ;;;NUM
      LCALL  RBUFFER1
      NOP
      NOP
      MOV    R0,#HHLL
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#LLLL
      MOV    A,#10H
      MOV    @R0,A
    
      MOV    R2,#16
      MOV    R0,#50H    ;;DATA BUFFER
      LCALL  WBUF1
LPS00:
      LCALL  RSTATUS 
      MOV    R0,#26H
      MOV    A,@R0
      JNB    ACC.7,LPS00
      NOP
      NOP
      MOV    R0,#HHHH  ;;;4 RESERVED BITS + 4 PAGE ADDR
      MOV    A,#00H     
      MOV    @R0,A
      MOV    R0,#HHLL  ;;;7 PAGE ADDRESS + 1 FIRST BYTE ADDR 
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#LLLL  ;;;8 BIT FIRST BYTE ADDRESS
      MOV    A,#00H     
      MOV    @R0,A
      MOV    R2,#16
      MOV    R0,#50H
      LCALL  MAINPGM
      LCALL  RSTATUS   
      NOP
      NOP
      MOV    R0,#HHHH
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#HHLL
      MOV    A,#00H
      MOV    @R0,A
      LCALL  BFTOMAIN
      NOP
      NOP     
      MOV    R0,#HHLL
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#LLLL
      MOV    A,#00H
      MOV    @R0,A
      LCALL  MAINTOBF
      NOP
      NOP
     MOV    R0,#HHLL
     MOV    A,#00H
     MOV    @R0,A
     MOV    R0,#LLLL
     MOV    A,#00H
     MOV    @R0,A
     LCALL  MCMPBF1        ;;;;?????????
     LCALL  RSTATUS  ;;IF SAME AND READY RETURN 80H
     NOP
     NOP
     MOV    R0,#HHHH  ;;;4+4
     MOV    A,#01H     
     MOV    @R0,A
     MOV    R0,#HHLL  ;;;7+1
     MOV    A,#00H
     MOV    @R0,A
     MOV    R0,#LLLL  ;;;8 
     MOV    A,#10H     
     MOV    @R0,A
     MOV    R0,#YYYY
     MOV    A,#19H
     MOV    @R0,A
     INC    R0
     MOV    A,#97H
     MOV    @R0,A
     MOV    R0,#MM
     MOV    A,#08H
     MOV    @R0,A
     MOV    R0,#DD
     MOV    A,#02H
     MOV    @R0,A
     NOP
     LCALL  WONEREC  ;;;;;RRRRRRRRRRRRRRRRRRRRRRR
     NOP
     NOP
      MOV    R0,#HHHH  ;;;4+4
      MOV    A,#03H     
      MOV    @R0,A
      MOV    R0,#HHLL  ;;;7+1
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#LLLL  ;;;8 
      MOV    A,#00H     
      MOV    @R0,A
      MOV    R0,#YYYY
      MOV    A,#19H
      MOV    @R0,A
      INC    R0
      MOV    A,#93H
      MOV    @R0,A
      MOV    R0,#MM
      MOV    A,#06H
      MOV    @R0,A
      MOV    R0,#DD
      MOV    A,#01H
      MOV    @R0,A
      NOP
      LCALL  W1PAGE     ;;;;;;PPPPPPPPPPPPP
      NOP
      NOP
      MOV    R0,#HHHH
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#HHLL
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#LLLL
      MOV    A,#60H
      MOV    @R0,A
      MOV    R2,#80
      LCALL  RMAINP
      NOP
      NOP
      MOV    R0,#HHHH
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#HHLL
      MOV    A,#00H
      MOV    @R0,A
      NOP
      LCALL  FINDREC
      NOP
      NOP
      LCALL  FINDALL
      NOP
      NOP
      MOV    R0,#HHHH
      MOV    A,#00H
      MOV    @R0,A
      MOV    R0,#HHLL
      MOV    A,#00H
      MOV    @R0,A
      LCALL  ATREWR1
      LCALL  RSTATUS
      NOP
      NOP
      NOP
         LJMP BEGIN
;;;;;;;_____________________________________________
TEST:

   RET

;;;;;;----------------   
FINDALL:    ;;;;;;;    OK
      MOV    R0,#HHHH
      MOV    A,#00H
      MOV    @R0,A
NEXT11:
      MOV    R0,#HHHH
      MOV    A,@R0
      INC    A
      MOV    B,A
      CLR    C
      SUBB   A,#06H
      JNC    OOEXIT
      MOV    A,B
      MOV    R0,#HHHH
      MOV    @R0,A
      MOV    R0,#HHLL
      MOV    A,#00H
      MOV    @R0,A
      NOP
      LCALL  FINDREC
      JC     SSSS
LPSBB:
    LCALL  RSTATUS 
    MOV    R0,#26H
    MOV    A,@R0
    JNB    ACC.7,LPSBB
    LJMP    NEXT11
OOEXIT:      
      MOV    A,#0EEH
      JMP    FFAA
SSSS: MOV    A,#0AAH 
FFAA:      
  RET   
   
   
;;;;INPUT :HHHH,HHLL,LLLL,YYYY,MM,DD   

WONEREC:
  NOP
  MOV   R1,#50H
  MOV   R0,#YYYY
  MOV   A,@R0
  MOV   @R1,A
  INC   R0
  INC   R1
  MOV   A,@R0
  MOV   @R1,A  
  MOV   R0,#MM
  MOV   A,@R0
  INC   R1
  MOV   @R1,A
  MOV   R0,#DD
  MOV   A,@R0
  INC   R1
  MOV   @R1,A
  NOP
    LCALL  MAINTOBF
LPSSS:
    LCALL  RSTATUS 
    MOV    R0,#26H
    MOV    A,@R0
    JNB    ACC.7,LPSSS
    LCALL  DELAY
    NOP
    ;;;;;;;;;;;;;;;;;;
      MOV    R2,#16
      MOV    R0,#50H    ;;DATA BUFFER
      LCALL  WBUF1
LPWB:
    LCALL  RSTATUS 
    MOV    R0,#26H
    MOV    A,@R0
    JNB    ACC.7,LPWB
    LCALL  DELAY
    NOP
    LCALL  BFTOMAIN
LPBTM:
    LCALL  RSTATUS 
    MOV    R0,#26H
    MOV    A,@R0
    JNB    ACC.7,LPBTM
    LCALL  DELAY
    NOP 
    
  RET
   
;;;;;;PPPPPPPPPPPPPPPPPPPPPPPPPPP
;;;;INPUT :HHHH,HHLL,LLLL,YYYY,MM,DD   

W1PAGE:
  NOP
  MOV   R1,#50H
  MOV   R0,#YYYY
  MOV   A,@R0
  MOV   @R1,A
  INC   R0
  INC   R1
  MOV   A,@R0
  MOV   @R1,A  
  MOV   R0,#MM
  MOV   A,@R0
  INC   R1
  MOV   @R1,A
  MOV   R0,#DD
  MOV   A,@R0
  INC   R1
  MOV   @R1,A
  NOP
    LCALL  MAINTOBF
LPS11:
    LCALL  RSTATUS 
    MOV    R0,#26H
    MOV    A,@R0
    JNB    ACC.7,LPS11
;;    LCALL  DELAY1
    NOP
    ;;;;;;;;;;;;;;;;;;
      MOV    R2,#16
LPZZZ: 
      MOV    A,R2
      PUSH   ACC         
      MOV    R2,#16
      MOV    R0,#50H    ;;DATA BUFFER
      LCALL  WBUF1
LPWB11:
    LCALL  RSTATUS 
    MOV    R0,#26H
    MOV    A,@R0
    JNB    ACC.7,LPWB11
;;    LCALL  DELAY1
    MOV    R0,#53H   ;;;UPDATE   DD
    MOV    A,@R0
    INC    A
    MOV    B,A
    LCALL  HTOBCD
    MOV    @R0,A
    MOV    R0,#LLLL
    MOV    A,@R0
    ADD    A,#10H
    MOV    @R0,A      ;;;;UPDATE  LLLL
    POP    ACC
    MOV    R2,A
    DJNZ   R2,LPZZZ
    NOP
    LCALL  BFTOMAIN
LPBTM11:
    LCALL  RSTATUS 
    MOV    R0,#26H
    MOV    A,@R0
    JNB    ACC.7,LPBTM11
;;    LCALL  DELAY1
    NOP 
  RET
;  1A-->15

;;;;INPUT  B
HTOBCD:
   MOV  A,B
   ANL  A,#0FH
   MOV  DPTR,#HBCD
   MOVC A,@A+DPTR
   PUSH ACC
   MOV  A,B
   ANL  A,#0F0H
   MOV  B,A
   POP  ACC
   ADD  A,B
   RET

;;;;
;;;;; INPUT: SPECIFY  PAGE ADDRESS   HHHH(4),HHLL(7);     
;;;;OUTPUT:  C==1 : MATCH RECORD
;;;;;        C==0 : NOT FOUND
;;;;; HHHH,HHLL,LLLL--->IF C==1 SPECIFY THE POSITION

FINDREC:
    NOP
    LCALL  MAINTOBF
LPSAA:
    LCALL  RSTATUS 
    MOV    R0,#26H
    MOV    A,@R0
    JNB    ACC.7,LPSAA
    NOP
      MOV    R4,#15
LPFF:      
      NOP
      MOV    R0,#LLLL
      MOV    A,R4
      SWAP   A
      ANL    A,#0F0H
      MOV    @R0,A
      
      MOV    R2,#16    ;;;NUM
      LCALL  RBUFFER1
      LCALL  CMPDAY
      JC     HAVE
      NOP
      DJNZ   R4,LPFF   ;;;;;;F0H ---> 10H
      MOV    R0,#LLLL
      MOV    A,#00H     ;;;;;00H
      MOV    @R0,A
      MOV    R2,#16    ;;;NUM
      LCALL  RBUFFER1
      LCALL  CMPDAY
      JC     HAVE
      CLR    C
      JMP    ENDCMP
HAVE:
      SETB   C
      MOV    R0,#LLLL
      MOV    A,R4
      MOV    @R0,A
ENDCMP:      
    NOP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -