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

📄 1820.asm

📁 1820温度的探头有较高的精度和1284显示
💻 ASM
📖 第 1 页 / 共 2 页
字号:
           ACALL    WRD

           MOV      A,#0D3H
           MOV      DAT,A
           ACALL    WRD
           MOV      A,#0D0H
           MOV      DAT,A
           ACALL    WRD

           MOV      A,#0CCH
           MOV      DAT,A
           ACALL    WRD
           MOV      A,#0BDH
           MOV      DAT,A
           ACALL    WRD

           MOV      A,#0CDH
           MOV      DAT,A
           ACALL    WRD
           MOV      A,#0B7H
           MOV      DAT,A
           ACALL    WRD
           MOV      A,#20H
           MOV      DAT,A
           ACALL    WRD
           MOV      A,#20H
           MOV      DAT,A          
           ACALL    WRD
           MOV      A,#0
           ;MOV      WD,A
           MOV      2EH,A
           MOV      2FH,A
           
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     CCS:
           ACALL    Get1302
           ACALL    SD1820
           ACALL    SD1821
           ACALL     AD16
       ;    MOV    A,#2FH
        ;   MOV    SBUF,A
       ;    JBC    TI,$
       ;    CLR    TI
		     SETB ES
           AJMP      DISP

    AD16:
           MOV      A,2EH           ;十六转十
           ANL      A,#07H
           MOV      B,#16
           MUL      AB
           MOV      D_H,A

           MOV      A,2FH
           MOV      B,#16
           DIV      AB

           MOV      D_LL,A
           MOV      D_L,B

           MOV      A,D_H
           ADD      A,D_LL
           MOV      B,#100
           DIV      AB
           MOV      WD,A
           MOV      A,B
           MOV      B,#10
           DIV      AB
           MOV      WD1,A
           MOV      WD2,B
           MOV      A,D_L
           MOV      B,#6
           MUL      AB
           MOV      B,#10
           DIV      AB
           MOV      WD3,A
           RET


  SD1820:
           SETB     DATAIN  ;温度头的检查
	   NOP
	   CLR	    DATAIN	
	   MOV	    R0,#0FFH
	   DJNZ     R0,$
	   SETB	    DATAIN	
   	   NOP
           NOP
           MOV	    R0,#28H
  TSR2:	
           JNB     DATAIN,TSR3
           DJNZ	   R0,TSR2
           CLR	    BP.1
           SJMP	    TSR7
  TSR3:	
           SETB	    BP.1
           MOV	    R0,#99
   	   DJNZ	    R0,$

 TSR7:	   SETB	    DATAIN
           RET

  SD1821:         
          JB	   BP.1,TSS2
          NOP
          RET

  TSS2:	
           MOV	   A,#0CCH
           LCALL	WRITE_1820
	   MOV	   A,#44H
	   LCALL	WRITE_1820
     
	   LCALL	SD1820
	   MOV	   A,#0CCH
	   LCALL	WRITE_1820
	   MOV	   A,#0BEH
           LCALL	WRITE_1820
	   LCALL	READ_1820
           RET

  WRITE_1820:
     	    MOV	   R2,#8     ;写
	    CLR	   C
   WR1:	
         CLR	   DATAIN		  
         NOP
	 RRC	   A
	 MOV	   DATAIN,C
	 MOV	   R3,#21
	 DJNZ	R3,$
	 SETB	DATAIN
         NOP
	 DJNZ	R2,WR1
	 SETB	DATAIN
	 RET

 READ_1820:
          MOV	   R4,#2      ;;读
          MOV	   R1,#2FH
 RE00:	  MOV	   R2,#8
 RE01:	  CLR	   C
	
	CLR	   DATAIN		   
	NOP
        NOP
        SETB	DATAIN
        NOP		     		     
	MOV	C,DATAIN	     	   
	MOV	R3,#15	     	   
	DJNZ	R3,$	     	
	RRC     A    	     	     	     
        DJNZ	R2,RE01
        MOV     @R1,A
        DEC     R1
        DJNZ    R4,RE00
        RET

   Set1302:
           CLR T_RST
           NOP
           CLR T_CLK
           NOP
           SETB T_RST
           NOP
           MOV B, #8EH ;控制寄存器
           LCALL RTInputByte
           MOV B, #00H ;写操作前WP=0
           LCALL RTInputByte
           CLR T_RST
           NOP
           CLR T_CLK
           NOP
           SETB T_RST
           MOV  B,#90H
           LCALL  RTInputByte
           MOV  B,#0A6H
           LCALL  RTInputByte
           SETB T_CLK
           NOP
           CLR T_RST
     ;++++++++++++++++++++++++++++++++++++++++++++
           MOV R0, #Second;
           MOV R7, #7 ;秒 分 时 日 月 星期 年
           MOV R1, #80H ;秒写地址
 S13021:
           CLR T_RST
           CLR T_CLK
           NOP
           SETB T_RST
           MOV B, R1 ;写秒 分 时 日 月 星期 年 地址
           LCALL RTInputByte
           MOV A, @R0 ;写秒数据
           MOV B, A
           LCALL RTInputByte
           INC R0
           INC R1
           INC R1
           SETB T_CLK
           NOP
           CLR T_RST
           DJNZ R7, S13021
           CLR T_RST
           NOP
           CLR T_CLK

           SETB T_RST
           MOV B, #8EH ;控制寄存器
           LCALL RTInputByte
           MOV B, #80H ;控制,WP=1,写保护
           LCALL RTInputByte
           SETB T_CLK
           NOP
           CLR T_RST
           RET

  Get1302:
           MOV R0, #Second;
           MOV R7, #7
           MOV R1, #81H ;秒地
  G13021:
           CLR T_RST
           CLR T_CLK
           NOP
           SETB T_RST
           MOV B, R1 ;秒 分 时 日 月 星期 年 地址
           LCALL RTInputByte
           LCALL RTOutputByte
           MOV @R0, A ;秒
           INC R0
           INC R1
           INC R1
           SETB T_CLK
           CLR T_RST
           DJNZ R7, G13021
           RET

       ;功 能:写1302一字节 (内部子程序)
;**********************************************************
RTInputByte:
          MOV R4, #8
 Inbit1:
          MOV A, B
          RRC A
          MOV B, A
          MOV T_IO, C
          SETB T_CLK
          NOP
          CLR T_CLK
          DJNZ R4, Inbit1
          RET
;**********************************************************
;功 能:读1302一字节 (内部子程序)
;**********************************************************
 RTOutputByte:
          MOV R4, #8
 Outbit1:
          MOV C, T_IO
          RRC A
          SETB T_CLK
          NOP
          CLR T_CLK
          DJNZ R4, Outbit1
          RET
           ;===========写指令程式==============
   WRI:
           CLR       CS
           SETB      CS
           MOV       R0,#8
           MOV       A,#0F8H
   WRI1:
           RLC       A
           CLR       SCK
           MOV       SID,C
           SETB      SCK
           DJNZ       R0,WRI1

           MOV       R0,#8
           MOV       A,COM
           ANL       A,#0F0H
    WRI2:
           RLC       A
           CLR       SCK
           MOV       SID,C
           SETB      SCK
           DJNZ       R0,WRI2

           MOV       R0,#8
           MOV       A,COM
           SWAP      A
           ANL       A,#0F0H

     WRI3:
           RLC       A
           CLR       SCK
           MOV       SID,C
           SETB      SCK
           DJNZ       R0,WRI3
           RET

    ;----------写数据子程式-------------------
    WRD:
           CLR       CS
           SETB      CS
           MOV       R0,#8
           MOV       A,#0FAH
   WRD1:
           RLC       A
           CLR       SCK
           MOV       SID,C
           SETB      SCK
           DJNZ       R0,WRD1

           MOV       R0,#8
           MOV       A,DAT
           ANL       A,#0F0H
    WRD2:
           RLC       A
           CLR       SCK
           MOV       SID,C
           SETB      SCK
           DJNZ       R0,WRD2

           MOV       R0,#8
           MOV       A,DAT
           SWAP      A
           ANL       A,#0F0H

     WRD3:
           RLC       A
           CLR       SCK
           MOV       SID,C
           SETB      SCK
           DJNZ       R0,WRD3
           RET




   DLAY:
           MOV      R6,#1FH
           DJNZ     R6,$
           RET


   INSS:
           PUSH    ACC
           PUSH    PSW
           PUSH    DPL
           PUSH    DPH
           MOV     TH0,#0E2H
           MOV     TL0,#0FDH

           INC    D_M
           MOV    A,D_M
           CLR    C
           SUBB   A,#100
           JC     EXI
           MOV    D_M,#0
           CPL    BP.0




   EXI:
           POP      DPH
           POP      DPL
           POP      PSW
           POP      ACC
           RETI

   SERIAL:
           
          ; MOV  A,#4
			  
			  JBC   RI,$
			  MOV A,SBUF
           MOV 2DH,A
           CLR RI
			  CLR ES
			  MOV   A,2FH
           MOV   SBUF,A
           JBC   TI,$
           CLR   TI
           RETI

    TAB:
           DB    30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
           DB    0D2H,0BBH,0B6H,0FEH,0C8H,0FDH,0CBH,0C4H,0CEH,0D5H,0C1H,0F9H,0C8H,0D5H

           DB    0A0H,0BBH,62H,32H,39H,34H,24H,0BAH,20H,30H
           END


⌨️ 快捷键说明

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