Page 187 - 4503
P. 187

bcf    STATUS,  5    ;  погашення    RP0  (5-й
           ;біт) в 0
           movf  h’120’,w  ;копіювання  вмісту  ;регістра
           h’120’ в w
                bcf    STATUS,  6    ;  погашення    RP1  (6-й
           ;біт) в 0


                Якщо  програміст  забуде  змінити  біти  RP1:0  перед
           виконанням  команди  movf  h’120’,  w    то  в  робочий
           регістр  перекопіюється  вміст  регістра  h’020’.  Бо  ж  адреса
           h’020’  по  суті  є  h’20’    тобто  вимагає  тільки  вісім  двійкових
           розрядів, а значить потребує нульового банку. Однак в такому
           випадку асемблер  подасть таке попередження:


                Message [302]    Register in operand not
           in bank 0.
                Ensure that bank bits  are correct.

                Задля  уникнення  надто  частих  переключень  поміж
           банками  всі  РЗП  (Реґістри  Загального  Призначення)
           мікроконтролера  PIC16F84  відображені  на  обидва  банки  (
           рисунок  6.5).  Таке  віддзеркалення  регістрів  загального
           призначення  серед  родини  PIC16хххх  трапляэться    зрідка.
           Частіше це може стосуватися не всіх РЗП, а тільки певної їх
           групи.  Наприклад  у  моделі  PIC16F627/8  в  усіх  чотирьох
           банках  відображеними,  тобто  абсолютно    ідентичними  є
           тільки  16 спільних  РЗП ( рисунок  6.6 ). Тобто наприклад, за
           адресами  h’070’,  h’0F0’,  h’170’,  h’1F0’  розміщений  той  самий
           реґістр. Саме до цих регістрів варто переміщати змінні, які за
           задумом програміста використовуватимуться у різних банках.
           Решта   224 регістрів загального призначення є  унікальними,



                                         187
   182   183   184   185   186   187   188   189   190   191   192