Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример подключения микросхемы кр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, код двоичный, загрузка младшего, затем старшего байта

                  36H

Для Сч.1 режим 0, код двоичный, загрузка младшего, затем старшего байта

                  70H

Для Сч.2 режим 0, код двоичный, загрузка младшего, затем старшего байта

 

                  B0H

 

Программа инициализации заключается в том, что управляющие слова записываются вначале в регистр-аккумулятор, а затем выводится в регистр управления микросхемы, после этого в счетчики загружаются коэффициенты. Счетчики могут программироваться в произвольном порядке.

 

Пример программы инициализации таймера
MVI А, 36Н инициализация счетчика " 0"  
OUT 93Н    
MVI A, DOH загрузка коэффициента счетчика " 0"  
OUT 90Н    
MVI A, 07Н    
OUT 93Н    
MVI А, 70Н инициализация счетчика " 1"  
OUT 93Н    
MVI А.88Н загрузка коэффициента счетчика ''1"  
OUT 91Н    
MVI А, 13Н    
OUT 93Н    
MVI А, ВОН инициализация счетчика " 2"  
OUT 93Н    
MVI А.58Н загрузка коэффициента счетчика" 2"  
OUT 92Н    
MVI А, 1ВН    
OUT 92Н    

Контроллер прерываний программируется с помощью шести управляющих слов. Первые три подаются при инициализации системы и называются СКИ1, СКИ2, СКИ3 (слово командоинструкция). Три следующих СК01, СК02, СКO3 (слово командообслуживания) подаются в произвольном порядке в процессе работы.

Управляющее слово СКИ1 составляется по формату учитывающего количество контроллеров в системе и вид младшего байта адреса подпрограммы прерываний (рис. 4.5).

 

Рис.4.5.

Двоичный код запроса и номер прерывания IRQ связаны следующим образом:

Двоичный код запроса
В1 В2 В3  
      IRQ0 IRQ IRQ
      IRQ1
      IRQ2
      IRQ3
      IRQ4
      IRQ5
      IRQ6
      IRQ7

 

Если задаем ф=1, то подпрограммы идут через 8 адресов;

Если задаем ф=0, то подпрограммы идут через 4 адреса.

Управляющее слово СКИ2 имеет формат старшего байта адреса:

 

A15 A14 A13 A12 A11 A10 A9 A8

 

Для восприятия контроллером передаваемых данных как СКИ1 необходимо, чтобы А1=0, а для восприятия информации как СКИ2 А0=1.

 

Пример программирования: в системе один контроллер, подпрограммы (п/п) идут через 4 адреса, п/п находится в области памяти с начальным адресом 0В00Н, микросхема имеет адреса 98-9ВН.

Составляем СКИ1:

                16Н

Затем СКИ2:

                08Н

 

 

В микросхему слова командоинициализации заносятся по очереди. Управляющие слова записываются вначале в регистр-аккумулятор А МП, а затем выводится в микросхему.

 

Пример программы инициализации контроллера прерываний
MVI A, 16H : СКИ1 заносится в регистр А МП
OUT 98H : СКИ1 выводится в микросхему
MVI A, 08Н : СКИ2 заносится в регистр А МП
OUT 99H : СКИ2 выводится в микросхему 4.

 

Алгоритм управления (рис. 4.6.) предусматривает следующие действия:

Инициализация – в этом блоке осуществляется задание режимов всем программируемым вспомогательным микросхемам системы, в данном случае осуществляется запись управляющих слов в регистры управления;

Считывание состояния системы - осуществляется опрос датчиков (ввод из порта А);

РА0 = 1 - проверка состояния датчика SA1, проверяется состояние разряда РА0, если есть логическая 1 датчик включен (ДА), если логический 0 датчик выключен. Здесь алгоритм разветвляется в случае ДА - переход к вкл.U1, если НЕТ - переход откл.U1.

Вкл U1 - включение исполнительного устройства U1, для этого необходимо установить разряд РВО порта В в логическую 1;

ОТКЛ U1- отключение исполнительного устройства U1 для этого необходимо установить разряд РВО порт В в логический 0;

Рис. 2.2.

РА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.

 

 

Адрес Код Метка Команда Комментарий
         
080А 080В 080С 080D 080E 080F 081A 081B 081C 081D 081E 081F 082A 082B 082C 082D 082E 082F 083A 083B 083C 083D 083E 083F 084A 084B 084C 084D 084E 084F 085A 085B 085C 085D 085E 085F 086A 086B 086C 086D 086E 086F 087A 087B 087C 087D 087E 087F 088A 088B 088C 088D 088E 088F 089A 089B 089C 089D 089E 089F 0A00 0A01 0A02 0A03 0A04 0A05 0A06 0A07 0A08 0A09 0A0A 0A0B 0A0C 0A0D 0A0E 0A0F 0A10 0A11 0A12 0A13 0A14 3E 3C D3 3E 3C D3 3E D3 3E D3 3E 0A D3 3E D3 3E D0 D3 3E D3 3E D3 3E D3 3E D3 3E B0 D3 3E EO D3 3E 2E D3 3E D3 3E D0 D3 3E D3 3E D3 3E D3 3E D3 D8 FE CA 3E A0 C2 6D 3E B0 D3 C3 6D 3E FE A0 D3 D8 FE CA 3E A0 C2 3E B0 D3 C3 3E FD A0 D3 D8 FE CA 9F 3E A0 C2 3E B0 D3 C3 3E FB A0 D3 C3 3E B0 D3 C9 3E BO D3 C9 3E B0 D3 C9 MARK 1: OFF 1: SA 2: OFF 2: SA 3: OFF 3: ON 1: ON 2: ON 3: MVI A, 3CH OUT 90H MVI A, 3CH OUT 84 MVI A, 84H OUT 83H MVI A, 12H OUT 94H MVI A, 0AH OUT 95H MVI A, 36H OUT 93H MVI A, D0H OUT 90H MVI A, 07H OUT 90H MVI A, 70H OUT 93H MVI A, 88H OUT 91H MVI A, 13H OUT 91H MVI A, B0H OUT 93H MVI A, E0H OUT 92H MVI A, 2EH OUT 92H MVI A, 36H OUT 87H MVI A, D0H OUT 84H MVI A, 07H OUT 84H MVI A, 70H OUT 87H MVI A, 08H OUT 85H MVI A, 52H OUT 85H IN 80H CPI O9H JZ OFF 1 B2 B3 MVI A, 21H ANA B JNZ SA 2 B2 B3 MVI A, 20H ORA B MOV B, A OUT 81H JMP SA 2 B2 B3 MVI A, FEH ANA B MOV B, A OUT 81H IN 80H CPI 05H JZ OFF 2 B2 B3 MVI A, 42H ANA B JNZ SA 3 B2 B3 MVI 40H ORA B MOV B, A OUT 81H JMP SA 3 B2 B3 MVI A, FDH ANA B MOV B, A OUT 81H IN80H CPI 02H JZ OFF3 B2 B3 MVI A, 84H ANA B JNZ MARK 1 B2 B3 MVI A, 80H ORA B MOV B, A OUT 81H JMP MARK 1 B2 B3 MVI A, FBH ANA B MOV B, A OUT 81H JMP MARK 1 B2 B3 MVI A, 01H ORA B MOV B, A OUT 81H RET MVI A, 02H ORA B MOV B, A OUT 81H RET MVI A, 04H ORA B MOV B, A OUT 81H RET загрузка в аккумулятор управляющего слова таймера №1 загрузка в аккумулятор управляющего слова таймера №2 загрузка в аккумулятор управляющего слова микросхемы ввода-вывода загрузка управляющего слова контроллера прерывания в аккумулятор делитель частоты 2 МГц 2*103 = 07D0H сначала младший байт, затем старший счетчик № 0 (таймер 1) выдержка времени счетчика №1 t1 = 5 секунд (1388Н) выдержка времени счетчика №2 t2 = 12 секунд (2ЕЕ0Н) делитель частоты 2 МГц 2*103 = 07D0H сначала младший байт, затем старший счетчик № 0 (таймер 2) выдержка времени счетчика №1 (таймер 2) t3 = 21 секунда (5208Н) запрашивается состояние датчиков для проверки состояния датчиков накладывается маска, если датчик не сработал переход к OF 1 проверка таймера №1 и К1 на включение запуск таймера 1 переход к SA 2 отключение исполнительного устройства №1 обращение к порту А наложение маски если равно 0 переход на OFF 2 проверка таймера 2 и К2 на включение запуск таймера 2 переход к SA 3 отключение исполнительного устройства №2 обращение к порту А наложение маски =0 переход на OFF 3 проверка таймера 3 и К3 на включение запуск таймера 3 переход к МАRК 1 отключение исполнительного устройства №3 подпрограмма включения исполнительного устройства №1 подпрограмма включения исполнительного устройства №2 подпрограмма включения исполнительного устройства №3

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.