Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
25.10.2011, 22:19
|
|
Частый гость
Регистрация: 04.05.2007
Сообщений: 16
Сказал спасибо: 2
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Термостат на DS1620
Помогите разобраться с программированием верхнего TH и нижнего TL порогов в DS1612 с процессором типа AT89C51 в режиме ОДНОКРАТНОГО ПРЕОБРАЗОВАНИЯ ТЕМПЕРАТУРЫ. Состояние выхода Tcom DS1620 не изменяется при прохождении температурных порогов, хотя чтение температуры происходит нормально. Все примеры, в том числе и в ДАТАШИТАХ приведены для работы DS1620 в НЕПРЕРЫВНОМ РЕЖИМЕ. Программа на АССЕМБЛЕРЕ [file name=DS1620.rar size=878]http://arv.radioliga.com/components/com_fireboard/uploaded/files/DS1620.rar[/file]
; 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
|
|
|
|
25.10.2011, 22:45
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Термостат на DS1620
Выложите файл hex и укажите частоту кварца. Посиммулируем.
|
|
|
|
26.10.2011, 19:09
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Re: Термостат на DS1620
Если ты читаешь пороги и они у тебя те что ты записал дело не в программе, ногу CLK надо подтянуть на +, тогда автономно работает как термостат. Если Rezet на GND то DS1620 делает сброс.
Последний раз редактировалось Andrewg; 26.10.2011 в 19:23.
|
|
|
|
26.10.2011, 21:48
|
|
Частый гость
Регистрация: 04.05.2007
Сообщений: 16
Сказал спасибо: 2
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Термостат на DS1620
Спасибо, но дело в том, что DS1620 ДОЛЖНА РАБОТАТЬ СОВМЕСТНО С ПРОЦЕССОРОМ, т.к. постоянно необходимо переустанавливать пороги и отображать состояние температуры на индикаторе. Я в принципе могу все это сделать в программе процессора, но не хотелось бы.
|
|
|
|
27.10.2011, 09:03
|
|
Прописка
Регистрация: 08.06.2006
Сообщений: 215
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
|
Re: Термостат на DS1620
Выставленные пороги считываемые процессором, совпадает с записанным?
Других вариантов нет. Rezet в 1. Перед обменном данных мк и ds делаешь сброс, обработал и снова rezet в 1. Только когда Rezet в 1, ноги TL ,TH, TC подключены на выход.
|
|
|
Сказали "Спасибо" Andrewg
|
|
|
27.10.2011, 11:47
|
|
Частый гость
Регистрация: 04.05.2007
Сообщений: 16
Сказал спасибо: 2
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: Термостат на DS1620
Спасибо за помощь и участие. Оказалось, что от перестановки слагаемых сумма меняется. У меня в начале шел запуск преобразования температуры, а затем чтение текущей температуры. Поставил запуск преобразования последней командой и все стало работать.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Затык с DS1620 - управление по трем проводам
|
basjanja |
Микроконтроллеры, АЦП, память и т.д |
4 |
03.03.2011 00:12 |
собрал термостат, индикация работает некорректно, подскажите
|
intell2000 |
Микроконтроллеры, АЦП, память и т.д |
23 |
26.06.2009 17:59 |
DS1620
|
Vertex01 |
Микроконтроллеры, АЦП, память и т.д |
4 |
25.09.2008 20:31 |
Термостат
|
sem_sam |
Микроконтроллеры, АЦП, память и т.д |
43 |
17.08.2007 18:24 |
Часовой пояс GMT +4, время: 16:16.
|
|