Перейти к содержимому

ТЕРМОСТАТ НА DS1620


В этой теме нет ответов

#1
shuric777

    Новичок

  • Проверенные
  • 8 сообщений
Помогите разобраться с программированием верхнего TH и нижнего TL порогов в DS1612 с процессором типа AT89C51 в режиме ОДНОКРАТНОГО ПРЕОБРАЗОВАНИЯ ТЕМПЕРАТУРЫ. Состояние выхода Tcom DS1620 не изменяется при прохождении температурных порогов, хотя чтение температуры происходит нормально. Все примеры, в том числе и в ДАТАШИТАХ приведены для работы DS1620 в НЕПРЕРЫВНОМ РЕЖИМЕ. Программа на АССЕМБЛЕРЕ

; DS1620

.BSECT
DQ1 .REG P3.0 ; DQ1 (ДАННЫЕ 1-ГО ТЕМПЕРАТУРНОГО ДАТЧИКА)
CLK1 .REG P3.5 ; CLK1 (ТАКТ.Ч-ТА 1-ГО ТЕМПЕРАТУРНОГО ДАТЧИКА
RST1 .REG P3.7 ; RST1 (СБРОС 1-ГО ТЕМПЕРАТУРНОГ ДАТЧИКА


START:
;........................................................
;ЗАПИСЬ РЕГИСТРА КОНФИГУРАЦИИ ТЕМПЕРАТУРНОГО ДАТЧИКА
;........................
MOV A,#0CH ;код регистра конфигурации
MOV R2,#8 ;счетчик циклов
SETB RST1 ;
WR_REG1:CLR CLK1 ;]
RRC A ;]цикл записи команды установки регистра конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_REG1 ;]

MOV A,#03H ;данные для регистра конфигурации (однократное преобразование)
MOV R2,#8 ;счетчик циклов
WR_DRG1:CLR CLK1 ;]
RRC A ;]цикл записи данных в регистр конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_DRG1 ;]
CLR RST1

;........................................................
;ЗАПИСЬ ВЕРХНЕГО ПОРОГА ТЕМПЕРАТУРЫ
;........................
MOV A,#01H ;код регистра конфигурации
MOV R2,#8 ;счетчик циклов
SETB RST1 ;
WR_H1: CLR CLK1 ;]
RRC A ;]цикл записи команды установки регистра конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_H1 ;]

MOV A,#50H ; ДАННЫЕ 40гр. младший байт
MOV R2,#8 ;счетчик циклов
WR_H2: CLR CLK1 ;]
RRC A ;]цикл записи данных в регистр конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_H2 ;]

MOV A,#00H ; ДАННЫЕ 40гр. cтаршийший байт
MOV R2,#8 ;счетчик циклов
WR_H3: CLR CLK1 ;]
RRC A ;]цикл записи данных в регистр конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_H3 ;]
CLR RST1

;........................................................
;ЗАПИСЬ НИЖНЕГО ПОРОГА ТЕМПЕРАТУРЫ
;........................
MOV A,#02H ;код регистра конфигурации
MOV R2,#8 ;счетчик циклов
SETB RST1 ;
WR_L1: CLR CLK1 ;]
RRC A ;]цикл записи команды установки регистра конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_L1 ;]

MOV A,#3CH ; ДАННЫЕ 40гр. младший байт
MOV R2,#8 ;счетчик циклов
WR_L2: CLR CLK1 ;]
RRC A ;]цикл записи данных в регистр конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_L2 ;]

MOV A,#00H ; ДАННЫЕ 40гр. cтаршийший байт
MOV R2,#8 ;счетчик циклов
WR_L3: CLR CLK1 ;]
RRC A ;]цикл записи данных в регистр конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_L3 ;]
CLR RST1

;..................................
;ЗАПУСК ТЕМПЕРАТУРНОГО ДАТЧИКА
;........................
MOV A,#EEH ;код запуска
MOV R2,#8 ;счетчик циклов
SETB RST1 ;
WR_ZAP1:CLR CLK1 ;]
RRC A ;]цикл записи команды запуска датчика теипературы
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,WR_ZAP1 ;]
CLR RST1

;........................................................
;ЧТЕНИЕ РЕГИСТРА КОНФИГУРАЦИИ ТЕМПЕРАТУРНОГО ДАТЧИКА
;........................
BYZI1: MOV A,#ACH ;код ЧТЕНИЯ регистра конфигурации
MOV R2,#8 ;счетчик циклов
SETB RST1 ;
RD_REG1:CLR CLK1 ;]
RRC A ;]цикл чтения команды установки регистра конфигурации
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,RD_REG1 ;]

MOV R2,#8 ;счетчик циклов
RD_D1: CLR CLK1 ;]
MOV C,DQ1 ;]
RRC A ;]цикл чтения данных
SETB CLK1 ;]
DJNZ R2,RD_D1 ;]
CLR RST1
JB ACC.7,RID1
JMP BYZI1

;...............................................
;ЧТЕНИЕ ТЕМПЕРАТУРЫ ТЕМПЕРАТУРНОГО ДАТЧИКА
;........................
RID1: MOV A,#AAH ;код команды чтения температуры
MOV R2,#8 ;счетчик циклов
SETB RST1 ;
RG_TEM1:CLR CLK1 ;]
RRC A ;]цикл записи команды чтения температуры
MOV DQ1,C ;]
SETB CLK1 ;]
DJNZ R2,RG_TEM1 ;]

MOV R2,#8 ;счетчик циклов
RD_TEM1:CLR CLK1 ;]
MOV C,DQ1 ;]
RRC A ;]цикл чтения данных младшего байта
SETB CLK1 ;]
DJNZ R2,RD_TEM1 ;]
MOV R3,A ;младший байт данных температуры 1

MOV R2,#8 ;счетчик циклов
RD_TE1: CLR CLK1 ;]
MOV C,DQ1 ;]
RRC A ;]цикл чтения данных старшего байта
SETB CLK1 ;]
DJNZ R2,RD_TE1 ;]
CLR RST1
MOV R4,A ;старший байт данных температуры 1

JMP START

3