Page 239 - 4503
P. 239

movlw d’10’ ;запис десяткового числа 10
           ;у W
                 movwf h’23’;копіювання його у h’23’  —
                                      ;  лічильник циклу
                LOOP
                ;---------------------------------------
                 bcf PORTA,0 ; встановлення 0 на RA0
                 nop    ;  перечікування  одного  машинного
           ;циклу
                 nop; перечікування  ще одного машинного
           ;циклу
                 bsf PORTA, 0; встановлення 1 на RA0
                ;---------------------------------------
                 decfsz  h’23’,  f;  рахунок  у  зворотньому
           ;напр.
                 goto  LOOP;  повтор.якщо  не  0,  інакше  з
           ;циклу

                Тіло  імпульса  обрамлене  пунктирними  лініями.  Вхід  у
           тіло (початок імпульсу) bcf PORTA,0 і вихід bsf PORTA,
           0  (кінець  імпульсу)—  команди,  загальна  тривалість  яких
           вкупі  становить  один  машинний  цикл.  Чому?  А  тому,  що
           початок  імпульсу  —  це  мить,  коли  команда  bcf  PORTA,0
           уже  виконана.  Це означає,  що  час, наданий  на  її  виконання,
           був  витрачений  до  початку  імпульсу.  Отже,  до  тривалості
           імпульсу  фактично  слід  додати    тільки  команду  виходу  з
           нього:  bsf  PORTA,  0.  Ще  два  машинних  цикли  формує
           подвійний виклик команди nop. Отже, разом разом  імпульс
           триває  3  машинних  цикли.  За  умови,  що  вхідна  частота
           становить  4  МГц,  то  одна  команда  становить  1  мкс.  А  три
           команди — 3 мкс.

                   7.4.6  Команда  incfsz


                                         239
   234   235   236   237   238   239   240   241   242   243   244