![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Пример подключения микросхемы кр580ви53 к микропроцессорной системе через контроллер прерываний кр580вн59
В примере рассмотрено следующее задание: к микропроцессорной системе подключен программируемый интегральный таймер КР580ВИ53. Таймер должен обеспечить выдержки времени t1=5 с и t2=7 с. Таймер управляется через порт С микросхемы ввода-вывода (параллельного интерфейса). Сигналы о срабатывании таймера поступают на контроллер прерываний. Схема подключения. Так как емкость одного счетчика таймера невелика, необходимо уменьшить тактовую частоту счетчиков. Для этого один из счетчиков СЧ0 переводится в режим деления частоты (режим 2 или 3), а два других в режиме выдержки времени (режим 0)(рис.4.3.). Для упрощения расчетов принимаем частоту на выходе счетчика f1=1кГц, тогда при тактовой частоте FT=2мГц коэффициент деления частоты СЧ0 будет равен: (в шестнадцатеричном коде 2·103 D=07DО Н). Коэффициенты для счетчиков: СЧ1 n1=t1·f1=5·1·103=5·103 D=1388 H; СЧ2 n2=t2·f2=7·1·103=7·103 D=1Б58 Н.
Рис. 4.3.
Сигналы управления счетчиками поступают с РС0 для Сч0 (вход G1) и с РС1 для Сч1 (вход G2) (рис.4.4.). Выходы счетчиков подключены к контроллеру приоритетных прерываний (КПП): выход Сч1 (CLK1) на IR0; выход Сч2 (CLK2) на IR1. Составляем управляющее слово для счетчиков. Слово составляется согласно формату для каждого счетчика отдельно.(рис.2.2). Для Сч. 0: режим 3, код двоичный, загрузка младшего, затем старшего байта
Для Сч.1 режим 0, код двоичный, загрузка младшего, затем старшего байта
Для Сч.2 режим 0, код двоичный, загрузка младшего, затем старшего байта
Программа инициализации заключается в том, что управляющие слова записываются вначале в регистр-аккумулятор, а затем выводится в регистр управления микросхемы, после этого в счетчики загружаются коэффициенты. Счетчики могут программироваться в произвольном порядке.
Контроллер прерываний программируется с помощью шести управляющих слов. Первые три подаются при инициализации системы и называются СКИ1, СКИ2, СКИ3 (слово командоинструкция). Три следующих СК01, СК02, СКO3 (слово командообслуживания) подаются в произвольном порядке в процессе работы. Управляющее слово СКИ1 составляется по формату учитывающего количество контроллеров в системе и вид младшего байта адреса подпрограммы прерываний (рис. 4.5).
Рис.4.5. Двоичный код запроса и номер прерывания IRQ связаны следующим образом:
Если задаем ф=1, то подпрограммы идут через 8 адресов; Если задаем ф=0, то подпрограммы идут через 4 адреса. Управляющее слово СКИ2 имеет формат старшего байта адреса:
Для восприятия контроллером передаваемых данных как СКИ1 необходимо, чтобы А1=0, а для восприятия информации как СКИ2 А0=1.
Пример программирования: в системе один контроллер, подпрограммы (п/п) идут через 4 адреса, п/п находится в области памяти с начальным адресом 0В00Н, микросхема имеет адреса 98-9ВН. Составляем СКИ1:
Затем СКИ2:
В микросхему слова командоинициализации заносятся по очереди. Управляющие слова записываются вначале в регистр-аккумулятор А МП, а затем выводится в микросхему.
Алгоритм управления (рис. 4.6.) предусматривает следующие действия: Инициализация – в этом блоке осуществляется задание режимов всем программируемым вспомогательным микросхемам системы, в данном случае осуществляется запись управляющих слов в регистры управления; Считывание состояния системы - осуществляется опрос датчиков (ввод из порта А); РА0 = 1 - проверка состояния датчика SA1, проверяется состояние разряда РА0, если есть логическая 1 датчик включен (ДА), если логический 0 датчик выключен. Здесь алгоритм разветвляется в случае ДА - переход к вкл.U1, если НЕТ - переход откл.U1. Вкл U1 - включение исполнительного устройства U1, для этого необходимо установить разряд РВО порта В в логическую 1; ОТКЛ U1- отключение исполнительного устройства U1 для этого необходимо установить разряд РВО порт В в логический 0;
РА1 = 1 - проверка состояния датчика SA2, проверяется состояние раз ряда РА1, если есть логическая 1 датчик включен (ДА), если логический 0 датчик выключен. Здесь алгоритм разветвляется в случае ДА - переход к ВКЛ U2, если НЕТ - переход ОТКЛ U2. ВКЛ U2 - включение исполнительного устройства U2, для этого необходимо установить разряд РВ1 порта В в логическую 1; Откл U2- отключение исполнительного устройства U2 для этого необходимо установить разряд РВ1 порт В в логический 0; ОТКЛ U1- отключение исполнительного устройства U1 для этого необходимо установить разряд РВО порт В в логический 0; РА2 = 1 - проверка состояния датчика SA3, проверяется состояние разряда РА2, если есть логическая 1 датчик включен (ДА), если логический 0 датчик выключен. Здесь алгоритм разветвляется в случае ДА - переход к ВКЛ U3, если НЕТ - переход ОТКЛ U3. ВКЛ U3 - включение исполнительного устройства U3, для этого необходи
Программа работы связана с алгоритмом при помощи меток SA, ON, OFF. Каждый блок SA 1, SA 2, SA 3 начинается с того, что в регистр A помещается состояние датчиков. Затем провепряется соответствующий разряд наложением маски и программа разветвляется, если результат равен нулю. В блоках ON 1, ON 2, ON 3 осуществляются операции включения соответствующих исполнительных устройств. Состояние устройств (включено – 1, отключено – 0) запоминается в регистре C. Информация переносится в регистр A, требуемый бит устанавливается в логическую 1 наложением маски, с помощью операции ИЛИ. Полученные данные выводятся в порт B. В блоках OFF 1, OFF 2, OFF3 осуществляется операция отключения соответствующих исполнительных устройств. Состояние устройств (включено – 1, отключено -0. Информация переносится в регистр A, требуемый бит устанавливается в логический 0 наложением маски, с помощью операции И. Полученные данные выводятся в порт B.
|