温度自动控制系统原理图及源程序 第7页

温度自动控制系统原理图及源程序 第7页
lcall writeright

       mov column2,#40
       mov pagef2,#2             ;.
       mov code,#11
       lcall writeright

       mov column2,#48
       mov pagef2,#2
       mov code,56H
       lcall writeright

      MOV A,29H
      MOV C,40H  ;28的位地址
      RRC A
      MOV C,41H
      RRC A
      MOV C,42H
      RRC A
      MOV C,43H
      RRC A
      MOV 51H,A
      ANL 29H,#0FH
      MOV A,29H
      MOV B,#6
      MUL AB
      MOV 50H,A

      mov a,51H
      mov b,#10
      div ab
      mov 43H,a
      mov 42H,b

      MOV A,50H
      MOV B,#10
      DIV AB
      MOV 41H,A
      MOV 40H,B

       mov column2,#24            ;实际温度
       mov pagef2,#4
       mov code,43h
       lcall writeright

       mov column2,#32
       mov pagef2,#4
       mov code,42h
       lcall writeright

       mov column2,#40
       mov pagef2,#4             ;.
       mov code,#11
       lcall writeright

       mov column2,#48
       mov pagef2,#4
       mov code,41h
       lcall writeright
       RET


;***********************DS18B20复位初始化子程序***********


INIT_1820:      
      SETB P3.1
      NOP
      CLR P3.1;主机发出延时537微秒的复位低脉冲
      MOV R1,#3
TSR1: MOV R0,#107
      DJNZ R0,$
      DJNZ R1,TSR1
      SETB P3.1       ;然后拉高数据线
      NOP
      NOP
      NOP
      MOV R0,#25H
TSR2: JNB P3.1,TSR3  ;等待DS18B20回应
      DJNZ R0,TSR2
     
www.751com.cn表示DS1820存在

      LJMP TSR5
TSR4: CLR FLAG1      ; 清标志位,表示DS1820不存在

      LJMP TSR7
TSR5: MOV R0,#117
TSR6: DJNZ R0,TSR6 ; 时序要求延时一段时间
TSR7: SETB P3.1
      RET    ; 读出转换后的温度值
     
     
     
;***********************读温度子程序*****************     
GET_TEMPER:
      SETB P3.1
      LCALL INIT_1820;先复位DS18B20
      JB FLAG1,TSS2

      RET ; 判断DS1820是否存在?若DS18B20不存在则返回
TSS2:
      MOV A,#0CCH ; 跳过ROM匹配
      LCALL WRITE_1820
      MOV A,#44H ; 发出温度转换命令
      LCALL WRITE_1820;通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒
      LCALL DISPLAY
      LCALL INIT_1820;准备读温度前先复位
      MOV A,#0CCH ; 跳过ROM匹配
      LCALL WRITE_1820
      MOV A,#0BEH ; 发出读温度命令
      LCALL WRITE_1820
      LCALL READ_18200
      RET

;*************************写命令子程序**********
WRITE_1820:
      MOV R2,#8
      CLR C
WR1:  CLR P3.1
      MOV R3,#6
      DJNZ R3,$
      RRC A
      MOV P3.1,C

      MOV R3,#23
      DJNZ R3,$
      SETB P3.1
      NOP
      DJNZ R2,WR1
      SETB P3.1

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有