Помогите разобраться с программированием верхнего 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
ТЕРМОСТАТ НА DS1620
Автор
shuric777
, 25 окт 2011 15:24
В этой теме нет ответов