Разработка алгоритма работы микроконтроллера

Программа работы микроконтроллера заключается в следующем:

при нажатии кнопки RESET (SB1) производится непрерывный (циклический) опрос датчика и сохранение полученных значений температуры в ОЗУ.

непрерывлый вывод полученных значений температуры на ЖКИ индикатор (цифровое отображение информации на экране)

формирование сигнала предупреждения с помощью блока светодиодов в случае выхода значения температуры за пределы 300С<Т<400С (согласно техническому заданию).

Алгоритм программы приведен на рисунке 4.1.

Первым действием в программе производятся начальные установки микроконтроллера. В них устанавливается указатель стека на последнюю ячейку ОЗУ, исходное состояние каналов связи с датчиками температуры и UART, скорость обмена по UART, разрешаются прерывания от таймера/счетчика0 и от UART, переписывается количество и индивидуальные адреса датчиков температуры из EEPROM в ОЗУ, в регистры записываются необходимые константы.

Когда начальные установки завершены, начинается часть программы, которая производит опрос датчика температуры. Она будет циклически повторятся, пока подводится питание к микроконтроллеру или пока не возникнет запрос на прерывание. Опрос датчика температуры начинается с сигнала сброса на линии (блок 2 рисунок 4.1) Затем следует команда игнорирования адреса датчика температуры SKIP ROM [CCh].

Команда начала измерения температуры CONVERT T [44h] (блок 4, рисунок 4.1) разрешает преобразование значений температуры в цифровой вид для датчика.

Рисунок 4.1 – Алгоритм работы микроконтроллера

Аналого-цифровое преобразование значений температуры занимает время от 750 мс до 800 мс. Поэтому, чтобы получить правильное значение температуры, необходимо выждать паузу 800 мс (блок 5, рисунок 4.1). Пауза выдерживается с помощью таймера/счетчика 0. Во время паузы можно совершать другие действия (например, произвести обмен данными с компьютером или вывести результаты на ЖКИ).

После паузы производится опрос датчика. Опрос датчика начинается с сигнала сброса на линии связи с датчиком (блок 6, рисунок 4.1). После сигнала сброса и ответного сигнала от датчика следует команда MATCH ROM [55h]. Эта команда сообщает датчику, что после неё на линии связи будет выставлен индивидуальный 64-х битовый адрес датчика. После того, как адрес выставлен на линии, датчик температуры сравнивает выставленный адрес со своим собственным адресом, и, после этого к работе с микроконтроллером датчик готов.

В блоке 7 производится чтение значения температуры и запись его в соответствующие ячейки ОЗУ.

В блоке 8 производится ветвление программы: если измеренное значение температуры не выходит за пределы 300С<Т<400С , то результат выводится на экран ЖКИ (блок 9). Если же измеренное значение температуры выходит за пределы диапазона, то загорятся световые индикаторы: VD1- если температура меньше 30 0С или VD2 –если больше 400С (блок 10).

Если необходимо продолжать измерять температуру (блок 11), то переходят к блоку 4, если нет, то тогда происходит завершение программы.

Программа работы микроконтроллера для измерения температуры приведена в приложении А.

Заключение

В данном курсовом проекте был разработан цифровой термометр, позволяющий снимать температуру датчиком температуры ТМР35, обрабатывать полученную информацию и выводить результат измерений в цифровом виде на экран ЖК индикатора. Также с помощью последовательного интерфейса возможна их передача на экран персонального компьютера для получения и сохранения неограниченного количество этих значений, проведения статистического анализа и слежение за изменением температуры во времени для разных этапов измерения.

В ходе проектирования были разработаны структурная и принципиальная электрическая схемы, алгоритм работ и текст программы для микроконтроллерной системы.

Таким образом, разработанный цифровой термометр является компактным, переносным устройством, дающим точную информацию о температуре, что позволяет расширить возможности измерений.

Приложение А

Текст программы

; Системные определения для 320 STK/EVK

TOOL SET 0 ; 0 = STK/EVK ОЗУ

; 1 = Симулятор

; 2 = Встроенное ПЗУ

STACK EQU 003DEH ; Указатель стека

RAM_ORIG EQU 00200H ; Начальный адрес памяти ОЗУ

ROM_ORIG EQU 0C100H ; Начальный адрес памяти ПЗУ

IF TOOL = 0

I_VECTORS EQU 003FFH ; Вектора прерываний в ОЗУ

MAIN EQU RAM_ORIG+20H ; Стартовый адрес программы в ОЗУ

BTLOAD EQU 035H ; Прерывания раз в 0,5 сек.

ELSEIF TOOL = 1

I_VECTORS EQU 0FFFFH ; Вектора прерываний в ПЗУ

MAIN EQU ROM_ORIG ; Стартовый адрес программы в ПЗУ

BTLOAD EQU 011H ; Частые прерывания (не 1 сек)

ELSE

I_VECTORS EQU 0FFFFH ; Вектора прерываний в ПЗУ

MAIN EQU ROM_ORIG ; Стартовый адрес программы в ПЗУ

BTLOAD EQU 035H ; Прерывания раз в 0,5 сек.

.ENDIF

; Определения для АЦП на базе модуля TIMER PORT

Перейти на страницу: 1 2 3

Прочтите также:

Модернизация системы видеонаблюдения центрального офиса коммерческого банка
Желание жить вне опасности следует в общепринятой иерархической системе потребностей, предложенной Маслоу, сразу после физиологических нужд. Это понятие не ограничивается личной без ...

Технология размещения базовых станций связи стандарта DCS-1800
Среди современных систем мобильной радиосвязи наиболее стремительно развиваются системы сотовой радиотелефонной связи. Их внедрение позволило решить проблему экономического использования ...

Технология получения монокристаллического InSb p-типа
На сегодняшний день все халькогениды свинца, включая селенид свинца, являются достаточно изученными полупроводниковыми соединениями, которые уже давно нашли свое применение в электронно ...

Основные разделы

Copyright © 2008 - 2019 www.techmatch.ru