Page 275 - 4503
P. 275

команда  retlw  повертає  у  робочий  регістр  однобайтну
           константу.
                У програмі 8.6 здійснюється відбір  n–елемента таблиці
           Tabel  [n]  шляхом  додавання  числа  n,  що  розміщене  у
           робочому регістрі до вмісту регістра  PCL.

                Програма  8.6. Програмна  реалізація дешифратора  7–
           сегментного індикатора

           ;--------------------------------------------------------------------------------
                ; ФУНКЦІЯ : повертає n–елемент таблиці, де  n — вміст
           робочого регістру.
                ; ПРИКЛАД: при W = 6, повертається код b’01111101’.
                ; ВХІД : n ( в діапазоні 0..9) у  W
                ; ВИХІД : n - елемент таблиці у W
           ;--------------------------------------------------------------------------------
                  PCL equ h’02’
                  N equ 5 ;замість «5» можна вставити
                ;будь-яке потрібне одноцифрове число
           ;-ОСНОВНА ПРОГРАМА -------------------------
                  ; Код основної програми. . . . . . .
                  movlw N    ; завантаження числа N у W
           ;  щоб  його  дешифрувати  для  відображення
           ;символу «N» на 7-сегментному індикаторі
                  call  SVN_SEG        ;  виклик  підпрограми
           ;дешифрації
                  ; . . . . . . .
           ;-ПІДПРОГРАМА ДЕШИФРАЦІЇ SVN_SEG -----------
                SVN_SEG
                  addwf  PCL,f                   ;додавання  N  до
           ;PCL,отримано  ;PC=PC+N
                  retlw          b’00111111’;код             для        0,
           ;повертається при ;N=0



                                         275
   270   271   272   273   274   275   276   277   278   279   280