Блок-схема алгоритма работы устройства

Основной алгоритм работы устройства измерения высоты содержит подпрограммы: инициализации МК, инициализации ЖКИ модуля, измерения высоты, вычисления числового эквивалента, перевода числа из двоичного кода в двоично-десятичный код, выдачи результатов измерения на индикацию.

 

Рис. 6. Блок-схема алгоритма работы устройства


Блок-схема алгоритма инициализации микроконтроллера

Подпрограмма инициализации МК включает в себя настройку используемых портов ввода / вывода, модуля таймера TMR1.

Блок-схема алгоритма инициализации ЖК индикатора

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


Блок-схема алгоритма паузы 25 мс

Пауза 25 мс осуществляется программно, с учетом того что частота квантования микроконтроллера составляет Fosc=4 МГц, время выполнения одной команды составляет Fosc/4, т.е. 1 мкс. Таким образом, для получения паузы 25 мс выполняется 100 циклов по 250 команд.

Блок-схема алгоритма паузы 50 мкс

Пауза 50 мкс осуществляется программно, аналогично паузе 50 мс. Таким образом, для получения паузы 50 мкс выполняется 50 команд.

Блок-схема алгоритма паузы 100 мкс

Пауза 100 мкс осуществляется программно, аналогично паузе 50 мс. Таким образом, для получения паузы 100 мкс выполняется 100 команд.

Блок-схема алгоритма выдача байта в ЖКИ

В данной подпрограмме осуществляется передача необходимых сигналов на шину управления ЖК индикатором для записи в него байта данных, согласно временной диаграмме с учетом динамических характеристик.

Блок-схема алгоритма измерения длительности импульса

Так как взаимосвязь измеряемой высоты с электрическим эквивалентом осуществляется через длительность импульса напряжения, в данной подпрограмме осуществляется преобразование длительности импульса напряжения в числовой код. Для измерения длительности прямоугольного импульса необходимо отследить момент, когда на входе RА0 PORTА появится логическая «1», т.е. передний фронт импульса. После этого запускается таймер TMR1, который будет считать количество отсчетов с постоянной частотой тактирования f=1 МГц. Далее необходимо постоянно отслеживать появление логического «0» на входе RА0, т.е. приход заднего фронта импульса. При появлении логического «0» на входе RА0, таймер останавливается.

Блок-схема алгоритма вычисления числового эквивалента

Так как числовой эквивалент измеренной длительности импульса находится в пределах 200…40000, а измеряемая высота в пределах 0,1…20 км, то для упрощения индикации, вычисление числового эквивалента измеренной высоты осуществляется делением измеренной длительности импульса на 200.

Блок-схема алгоритма перевода в 2-10 код

В данной подпрограмме осуществляется преобразование двоичного числового эквивалента измеренной высоты в три разряда двоично-десятичного кода - «сотни», «десятки» и «единицы». Преобразования проводим, используя операции вычитания чисел 100, а затем 10 с подсчётом количества положительных вычитаний.

Блок-схема алгоритма выдачи результатов на индикацию

В этой подпрограмме необходимо содержимое регистров Nsot, Ndes и Ned, полученное в подпрограмме десятичной коррекции, отправить сначала в регистр w, далее подпрограммой определяется код символа.

Затем, содержимое регистра w, передается в PORTB МК, а затем происходит обмен данными между МК и ЖКИ.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: