Команди пересилки даних мікроконтролера MCS51.
Ця група представлена 28 командами, їх короткий опис приведено в табл. 2, де також вказані тип команди (Т) у відповідності з табл. 1, її довжина в байтах (Б) та час виконання команди в машинних циклах (Ц). Табл. 2. Команди передачі даних
Більшість команд, приведених в табл. 2, можна представити у вигляді: MOV “байт-приймач”, “байт-джерело”. Команда пересилає дані з байту-джерела в байт-приймач. Вмістиме байту-джерела не змінюється. Ця команда не впливає на прапорці та інші регістри. Команда “MOV” допускає 15 комбінацій адресації байту-джерела та байту–приймача. Нижче наведено приклади цих комбінацій: 1) (A)=DCH, (R4)=54H, MOV A, R4, (A)=54H, (R4)=54H. Вмістиме регістру R4 пересилається в аккумулятор А. 2) (A)=BFH, (40H)=15H MOV A, 40H (A)=15H, (40H)=15H Вмістиме комірки ОЗП 40H пересилається в акумулятор А. 3) (R0)=3AH, (3AH)=1FH, (A)=24H, MOV A, @R0, (A)=1FH, (R0)=3AH, `(3AH)=1FH. Вмістиме комірки ОЗП 3АН, яка адресується регістром R0, пересилається в аккумулятор А. 4) (A)=A5H=1010 0101B, MOV A, #49H, (A)=49H=0100 1001B. Константа 49Н заноситься в аккумулятор А. 5) (А)=2DH, (R7)=5BH, MOV R7, A, (A)=2DH, (R7)=2DH. Вмістиме регістру R7 пересилається в аккумулятор А. 6) (R2)=6DH, (P2)=CCH, MOV R2, P2, (R2)=CCH, (P2)=CCH. Вмістиме порта P2 пересилається в регістр R2.
7) (R3)=FDH, MOV R3, #49H (R3)=49H. Константа 49Н заноситься в регістр R3. 8) (A)=3CH, (P1)=BBH, MOV P1, A, (P1)=3CH, (A)=3CH. Вмістиме аккумулятора А пересилається в порт Р1. 9) (R5)=57H, (30H)=9FH, MOV 30H, R5, (30H)=57H, (R5)=57H. Вмістиме регістра R5 пересилається в комірку ОЗП 30Н. 10) (33H)=45H, (38H)=50H, MOV 38H, 33H, (38H)=45H, (33H)=45H. Вмістиме комірки 33Н пересилається в комірку 38Н. 11) (R0)=25H, (52H)=DFH, (25H)=CCH MOV 52H, @R0, (52H)=CCH, (25H)=CCH, (R0)=25H. Вмістиме комірки ОЗП 25Н, що адресується регістром R0, пересилається в комірку ОЗП 52Н. 12) (4FH)=8DH, MOV 4FH, #13H (4FH)=13H. Константа 13Н заноситься в комірку ОЗП 4FH. 13) (R0)=40H, (40H)=6DH, (A)=88H, MOV @R0, A, (40H)=88H, (A)=88H, (R0)=40H. Вмістиме аккумулятора А пересилається в комірку ОЗП 40Н, що адресується регістром R0. 14) (R1)=37H, (37H)=F5H, (P2)=8CH, MOV @R1, P2, (37H)=8CH, (P2)=8CH, (R1)=37H. Вмістиме порта Р2 пересилається в комірку ОЗП 37Н, що адресується регістром R1. 15) (R0)=40H, (40H)=76H, MOV @R0, #AAH, (R0)=40H, (40H)=AAH. В комірку 40Н, що адресується регістром R0, засилається константа ААН. 16) (DPTR)=35ACH, MOV DPTR, #1456H, (DPTR)=1456H, (DPH)=14H, (DPL)=56H. В регістр DPTR (вказівник даних) завантажується 16-бітна константа 1456Н, вказана в другому та третьому байтах команди. Другий байт команди завантажується в старший байт вказівника даних (DPH), а третій байт – в молодший байт вказівника даних (DPL). Ця команда на прапорці не впливає і є єдиною командою, яка одночасно завантажує 16 біт даних. 17) MOVC A, @A+DPTR 18) MOVC A, @A+PC Ці команди завантажують в аккумулятор байтом коду чи константою з ПП. Адрес цього байту обчислюється як сума 8-бітного вихідного вмістимого аккумулятора без знаку та вмістимого 16-бітного регістру. В якості 16-бітного регістру може бути як вказівник даних DPTR так і програмний лічильник PC. У випадку, коли використовується PC, програмний лічильник збільшується до адресу наступної команди, перед тим як його вмістиме додається з вмістимим аккумулятора. 16-бітне додавання виконується так, що перенос з молодших восьми біт може поширюватися через старші біти. Ця команда на прапорці не впливає. (A)=1BH, (DPTR)=1020H, ПП(103BH)=48H, ОЗП(103BН)=88Н, MOVС A, @A+DPTR (A)=48H, (DPTR)=1020H. (A)=FAH, (PC)=0289H, ПП(0384Н)=9BH, MOVC A, @A+PC (A)=9BH, (PC)=028AH. 19) MOVX A, @Ri. 20) MOVX A, @DPTR. Ці команди пересилають дані з ЗПД (зовнішньої пам’яті даних) в аккумулятор. Вони відрізняються тим, що забезпечують 8-бітну або 16-бітну непряму адресацію до ЗПД. В першому випадку, вмістиме R0 або R1 вибраного банку регістрів забезпечує 8-бітний адрес, який мультиплексується з даними порта P0. Якщо використовуються ОЗП ненабагато більші, ніж 256 байт, то для фіксації старших байтів адресу можна використовувати будь-які інші виходи портів, які переключаються командою, розміщеною перед командою MOVX. В другому випадку, при виконанні команди MOVX, вказівник даних генерує 16-бітний адрес. Порт P2 виводить старші 8 біт адресу (DPH), а порт P0 мультиплексує молодші 8 біт (DPL) з даними. Остання команда є більш швидкою та ефективною при доступі до великих масивів даних (до 64K байт), так як для встановлення портів виводу не потрібно додаткових команд.
21) MOVX @Ri, A. 22) MOVX @DPTR, A. Ці команди пересилають дані з аккумулятора в ЗПД. (A)=95H, (R1)=FDH, ЗПД(FDH)=00H, MOVX @R1, A, (A)=95H, (R1)=FDH, ЗПД(FDH)=95H. (A)=97H, (DPTR)=1FFFH, ЗПД(1FFFH)=00H, MOVX @DPTR, A, (A)=97H, (DPTR)=1FFFH, ЗПД(1FFFH)=97H. 23) PUSH ad Команда “запису в стек” збільшує вказівник стеку SP на одиницю, і після цього, вмістиме вказаної змінної, що прямо адресується, копіюється в комірку ВПД, що адресується з допомогою вказівника стеку. На прапорці ця команда не впливає і використовується для запису проміжних даних в стек. (SP)=09H, (DPTR)=4567H PUSH DPH PUSH DPL (SP)=0BH, ВПД(0AH)=45H, ВПД(0BH)=67H, (DPTR)=4567H. 24) POP ad Команда “читання з стеку” зчитує вмістиме комірки ВПД, яка адресується з допомогою вказівника стеку в комірку ВПД, що прямо адресується, при цьому, вказівник стеку зменшується на одиницю. Ця команда не впливає на прапорці і використовується для читання з стеку проміжних даних. (SP)=32H, ВПД(32H)=12H, ВПД(31H)=56H, (DPH)=01H, (DPL)=ABH, ВПД(30H)=20H, POP DPH POP DPL (SP)=30H, (DPH)=12H, (DPL)=56H, ВПД(32H)=12H ВПД(31H)=56H. 25) XCH A, Rn 26) XCH A, ad 27) XCH A, @Ri Останні команди здійснюють обмін між вмістимим аккумулятора та вмістимим джерела, вказаного в команді. Операнд джерела може використовувати такі режими адресації: регістрову, пряму та непряму. (A)=3CH, (R4)=15H, XCH A, R4, (A)=15H, (R4)=3CH. (A)=FFH, (P3)=DAH, XCH A, P3 (A)=DAH, (P3)=FEH. (R1)=39H, ВПД(39H)=44H, (A)=BCH, XCH A, @R1 ВПД(39H)=BCH, (A)=44H. 28) XCHD A, @Ri Команда “обмін тетрадою” виконує обмін молодшої тетради (біти 3...0) акумулятора А з вмістимим тетради комірки ВПД, непряма адресація до якої здійснюється з допомогою вказаного регістру. На старші біти (біти 7...4) ця команда не впливає.
(R0)=55H, (A)=89H, ВПД(55Н)=А2Н, XCHD A, @R0, (A)=82H, ВПД(55H)=A9H.
Читайте также: II -приравненное к нотариальному (глав.врач больницы, командиры воинских частей) Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|