Программный счетчик и организация памяти программ

Программный счетчик в PIC16C71 имеет ширину 13 бит и способен адресовать 8К х 14бит объема программной памяти. Однако, физически на кристалле PIC16C71/711 имеется только 1К х 14 бит памяти (адреса 0000h-03FFh). Обращение к адресам выше 3FFh фактически есть адресация в тот же первый килобайт. Модификация PIC16C710 имеет только 512х14 бит памяти, а PIC16C715 -2Кх14 бит. Вектор сброса для всех модификаций находится по адресу 0000h, вектор прерывания находится по адресу 0004h.

Организация памяти программ показана на рис.3.6.

Ширина программного счетчика - 13 бит. Младший байт программного счетчика (PCL) доступен для чтения и записи и находится в регистре 02h. Старший байт программного счетчика (PCH) не может быть прямым образом прочитан или записан. Старший байт программного счетчика может быть записан через PCLATH регистр, адрес которого 0Ah. В зависимости от того, загружается ли в программный счетчик новое значение во время выполнения команд CALL, GOTO или в младший байт программного счетчика (PCL) производится запись результата выполнения команды, старшие биты программного счетчика загружаются из PCLATH разными способами так, как показано на рис. 3.7.

 

0000h Вектор сброса  
  .........................  
0004h Вектор прерывания  
    03FFh .........................   Команды программы   Доступная пользователю память
0400h     1FFFh   //////////////////////////////////////////////////////////////////////////////// Отсутствует в PIC 16С71/711  

 

Рис. 3.6. Организация памяти программ

 

а) Случай команд GOTO, CALL

12..........11 10...................................0

Биты из команды

////// 4........3 ////////

PCLATH

 

б) Случай команд , у которых результат помещается в F2 (PCL)

12..........8 7……………………….0

Биты из ALU (через шину данных

при выполнеии операций

записи / чтения PLC)

////// 4........3 ////////

PCLATH

 

Рис. 3.7. Варианты загрузки старших бит программного счетчика.