Раздел: Документация
0 ... 25 26 27 28 29 30 31 ... 39 Регистр А устанавливается в «О» © В регистр В загружается код числа импульсов - 100 (64Н) © © Формирование нарастающего фронта импульса Задержка 1 мс I Формирование спадающего фронта импульса НЕТ PORT1 PORT2 SW0CHK: ROTATE: LOOP: PULSE: DELAY: LOOP1: Результат операции вычитания В - 1 равен О? Направление вращения меняется на противоположное ORG ООООН EQU ОАОН EQU ОАШ LD SP, 1000Н IN A, (PORT1) AND А,01Н JR Z, SW0CHK XOR А LD В, 64Н OR 02Н OUT (PORT2),A PUSH ВС LD В,ОСОН DJNZ PULSE POP ВС AND OFDH OUT (PORT2),A CALL DELAY DJNZ LOOP XOR 01H JR ROTATE © © } © }© }© © LD DEC LD OR JP RET END HL,07A0H HL A, H L NZ, LOOP1 © Рис. 7.28. Программа и схема алгоритма к задаче № 5 7. Составление программ (заданное число импульсов управления) перед входом в блок 5 и после выхода из него, выполняются соответственно команды «PUSH ВС» и «РОР ВС» (содержимое пары регистров В-С сначала загружается в стек, а после выполнения цикла задержки снова выгружается в регистр В). Блок 6: команда «AND 0FDH» выполняет операцию, обратную команде «OR 02Н», а именно, сбрасывает в «О» значение второго разряда регистра А (см. Рис. 3.12). Блок 7: вызов подпрограммы задержки (метка DELAY), аналогичной той, которую мы уже неоднократно применяли. В данном случае время задержки составляет 19 мс. Блок 8: команда DJNZ, которая еще раз применяется к содержимому регистра В, проверяет, было ли выдано 100 импульсов управления. Блок 9: формируется команда изменения направления вращения вала. Для этого посредством команды «XOR 01Н» инвертируется первый разряд регистра А, то есть происходит замена «0» на «1» или наоборот (см. Рис. 3.15). В рассмотренном выше примере осуществляется управление вращением вала шагового двигателя с постоянной скоростью на 180°. Можно произвольно задавать угол поворота вала двигателя, для чего в тексте программы, приведенной на Рис. 7.28, изменить число (64Н) подаваемых импульсов (блок 3). Чтобы изменить скорость вращения, нужно задать другое значение константы (07А0Н), определяющей время задержки (блок 7). При этом единственным ограничением является заявленная заводом-изготовителем предельная частота импульсов управления для данного типа шагового двигателя. Итак, в этой главе на примере простого микропроцессора мы ознакомились с принципами составления программ, предназначенных для выполнения различных наиболее часто используемых операций по управлению электрическими и механическими устройствами. ОБОБЩЕНИЕ ГЛАВЫ 1.Практическое освоение принципов программирования для управляющих микрокомпьютеров следует начинать с составления программ, выполняющих простейшие процедуры, например отработку сигналов включения светодиодов, поступающих на вход (задача №1). 2.Решение задач по программированию микрокомпьютера требует не только освоения программных средств, но и знания основ схемотехники. В частности, программист должен хорошо себе представлять, каким образом осуществляется взаимодействие портов ввода-вывода с внешними устройствами. 3.Если содержимое регистров ЦПУ, которые были задействованы перед вызовом подпрограммы, используется программой и после возвращения в главную программу, необходимо учитывать, меняется ли их содержимое после выполнения подпрограммы. Если да, то перед выполнением подпрограммы содержимое этих регистров необходимо сохранить в дополнительных регистрах или ЗУ, а после выполнения подпрограммы загрузить в регистры сохраненные данные. 4.Время выполнения некоторого количества команд программы можно определить, умножив общую сумму импульсов тактовой частоты ПЗУ, требуемых для выполнения этих команд, на длительность периода тактового сигнала. Практические задания 1)К входу 10 порта ввода, имеющего адрес ЗОН, присоединен выключатель. Зная, что состоянию «включено» соответствует логический сигнал «1», а состоянию «выключено» - сигнал «О», составьте программу на ассемблере для загрузки в память ЦПУ значений интервалов времени между моментами смены состояний переключателя («выключено» - «включено» - «выключено»). Вычисления производить с точностью 1 мс. Тактовая частота ЦПУ - 2.5 МГц, время нахождения переключателя в состоянии «включено» не превышает 60 с. 2)При вводе в микрокомпьютер сигналов «включено»/«выключено» посредством механического переключателя часто возникают ошибки считывания из-за дребезга контактов. Объясните, как можно устранить это явление. га 111 л* ь""" ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА УПРАВЛЯЮЩЕГО МИКРОКОМПЬЮТЕРА Иногда бывает нужен перерыв в работе. В начале этой главы мы рассмотрим характеристики широко применяющихся БИС параллельного интерфейса портов ввода-вывода, а также БИС счетчиков-таймеров. Значительную часть главы посвятим аналого-цифровым и цифро-аналоговым преобразователям (АЦП и ЦАП), без которых невозможен обмен ЦПУ с внешними устройствами, которые используют аналоговые сигналы для их управления или преобразования различных физических величин в электрические сигналы. В разделе описания БИС портов ввода-вывода мы затронем очень важную и достаточно сложную тему - концепцию «прерывания»; рассмотрим на конкретных примерах, как с помощью программы обработки прерывания можно значительно повысить эффективность работы ЦПУ микрокомпьютера. 8.1.Д° сих поР мы имели дело с микропро- БИС ПОРТОВцессором Z80, у которого порты ввода-вы- ВВОДА-ВЫВОДА в°Да построены на основе 8-разрядной схемы защелки. При этом способ подключения внешних устройств к ЦПУ в каждом конкретном случае определял и назначение порта (ввод или вывод). Для решения ряда технических задач по управлению различными устройствами вполне можно ограничиться внутренними портами ввода-вывода микросхемы 280. Однако иногда возникает необходимость применения дополнительных ИС, выполняющих функции портов ввода-вывода. Такие микросхемы, дающие возможность программировать их как порты ввода-вывода, в настоящее время представлены на рынке электронных компонентов в большом ассортименте. По сравнению с регистрами, построенными по типу схемы защелки, внешние БИС портов ввода-вывода обеспечивают более эффективный обмен данными ЦПУ с внешними устройствами. В числе БИС портов ввода-вывода, которые целесообразно применять совместно с рассматриваемым нами процессором Z80, можно упомянуть периферийный адаптер интерфейса (PIA) для ЦПУ 68, 8255; перепрограммируемый параллельный интерфейс ввода-вывода (PPI) для ЦПУ Z80, а также параллельный контроллер интерфейса ввода-вывода (РЮ) для ЦПУ Z80. Все они реализуют аналогичные функции. В этой главе мы подробно остановимся на параллельном контроллере интерфейса ввода-вывода (РЮ), в дальнейшем называя его просто «параллельный интерфейс» или ПИ. Первая буква аббревиатуры ПИ, как вы понимаете, обозначает слово «параллельный». Параллельными называют такие порты ввода-вывода, в которых ввод и вывод данных (в данном случае 8-разрядных) осуществляется одновременно. ПИ может функционировать в одном из четырех режимов, устанавливаемых программными средствами. В зависимости от кодов управления, загруженных из ЦПУ в регистр управления ПИ, можно установить режим 8-разрядного порта ввода, 8-разрядного порта вывода, 8-разрядного порта ввода-вывода или режим поразрядной установки функций порта ввода-вывода, когда любой разряд регистра может быть запрограммирован либо на ввод, либо на вывод данных. ~ Режимы работы ПИ ~ [ Коды установки режима ] Режим «О»: режим выводаО FH Режим «1»: режим ввода4FH Режим «2»: режим ввода-вывода 8FH Режим «3»: режим поразрядного 0CFH программирования ввода-вывода Режимы работы ПИ устанавливаются программно путем загрузки соответствующих управляющих кодов А Можно запрограммировать любой разряд порта как на ввод, так и на вывод данных Кроме того, набор функций ПИ включает дополнительные операции, такие как указание первого адреса программы обработки прерывания и порядок выполнения операций при обработке прерывания. О том, что такое обработка прерывания и как она осуществляется, мы поговорим в следующем разделе. Обратимся к Рис. 8.1, чтобы более подробно ознакомиться с устройством и техническими характеристиками параллельного интерфейса . Как видно из Рис. 8.1, ПИ - это 40-выводная БИС того же размерного стандарта, что и ЦПУ Z80. Сигналы управления ПИ Сигналы прерывания Выводы питания Шина данных Mi - RD В/А C/D- 1Ж-IEL-IEO- GNlS St- 37 35 36 4 6 5 23 24 22 25 26 11 19 20 1 40 39 38 3 2 Я В > л1 л2 л3 л5 А? ARDY ASTB в3 I BRDY BSTB Шина порта А Сигналы квитирования порта А Шина порта В Сигналы квитирования порта В Рис. 8.1. Назначение выводов ПИ Z80 Параллельный интерфейс состоит из двух 8-разрядных портов с Раздельной установкой режимов работы каждого из них. Например, можно использовать порт А как порт вывода (режим «О»), а порт В ~~ в качестве порта ввода (режим «1»). Выводы сигналов управления параллельного интерфейса Ч. RD, IORQ (Рис. 8.1), соединяются с одноименными выводами сигналов системного управления ЦПУ. Схема ПИ приводится в активное состояние, когда на вход СЕ (Chip Enable - активизация икросхемы) подан сигнал «О». Для записи кода управления на вход СЯ) (Control word/Data) подается сигнал «1», а при сигнале «О» на 0 ... 25 26 27 28 29 30 31 ... 39
|