МК PIC16F84. Счетчик инструкций и его программное управление

Счетчик инструкций (или счетчик команд, PC – Program Counter) – 13-разрядный регистр, который указывает адрес выбираемой команды для выполнения.

 
 

Младший байт счетчика инструкций PCL доступен для чтения и записи. Старший байт PCH, содержащий <12:8> биты счетчика инструкций PC, не доступен для чтения и записи. Все операции с регистром PCH происходят через дополнительный регистр PCLATH.

Примечание. При записи значения в регистр PCL, автоматически происходит перезапись 5 младших бит из регистра PCLATH<4:0> в регистр PCH.

Режимы изменения счетчика инструкций:

- автоматический (автоинкремент) при исполнении инструкций. Значение счетчика команд инкрементируется каждый раз при выборке очередной инструкции из памяти программ;
- предопределенный при исполнении инструкций CALL, GOTO и т.п. Перед выполнением команды перехода (CALL или GOTO) необходимо запрограммировать биты регистра PCLATH<4:3> для адресации требуемой страницы. При выполнении инструкций возврата из подпрограммы 13-разрядное значение для счетчика программ PC берется с вершины стека, поэтому манипуляция битами регистра PCLATH<3:4> не требуется;

 
 

Изменение значения PC при выполнении инструкции GOTO (PCLATH<4:3> → PCH)

Изменение значения PC при выполнении перехода к подпрограмме CALL (PCLATH<4:3> → PCH), причем старое значение PC сохраняется в вершине стека


Возвращение из подпрограммы (RETURN, RETFIE или RETLW), счетчик команд загружается значением с вершины стека

Примечание. Регистр PCLATH не изменяется при изменении PCH.

- принудительный при изменении PCL и PCLATH.

Вычисляемый переход может быть выполнен командой приращения к регистру PCL (например, ADDWF PCL). При выполнении вычисляемого перехода следует заботиться о том, чтобы значение PCL не пересекло границу блока памяти.

Вся память программ разделена на страницы. Для перехода между страницами памяти программ необходимо изменить старшие биты регистра счетчика команд PC записью в регистр специального назначения PCLATH (старший байт счетчика команд). Изменив значение регистра PCLATH и выполнив команду ветвления, счетчик команд PC пересечет границу страницы памяти программ без дополнительного вмешательства пользователя.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: