Алгоритм, представленный на рисунке 1, составлен так, чтобы счет во время запуска программы начинался не с времени запуска, а с первого положительного импульса. Иначе, при счете с момента запуска программы, если он не совпадет с началом положительного импульса, микропроцессор сосчитает меньшее количество опросов порта и в следствии этого обратится не к той ячейке. Это приведет к выводу ложного результата.
Таким образом алгоритм состоит из четырех частей: установка начальных условий, определение начала положительного импульса, определение длины импульса, вывод полученной информации.
Описание алгоритма:
Задание значения регистровой пары BC.
Задание значения регистровой пары HL.
Чтение порта В5.
Сравнение содержимого аккумулятора с нулем. Если значения равны, то программа возвращается к блоку 3; если не равны, то выполняется следующая команда.
Инкремент счетчика.
Чтение порта В5.
Сравнение содержимого аккумулятора с нулем. Если значения не равны, то программа возвращается к блоку 5; если не равны, то выполняется следующая команда.
Запись в аккумулятор данных с ячейки, адрес которой указан в регистровой паре HL и их вывод через порт B6.
Двойное сложение регистровых пар HL и BC.
Запись в аккумулятор данных с ячейки, адрес которой указан в регистровой паре HL и их вывод через порт B7. Далее программа зацикливается для постоянного вывода актуального значения скорости.
Заключение
Реализовать поставленную задачу невозможно, если не модернизировать аппаратное обеспечение. Таким образом, я спроектировал работу измерителя скорости с условием, что будет установлен вал с меньшим числом шестерней, это уменьшит количество импульсов на входе, увеличив при этом их протяженность, значит уменьшится погрешность, которая возникает на начале и в конце импульса, просто потому, что уменьшится количество этих проблемных участков. При этом возникла проблема вывода информации, ведь подсчеты длин импульсов нельзя назвать значениями скорости. Для того, чтобы вывести значение скорости в об./мин., была составлена таблица, в которой указаны соответствия скоростей и ячеек памяти, то есть после того, как микропроцессор подсчитает количество опросов за положительный полупериод, он обратится к ячейке памяти, в которой указано значение скорости для данного количества опросов и выведет ее. Но тут возникает еще одна проблема, значения скорости по варианту колеблются от 500 до 1000, а вывести такое число один порт не может, поэтому я ввел дополнительный порт вывода B7, который будет выводить младшие разряды значений скорости.
Данный вариант решения поставленной задачи является самым недорогим и рациональным, поэтому с моей точки зрения поставленную задачу необходимо решать именно таким образом и никаким другим.
1.
Универсальный, программируемый пульт дистанционного управления на PIC контроллере
Использование
микроэлектронных средств в изделиях производственного и культурно-бытового
назначения приводит не только к повышению технико-экономических показателей
изделия (стоимо ...
Схема транзисторного компенсационного стабилизатора напряжения
Величина
напряжения на выходе выпрямителей, предназначенных для питания различных
электронных устройств, может колебаться в значительных пределах, что ухудшает
работу аппаратуры. Основн ...
Расчет источников сообщений, сигналов и каналов
сигнал кодирование информационный дискретный
Эффективная организация обмена информации приобретает все
большее значение как условие успешной практической деятельности людей. Объем
информа ...