logo
Курсовая работа по МПС вар 8

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 длительностью. Если в линии один дат­чик, для упрощения программы при­ем этого сигнала игнорируется. Если в программе допускается отключение датчика, проверка сигнала наличия обязательна.