Программный счетчик в 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. Варианты загрузки старших бит программного счетчика.