Використання зовнішніх регістрів вводу/виводу даних

Досить часто, з метою розширення кількості портів вводу/виводу цифрових сигналів, у мікроконтролерну систему включають паралельні регістри.

При цьому використовують два варіанти побудови електричних схем:

· З використанням стандартної шини Р8, відповідних команд та протоколів обміну з пристроями зовнішньої пам’яті даних;

· З програмною емуляцією шини Р8.

На рис.2.15 приведено схему, що реалізує перший підхід. Особливістю цієї схеми є те, адресний простір зовнішньої пам’яті даних використовується не раціонально. У такій реалізації можливе підключення 8 зовнішніх пристроїв. Для адресації цих пристроїв (лінії AD1,AD2…) відводяться сегменти пам’яті даних ємністю 8К. Проте схемотехнічна реалізація контролера виходить досить компактною.

Рис.2.15
3. ОБРОБКА ІНФОРМАЦІЇ

Система команд мікроконтролера надає великі можливості обробки даних, забезпечує реалізацію логічних і арифметичних операцій.

Команди цієї групи дозволяють виконувати наступні операції над 8-бітними цілими двійковими числами: додавання, додавання з урахуванням перенесення, десяткова корекція, інкремент і декремент, віднімання, множення, ділення, диз'юнкція, кон'юнкція, виключаюче АБО, інверсія, скидання і зсув. Опис команд приведено в табл. 2.1, 2.2 та рис. 2.1. У табл. 2.3. наведені умови установки і скидання прапорів.

Ознака паритету Р змінюється будь-якими командами, результат яких змінює акумулятор (включаючи команди пересилки).

Таблиця 2.1. Група команд арифметичних операцій

МНЕМОНИКА КОП Б Ц ОПЕРАЦІЯ
ADD A,Rn 00101rrr     (A):=(A)+(Rn)
ADD A,ad       (A):=(A)+(ad)
ADD A,@Ri 0010011I     (A):=(A)+((Ri))
ADD A,#d       (A):=(A)+#d
ADDC A,Rn 00111rrr     (A):=(A)+(Rn)+(C)
ADDC A,ad       (A):=(A)+(ad)+(C)
ADDC A,@Ri 0011011I     (A):=(A)+((Ri))+(C)
ADDC A,#d       (A):=(A)+#d+(C)
DA A       Десяткова корекція
SUBB A,Rn 10011rrr     (A):=(A)-(С)-(Rn)
SUBB A,ad       (A):=(A)-(С)-(ad)
SUBB A,@Ri 1001011I     (A):=(A)-(С)-((Ri))
SUBB A,#d       (A):=(A)-(С) - #d
INC A       (A):=(A)+1
INC Rn 00001rrr     (Rn):=(Rn)+1
INC ad       (ad):=(ad)+1
INC @Ri 0000011i     ((Ri)):=((Ri))+1
INC DPTR       (DPTR):=(DPTR)+1
DEC A       (A):=(A)-1
DEC Rn 00011rrr     (Rn):=(Rn)-1
DEC ad       (ad):=(ad)-1
DEC @Ri 0001011i     ((Ri)):=((Ri))-1
MUL AB       (B)(A):= (A)*(B)
DIV AB       (B).(A):= (A)/(B)

Таблиця 3.2. Група команд логічних операцій

МНЕМОНИКА КОП Б Ц ОПЕРАЦІЯ
ANL A,Rn 01011rrr     (A):=(A)/\(Rn)
ANL A,ad       (A):=(A)/\(ad)
ANL A,@Ri 0101011i     (A):=(A)/\((Ri))
ANL A,#d       (A):=(A) /\ #d
ANL ad,A       (ad):=(ad)/\(A)
ANL ad,#d       (ad):=(ad)/\(#d)
ORL A,Rn 01001rrr     (A):=(A)\/(Rn)
ORL A,ad       (A):=(A)\/(ad)
ORL A,@Ri 0100011i     (A):=(A)\/((Ri))
ORL A,#d       (A):=(A)\/ #d
ORL ad,A       (ad):=(ad)\/(A)
ORL ad,#d       (ad):=(ad)\/ #d
XRL A,Rn 01101rrr     (A):=(A)+(Rn)
XRL A,ad       (A):=(A)+(ad)
XRL A,@Ri 0110011i     (A):=(A)+((Ri))
XRL A,#d       (A):=(A)+ #d
XRL ad,A       (ad):=(ad)+(A)
XRL ad,#d       (ad):=(ad)+ #d
CLR A       (A):= 0
CPL A       (A):= інверсія (А)
RL A       Вліво циклічно (рис. 3.1,а)
RLC A       Вліво через С (рис.3.1,б)
RR A       Вправо циклічно (рис.3.1,в)
RRC A       Вправо через С (рис.3.1,г)
SWAP A       Обмін тетрадами (рис.3.1,д)

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: