;======= ИНИЦИАЛИЗАЦИЯ  ДАТЧИКА ТЕМПЕРАТУРЫ =====================
;=================================================================================
; чтение температуры из DS18B20
START_DS
            call DS_INIT                ;инициализация DS18B20
	    movlw 0xCC			;записываем команду 0xCC
	    movwf BUF_BX  		;в буфер выдаваемой команды
	    call BYD_KOM_1		;Уходим в подпрограмму ВЫДАЧИ ЗАДАННОЙ КОМАНДЫ ИЗ МИКРОКОНТРОЛЛЕРА В ДАТЧИК
	    movlw 0x44
	    movwf BUF_BX		;загружаем код команды CONVERT в BUF_BX
	    call BYD_KOM_1		;Уходим в подпрограмму ВЫДАЧИ ЗАДАННОЙ КОМАНДЫ ИЗ МИКРОКОНТРОЛЛЕРА В ДАТЧИК	    
	    call Del_500
            call Del_500                ;ждем окончания преобразования
            call DS_INIT			
	    movlw 0xCC
	    movwf BUF_BX
	    call BYD_KOM_1	
	    movlw 0xBE
            movwf BUF_BX
	    call BYD_KOM_1								
	    call READ_1			;
	    movf KOM,W			;Читаем 1-ый баит входного буфера
	    movwf T_L			;Записываем рег. T_L
            call READ_1			;Подпрограмма ПРИЕМА  БАЙТА  С ДАТЧИКА В МИКРОКОНТРОЛЛЕР
	    movf KOM,W			;Читаем 2-ой баит входного буфера	
	    movwf T_H			;Записываем рег. T_H  
	    goto START_DS
;=======================================================================================
DS_INIT
	    _LINE_0                     ;макрокоманда (порт на выход на линии низкий логический уровень)
            call Del_500
            _LINE_1                     ;макрокоманда (порт на вход линия отпущена)
            call Del_500
            return 

;=======================================================================================
;  Эта подпрограмма получает данные от ДАЛЛАССКОГО чипа.
READ_1
           movlw .8            
           movwf COUNT        
           clrf KOM          
prm_bait_1 _LINE_0                      ; Формирование на линии уровня 0.
           _LINE_1                      ; Формирование на линии уровня 1.
           nop                       
           btfss DALLAS                 ; На линии 0 или 1 ? 
           bcf STATUS,C      
           btfsc DALLAS       
           bsf STATUS,C      
           rrf KOM,F                   
           call Del_60
           decfsz COUNT                 
           goto prm_bait_1    
           movf KOM,W                   
           return                 
;=======================================================================================
;=======================================================================================
;  Эта подпрограмма посылает команды к DS1820. Данные
; посылается младшим битом сначала без четности, останова, или битов начала
BYD_KOM_1
           movlw .8            
           movwf COUNT                
p_b0       rrf BUF_BX            ; Сдвиг вправо 
           btfss STATUS,C      
           goto bit_0            ; передачa 0.
           goto bit_1            ; передачa 1.
p_b1       decfsz COUNT                
           goto p_b0          
           return
;---------------------------------------------------------------------------------------------
bit_0                                      ; передачa бита с уровнем "0"
           _LINE_0           
           call Del_60          ; задержка 60мкс
           _LINE_1                       ;  Конец передачи.
           goto p_b1          
;---------------------------------------------------------------------------------------------
bit_1                                      ; передачa бита с уровнем "1"
           _LINE_0                    
           _LINE_1                                          
           call Del_60          ; задержка60мкс.
           goto p_b1          
                    
;=====================================================================================