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

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

при нажатии кнопки 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

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

Электронный усилитель
Оконечный каскад. Выходная мощность в техническом задании равна 10 Вт, поэтому в качестве выходного каскада выберем двухтактный каскад. Так как сопротивление нагрузки 8 Ом (меньше 100 ...

Этапы проектирования электронных систем
Проектное решение - промежуточное описание проектируемого объекта, полученное на том или ином иерархическом уровне, как результат выполнения процедуры (соответствующего уровня). ...

Фотоприемники на основе твердого раствора кадмий-ртуть-телур (КРТ)
В настоящее время тем, кто более-менее знаком с полупроводниковыми технологиями, сочетание букв КРТ – не пустой звук, а довольно обширная тема. Твердые растворы на основе КРТ доказали на ...

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

Copyright © 2008 - 2019 www.techmatch.ru