реклама на сайте
подробности

 
 
> Прошу помочь с прогой на assemblere для DS18B20, Задание верхней и нижней уставок для датчика
snort
сообщение May 20 2011, 15:37
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 30-12-09
Пользователь №: 54 570



Здравствуйте. Очень прошу помочь мне доработать программу на assemblere.
Имеется устройство часы-термометр, сделанные по схеме - http://www.atomlink.ru/~courier/ds1307/ds1307.htm
Только вместо AT89C4051 - AT89C51.
Прикрепленное изображение


Все работает хорошо, температура измеряется. Однако, хотелось бы реализовать следующую функцию. Чтобы при превышении заданной температуры, на определенный порт контроллера приходил сигнал.

В документации по DS18B20 написано, что для задания нижней и верхней уставок служат регистры TL м TH. И что после того, как DS18B20 выполнит температурное преобразование, температурное значение - сравнивается со значением, записанным в регистры TH и TL. Если измеренная температура ниже или равна TL или выше или равна TH, формируется условие Аварии, и устанавливается флаг Аварии в DS18B20.

Но вот как реализовать это программно в ассемблере знаний не хватает. Очень прошу помочь.

Исходник имеющейся проги - Прикрепленный файл  progg.zip ( 9.36 килобайт ) Кол-во скачиваний: 777


Заранее спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
kovigor
сообщение May 21 2011, 08:44
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(snort @ May 20 2011, 18:37) *
Но вот как реализовать это программно в ассемблере знаний не хватает. Очень прошу помочь.


На ассемблере и не надо. Сделайте на Си. Скачайте CodeVision, с ним поставляется библиотека для работы с этим термометром. Документация тоже имеется. Хорошая. Так что ...
Go to the top of the page
 
+Quote Post
xemul
сообщение May 21 2011, 09:04
Сообщение #3



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(snort @ May 20 2011, 19:37) *
Все работает хорошо, температура измеряется. Однако, хотелось бы реализовать следующую функцию. Чтобы при превышении заданной температуры, на определенный порт контроллера приходил сигнал.

DS18B20 не сможет выдать сигнал на какой-либо определенный порт контроллера. Флаг Alarm проверяется только опросом, и такая проверка осмыслена только при куче датчиков на шине.

ЗЫЖ за картинку зачот
Go to the top of the page
 
+Quote Post
Diko
сообщение May 24 2011, 13:26
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 114
Регистрация: 14-08-07
Из: Харьков, Украина
Пользователь №: 29 773



Цитата(snort @ May 20 2011, 18:37) *
В документации по DS18B20 написано, что для задания нижней и верхней уставок служат регистры TL м TH. И что после того, как DS18B20 выполнит температурное преобразование, температурное значение - сравнивается со значением, записанным в регистры TH и TL. Если измеренная температура ниже или равна TL или выше или равна TH, формируется условие Аварии, и устанавливается флаг Аварии в DS18B20.


Думаю, что это достаточно неправильный путь. Думаю будет вполне достаточно в проге после вычитывания температуры сравнить её с заданными порогами и выставить соответствующие биты на порты. (к слову сказать есть вопрос такого плана, а пороги Вы собираетесь использовать постоянные, или есть желание менять их в процесе эксплуатации Вашего девайса ?)

Подобную реализацию попробую помочь сделать (сегодня-завтра взгляну на это чудо).


--------------------
Жизнь сложна и не предсказуема, незачем её усложнять.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016