Изучение архитектуры однокристального микроконтроллера pic16f84
Цель работы
1 Изучить назначение, структурную схему, организацию памяти программ и памяти данных, а также систему команд микроконтроллера PIC16F84.
2 Изучить назначение и программирование регистров общего назначения и специальных регистров микроконтроллера PIC16F84.
3 Изучить порты ввода/вывода и специальные функции микроконтроллера PIC16F84.
4 Получить практические навыки работы со справочной литературой.
Подготовка к выполнению работы
1 Повторить по [1] или [4] назначение, структурную схему, организацию памяти программ и памяти данных, а также систему команд микроконтроллера PIC16F84.
2 Повторить по [1] или [4] назначение выводов микроконтроллера PIC16F84.
Вопросы для самоконтроля
1 Укажите особенности микроконтроллеров по сравнению с универсальными микропроцессорными системами.
2 Поясните суть и достоинства гарвардской архитектуры, использованной в микроконтроллере PIC16F84.
3 Укажите емкость памяти программ и разрядность команд в микроконтроллере PIC16F84.
4 Поясните процесс считывания и выполнения команд в микроконтроллере PIC16F84.
5 Поясните принцип организации и укажите емкость памяти данных в микроконтроллере PIC16F84.
6 Укажите назначение программного счетчика PC, регистра команд, рабочего регистра W, регистра состояния STATUS в микроконтроллере PIC16F84.
7 Укажите какие операции выполняет микроконтроллер PIC16F84 и их общее количество.
8 Укажите форматы команд работы с байтами, битами и константами.
9 Укажите, какие операции выполняют следующие команды: MOVWF TMRO; BCF STATUS,RPO; ADDLW 08h.
Порядок выполнения работы
1 Проверка подготовки учащихся к занятию по вопросам для самоконтроля.
2 Выполнить индивидуальное задание (таблица 84). Изучить назначение и программирование заданных узлов либо режимов работы микроконтроллера PIC16F84 (номер варианта определяется номером учащегося в списке учебного журнала).
Таблица 84 – Исходные данные для индивидуального задания
Номер варианта | Наименование узла микроконтроллера или режима работы | Команды |
Регистр состояния STATUS. Режим пониженного энергопотребления SLEEP | BSF STATUS, RPO | |
Регистр OPTION | BCF OPTION, PSA | |
Регистр INTCON | BCF INTCON, INTE | |
Счетчик команд PC, стек и косвенная адресация данных | MOVLW 0Fh; ADDWF PCL | |
PORT A | MOVLW 0Ch; MOVWF TRISA | |
PORT B | MOVLW F0h; MOVWF TRISB | |
Модуль таймера | MOVLW 20h; MOVWF OPTION | |
Регистр CONFIG и генераторы | BCF STATUS, PRO | |
Регистр CONFIG и схемы сброса-запуска | CLRWDT; SLEEP | |
Сторожевой таймер WDT. Прерывания | BSF INTCON,TOIE |
2.1 Выбрать из таблицы 84 узел либо режим работы микроконтроллера PIC16F84 для заданного варианта.
2.2 Изучить по [4] заданный узел микроконтроллера PIC16F84, указать его назначение. Зарисовать формат регистра либо другого узла и указать назначение разрядов.
2.3 Изучить по [4] и описать назначение и реализацию заданного режима. Указать назначение входных и выходных сигналов.
2.4 Расшифровать заданные в таблице 84 команды. Указать их тип и выполняемую операцию.
3 Ответить на контрольные вопросы.
4 Оформить отчет и сдать зачет.
Содержание отчета
Отчет должен содержать:
1 Наименование и цель работы.
2 Выполненное индивидуальное задание (условие в виде таблицы и ответы на пункты 2.2 …2.4).
3 Ответы на контрольные вопросы.
Контрольные вопросы
1 Поясните последовательность включения питания микроконтроллера PIC16F84.
2 Укажите в каком случае разряды порта ввода-вывода программируются как входы?
3 Поясните, как обратиться к странице 0 памяти данных.
4 Поясните, когда происходит прерывание от таймера/счетчика TMRO и как это прерывание может быть запрещено.
5 Поясните, как происходит вход в режим пониженного энергопотребления SLEEP и какие события приводят к выходу из этого режима.
6 Поясните назначение и принцип работы сторожевого таймера WDT.
Требования к знаниям и умениям учащихся
В результате выполнения лабораторной работы учащиеся должны знать назначение, принцип построения и функционирования однокристальных микроконтроллеров семейства PIC16.
Должны уметь:
- составлять последовательность команд для программирования регистров специальных функций;
- составлять программы для инициализации портов.
ЛИТЕРАТУРА
1 Дружинин, А. А. PIC и его команда. / А. А. Дружинин. – Рига : MEMEX BALTIC, 1996. – 129 с.
2 Калабеков, Б. А. Цифровые устройства и микропроцессорные системы : учеб. для техникумов связи / Б. А. Калабеков. – М. : Горячая линия – Телеком, 2002. – 336с.
3 Угрюмов, Е. П. Цифровая схемотехника : учеб. пособие для вузов. – 2-е изд., перераб. и доп. / Е. П. Угрюмов. – Спб. : БХВ – Петербург, 2005. – 800с.
4 Цифровые и микропроцессорные устройства : конспект лекций для учащихся специальностей 2-45 01 03 – Сети телекоммуникации, 2-45 01 02 – Системы радиосвязи, радиовещания и телевидения. В 5 ч. Ч. 4: Основы микропроцессорной техники; Ч.5: Принципы организации однокристальных микроконтроллеров. Организация памяти микропроцессорных систем / сост. В. И. Богородов. – Минск : ВГКС, 2009. – Ч.4 – 63с; Ч5 – 85с.
ПРИЛОЖЕНИЕ А
(справочное)
ПРИМЕР ВЫПОЛНЕНИЯ ЗАДАНИЯ НА СИМУЛЯТОРЕ SIM8085 MICROPROCESSOR SIMULATOR
Эмулятор Sim8085 Microprocessor Simulator предназначен для симуляции работы микропроцессора Intel 8085A (отечественным аналогом является микропроцессор К1821BM85A). Рассмотрим работу эмулятора Sim8085 Microprocessor Simulator.
После запуска программы следует выбрать вкладку File-New, и на экране появится рабочая область или окно программы (рисунок А 1):
Рисунок А.1 – Окно программы эмулятора Sim8085 Microprocessor Simulator
Данное окно предназначено для ввода программ. Одной из особенностей эмулятора является то, что все цифровые данные в программе прописываются в десятичной системе счисления, а обрабатываются в шестнадцатеричной.
Для упрощения перевода из одной системы счисления в другую в эмулятор вшит конвертер (рисунок А.2), который можно вызвать: Tools-Base Converter.
Рисунок А.2 – Окно конвертера
Для преобразования числа из шестнадцатеричной системы счисления в десятичную необходимо просто вписать число, которое необходимо перевести, в поле <<HEX>> и десятичное число автоматически появится в поле <<DEC>>. Например из рисунка А.2 видно, что для ввода шестнадцатеричного числа 2000Н нам необходимо перевести его в десятичное 8192 и записать в окно программы.
Также одной из особенностей эмулятора является то, что мы вводим команды мнемоническими обозначениями.
Как видно из рисунка А.3, мы вводим команду непосредственной загрузки регистра D числом 254(10)=FE(16) таким образом:
Рисунок А.3 – Ввод команды непосредственной загрузки регистра D числом 254(10)
Для запуска и отладки нашей программы в эмуляторе есть отладчик (рисунок А.4), который вызывается Project-Debug. В данном окне мы можем проследить за выполнением программы. В эмуляторе предусмотрен запуск программ как целиком (Project-Run), так и по отдельным операциям (Project-Step Over). В окне отладчика отображаются значения всех регистров, указателя стека, счетчика команд, а также всех признаков результата. Для выхода из режима отладчика необходимо выбрать (Project-Terminate).
Рисунок А.4 – Окно отладчика эмулятора Sim8085 Microprocessor Simulator
Рассмотрим работу отладчика на примере непосредственной загрузки регистра D числом 254(10)=FE(16) (рисунок А.5):
Рисунок А.5 – Пример работы отладчика эмулятора Sim8085 Microprocessor Simulator
В окне отладчика мы видим, что по адресу 2000h теперь записана команда непосредственной загрузки регистра D числом 254(10)=FE(16). Заметим, что в окне отладчика оно представлено уже в шестнадцатеричной форме, в отличие от окна ввода программы.
В стандартных настройках программы начальным адресом программы является 2000Н, но в настройках отладчика (Options-Debugger Options) его можно изменить (рисунок А.6).
Рисунок А.6 – Окно настроек отладчика эмулятора Sim8085 Microprocessor Simulator
Рассмотрим работу эмулятора на примере программы, которая реализует подсчет количества единиц в байте (рисунок А.7).
Рисунок А.7 – Пример программы, реализующей подсчёт количества единиц в байте.
Вводим программу (как видно, все числа предварительно переведены в десятичную систему счисления). В качестве исходного числа мы загружаем FEh (254). Переходим в режим отладчика и выполняем программу (рисунок А.8).
Рисунок А.8 – Окно отладчика при выполнении программы, реализующей подсчет количества единиц в байте
По окончании выполнения программы мы видим окно, говорящее о том, что наша программа успешно выполнена до команды HLT. Конечный результат мы можем наблюдать в регистре B.
СОДЕРЖАНИЕ
Введение. 3
Лабораторная работа №12
Составление линейных и циклических программ на
языке Ассемблер. 3
Лабораторная работа №13
Обучение работе на учебном микропроцессорном
комплекте. 10
Лабораторная работа №14
Регистры микропроцессора. Команды загрузки
регистров. 22
Лабораторная работа №15
Методы адресации памяти. Команды работы с
памятью.. 30
Лабораторная работа №16
Арифметические команды.. 40
Лабораторная работа №17
Логические команды и команды сдвига. 51
Лабораторная работа №18
Команды безусловного и условных переходов. 64
Лабораторная работа №19
Команды манипуляции стеком.
вызов подпрограммы и возврат. 74
Лабораторная работа №20
Изучение архитектуры однокристального микроконтроллера PIC16F84 72
Литература………………………………………………………………………. 88
Приложение А
Пример выполнения задания на эмуляторе Sim8085 Micro–
processor Simulator…………………………………………………………….89
Учебное издание