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

📄 fuhuaqi.txt

📁 本文介绍了基于DS18B20单线数字温度传感器的电子孵化器的设计实现。设计中基本涵盖了对单线数字温度传感器DS18B20的原理的运用。在电子孵化器的制作过程中
💻 TXT
字号:
  TIMER_L   DATA  23H
  TIMER_H   DATA  24H
  TIMER_COUN  DATA  25H
  
  TEMPL      DATA  26H
  TEMPH      DATA  27H
  TEMP_TH    DATA  28H
  TEMP_TL    DATA  29H
  
  TEMPHC     DATA   2AH
  TEMPLC     DATA  2BH
  TEMP_ZH    DATA  2CH
  
  BEEP      EQU   P3.7
  DATA_LINE  EQU  P3.3
  RELAY      EQU  P2.3
  
  FLAG1     EQU   20H.0
  FLAG2     EQU   20H.1
     
   ORG   0000H
   JMP   MAIN
   ORG   000BH
   AJMP  INT_T0
MAIN: MOV  SP,#30H
      MOV  TMOD,#01H
      MOV  TIMER_L,#00H
      MOV  TIMER_H,#4CH
      MOV  TIMER_COUN,#00H
      MOV  IE,#82H
      LCALL  READ_E2
      LCALL  RE_18B20
      MOV  20H,#00H
      SETB  BEEP
      SETB  RELAY
      MOV   7FH,#0AH
      MOV  P0,#00H
      ACALL  DELAY
      MOV  P0,#0FFH
      ACALL  DELAY
 START:ACALL  RESET
      JNB   FLAG1,START
      MOV A,#0CCH
      ACALL  WRITE
      MOV  A,#44H
      ACALL  WRITE
      ACALL  RESET
      MOV A,#0CCH
      ACALL  WRITE 
      MOV A,#0BEH
      ACALL  WRITE
      ACALL READ
      ACALL  CONVTEMP
      ACALL  JIARE
      ACALL  DELAY
       AJMP  START
RESET:SETB  DATA_LINE
      NOP
      CLR  DATA_LINE
      MOV  R0,#64H
      MOV  R1,#03H
RESET1:DJNZ  R0,$
       MOV  R0,#64H
       DJNZ R1,RESET1
       SETB  DATA_LINE
       NOP
       MOV  R0,#25H
RESET2:JNB  DATA_LINE,RESET3
       DJNZ R0,RESET2
       JMP  RESET4
RESET3:SETB FLAG1
       JMP  RESET5
RESET4:CLR  FLAG1
       JMP  RESET6
RESET5:MOV  R0,#064H
       DJNZ  R0,$
RESET6:SETB  DATA_LINE
       RET
       
WRITE:MOV  R2,#8
      CLR  CY
   WR1:CLR  DATA_LINE
       MOV  R0,#09
       DJNZ  R0,$
       RRC  A
       MOV  DATA_LINE,C
       MOV  R3,#23
       DJNZ  R3,$
       SETB  DATA_LINE
       NOP
       DJNZ  R2,WR1
       SETB  DATA_LINE
       RET
       
  READ:MOV  R4,#4
       MOV  R1,#26H
   RE00:MOV  R2,#8
   RE01:CLR  C
        SETB  DATA_LINE
        NOP
        NOP
        CLR   DATA_LINE
        NOP
        NOP
        NOP
        SETB  DATA_LINE
        MOV  R3,#09
        DJNZ  R3,$
        MOV  C,DATA_LINE
        MOV   R3,#23
        DJNZ  R3,$
        RRC  A
        DJNZ  R2,RE01
        MOV   @R1,A
        INC   R1
        DJNZ  R4,RE00
        RET
  INT_T0:PUSH  ACC
         PUSH  PSW
         MOV   TL0,TIMER_L
         MOV   TH0,TIMER_H
         INC   TIMER_COUN
         MOV   A,TIMER_COUN
         CJNE  A,#04H,INT_END
         MOV   TIMER_COUN,#00H
         CPL   FLAG2
  INT_END:POP  PSW
          POP  ACC
          RETI
          
   RE_18B20:JB  FLAG1,RE_18B20A
            RET
   RE_18B20A:CALL   RESET
             MOV  A,#0CCH
             LCALL  WRITE
             MOV  A,#4EH
             LCALL WRITE
             MOV   A,TEMP_TH
             LCALL   WRITE
             MOV   A,TEMP_TL
             LCALL WRITE
             MOV  A,#7FH
             LCALL   WRITE
             RET
   READ_E2:CALL  RESET
           MOV  A,#0CCH
           LCALL  WRITE
           MOV   A,#0B8H
           CALL   WRITE
           RET
CONVTEMP:MOV  A,27H
         ANL  A,#0FH
         SWAP A
         MOV  27H,A
         MOV  A,26H
         ANL  A,#0F0H
         SWAP A
         MOV  26H,A
         MOV  A,27H
         MOV  B,26H
         ORL  A,B
         MOV  73H,A
         MOV  B,#10
         DIV  AB
         MOV  70H,A
         MOV  71H,B
         
         MOV A,70H
         ACALL  TAB
         MOV P1,A
         MOV A,71H
         ACALL TAB
         MOV P0,A
         RET
         
    JIARE:MOV  28H,#35
          MOV  29H,#30
          MOV  A,TEMP_TH
          SUBB  A,73H
          JC   CHUL1
           
          MOV  A, TEMP_TL
          SUBB A,73H
          JNC  CHUL2
          RET
     CHUL1:CLR RELAY
           ACALL  DELAY
            RET
     CHUL2:SETB RELAY
           ACALL  DELAY
           RET
 TAB:MOV DPTR,#TAB1
     MOVC A,@A+DPTR
     RET
TAB1:DB 0C0H,0F9H,0A4H,0B0H,099H
     DB 092H,082H,0F8H,080H,090H
     
DELAY:MOV R7,#20H
D1: MOV R6,20H
D2:MOV R5,#20H
D3:DJNZ R5,D3
   DJNZ R6,D2
   
   MOV  R0,#0FEH
        MOV  P3,R0
        MOV  A,P3
        CJNE  A,#0FEH,S1
        AJMP  Q
      S1:CJNE   A,#0DEH,S1A
         AJMP  Q
        
     S1A:CJNE  A,#0BEH,S1B
          MOV  P1,#0B0H
          MOV  P0,#0C0H
          ACALL  DELAY1
          AJMP Q
         
     S1B:MOV P1,#0B0H
        MOV P0,#092H 
         ACALL  DELAY1
         
   Q:DJNZ R7,D1   
   RET
  
DELAY1:MOV R7,#100H
DD1: MOV R6,50H
DD2:MOV R5,#50H
DD3:DJNZ R5,DD3
   DJNZ R6,DD2
   DJNZ R7,DD1   
   RET    
    END   
         

⌨️ 快捷键说明

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