Организация памяти программ (ПЗУ) PIC 16F84 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Организация памяти программ (ПЗУ) PIC 16F84



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

ПЗУ(EEPROM) PIC16C84 рассчитано на ограниченное число циклов стирания/записи. Чтобы записать в программную память, кристалл должен быть переведен в специальный режим при котором на ножку /MCLR подается напряжение программирования Vprg, а питание Vdd должно находиться в пределах 4.5 В... 5.5В. PIC16C84 непригоден для применений, в которых часто модифицируется программа. Запись в программную память осуществляется побитно, последовательно с использованием только двух ножек.

Организация памяти программ и стека приведена на рис. 8.3.

Программный счетчик Ширина программного счетчика - 13 бит. Младший байт программного счетчика (PCL) доступен для чтения и записи и находится в регистре 02h. Старший байт программного счетчика (PCH) не может быть прямым образом прочитан или записан. Старший байт программного счетчика может быть записан через PCLATH регистр, адрес которого 0Ah. В зависимости от того, загружается ли в программный счетчик новое значение во время выполнения команд CALL, GOTO, или в младший байт программного счетчика (PCL) производится запись, - старшие биты программного счетчика загружаются из PCLATH разными способами так, как показано на рис. 8.4. Команды CALL и GOTO оперируют 11-разрядным адресным диапазоном, достаточным для смещения в пределах страницы программной памяти объемом 2К слов. PIC16F8X игнорируют значения бит PCLATH<4:3>, которые используются для обращения к страницам 1, 2 и 3 программной памяти.

Стек и возвраты из подпрограмм. Кристалл PIC16C84 имеет восьмиуровневый аппаратный стек шириной 13 бит. Область стека не принадлежит ни к программной области, ни к области данных, а указатель стека пользователю недоступен. Текущее значение программного счетчика посылается в стек, когда выполняется команда CALL или производится обработка прерывания. При выполнении процедуры возврата из подпрограммы (команды RETLW, RETFIE или RETURN), в программный счетчик выгружается содержимое стека. Регистр PCLATH (0Ah) не изменяется при операциях со стеком. Стек работает как циклический буфер. Следовательно, после того как стек был загружен 8 раз, девятая загрузка перепишет значение первой. Признаков положения стека в контроллере не предусмотрено, поэтому пользователь должен самостоятельно следить за уровнем вложения подпрограмм.

 

 

 

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

Рис. 8.4. Организация программного счетчика.

 

Прямая и косвенная адресация. Припрямой 9-битная адресации, младшие 7 бит берутся как прямой адрес из кода операции, а два бита указателя страниц (RP1,RP0) из регистра статуса (03h). Признаком косвенной адресации является обращение к регистру INDF. Любая команда, которая использует INDF (адрес 00h) в качестве регистра фактически обращается к указателю, который хранится в FSR (адрес 04h). Чтение косвенным образом самого регистра INDF даст результат 00h. Необходимый 9-битный адрес формируется объединением содержимого 8-битного FSR регистра и бита IRP из регистра статуса Некоторые регистры специальных функций располагаются в банке 1. Чтобы адресоваться к ним, нужно дополнительно установить в единицу бит RP0 в регистре статуса.

 

 

Рис. 8.5.Методы адресации данных.



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 299; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.213.209 (0.006 с.)