- •Мікропроцесорна техніка
- •Мікропроцесорна техніка
- •Вступ....................................................................................5
- •Типові 8- та 16- розрядні мікропроцесори
- •5. Організація взаємодії мп з зовнішнім
- •1 Основні терміни. Структура та функціонування мікропроцесорної системи
- •2. Представлення чисел і елементи двійкової арифметики в цифрових пристроях
- •2.1 Позиційні системи числення
- •Шістнадцяткова система
- •Двійкова арифметика
- •Форми представлення чисел
- •3 Загальна характеристика та класифікація мп. Родини та комплекти мп.
- •Огляд мікропроцесорів відомих фірм-виробників
- •4 Типові 8- та 16- розрядні мікропроцесори для побудови мпс
- •4.1 Восьмирозрядний мікропроцесор 8080а
- •4.1.1 Архітектура і режими роботи мікропроцесора Архітектура мікропроцесора к580вм80а
- •4.1.2 Проектування центрального процесора
- •4.1.3 Система команд мп
- •4.2.1 Загальна характеристика ,архітектура та функціонування мікропроцесор
- •Архітектура мікропроцесора
- •Адресування пам'яті і організація вводу-виводу
- •Режими адресації
- •4.2.2 Система команд мікропроцесора вм86
- •5. Організація взаємодії мп з зовнішнім середовищем.
- •5.1 Інтерфейс
- •5.2 Порти вводу-виводу
- •5.3 Організація взаємодії елементів мпс
- •5.4 Типові методи вводу-виводу інформації в мпс
- •5.5 Інтерфейс з пзп
- •Інтерфейс з озп
- •Інтерфейс портів вводу/виводу
- •5.8 Загальні засади синтезу дешифраторів зовнішніх пристроїв
- •6 Пам’ять мікропроцесорних пристроїв
- •6.1 Основні характеристики і класифікація запам’ятовуючих
- •6.2 Надоперативні і оперативні запам’ятовуючі пристрої
- •6.3 Постійні запам’ятовуючі пристрої
- •Запам’ятовуючі пристрої з послідовним доступом
- •6.4 Організація модулів пам'яті мпс
- •7. Інтерфейсні віс для проектування мпс
- •7.1 Програмований адаптер паралельного інтерфейсу
- •7.2 Програмований зв’язковий адаптер
- •7.3 Програмований інтервальний таймер
- •8 Однокристальні мікроЕом
- •8.1.1 Мікроконтролер мк 51
- •Арифметико-логічний пристрій
- •Доступ до зовнішньої і резидентної пам’яті
- •Типи операндів та способи адресації
- •Команди логічних операцій
- •Команди операцій з бітами
- •Команди передачі керування
- •8.1.2 Родина мк52
- •8.1.3 Перспективна розробка фірми analog devices
- •8.2 Мікроконтролери фірми microchip
- •Основи програмування на мові Асемблера
- •Формат бланка асемблерної програми
- •9.2 Директиви асемблера
- •9.3 Макрокоманди
- •10 Загальні засади і особливості програмування та відлагодження мікропроцесорних пристроїв
- •10.1.2 Етапи проектування мпс
- •10.2.1 Системи програмування
- •10.2.2 Засоби трансляції і компіляції
- •10.2.3 Засоби редагування зв’язків і компоновки
- •10.3 Засоби відлагодження мікропроцесорних систем
- •Засоби для контролю та відлагодження аз мпс
- •10.3.1 Засоби відлагодження мікропроцесорних програм
- •10.3.2 Засоби комплексного відлагодження мпс
- •11.Когутяк м.І.Мікропроцесорний комплект к580 і його використання в керуванні.Навчальний посібник.- Івано-Франківськ ,2000.-96с.
- •13. Когутяк м. І.Однокристальні мікроЕом.Родина мк51 .Навчальний посібник.- Івано-Франківськ ,2000.-56с
Команди операцій з бітами
Команди даної групи (таблиця 8.17) оперують з однобайтовими операндами. Ними можуть бути окремі біти деяких регістрів спеціальних функцій (РСФ) і портів, а також 128 програмованих індикаторів користувача з адресами від 00 до 7F РПД.
Існують команди обнуління (CLR), установки (SET B), інверсії (CPL) бітів, а також операції І та АБО біта і індикатора переносу С. Сюди приєднуються також команди пересилок з бітовими операндами. Для адресування біта використовується пряма восьмирозрядна адреса (bit). Опосередкована адресація бітів неможлива.
Таблиця 8.17
Назва команди |
Мнемокод |
КОП |
Т |
Б |
Ц |
Операція |
Скидання переносу |
CLR C |
11000011 |
1 |
1 |
1 |
(C)0 |
Скидання біта |
CLR bit |
11000010 |
4 |
2 |
1 |
(b)0 |
Встановлення переносу |
SETB C |
11010011 |
1 |
1 |
1 |
(C)1 |
Встановлення біта |
SETB bit |
11010010 |
4 |
2 |
1 |
(b)1 |
Інверсія переносу |
CPL C |
10110011 |
1 |
1 |
1 |
(C) |
Інверсія біта |
CPL bit |
10110010 |
4 |
2 |
1 |
(b) |
Логічне І біта і переносу |
ANL C, bit |
10000010 |
4 |
2 |
2 |
(C) |
Логічне І інверсії біта і переносу |
ANL C,/ bit |
10110000 |
4 |
2 |
2 |
(C) |
Логічне АБО біта і переносу |
ORL C, bit |
01110010 |
4 |
2 |
2 |
(C) |
Логічне АБО інверсії біта і переносу |
ORL C,/ bit |
10100000 |
4 |
2 |
2 |
(C) |
Пересилка біта в перенос |
MOVC, bit |
10100010 |
4 |
2 |
1 |
(C)(b) |
Пересилка переносу в біт |
MOV bit ,C |
10010010 |
4 |
2 |
2 |
(b)(C) |
Команди передачі керування
До даної групи команд (таблиця 8.18) відносяться команди, які забезпечують умовні і безумовні розгалуження, виклик підпрограм і повернення із них, а також команда порожньої операції NOP. В більшості із них використовується пряма адресація, тобто адреса переходу цілком (або його частина) міститься в самій команді передачі керування. Можна виділити три різновидності команд розгалуження відповідно до розрядності адреси переходу.
Довгий перехід. Перехід по всьому адресному простору ПП. В команді міститься повна 16-бітова адреса переходу (ad16). Трибайтова команда довгого переходу містить в мнемоніці букву L (Long). Розрізняють дві таких команди: LJMP -довгий перехід і LCALL -довгий виклик підпрограми. Довгі переходи використовуються рідко, а частіше застосовуються скорочені команди переходів, які займають менше місця в пам’яті.
Абсолютний перехід. Даний перехід відбувається в межах однієї сторінки пам’яті програм об’ємом 2048 байтів. Такі команди абсолютного переходу мають формат 2 байти, і їх мнемокод починається з букви А (Absolute). При їх виконанні в обчисленій адресі наступної команди ((РС)=(РС)+2) 11 молодших бітів замінюються на ad11, що є в тілі команди абсолютних переходів (ACALL i AJMP).
Відносний перехід. Короткий відносний перехід дозволяє передати керування в межах-128+127 байтів відносно адреси наступної команди (команди, що є наступною за командою відносного переходу). МК51 має одну таку команду переходу SJMP (Short). Всі команди умовних переходів використовують даний метод адресації. Відносна адреса переходу (rel) знаходиться у другому байті команди. Таким чином в командах з відносним переходом за базу взятий лічильник команд, а перехід відбувається відносно даної бази.
Таблиця 8.18 - Група команд передачі керування
Назва команди |
Мнемокод |
КОП |
Т |
В |
Ц |
Операція |
Довгий перехід в повному об’ємі пам’яті |
LJMP ad 16 |
00000010 |
12 |
3 |
2 |
(PC)ad 16 |
Абсолютний перехід всередині сторінки в 2 Кбайти |
AJMP ad 11 |
a10a9a800001 |
6 |
2 |
2 |
(PC)(PC)+2 (PC0-10)ad 11 |
Короткий відносний перехід всередині сторінки в 256 байтів |
SJMP rel |
10000000 |
5 |
2 |
2 |
(PC)(PC)+2 (PC)(PC)+rel |
Непрямий відносний перехід |
JMP @A+ +DPTR |
01110011 |
1 |
1 |
2 |
(PC)(A)+ +(DPTR) |
Перехід, якщо акумулятор рівний нулю |
JZ rel |
01100000 |
5 |
2 |
2 |
(PC) (PC)+2, якщо (А)=0 то (PC) (PC)+rel |
Перехід, якщо акумулятор не рівний нулю |
JNZ rel |
01110000 |
5 |
2 |
2 |
(PC) (PC)+2, якщо (А)0 то (PC) (PC)+rel |
Перехід, якщо перенос рівний одиниці |
JC rel |
01000000 |
5 |
2 |
2 |
(PC) (PC)+2, якщо (C)=1 то (PC) (PC)+rel |
Перехід, якщо перенос рівний нулю |
JNC rel |
01010000 |
5 |
2 |
2 |
(PC) (PC)+2, якщо (C)=0 то (PC) (PC)+rel |
Перехід, якщо біт рівний одиниці |
JB bit,rel |
00100000 |
11 |
3 |
2 |
(PC) (PC)+3, якщо (b)=1 то (PC) (PC)+rel |
Перехід, якщо біт рівний нулю |
JNB bit,rel |
00110000 |
11 |
3 |
2 |
(PC) (PC)+2, якщо (b)=0 то (PC) (PC)+rel |
Перехід, якщо біт встановлений з наступним обнулінням його біта |
JBC bit,rel |
00010000 |
11 |
3 |
2 |
(PC) (PC)+2, якщо (b) то (b)0, (PC) (PC)+rel |
Назва команди |
Мнемокод |
КОП |
Т |
В |
Ц |
Операція |
Декремент регістра і перехід, якщо не нуль |
DJNZ Rn,rel |
11011rrr |
5 |
2 |
2 |
(PC)(PC)+2, (Rn)(Rn)-1, якщо (Rn)0, то (PC)(PC)+rel |
Декремент прямоадресованого байта і перехід, якщо не нуль |
DJNZ ad,rel |
11010101 |
8 |
3 |
2 |
(PC)(PC)+2, (ad)(ad)-1, якщо (ad)0, то (PC)(PC)+rel |
Порівняння акумулятора з прямоадре-сованим бай-том і перехід, якщо не рівно |
CJNE A,ad, rel |
10110101 |
8 |
3 |
2 |
(PC) (PC)+3, якщо (А)ad то (PC)(PC)+rel, якщо (А)<ad то (C)1 |
Порівняння акумулятора з константою і перехід, якщо не рівно |
CJNE A,#d, rel |
10110100 |
10 |
3 |
2 |
(PC) (PC)+3, якщо (А)#d то (PC)(PC)+rel, якщо (А)<#d то (C)1, інакше (C)0 |
Порівняння регістра з константою і перехід, якщо не рівно |
CJNE Rn, #d,rel |
10111rrr |
10 |
3 |
2 |
(PC) (PC)+3, якщо (Rn)#d то (PC)(PC)+rel, якщо (Rn)<#d то (C)1, інакше (C)0 |
Порівняння байта РПД з константою і перехід, якщо не рівно |
CJNE @Ri, #d,rel |
1011011i |
10 |
3 |
2 |
(PC) (PC)+3, якщо ((Ri))#d то (PC)(PC)+rel, якщо ((Ri))<#d то (C)1, інакше (C)0 |
Назва команди |
Мнемокод |
КОП |
Т |
В |
Ц |
Операція |
Довгий виклик підпрограми |
LCALL ad 16 |
00010010 |
12 |
3 |
2 |
(PC)(PC)+3, (SP)(SP)-1, ((SP))(PC0-7), (SP)(SP)+1, ((SP))(PC8-15), (PC)ad 16 |
Абсолютний виклик під-програми в межах сторінки в 2 Кбайти |
ACALL ad 11 |
a10a9a810001 |
6 |
2 |
2 |
(PC)(PC)+2, (SP)(SP)+1, ((SP))(PC0-7), (SP)(SP)+1, ((SP))(PC8-15), (PC0-10) ad 11 |
Повернення з підпрограми |
RET |
00100010 |
1 |
1 |
2 |
(PC)(PC)+2, (SP)(SP)+1, ((SP))(PC0-7), (SP)(SP)+1, ((SP))(PC8-15), (PC0-10)ad 11 |
Повернення з підпрограми обробки переривання |
RETI |
00110010 |
1 |
1 |
2 |
(PC8-15)((SP)), (SP)(SP)-1, (PC0-7)((SP)), (SP)(SP)-1 |
Порожня команда |
NOP |
00000000 |
1 |
1 |
1 |
(PC)(PC)+1 |
Примітка: Асемблер дозволяє використання узагальненого імені команд JMP i CALL, які в процесі трансляції замінюються оптимальними за форматом командами переходу (AJMP, SJMP, LJMP) або виклику (ACALL,LCALL).
Опосередкований перехід. Команда JMP @A+DPTR дозволяє передачу керування за опосередкованою адресою. Ця команда є вдалою для організації переходів на адресу, яка обчислюється в програмі і наперед невідома при написанні її тексту. Таким чином для виконання безумовного переходу лічильник PC завантажується адресою A+DPTR.
Умовні переходи. МК51 має розвинуту систему умовних переходів, що дозволяє вести розгалуження програм за такими умовами: акумулятор містить нуль (JZ); вміст акумулятора не рівний нулю (JNZ); перенос рівний одиниці (JC); перенос рівний нулю (JNC);адресований біт рівний одиниці (JB); адресований біт рівний нулю (JNB). Крім аналізу індикаторів регістру PSW та бітів внутрішнього ОЗП в командах умовних переходів може здійснюватись попереднє декрементування (буква D у мнемоніці команди) або порівняння (буква С у мнемоніці команди) операндів.
Для організації програмних циклів ефективно використовувати команду DJNZ, при цьому як лічильник циклів можна використовувати регістр або прямоадресований байт. Цикл буде відновлюватись до тих пір, доки лічильник не вичерпається.
Команда CJNE ефективно використовується в процедурах очікування якої-небудь події. Наприклад, команди
WAIT: CJNE A,P0,WAIT
буде виконуватись до тих пір, доки на лінії порту 0 не установиться інформація, яка співпадає з вмістом акумулятора.
Підпрограми. Для звернення до підпрограм необхідно використати команди виклику (LCALL, ACALL). Ці команди на відміну від команд переходів (LJMP, AJMP) зберігають в стеці адресу повернення в основну програму. Для повернення з підпрограми необхідно використати команду RET. Команда RETI відрізняється від RET тим, що за нею припиняється обслуговування переривання, тобто дозволяється переривання обслуженого рівня повторно.