- •Будова й налагодження систем програмного управління
- •1. Поняття про мікропроцесор і мікрокомп'ютер
- •2. Програмно-доступні регістри
- •3. Організація основної пам'яті в двк
- •4. Системи кодування.
- •5. Режими адресації пам'яті в мс1202
- •5.1 Формати команд
- •5.2 Адресація через рон
- •6. Формати команд мікрокомп'ютера мс1202
- •7. Система команд мікрокомп'ютера мс1202
- •8. Введення і виведення даних в мс1202
- •9 Завдання для самоперевірки
8. Введення і виведення даних в мс1202
Кожен зовнішній пристрій, що підключається до МС1202, характеризується, принаймні, двома програмно-доступними регістрами, один з яких називається регістром стану, а другий — регістром даних. Адреси регістрів зовнішніх пристроїв входять в загальний адресний простір МС1202, займаючи в нім область старших адрес (див. рисунок 3,5). У таблиці. 8.1 приведені адреси пар регістрів дня найбільш поширених зовнішніх пристроїв МС1202 у системі ЧПУ 2С42.
Таблиця 8.1-Розподіл адресного простору зовнішніх пристроїв
Адреса |
Найменування ВУ |
Адреса |
Найменування ВУ |
1 |
2 |
3 |
4 |
160776 |
РС БОСІ |
167640... ...167656 |
Регістри блоку ЦАП і керування кроковим приводом. |
161000..... .....161776 |
РД БОСІ |
167700..........167736 |
Регістри БСД |
166600 |
РС БУ |
167740... ...167772 |
Регістри блоку АЦП |
166602 |
1 слово множника |
173000.. ...173016 |
Блок уставок |
166604 |
2 слово множника |
177544 |
РС таймера |
166606 |
1 слово множеного |
177546 |
РД таймера |
166610 |
2 слово множеного |
177550 |
РС ФСУ |
166612 |
1 слово результату |
177552 |
РД ФСУ |
166614 |
2 слово результату |
177554 |
РС перфоратора |
166616 |
3 слово результату |
177556 |
РД перфоратора |
166620 |
РС БПК |
177560 |
РС ПУ |
166622 |
1 слово даних |
177562 |
РД ПУ |
166624 |
2 слово даних |
177564 |
РС друку БОСІ |
166626 |
1 слово результату |
177566 |
РД друку БОСІ |
166630 |
2 слово результату |
177750 |
РС ИРПС Вхідні регістри |
166760.. 166762 |
РС ПК |
177752 |
РД ІРПС Вхідні регістри |
166764 |
РД ПК |
177754 |
РС ІРПС Вихідні регістри |
167600 |
РС входу блоку зв'язку з верстатом |
177756 |
РД ІРПС Вихідні регістри |
167602..........167624 |
РД сигналів від верстата |
177774 |
РС КНМС |
167630.........167636 |
РД сигналів на верстата |
177776 |
РД КНМС |
Субблоки, що володіють правом переривання, у випадку входу в нього виставляють вектор переривання. Вектор переривання вказує початкова адреса програми обслуговування переривання. Адреси векторів переривання:
- БОСІ -110, - Блок зв'язку із ПК -370,374, - Блок зв'язку з верстатом -140,274, - Таймер – 100, - ФСУ – 70, |
-Перфоратор – 74, -ПУ - 64, -ЕОМ ВР - 120,124, -КНМЛ – 114. |
Оскільки адреси програмно-доступних регістрів зовнішніх пристроїв включені в загальний адресний простір МС1202, до цих регістрів можна звертатися з програми, як і до звичайних елементів основної пам'яті. З цією метою допустимо застосовувати ті ж самі команди, які використовуються і для доступу до елементів основної пам'яті (наприклад, команду пересилки MOV або MOV(B). Проте звернення до регістрів зовнішнього пристрою дає різний результат залежно від того, який при цьому використовується регістр.
Регістр стану призначений для контролю поточного стану відповідного зовнішнього пристрою і управління його роботою. Частина бітів в регістрі стану програмно можна як читати, так і записувати (наприклад, біт 6, який вирішує, якщо дорівнює одиниці, або забороняє, якщо дорівнює нулю, переривання від устпойства). Інші біти можна лише читати (наприклад, біт 7, одиничне значення якого свідчить про готовність пристрою до виконання операції введення-виводу).
Регістр даних грає роль буфера для тимчасового зберігання даного, посиланого з МП на зовнішній пристрій або підготовленого зовнішнім пристроєм для передачі в МП. Найчастіше одиницею передачі даних між мікропроцесором і зовнішнім пристроєм через регістр даних служить байт, завжди відповідний молодшому байту регістра даних.
Для посилки байта даних на зовнішній пристрій, тобто для операції виводу, МП може виконати команду MOVB. У цій команді операнд-приймач повинні мати адресу регістра даних відповідного пристрою. Наприклад, команда
MOVB R2 @ # 177566
забезпечує виведення вмісту молодшого байта з регістра R2 на екран дисплея.
Аналогічну команду можна застосувати і для введення байта даних із зовнішнього пристрою. Так, команда
MOVB ® # 177562, R3
здійснює введення з клавіатури одного символу, відповідного клавіші, що натискує, і запам'ятовування коди цього символу в молодшому байті регістра R3. У обох прикладах звернення до зовнішнього пристрою (дисплею або клавіатурі) здійснюється вказівкою адреси регістра даних відповідного пристрою (див. таблиці. 3.3) з використанням абсолютного режиму адресації. Слід зазначити, що перед виконанням будь-якій з двох приведених вище команд в програмі необхідно спочатку перевірити, чи готовий відповідний зовнішній пристрій до операції. Цю перевірку можна виконати, наприклад, за допомогою команди TSTB, вказавши в ній адресу регістра стану зовнішнього пристрою. Команда перевіряє біт готовності пристрою (біт 7 в регістрі стану), і якщо він встановлений, формує одиничне значення ознаки N в ССП. Таке значення ознаки свідчить про можливість виконувати операцію пересилки байта на зовнішній пристрій або із зовнішнього пристрою.
Таблиця 8.2- Основна система команд мікрокомп'ютерів сімейства МС1202
Мнемонічна запис |
Призначення команди |
Код команди |
MOV (В) |
Пересилка слова (байта) |
*1SSDD |
SWAB |
Зміна місцями байтів в слові |
0003DD |
MFPS |
Читання слова стану процесора |
1067DD |
MTPS |
Запис слова стану процесора |
1064DD |
BIC (В) |
Побітове скидання слова (байта) |
*4SSDD |
BIS (В) |
Побітова установка слова (байта) |
|5SSDD |
|
|
|
ADD |
Складання |
06SSDD |
SUB |
Віднімання |
16SSDD |
MUL |
Множення |
070RSS |
Мнемонічна запис |
Призначення команди |
Код команди |
|
CLR(B) |
Очищення слова (байта) |
|050DD |
|
COM (В) |
Здобуття зворотної коди |
•051DD |
|
INC (В) |
Приріст слова (байта) |
•052DD |
|
DEC (В) |
Зменшення слова (байта) |
*053DD |
|
NEC (В) |
Зміна знаку слова (байта) |
|054DD |
|
ADC (В) |
Збільшення перенесення |
•055DD |
|
|
|
|
|
SBC (В) |
Віднімання перенесення |
*056DD |
|
SXT |
Розширення знаку |
0067DD |
|
|
|
|
|
XOR |
Виключає «або» |
074RDD |
|
CMP (B) |
Порівняння слів (байтів) |
*2SSDD |
|
BIT (B) |
Побітова перевірка слова (байта) |
*3SSDD |
|
TST (B) |
Перевірка слова (байта) |
*057DD |
|
ROR (B) |
Циклічне зсув управо |
"060DD |
|
ROL (B) |
Циклічне зсув вліво |
|061DD |
|
ASR (B) |
Арифметичний зсув управо |
|062DD |
|
ASL (B) |
Арифметичний зсув вліво |
|063DD |
|
ASH (B) |
Параметричний зсув слова |
072RSS |
|
ASHС (В) |
Параметричний зсув подвійного слова |
073RSS |
|
BR |
Безумовний перехід |
0004XX |
|
BNE |
Перехід, якщо не рівно |
0010XX |
|
BEQ |
Перехід, якщо рівно |
0014XX |
|
BGE |
Перехід, якщо більше або рівно |
0020XX |
|
BLT |
Перехід, якщо менше |
0024XX |
|
BGT |
Перехід, якщо більше |
0030XX |
|
BLE |
Перехід, якщо менше або рівно |
0034XX |
|
BPL |
Перехід по плюсу |
1000XX |
|
BMI |
Перехід по мінусу |
1004XX |
|
BHI |
Перехід, якщо більше |
1010XX |
|
BLOS |
Перехід, якщо менше або рівно |
1014XX |
|
BVC |
Перехід, якщо немає переповнювання |
1020ХХ |
|
BVS |
Перехід, якщо переповнювання |
1024ХХ |
|
ВСС, BHIS |
Перехід, якщо немає перенесення |
1030XX |
|
BCS.BLO |
Перехід, якщо перенесення |
1034XX |
|
SOB |
Віднімання одиниці і галуження |
077RNN |
|
JMP |
Перехід безумовний |
0001DD |
|
JSR |
Перехід до підпрограми |
004RDD |
|
RTS |
Повернення з підпрограми |
00020R |
|
Мнемонічна запис |
Призначення команди |
Код команди |
CLC |
Очищення ознаки С |
000241 |
SEC |
Установка ознаки С |
000261 |
CLV |
Очищення ознаки V |
000242 |
SEV |
Установка ознаки V |
000262 |
CLZ |
Очищення ознаки Z |
000244 |
SEZ |
Установка ознаки Z |
000264 |
CLN |
Очищення ознаки N |
000250 |
SEN |
Установка ознаки N |
000270 |
CNZ |
Очищення ознак N, Z |
000254 |
CCC |
Очищення всіх ознак |
000257 |
SEE |
Установка всіх ознак |
000277 |
|
|
|
HALT |
Останов процесора |
000000 |
WAIT |
Чекання |
090001 |
RTI |
Повернення після переривання |
000002 |
BPT |
Переривання для відладки |
000003 |
IOT |
Переривання при введенні-виводі |
000004 |
RESET |
Скидання у вихідний стан |
000005 |
RTT |
Повернення з переривання |
000006 |
EMT |
Переривання системне |
104000- |
|
|
104377 |
TRAP |
Командне переривання |
104400- 104477 |
MARK |
Відновлення покажчика стека |
0064NN |
NOP |
Відсутність операції |
000240 |
MTPI |
Запис в простір програми попереднього режиму |
0066DD |
MTPD |
Запис в простір даних предыдущего режиму |
1066DD |
MFPI |
Читання з простору програми попереднього режиму |
0065SS |
MFPD |
Читання з простору даних попереднього режиму |
1065SS |
Примітки:
Коди команд вказані у восьмержной системі числення.
Деякі команди можуть виконувати операції як над словами, так і над байтами. При цьому мнемонічний запис операції байтовий.
