Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекций Микоропроцессорные устройства электрообо...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
940.94 Кб
Скачать

Пример подключения микросхемы кр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