Раздел: Документация
0 ... 23 24 25 26 27 28 29 ... 39 Схема RS-триггера на вентилях «И-НЕ» (Состояние на выходе равно О только в том случае, когда на обоих входах вентиля «И-НЕ» присутствует «1») Таблица истинности Ценное свойство
Состояние на выходе Хне изменяется при изменении состояния навходахАиВс«10» или «01» на «11» * Сохраняется предыдущее состояние Рис. 7.20. RS-триггер на элементах «И-НЕ» Когда подвижный контакт 3-контактного переключателя находится в среднем положении, не касаясь неподвижных контактов, на обоих входах А и В триггера сигнал равен «1», так как на них через резисторы подается напряжение +5 В от источника питания. При перемещении подвижного контакта к одному из неподвижных контактов будет наблюдаться дребезг именно на этой паре контактов, что приведет к многократному чередованию сигналов «О» и «1». Так как при этом на разомкнутом контакте сигнал равен «1», на выходе X сохранится то состояние, которое установилось в момент первого замыкания этой пары контактов, то есть влияние дребезга на выходе схемы не обнаруживается. Если выход X такой схемы подсоединить к порту ввода микрокомпьютера, изменение состояния контактов переключателя будет вводиться в микрокомпьютер безошибочно. У gПоддерживать оптимальное со- ЗАДАЧА № 4 -стояние какого-либо сложного объ- ПРОГРАММАекта управления на основе его мате- С ИСПОЛЬЗОВАНИЕМ матической модели, то есть исполь-ТАБЛИЦЫ ДАННЫХ3УЯ систему уравнений, описываю- щих поведение объекта при воздействии на него различных факторов, - достаточно трудная задача. Даже если мы, в совершенстве овладев теорией, составим «идеальный» алгоритм управления, то из-за чрезмерной сложности программы может многократно возрасти нагрузка на микрокомпьютер. Соответственно время вычислений увеличится, и работа контроллера станет неэффективной. В подобных случаях, не прибегая к усложнению алгоритма программы, можно обеспечить достаточно высокую эффективность системы управления путем применения метода поправок, вносимых в работу объекта управления, зависящих от величины и знака отклонения некоторого набора контролируемых параметров. Эти поправки определяются опытным путем и оформляются в виде таблиц, в соответствии с которыми микрокомпьютер формирует сигналы управления. Так, в контроллере системы впрыска двигателя автомобиля, рассмотренной нами в первой главе (Рис. 1.6), управление осуществляется путем впрыска дополнительной порции топлива, объем кото-Рой определяется в зависимости от сигналов различных датчиков (температуры охлаждающей жидкости, числа оборотов двигателя, разряжения во впускном коллекторе, содержания кислорода в выхлопных газах и т. д.). При этом длительность импульса впрыска топлива корректируется в соответствии с занесенными в память процессора таблицами, которые разработаны с учетом технических характеристик конкретного типа двигателя. В качестве простого примера управляющей программы, использующей таблицу данных, рассмотрим следующую задачу. - Задача № 4 - Задана таблица соответствия между 4-разрядными входными данными и временем свечения светодиода. При замыкании переключателя считываются входные данные и зажигается светодиод. Время в секундах, в течение которого он светится, равно произведению соответствующего значения из таблицы на 0.1 Чтобы понять смысл задачи, давайте сначала разберемся в работе схемы, представленной на Рис. 7.22. На схеме показаны порты ввода-вывода микропроцессора. К 7-му разряду порта ввода (адрес ОАОН) присоединен кнопочный выключатель, с помощью которого подается сигнал начала процедуры управления. На входы порта ввода, соответствующие разрядам с 0-го по 3-й, подаются входные данные (4-разрядные двоичные коды). К выходу 0-го разряда порта вывода (адрес 0А1Н) через инвертор подключен светодиод, который загорается, когда сигнал на выходе этого разряда равен «1». Теперь, когда мы ознакомились со схемой подключения цепей внешних устройств к портам ввода-вывода, можно сформулировать задачу для микрокомпьютера, которая состоит в том, чтобы устанавливать продолжительность свечения светодиода в зависимости от сигнала на входах 10...1з- Эта зависимость задана с помощью таблицы (Табл. 7.1), в первой колонке которой даны числовые значения сигнала на входе порта ввода, а во второй - соответствующие им временные множители, определяющие продолжительность работы светодиода. Время свечения светодиода (в секундах) должно быть равно значению множителя, приведенного во второй колонке таблицы, ум- Рис. 7.22. Подача и считывание данных из портов ввода-вывода Таблица 7.1. Таблица данных
ноженного на 0.1. Загрузку табличных значений временных множителей в память микрокомпьютера будем производить начиная с некоторого адреса в той же последовательности, в которой они приведены в Табл. 7.1 (100, 95, 14, 12). Таким образом, значение временного множителя, соответствующее некоторому двоичному числу на входе порта ввода, будет размещаться по адресу, равному сумме этого числа и начального адреса таблицы. В программе нужно указать, начиная с какого адреса загружается таблица. Схема алгоритма управления светодиодом, состоящая из 9 блоков, изображена на Рис. 7.23. Блок 1: проверка состояния контактов кнопочного выключателя, замкнутое состояние которых должно стать сигналом к началу процедуры. Блок 2: из порта ввода считываются входные данные. Блок 3: в пару регистров H-L, используемых в качестве указателя, заносится начальный адрес таблицы данных. Блок 4: к текущему значению адреса прибавляется содержимое порта ввода. Блок 5: содержимое ячейки памяти (временной множитель) по адресу, полученному в результате операции сложения и записанному в парный регистр H-L, загружается в регистр В. Блок 6: подается команда на включение светодиода. Блок 7: отработка цикла задержки 0.1 с. Блок 8: из содержимого регистра В вычитается 1. Если в результате операции вычитания содержимое регистра В не стало равно 0, повторяется цикл задержки с последующим вычитанием 1 из содержимого регистра В. Поскольку в регистр В был загружен временной множитель (соответствующий данной комбинации входных сигналов порта ввода), количество циклов задержки будет равно значению временного множителя. Блок 9: отработка команды выключения светодиода и возврат в состояние ожидания замыкания контактов кнопочного выключателя. Текст программы на языке ассемблера, соответствующей рассмотренному алгоритму, представлен на Рис. 7.24. Фигурными скобками с цифрами, как и ранее, обозначены соответствующие блоки алгоритма. В этой программе много функциональных блоков, идентичных тем, которые мы рассматривали в предыдущих задачах. Поэтому вам не составит особого труда разобраться в ней. Однако будет нелишним сделать несколько пояснений. Команда «AND 0FH» в блоке 2 нужна для того, чтобы, сохранив значения четырех младших разрядов введенных данных, обнулить все остальные разряды. © В пару регистров H-L загружается начальный адрес таблицы данных I К содержимому H-L прибавляются входные данные © Содержимое памяти по адресу, находящемуся в регистрах H-L, загружается в регистр В Зажигается светодиод Задержка 0.1с Гаснет светодиод г Рис. 7.23. Схема алгоритма к задаче № 4 0 ... 23 24 25 26 27 28 29 ... 39
|