1. ЦЕЛЬ РАБОТЫ
Изучение регистров специального назначения (РСН) микроконтроллера (МК) PIC16F628A. Приобретение практических навыков по управлению рабо-той МК
путем конфигурирования РСН.
2. КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
РСН МК PIC16F628A расположены в 0,1,2,3 банках памяти (см. Прило-жение Б) по адресам 00Н – 20Н, 80Н – 9FН, 100Н – 110Н, 180Н – 190Н.
Закра-шенные участки памяти данных не реализованы. Часть РСН представлены во всех банках, менять их содержимое можно, находясь в любом
банке, при этом их значение отображается и во всех остальных банках. Это регистры INDF, PCL, STATUS, FSR, PCLATH, INTCON. Остальные РСН
представлены только в одном из банков памяти, и для работы с их содержимым необходимо перейти в тот банк, где они расположены. Например:
так как большая часть работы МК происходит в банке 0, то при обращении к регистрам банка 1 (OPTION, TRISA, и т.д.) необходимо сначала
перейти в банк 1, произвести действие с их содер-жимым, а затем вернуться обратно в банк 0.
Регистр STATUS.(Приложение В). Расположен по адресам 03Н, 83Н, 103Н, 183Н. Выбор банка памяти осуществляется битами 5,6,7,
если не используется косвенная адресация – битами 5 и 6. Поскольку основная роль в работе МК отводится банкам 0 и 1, то 6 бит можно
сразу установить в ноль, а переключение между банками 0 и 1 осуществлять изменением бита 5. По умолчанию он установлен в 0 и МК работает
в банке 0. Меняя бит 5 на единицу, переходим в банк 1.
Для переключения банков в программе написанной на языке ассемблера обычно используют команды bcf и bsf, которые позволяют изменить
какой-либо один бит в регистре, сохранив неизменными все остальные биты. Данные команды бит ориентированные, о чем свидетельствует буква
b в начале команды.
Формат команды:
bcf f,b – очистить (уст. в 0) содержимое бита номер b в регистре по имени f.
bsf f,b - установить в 1 бит номер b в регистре по имени f.
Пример перехода из нулевого банка в первый и обратно:
bcf STATUS,6 ; установка бита 6 в ноль, выбор банков 0 и 1.
bsf STATUS,5 ; установка бита 5 в единицу, выбор банка 1.
ХХХХХХХ ; команды изменяющие содержимое регистров банка 1.
bcf STATUS,5 ; установка бита 5 в ноль, выбор банка 0.
Остальные биты регистра STATUS являются флагами. Изменение флагов не влияет на работу МК. Этим они отличаются от рабочих битов,
изменение ко-торых влияет на работу МК. Флаги выполняют информационную функцию. Проверяя тот или иной флаг можно узнать результат
операции или факт насту-пления того или иного события. Наиболее часто обращаются к содержимому флагов Z (2 бит регистра STATUS) и
С (0 бит регистра STATUS). Флаг нулево-го результата - Z информирует, был ли результат операции нулевым, если это так, то флаг
устанавливается в 1. Флаг переноса – заема - С показывает, был ли перенос из старшего бита. Проверка флага С дает возможность узнать,
было ли переполнение регистра после выполнения операции, например, сложения.
Пример сложения чисел 254 и 3.
Результат операции вышел за пределы разрядной
емкости регистра в 8 бит, и единица помещается
во флаг С, который служит «временным 9м разрядом регистра».
Перед началом использования флага рекомендуется привести его в однозначное исходное состояние. Например, с помощью команды bcf STATUS,0.
Также, флаг С задействуется в операциях «сдвига», в которых он используется для временного хранения состояния седьмого или
нулевого бита сдвигаемого регистра.
Регистры PortA, TrisA и PortB, TrisB. Для работы с портами ввода-вывода существует четыре РСН, по два на каждый порт.
Порты А и В содержат по 8 линий, поэтому их регистры тоже 8-ми разрядные. Линии портов могут ра-ботать как на ввод, так и
на вывод информации из МК. Также, любую линию можно конфигурировать отдельно, получая, таким образом, требуемую комби-нацию линий,
работающих на прием или выдачу сигнала. В процессе работы программы также возможно изменение направления работы линий портов.
Это бывает необходимо, когда выводы используются в одном устройстве для не-скольких различных задач.
За направление работы выводов портов отвечают регистры TrisA (85H) и TrisB (86H, 106H, 186H). Они находятся в банке
1, и для работы с их содержи-мым необходимо перейти в банк 1. Если в какой-либо разряд этих регистров заносится единица,
то данный вывод порта настраивается на вход, ввод сигнала с вывода порта в МК. Если заносится 0 – то данный вывод работает на выход,
вывод сигнала из МК. При этом, МК является источником цифрового сигнала ТТЛ уровня (‘0’ = 0В, ‘1’ = 5В). За каждым выводом порта
закреплен свой бит в регистре. Например: бит 0 регистра TrisA управляет выводом порта под назва-нием RA0, а бит 7 регистра TrisB – выводом порта RB7.
|