Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЕВДОКИМОВ_А.П._ЭЛЕКТРОНИКА И МПС_26 МАЯ 2014 (1).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.69 Mб
Скачать

Лабораторная работа 10 архитектура и система команд микроконтроллера pic16f873a

1 ЦЕЛЬ РАБОТЫ

Изучить архитектуру и систему команд микроконтроллера PIC16F873A, а также устройство лабораторного стенда.

2 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

2.1 Основные определения

Микроконтроллер — микросхема, предназначенная для управления электронными устройствами. По сути, это однокристальный компьютер, способный выполнять относительно несложные задачи.

Наибольшее распространение микроконтроллеры получили во встроенных системах контроля и управления. Большой популярностью у разработчиков пользуются восьмиразрядные микроконтроллеры PIC фирмы Microchip Technology Inc.

Рисунок 10.1 – Архитектура микроконтроллера PIC

Микроконтроллеры семейства PIC построены по гарвардской архитектуре, что подразумевает физическое разделение памяти данных и команд, а также их шин. Это дает возможность микроконтроллеру за один такт выполнять обращение к памяти данных и к памяти команд. Кроме того, осуществляется раздельное хранение данных и команд в ОЗУ (RAM память данных) и ПЗУ (FLASH память программ) соответственно.

Сердцевиной микроконтроллера являются арифметикологическое устройство (АЛУ) и рабочий регистр. В АЛУ осуществляются арифметические и логические операции, а через рабочий регистр – обмен данными между всеми регистрами микроконтроллера, в том числе и портами, связывающими микроконтроллер с внешними устройствами.

В микроконтроллерах PIC реализована четырехтактная конвейерная обработка команд, что обеспечивает одновременное исполнение текущей команды и выборку из памяти данных следующей. Все команды микроконтроллера, кроме команд безусловного и условного переходов, выполняются за один машинный цикл. Операции безусловного и условного перехода, включая команды вызова подпрограмм и возврат из них, исполняются за два машинных цикла.

Микроконтроллеры имеют в своем составе различные периферийные устройства, что дает возможность подобрать микроконтроллер, который бы максимально подходил к конкретным условиям эксплуатации. В данном цикле лабораторных работ будут изучены следующие периферийные устройства микроконтроллера: порты ввода/вывода, модуль «Захват/Сравнение/ШИМ», модуль АЦП, модуль ведущего синхронного последовательного порта. И этим, конечно же, не исчерпываются возможности микроконтроллера.

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

В микроконтроллере PIC16F873A имеется три вида памяти: память программ, память данных и память EEPROM.

Память данных содержит ряд регистров специального назначения и 192 регистра общего назначения. Объем памяти программ – 4096 слов. Память EEPROM относится к периферии и представляет собой перепрограммируемое постоянное запоминающее устройство.

Программирование микроконтроллера обычно осуществляется на языках ассемблера или Си. Для отладки программ используются программные симуляторы. Полный перечень команд микроконтроллера приведен в таблице 10.1. Обратим внимание на то, что под термином «бит» здесь и далее понимается не объем информации, а отдельно взятый разряд регистра.

Таблица 10.1 Команды микроконтроллера PIC16F873A

Мнемоника команды

Описание команды

Бит-ориентированные команды

1.

bcf f,b

Очистить бит b в регистре f

2.

bsf f,b

Установить бит b в регистре f

Команды пересылки

3.

movf f,d

Переслать f

4.

movwf f

Переслать w в f

5.

movlw k

Переслать константу k в W

Команды сдвига

6.

rlf f,d

Циклический сдвиг f влево через перенос

7.

rrf f,d

Циклический сдвиг f вправо через перенос

8.

swapf f,d

Поменять местами полубайты в регистре f

Команды очистки

9.

clrf f

Очистить f

10.

clrw

Очистить w

11.

clrwdt

Очистить WDT

Арифметические команды

12.

addwf f,d

Сложение w и f

13.

addlw k

Сложить константу k с w

14.

subwf f,d

Вычесть w из f

15.

sublw k

Вычесть w из константы

16.

incf f,d

Прибавить 1 к f

17.

decf f,d

Вычесть 1 из f

Логические команды

18.

andwf f,d

Побитное «И» W и f

19.

andlw k

Побитное «И» константы k и w

20.

iorwf f,d

Побитное «ИЛИ» w и f

21.

iorlw k

Побитное «ИЛИ» константы k и w

22.

xorwf f,d

Побитное Исключающее ИЛИ w и f

23.

xorlw

Побитное Исключающее ИЛИ константы k и w

24.

comf f,d

Инвертировать f (Операция «НЕ»)

Команды переходов

25.

goto k

Безусловный переход

26.

btfsc f,b

Проверить бит b в регистре f, пропустить следующую команду, если 0

27.

btfss f,b

Проверить бит b в регистре f, пропустить следующую команду, если 1

Окончание таблицы 10.1

  1. Прибавить 1 к f и пропустить следующую коincfsz f,d

манду, если 0

  1. Вычесть 1 из f и пропустить следующую команdecfsz f,d

ду, если 0

  1. call k Вызов подпрограммы

  2. return Возврат из подпрограммы

  3. Возврат из подпрограммы с разрешением преretfie

рываний

  1. Возврат из подпрограммы с загрузкой retlw k

константы k в W