Мегаобучалка Главная | О нас | Обратная связь


Микроконтроллер PIC16F84A: организация памяти программ и данных, портов ввода/вывода



2016-01-02 4006 Обсуждений (0)
Микроконтроллер PIC16F84A: организация памяти программ и данных, портов ввода/вывода 0.00 из 5.00 0 оценок




 

Память программ. В PIC16F84A команды имеют 14 разрядов и хранятся во флэш-памяти. Ячейки памяти также имеют 14 разрядов и образуют слово. Объем памяти составляет 1 К (1024) слов.

При сбросе МК сигналом низкого уровня на выводе MCLR (Master Clear) происходит сброс в нуль счетчика команд PC, и после окончания сигнала MCLR дальнейшее выполнение команд программы производится с адреса 000h. Так как программа находится в энергонезависимой памяти, при отключении питания ее стирание не происходит.

Память данных. Память данных (ПД) PIC16F84A представляет собой 8-разрядные ячейки ОЗУ, которые по терминологии фирмы Microchip называются регистрами. ПД по выполняемым функциям состоит из двух областей. Первые 12 адресов – это область регистров специальных функций (РСФ), а вторая – область регистров общего назначения (РОН). При выключении питания данные, находящиеся в регистрах ПД, уничтожаются.

В PIC16F84A все регистры распределены по двум банкам, которые имеют нумерацию 0 и 1. В каждый момент времени программе доступен только один регистровый банк. Переключение между банками осуществляется при помощи 5-го бита с именем RP0 из регистра состояния STATUS. При сбросе этого бита в 0 доступен банк 0, при установке бита в 1 – банк 1. Наиболее часто используемые РСФ находятся в банке 0. Некоторые из РСФ присутствуют в обоих банках. Регистры РОН, а их всего 68, продублированы в обоих банках. После сброса МК автоматически выбирается регистровый банк 0.

Наиболее часто в программах используются следующие регистры специального назначения:

· регистр статуса STATUS содержит флаги АЛУ, состояния контроллера при сбросе и биты выбора банков ПД;

· регистр конфигурации OPTION_REG содержит управляющие биты для конфигурации предварительного делителя (предделителя), внешних прерываний, таймера, а также подтягивающих резисторов (pull-up) на выводах порта В;

· регистр управления прерываниями INTCON содержит управляющие биты для всех источников прерываний.

 

Порты ввода/вывода. МК PIC16F84A имеет 13 выводов (линий), каждый из которых может быть сконфигурирован (программно настроен) на ввод или вывод данных. На рисунке 1 приведена упрощенная функциональная схема одной линии порта. В каждой линии имеется триггер данных, входящий в регистр данных порта PORT; триггер направления передачи данных, входящий в регистр направления TRIS; выходной буфер OBF; буфер чтения вывода порта IBF. Буферы OBF и IBF имеют выходы с тремя состояниями. Управление состоянием выходов выполняется с помощью сигналов на входах EN. При EN = 1 выходы буферов находятся в активном режиме и передают логические “1” или “0” со входов. При EN = 0 выходы находятся в отключенном Z-состоянии. Управление буфером OBF выполняется от триггера TRIS. Когда в триггере записан “0”, высокий уровень с инверсного выхода триггера поступает на управляющий вывод EN буфера OBF и переводит его выход в активный режим. Информация, записанная в триггере данных PORT (“0” или “1”), поступает на выход линии порта. Когда в триггере TRIS записана “1”, на выводе EN будет “0”, и выход буфера OBF переходит в Z-состояние, т.е. отключается от вывода порта. Логическое состояние на выводе порта в этом случае может быть прочитано с помощью буфера IBF, который открывается командой чтения выводов порта. Буфер IBF открывается кратковременно только на момент чтения выводов порта. В остальное время выход IBF находится в Z-состоянии и не влияет на шину данных МК. Таким образом, для настройки линии порта на вывод в соответствующий разряд регистра TRIS надо записать 0, а для настройки линии на ввод – записать 1.

Выводы распределены между двумя портами МК: пять выводов порта А (RA0-RA4) и восемь выводов порта В (RB0-RB7). Выбор состояния вывода (вход или выход) определяется регистрами TRISA и TRISB. После сброса МК автоматически все линии портов настроены на ввод. Для изменения настройки необходимо в регистры направления загрузить соответствующую информацию. Пример настройки линий порта В: линии RB0-RB3 – на вывод, линии RB4-RB7 – на ввод:

movlw b’11110000’ ; загрузить в регистр W двоичное число 11110000

movwf TRISB ; переслать содержимое W в регистр TRISB

Некоторые выводы портов обладают специальными функциями. Так, будучи настроенными на ввод линии RB0 и RB4-RB7 могут активизировать прерывания. Вывод RA4 порта А может служить входом подключения внешнего генератора для подсчета числа импульсов с помощью TMR0. Особенностью линий порта В является возможность программного подключения к его выводам, настроенным на ввод, внутренних “подтягивающих” резисторов сопротивлением приблизительно 50 кОм. Возможность такого подключения упрощает взаимодействие с клавиатурой и исключает необходимость в использовании внешнего резистора.

 

 

Рисунок 1. Функциональная схема линии порта МК

 



2016-01-02 4006 Обсуждений (0)
Микроконтроллер PIC16F84A: организация памяти программ и данных, портов ввода/вывода 0.00 из 5.00 0 оценок









Обсуждение в статье: Микроконтроллер PIC16F84A: организация памяти программ и данных, портов ввода/вывода

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (4006)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)