~/guide1.html 1 Гайд для тих в кого срака в Панчака
2 під час виконання ні один мозок не постраждав
3 (видання друге перевірене й доповнене)
4
5 Програмуємо 55 контролер
6 Налаштувати кожну групу ППІ в режим 0 причому
7 через порт А ввід, через B вивід, C(7-4) вивід, C(3-0) ввід
8 Адреса РКС F3H
9
10 mvi a,98h <- 10011000
11 out 0f3h <- адреса РКС
12 Перший рядок
13 1 - ознака РКС
14 00 - режим групи A
15 1 - ввід через A
16 1 - ввід через С(3-0)
17 0 - режим групи B
18 0 - вивід через B
19 0 - вивід через C(7-4)
20 Другий рядок
21
22 11110011 - дві останні одиниці - ознака РКС
23
24 Єнча задача
25 A - режим 2, B - режим 0 (ввід), С - ввід
26 адреса B C5H, A0, A1 підімкнено до тих самих виходах шини адрес
27
28 mvi a,0c3h <-11000011 так як в першій задачі
29 out c7h <- оскільки адреса B 11000101 отже адреса РКС 11000111
30
31 Покрокове інструкціє
32 1. Розписати адресу в двійковій формі
33 2. На основі розписаної адреси визначити куди підімкнути A0 і A1
34 3. Згідно таблиці кодування портів підставити в місце піідключення A0 і A1 значення з таблиці кодування
35 4. Ризначити алресу РКС
36 5. На основі структури РКС рзробити РКС згідно умов задачі
37 6. MVI a,<РКС>
38 OUT <адреса РКС>
39
40 Наприклад адреса B == c9h
41 c9h => 11001001b
42 A0 до 0 біта
43 A1 до 1 біта
44
45 PA 11001000
46 PC 11001010
47 РКС 11001011
48
49 Програмуємо 57
50 Запрограмувати роботу каналу CH0 для запису масиву довжиною 500б в область ОЗП з початковою
51 шіснадцятковою адресою 4000h. При адресації КПДП код стю розрядів A7-A4 має значення 1111.
52 Запрограмувати роботу всіх каналів при фіксованому пріоритеті запитів з відключенням відповідних каналів
53 післ формування в ньому сигналу ТС
54 DI <- вимикаємо переривання
55 MVI A,00h <- молодший байт 4000h
56 OUT 0F0h <- сунемо в адресу 11110000 - останні 4 нулі символізують собою регістр адреси нульового каналу
57 MVi A,40h <- старший байт 4000h
58 OUT 0F0h <- туда само
59 MVI A,0F3h <- молодший байт числа 500-1
60 OUT 0F1h <- сунемо в адресу 11110001 - останні 0001 символізують собою РЧЦ нульового каналу
61 MVI A,41h <- старші 6 біт числа 500-1, біти 14 і 15 (01) відповідають за режим
62 OUT 0F1h <- і ще раз
63 MVI A,01001111b <- керуюче слово
64 OUT 0F8h <- сунемо в адресу 11110001 - останні 1000 символізують собою РКС
65
66 Програмуємо 59
67
68 Запрограмувати контролер (єдиний в системі ) для
69 реалізації переривань. Початкова адреса під програми обробки переривань яка відповідає запиту IRQ0 = 800h
70 Відстань між початковими адресами підпрограм обробки переривань 8 байт
71 Адреса ПКП 9Ch 9Dh
72 Внесення керуючих слів ініціалізації вимагає заборони переривань
73 КСІ1 = 00010010
74 000 - три старші біти молодшого байта адреси 800h
75 10 - ознака КСІ1
76 0 - номер переривання в бітах 5,4,3
77 1 - один контролер
78 0 - так має бути
79 КСІ2 = 00001000 старший байт адреси підпрограм обробки переривань
80 0000 - нулі
81 1000 - 8 в адресі 800h
82
83 DI
84 MVI A,00010010b <- КСІ 1
85 OUT 9Ch <- КСІ1 в меншу адресу
86 MVI A,08h <- КСІ 2
87 OUT 9Dh <- КСІ2 в старшу
88 EI
89
90 Програмуємо 53
91 Задача
92 Запрограмувати лічильник 0 на режим ділення частоти (режим 3) лічильник двійковий
93 Задати коефіцієнт ділення 10
94 Адреса РКС при стандартному підімкненні 83h
95
96 РКС 0011X110
97 00 - нульовий лічильник
98 11 - даємо 2 байти
99 X11 - третій режим
100 0 - двійкові дані
101
102 MVI A,00110110b
103 OUT 83h <- адреса РКС
104 MVI A,0Ah <- молодший байт дільника
105 OUT 80h <- адреса нульового лічильника
106 MVI A,00h <- старший байт дільника
107 OUT 80h
108
109 Послідовність програмування
110 1. Сформувати РКС згідно з умовами задачі
111 2. При необхідності визначити адресу РКC
112 Занести за допомогою команд MVI та OUT КС в РКС
113 3. У відповідності з структурою РКС записати початкові значення в ліцильник
114
115 Приклад
116 Прочитати значення з лічильника 1 (2 байти і записати його в регістрову пару HL)
117 Адреса РКС = 83h
118 РКС = 10000000
119 10 - 2 лічильник
120 00 режим фіксації
121 решта пофіг чо
122
123 MVI A,1000000b
124 OUT 83h
125 IN 81h
126 MOV L,A
127 IN 81h
128 MOV H,A
|