Page 58 - 6733
P. 58

<назва регістра>.<номер біта>
                  Наприклад, позначення Р1.3 буде означати третій біт регістра порта Р1.
                  Побітову адресацію мають також комірки внутрішнього ОЗП з адресами від
            32 до 47 (від 20h до 2Fh). Регістри оперативного призначення не мають побітової
            адресації.

                  9.3.3.  Команди роботи з бітами та логічні команди

                  Мікроконтролер  х51  має  три  команди  роботи  з  бітами:  встановлення  в  1,
            встановлення в 0 та інверсія (див. табл. 2.2). Ці команди мають один операнд –
            прямоадресований  біт,  тобто  можна  вказати  біт  за  допомогою  його  адреси  або
            шляхом вказання імені регістра і номера біта, наприклад:
                  SETB P1.0              ; встановлення в 1 нульового біта в порті Р1

                                    Таблиця 9.2 – Коротка довідка по командах
                   Команда                    Операція                             Операнди

            ANL <оп1>, <оп2>  логічне І                            оп1:         акумулятор,           регістр,
            ORL <оп1>, <оп2>  логічне АБО                          прямоадресована  комірка  пам’яті,
                                                                   флаг переносу С
            XRL <оп1>, <оп2>  виключне АБО                         оп2:     константа,       регістр,      або
                                                                   прямоадресований біт
            CPL <оп>                  інверсія                     оп: акумулятор, флаг переносу С або
            CLR <оп>                  обнулення                    прямоадресований біт
                                                                   оп:     флаг      переносу        С     або
            SETB <оп>                 встановлення в 1
                                                                   прямоадресований біт

                  Логічні  команди  виконують  порозрядні  логічні  операції  між  операндами,
            тобто, наприклад, при виконанні команди ANL A, #11110000b операція "логічне
            І" виконується окремо над кожним  із 8 бітів акумулятора AL  і числа 11110000.
            Отже,  якщо  в  акумуляторі  було  число  00111111,  то  результатом  виконання
            команди буде 00110000.
                  Логічні  команди  часто  використовуються  для  встановлення  окремих  бітів
            операнда в 0 або 1 без зміни інших бітів. Для цього необхідно виконати логічну
            функцію між операндом та маскою. Маска – це число, що визначає, які саме біти
            будуть встановлені, скинуті чи інвертовані.
                  Для встановлення бітів в 0 використовується операція "логічне І" з маскою з
            нулями на місці бітів, що слід скинути, і одиницями в усіх інших бітах.
                  Наприклад, команда ANL А, #01111110b обнулює біти 0 та 7 регістру А.
                  Для  встановлення  бітів  в  1  використовується  операція  "логічне  АБО"  з
            маскою  з  одиницями  на  місці  бітів,  що  слід  встановити,  і  нулями  в  усіх  інших
            бітах.
                  Наприклад, команда ORL А, #0010001b встановлює в 1 біти 0 та 4 регістру A.
                  Для інвертування бітів використовується операція "виключне АБО" з маскою
            з одиницями на місці бітів, що слід інвертувати, і нулями в усіх інших бітах.
                  Наприклад, команда XRL A, #00010001b інвертує біти 0 та 4 регістру A.
                  Команди  CPL  та  CLR  можуть  мати  своїм  операндом  як  окремий  біт,  так  і


                                                               58
   53   54   55   56   57   58   59   60