Читайте также:
|
|
Имея в виду тот факт, что работа проектируемого устройства основана на управлении микроконтроллером остальными узлами и блоками устройства, то для правильной работы, помимо правильно разработанной схемы устройства, необходимо разработать алгоритм управления этими устройствами. Алгоритм отражает конечный набор правил для выполнения процедур управления. От его структуры зависит, насколько рационально используются возможности устройства, возможность усовершенствования устройства без существенных или без изменения схемы устройства, скорость обработки команд управления, а также вероятность сбоя в работе устройства по вине программиста использующего не совсем верный принцип работы устройства. По этой причине разработка алгоритма управляющей программы является одним из основных этапов разработки устройства. Разработчик должен чётко представлять назначение и принцип работы каждого узла не только в отдельности, но и их совместную работу.
Для данного устройства разработку алгоритма начнем с определения основных и дополнительных задач. В данном случае основной задачей является измерение интервалов времени, а к дополнительным отнесём функции управления устройством отображения результата измерения, т.е. индикаторами.
Блок-схема алгоритма управляющей программы и листинг программы на языке Ассемблера приведены соответственно в прил. 2 и прил. 3.
При запуске системы оператором, т. е. при нажатии кнопки «Сброс» счетчик команд обнуляется. МП выполняет обращение к ПЗУ по адресу 0000Н, который является начальным адресом программы. Программа начинается с настройки таймера/счетчика Т0. Для этого задаем режим работы – режим шестнадцатибитного таймера, причем таймер будет запускаться при наличии логической «1» на входе INT0 и при значении TR0, равном «1». После этого МП переходит в состояние ожидания события, постоянно опрашивая входной порт 3 и анализируя состояние входного сигнала на линии Т0. После того как сигнал на входе станет равным «1», содержимое Т/С0 будет увеличиваться на 1 через каждую 1мкс до тех пор, пока на выходе сигнал не приобретет значение «0». Значение, равное Tx в мкс, будет находиться в соответствующих регистрах TH0 и TL0. Далее для отображения на шестиразрядном семисегментном индикаторе необходимо перевести данное значение из двоичного вида в десятично-двоичный код.
В таблице приведены описания используемых в программе команд.
Табл. 8. Используемые в программе команды.
Название команды | Мнемокод | Операция |
Пересылка в аккумулятор из регистра (n = 0 - 7) | MOV A, Rn | (A) = (Rn) |
Пересылка в аккумулятор прямоадресуемого байта | MOV A, ad | (A) = (ad) |
Пересылка в аккумулятор байта из РДП (i = 0, 1) | MOV A, @Ri | (A) = ((Ri)) |
Загрузка в аккумулятор константы | MOV A, #d | (A) = #d |
Пересылка в регистр из аккумулятора | MOV Rn, A | (Rn) = (A) |
Пересылка в регистр прямоадресуемого байта | MOV Rn, ad | (Rn) = (ad) |
Загрузка в регистр константы | MOV Rn, #d | (Rn) = #d |
Десятичная коррекция аккумулятора | DA A | Если (A0-3) > 9 \/ ((AC) = 1), то (A0-3) = (A0-3) + 6, затем если (A4-7) > 9 \/ ((C) = 1), то (A4-7) = (A4-7) + 6 |
Инкремент регистра | INC Rn | (Rn) = (Rn) + 1 |
Декремент регистра | DEC Rn | (Rn) = (Rn) - 1 |
Логическое И аккумулятора и константы | ANL A, #d | (A) = (A) /\ #d |
Логическое ИЛИ аккумулятора и регистра | ORL A, Rn | (A) = (A) \/ (Rn) |
Обмен местами тетрад в аккумуляторе | SWAP A | (A0-3) <-> (A4-7) |
Сброс бита | CLR bit | (b) = 0 |
Установка бита | SETB bit | (b) = 1 |
Длинный переход в полном объеме памяти в программ | LJMP ad16 | (PC) = ad16 |
Переход, если бит равен единице | JB bit, rel | (PC) = (PC) + 3, если (b) = 1, то (PC) = (PC) + rel |
Переход, если бит равен нулю | JNB bit, rel | (PC) = (PC) + 3, если (b) = 0, то (PC) = (PC) + rel |
Декремент регистра и переход, если не нуль | DJNZ Rn, rel | (PC) = (PC) + 2, (Rn) = (Rn) -1, если (Rn)? 0, то (PC) = (PC) + rel |
Возврат из подпрограммы | RET | (PC8-15) = ((SP)), (SP) = (SP) - 1, (PC0-7) = ((SP)), (SP) = (SP) - 1 |
Переход, если перенос равен нулю | JNC rel | (PC) = (PC) + 2, если (C) = 0, то (PC) = (PC) + rel |
Дата добавления: 2015-07-08; просмотров: 168 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Микроконтроллер. | | | Кадр 5. 7 сек |