![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| ChristopherRobin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 21.5.2011 Репутация: нет Всего: нет |
Здравствуйте. Очень прошу помочь разобраться в вопросе задания уставок для датчика DS18B20.
В мануале написано, что для этого служат регистры TH и TL. Как я понял в них загружается значение температуры, с которым сравнивается измеренное значение. Если измеренная темп-ра выше верхней уставки, то устанавливается флаг аварии. Но вот как это реализовать программно в ассемблере ума не хватает. ------------------------ Собрана схема измерения на контроллере AT89C51. Мне нужно сделать, чтобы при превышении температуры в 50 градусов, на заданный порт контроллера приходил сигнал. К планируется подключить светодиод, показывающий аварийное состояние. Может кто-то делал уже что-то подобное, подскажите пожалста. |
|||
|
||||
| Mazzi |
|
|||
|
Правильный ![]() ![]() Профиль Группа: Комодератор Сообщений: 825 Регистрация: 3.4.2003 Репутация: 9 Всего: 21 |
Исходник и схему можно посмотреть?
-------------------- Мне нужны помощники. |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
Делал устройство, срабатывающее по двум температурным порогам. Но встроенную фичу температурной микросхеы не использовал и в программе сам контролировал температуру. Мне кажется это более гибкий способ, позволяющий меньшими силами изменять значения порогов. |
|||
|
||||
| ChristopherRobin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 21.5.2011 Репутация: нет Всего: нет |
Mazzi, Схему собирал отсюда - http://www.atomlink.ru/~courier/ds1307/ds1307.htm
Тока контроллер поменял на AT89C51. В итоге получилось так ![]() UniBomb, а на чем писал? не на ассемблере? Это сообщение отредактировал(а) ChristopherRobin - 22.5.2011, 17:53 Присоединённый файл ( Кол-во скачиваний: 5 )
main.asm 26,49 Kb |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
ChristopherRobin, да, писал на Си, и ещё, как оказалось, одно отличие - микросхема с которой я работал была с интерфейсом TWI. Но особой разницы нет.
Итак, что имеем. вариант 1 - использовать решистры Tl и Th. В твоей программе определена функция "OUT_BYTE", которая передаёт "IO_BYTE" на шину 1-wire. Действуй согласно даташиту:
вариант 2 - использовать программные пороги. В программе есть процедура "GET_T", которая и занимается получением температуры. Результат можно прочитать либо из "TEMP_BYTE_1" в нормальном виде, либо из "TEMP_C" в двоично-десятичном представлении (преобразование сделано для удобства индикации). В ту же функцию ты можешь добавить любую свою проверку. |
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |