Формування часових інтервалів. Сторінкова організація пам'яті, страница 3

0017 3000           00035         movlw b'00000000'       ;загрузка 0 в аккум.

0018 0086           00036         movwf 6                 ;запись в регистр trisb значение аккум.

0019 1283           00037         bcf STATUS,RP0          ;выбор банка 0

001A 0008           00038         return                  ;возврат

                    00039                

0123                00040         org 0x123               ;адрес начала размещения подпрограммы

0123 0BA1           00041 m1      decfsz VDEL,1           ;dec(VDEL), если 0 - пропуск след. команды

0124 2923           00042         goto m1                 ;переход на метку

0125 0000           00043         nop                     ;задержка      

0126 0008           00044         return                  ;возврат

                    00045

0127                00046 proc1 

0127 3002           00047         movlw 0x02              ;0x02->W

0128 008A           00048         movwf PCLATH            ;W->PCLATH

0129 3034           00049         movlw 0x34              ;0x34->W

MPASM 02.20 Released             LAB3.ASM   3-23-2004  13:34:47         PAGE  2

LOC  OBJECT CODE     LINE SOURCE TEXT

  VALUE

012A 0082           00050         movwf PCL               ;W->PCL и переход на адрес 0х234

                    00051        

0234                00052         org 0x234               ;адрес начала подпрограммы

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

0235 3087           00054         movlw .135              ;135->W

0236 0081           00055         movwf 0x01              ;W->TMRO

0237 1D0B           00056 m10     btfss INTCON,T0IF       ;если T0IF=1 - пропуск след. команды

0238 2A37           00057         goto m10                ;переход на метку

                    00058        

0239 3003           00059         movlw .3                ;14->W

023A 00A1           00060         movwf VDEL              ;W->VDEL

023B 0BA1           00061 m13     decfsz VDEL,1           ;dec(VDEL), если 0 - пропуск след. команды

023C 2A3B           00062         goto m13                ;переход на метку

023D 0000           00063         nop                     ;задержка      

023E 0000           00064         nop                     ;задержка      

023F 0008           00065         return                  ;возврат

                    00066        

                    00067         END                     ;конец программы

MPASM 02.20 Released             LAB3.ASM   3-23-2004  13:34:47         PAGE  3

SYMBOL TABLE

  LABEL                             VALUE

MPASM 02.20 Released             LAB3.ASM   3-23-2004  13:34:47         PAGE  4

SYMBOL TABLE

  LABEL                             VALUE

MEMORY USAGE MAP ('X' = Used,  '-' = Unused)

0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXX----- ---------------- ----------------

0100 : ---------------- ---------------- ---XXXXXXXX----- ----------------

0200 : ---------------- ---------------- ---------------- ----XXXXXXXXXXXX

All other memory blocks unused.

Program Memory Words Used:    47

Program Memory Words Free:   977

Errors   :     0

Warnings :     0 reported,     0 suppressed

Messages :     1 reported,     0 suppressed

Організація пам'яті програм

Пам'ять програм (ПЗУ/ППЗУ) має сторінкову організацію (мал.1). Обсяг однієї сторінки 512 байт тому пряма адресація пам'яті програм у сімействі Р1С16С5Х можлива в межах 512 байт. Мікроконтролери PIC 16C5X мають одну, дві чи чотири сторінки пам'яті програм для збереження 12-ти розрядних кодів команд (512X12, 1024Х12, 2048Х12). Відповідно до цього всі ОМК даного сімейства можна розділити на три групи. Доступ до пам'яті понад 512 байт здійснюється після переключення на відповідну сторінку пам'яті. Мікроконтролери PIC16C52/54/C54A/CR54/CR54A/CR54B/C55 мають одну сторінку пам'яті програми, PIC16C56/CR56 має 2 сторінки по 512 байт, PIC16C57/CR57A/CR57B/C58A/CR58A/CR58B мають 4 сторінки по 512 байт кожна.

Організація пам'яті даних