Алгоритмы управления системой и индикации показаны в приложении 1.
Рассмотрим основной алгоритм работы системы (рис.1 приложения 1). При включении устройства начинается инициализация необходимых переменных. Номеру входа мультиплексора, с которого считывается значение, присваивается значение N равное числу каналов (N=4 – пульт оператора 1-го канала). Далее начинается опрос датчиков частоты и пульта оператора. В системе реализован циклический режим опроса. При этом режиме опрос осуществляется по заранее установленной программе, определяющей последовательность коммутации. Для каждого канала опрашивается сначала пульт оператора, затем датчик частоты. Обрабатывается 1-й канал, затем 2-й и т.д. После опроса всех каналов, снова начинает опрашиваться 1-й канал, и т.д.
Работа системы осуществляется следующим образом: устанавливается адрес памяти R0, по которому будет заносится 1-е значение, опрашивается вход I мультиплексора (пульт оператора ) , адрес памяти R0 увеличивается на 1, номер входа I уменьшается на N, опрашивается вход I мультиплексора (датчик частоты), происходит обработка данных, вывод результата, номер входа I увеличивается на N+1, происходит проверка: равно ли I значению 2*N+1, т.е. все ли каналы опрошены, если это условие выполняется, то I=N и всё начинается сначала с первого канала, если не выполняется, то I остаётся неизменным и всё повторяется для следующего канала.
Ввод значений с датчиков осуществляется процедурой INPUT.
Рассмотрим подробнее алгоритм этой процедуры (рис.2 приложения 1).
Сначала необходимо подготовить управляющее слово, которое будет содержать адрес опрашиваемого входа мультиплексора и сигналы, начинающие или запрещающие работу соответствующих микросхем. Для этого в младшие разряды слова помещается номер входа мультиплексора, 4-й бит и 5-й биты устанавливаются в 1, 3-й бит обнуляется. Тем самым запрещается работа УВХ с АЦП и дешифратора. Далее это слово выводится в порт 0. После окончания переходных процессов в мультиплексоре в 3-бит записывается единица, что начинает выборку сигнала на УВХ. После выборки в 3-й и 4-й биты записывается логический ноль, заканчивается выборка и начинается аналого-цифровое преобразование. После этого данные с АЦП считываются МК и проверяется старший бит считанного слова, который является флагом окончания преобразования. Если этот бит равен 0, то данные считываются снова, и так до тех пор, пока этот бит не будет равен 1. После этого необходимо отключить АЦП (обнулить4-й бит управляющего слова), тем самым отключить его от шины данных. В конце считанные данные заносятся в оперативную память.
Вывод управляющих сигналов осуществляется процедурой OUTPUT.
Рассмотрим алгоритм этой процедуры.
Сначала формируется управляющее слово. В младшие биты заносится номер обслуживаемого канала. 3-й бит равен 0 (УВХ перед АЦП отключено), 4-й бит равен 1 (АЦП отключен), 5-й бит равен 0 (разрешена работа дешифратора). Затем выводится двоичный код управляющего сигнала в порт 1 и начинается преобразование его в двоичный вид. После преобразования выводится управляющее слово в порт 0, номер канала дешифрируется и выбирается соответствующее УВХ, которое запоминает значение управляющего сигнала и сохраняет его до следующего цикла обработки этого канала.
Обработка считанных значений частоты, текущей и заданной, вычисление отклонения и выработка управляющих сигналов производится процедурой OBRAB.
Рассмотрим алгоритм этой процедуры (рис.3 приложения 1).
Сначала вычисляется отклонение, равное разности между заданной и текущей частотой. После этого выполняется процедура ANALIZ. Затем отклонение делится на заданную частоту и умножается на 100 и получается погрешность. В случае, если погрешность больше 0, то от неё отнимается 10. Если результат больше нуля, то в соответствующий бит порта 2 заносится единица и зажигается соответствующий светодиод. Если погрешность отрицательная, то к ней прибавляется 10. И если результат меньше нуля, то также в соответствующий бит порта 2 заносится единица.
Вычисление значения управляющего сигнала осуществляется процедурой ANALIZ. В данной работе реализован простейший случай, когда управляющий сигнал пропорционален измеренному отклонению. Алгоритм этой процедуры показан на рис. 3 приложения 1.
Здесь отклонение умножается на коэффициент пропорциональности и прибавляется значение, соответствующее нулевому отклонению. В данном случае это значение равно 127. Получившийся результат заносим в регистр R5.
Описание программы
Система команд МК КР1816ВЕ51 ориентирована на организацию гибкого ввода-вывода данных и первичную обработку информации. Особое внимание уделено операциям с битами и передаче управления по их значению.
В ассемблере 51 используются различные методы адресации, т.е. наборы механизмов доступа к операндам. В настоящей разработке использовались следующие методы адресации:
· регистровая адресация;
· косвенно-регистровая адресация;
· непосредственная адресация.
Для адресации портов, регистров специальных функций используются зарезервированные символические имена (Р0, Р1, Р2, Р3 – порты, А или АСС - аккумулятор).
Текст программы приведён в приложении 2.
В начале программы объявляются константы, выбирается банк регистров общего назначения, номер которого определяется разрядами RS0, RS1 регистра PSW. В данном случае выбирается нулевой банк (SEL RB0).
В регистр R2 заносится число каналов N. Регистр R2 далее используется для хранения номера входа мультиплексора, с которого берётся значение. Регистр R0 используется в качестве указателя на ячейку внутренней памяти данных, хранящей операнд. В начале в R0 заносится значение 20H. По этому адресу будет хранится значение с пульта оператора. По адресу 21Н будет хранится значение текущей частоты. В регистре R5 хранится значение управляющего сигнала. Отклонение заносится в регистр R4.
Большое значение в системе команд уделено операциям с битами. В программе используются следующие команды: SETB bit, CLR bit, которые устанавливают бит соответственно в 1 или в 0. Для адресации бит используются зарезервированные символические имена вида < имя РСФ или порта > . < номер бита >.
Для передачи управления использовались такие команды как АSJMP – короткий переход, JNB – переход, если бит равен 0, JB – переход, если бит равен 1, JZ – переход, если аккумулятор равен 0.
Время выполнения команд равно одному, двум или четырём машинным циклам. Цикл равен 12 периодам внешнего синхросигнала (при внешней частоте 4МГц длительность цикла составляет 3 мкс). Это позволяет не вводить дополнительные задержки при вводе данных между выдачей адреса на мультиплексор, запуском УВХ и запуском АЦП и при выводе данных между выдачей данных в порт 1 и выдачей адреса на дешифратор.
Система арифметических команд включает в себя операции сложения, вычитания, инкремент, декремент, а также умножение и деление.
Программа написана в соответствии с алгоритмами, представленными в приложении 1 и описанными в предыдущем разделе. Она включает в себя основную программу, подпрограммы INPUT, OUTPUT, OBRAB, ANALIZ. Вызов подпрограмм осуществляется командой АCALL.
Дата: 2019-05-29, просмотров: 158.