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.



Free web templates