Page 263 - 4503
P. 263

;--------------------------------------------------------------------------------
                N equ d’249’   ;  N - параметр затримки
                СOUNT equ h’30’  ; лічильник циклу

                DELAY_100MS
                  movlw d’100’;ініціалізація зовнішнього
                                ;циклу
                  movfw СOUNT
           ;  ЗОВНІШНІЙ ЦИКЛ -------------------------
                DELAY_1MS
                 movlw N; ініціалізація внутрішнього
                               ;циклу
           ;  ВНУТРІШНІЙ  ЦИКЛ ------------------------
                D_LOOP            ; LOOP – з англ.- цикл
                  addlw -1   ; декрементується лічильник
                  btfss STATUS,Z  ; перевірка чи вміст W
                                  ;досяг 0
                  goto D_LOOP  ; якщо ні то повторюється
                                ;цикл
           ;-------------------------------------------
                  decfsz COUNT, f ; декрементується
                             ;лічиль зовнішнього циклу
                  goto D_LOOP повторення до досягнення 0
           ;-------------------------------------------
                  return   ; інакше вихід із підпрограми

                8.7 Підпрограма (процедура із вхідним параметром К)
                                                       2
           формування затримки тривалістю К 10  мілісекунд.

                Створена  процедура  (програма  8.3)  формування
           затримки  на  100  мс  це  приклад  підпрограми,  у  якій  немає
           вхідних  параметрів  і  вона  нічого  не  вертає  у  зовнішню
           програму.  Ця  підпрограма  просто  виконує  свою  задачу
           формування затримки і змінює вміст регістрів даних, робочий


                                         263
   258   259   260   261   262   263   264   265   266   267   268