2.3. Разработка алгоритма управления
Устройство способно измерять температуру и индицировать ее на 16-разрядном ЖК-дисплее вместе с показаниями часов. Датчиком температуры в устройстве служит микросхема DS1820, которая измеряет температуру в диапазоне -55... +125. Устройство предназначено для измерения температуры как в домашних условиях, так и на улице.
Всю работу от приема сигналов датчика температуры до их обработки и выдачи на индикацию выполняет микроконтроллер PIC16F84A. Алгоритм работы программы устройства приведен на рис. 5.
Рис.5. Блок-схема работы устройства
После подачи напряжения питания инициализируются регистры микроконтроллера и ЖК-дисплей. Далее проверяется флаг режима установки. Если установки нет, то на дисплей выводятся значения регистров индикации. Если выполняется установка, то проверяется флаг курсора. После индикации инициализируется датчик температуры.
Принятый от датчика DSI820 девятиразрядный двоичный код перекодируется в двоично-десятичный. Выделяется девятый разряд, определяется знак температуры. Перекодированные значения переписываются в десятичные регистры. Позже значения этих регистров будут переписаны в регистры индикации.
Далее программа проверяет состояние кнопок и выполняет соответствующие установки. Проверка кнопок завершается перезаписью всех значений в регистры индикации. После выполнения всех операций программа ожидает прерывание.
Во время прерывания выполняется установка и перекодирование регистров секунд, минут и часов. При выбранной частоте кварцевого резонатора 4,096 МГц, коэффициенте деления предделителя 256, делителе на 16 и с учетом машинного цикла, равного четырем тактам, коэффициент деления регистра таймера должен быть равен 250, поскольку 4096000/(256x16x4) = = 250 Гц. Поэтому перед выходом из прерывания выполняется предустановка таймера на 6 (256-250 = 6). Прерывания происходят через 1/16 с (62,5 мсх16 = 1 с).
После отработки прерывания программа возвращается к индикации, и цикл измерения температуры повторяется.
Датчики температуры с однопроводным интерфейсом разработаны для использования совместно с микроконтроллерами. Каждый датчик имеет 56-разрядный индивидуальный идентификационный код, поэтому по одному проводу может быть опрошено практически неограниченное число датчиков.
Принцип измерения температуры основан на сравнении частот двух генераторов. Частота одного генератора не зависит от температуры, а частота второго изменяется с ее изменением. Разность частот двух генераторов определяет значение температуры. Восьмиразрядный код температуры побитно, начиная с младшего бита, выводится в линию связи. Девятый бит определяет знак измеренной температуры. Если девятый бит единичный, температура имеет знак минус, и наоборот.
Все сеансы приема данных с датчика начинаются подачей в линию сигнала обнуления Reset установкой низкого уровня длительностью. В ответ датчик выдает в линию сигнал наличия Presence длительностью. Если в линии один датчик, для упрощения программы прием этого сигнала игнорируется. Если в программе допускается отключение датчика, проверка сигнала наличия обязательна.
- Содержание
- 1. Теоретическая часть 3
- 2. Практическая часть 15
- Введение
- 1. Теоретическая часть
- 1.1. Основные этапы разработки контроллера
- 1.2. Микроконтроллеры семейства pic.
- 1.3.1. Подключение
- 2. Практическая часть
- 2.1. Выбор микроконтроллера
- 2.2 Выбор элементов разрабатываемого устройства
- 2.2.1. Характеристики жк-модуля
- 2.2.2. Цифровой термометр и его характеристики
- 2.2.3 Характеристики стабилизатора напряжения
- 2.3. Разработка алгоритма управления
- 2.4. Схема разрабатываемого устройства
- 2.5. Описание работы устройства
- 2.6. Программная реализация
- Заключение
- Список литературы