Вивчення способів формування часових інтервалів різної тривалості, організації сторінкової пам'яті програм і даних, страница 2

                      00002 ; P16F84.INC  Standard Header File, Version 2.00    Microchip Technology, Inc.

                      00136         LIST

                      00003

  0000000C            00004 COUNT   equ 0Ch         ;

                      00005

0000                  00006  org    00h             ; адрес программы в памяти программ

0000   1683           00007  bsf    STATUS, RP0     ; выбор банка 1

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

0001   0186           00008  clrf   TRISB           ; настройка порта В на вывод

0002   3006           00009  movlw  b'00000110'     ; настройка предделителя

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

0003   0081           00010  movwf  OPTION_REG      ;   на работу с таймером 1:128

0004   1283           00011  bcf    STATUS, RP0     ; выбор банка 0

0005   30FF           00012  movlw  0FFh            ; формирование '1'

0006   0086           00013  movwf  PORTB           ;   на выводах порта В

                      00014

0007                  00015 d_1                 ; начало рабочей части программы

0007   1086           00016  bcf    PORTB, 1        ; формирование '0' на первом разряде порта В

0008   0000           00017  nop                    ; формирование задержки в 1 цикл

0009   1486           00018  bsf    PORTB, 1        ; формирование '1' на первом разряде порта В

000A   2123           00019  call   d_2         ; вызов подпрограммы d_2

000B   212A           00020  call   d_3         ; вызов подпрограммы d_3

                      00021 

                      00022

0123                  00023  org    123h            ; подпрограмма реализации

0123                  00024 d_2                 ;   задержки в 35 цикла

0123   1106           00025  bcf    PORTB, 2        ; формирование '0' на втором разряде порта В

0124   3011           00026  movlw  11h             ; инициализация

0125   008C           00027  movwf  COUNT           ;   счетчика

0126                  00028 repeat                  ; цикл до

0126   0B8C           00029  decfsz COUNT, 1        ;   обнуления

0127   2926           00030  goto   repeat          ;     счетчика

0128   1506           00031  bsf    PORTB, 2        ; формирование '1' на втором разряде порта В

0129   0008           00032  return                 ; возврат из подпрограммы

                      00033

012A                  00034 d_3                 ; неявный вызов подпрограммы

012A   3002           00035  movlw  02h             ; формирование старших

012B   008A           00036  movwf  PCLATH          ;   разрядов программного счетчика

012C   3034           00037  movlw  34h             ; формирование младших

012D   0082           00038  movwf  PCL             ;   разрядов программного счетчика

                      00039

0234                  00040  org    234h            ; подпрограмма реализации задержки в 3000 циклов

0234   1186           00041  bcf    PORTB, 3        ; формирование '0' на третьем разряде порта В

0235   110B           00042  bcf    INTCON, T0IF    ; сброс флага переполнения от таймера

0236   30E9           00043  movlw  0E9h            ; формирование

0237   0081           00044  movwf  TMR0            ;   константы для таймера

0238                  00045 wait                    ; анализ

0238   1D0B           00046  btfss  INTCON, T0IF    ;   флага

0239   2A38           00047  goto   wait            ;     переполнения от таймера

023A   1586           00048  bsf    PORTB, 3        ; формирование '1' на третьем разряде порта В

MPASM 02.20 Released           Vika3.ASM   4-1-2004  20:30:46         PAGE  2

LOC  OBJECT CODE     LINE SOURCE TEXT

  VALUE

023B   0008           00049  return                 ; возврат из подпрограммы

                      00050  end                    ; конец программы