Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры v3.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.6 Mб
Скачать

Краткий обзор pic 16c 6x/7x/8x

Режимы тактового генератора.

Внутренний тактовый генератор МКр может работать в одном из 8 режимов.

  1. LP – низкочастот кварц резонатор (реком-ся для пониженного потребления).

  2. XT – стандартный кварцевый резонатор.

  3. HS – высокочастотный резонатор.

  4. RC – генератор с внешним резистором.

  5. EXTRC – внешний резистор, конденсатор.

  6. EXTRC внешний CLK OUT.

  7. INTRC- внутренний резистор конденсатор (const f= 4 МГц).

  8. INTRC 4 CLK OUT.

Контроллер полностью выполнен на статических элементах. Все режимы программируются. Режим 6 устанавливается по умолчанию для «чистого» микроконтроллера (МКр).

Особенности сброса.

  1. POR – сброс по включению питания.

  2. MCLR – сброс по сигналу в нормальном режиме работы.

  3. MCLR – сброс по сигналу в режиме SLEEP.

  4. WDT - Сброс по прерыванию WDT в нормальном режиме.

  5. BOR - сброс по снижению питания.

  6. PER - Сброс по ошибке приоритета (четности).

Используется аппаратный стек –отд память; доступа со стороны use’ra НЕТ; его глубина всего 8 байтов; указателя по переполнению НЕТ .

Организация памяти (внутренней).

Гарвардская архитектура. Подключение внешней памяти данных по схеме, как в MCS51, в контроллерах семейства PIC не предусмотрено.

Память данных, называемая файлом регистров, - 256 байт (8-битных ячеек). Часть регистров этого файла являются регистрами спец назначения, часть – предоставлены для размещения данных пользователя. Дополнительно имеется регистр аккумулятора W (working register), не входящий в адресное пространство памяти данных. Все ячейки файла регистров (но не аккумулятор!) допускают побитовую адресацию. Файл регистров разбит на два банка по 128 байт. Память делится на страницы по 2К ячеек, количество страниц зависит от модификации контроллера (т.е. от установленной на нем памяти).

В мккре имеется программно-недоступный стек на 8 ячеек, предназнач для сохранения счетчика команд - позволяет вызывать процедуры и переходить к обработчикам прерываний, но в системе команд отсутствуют команды, аналогичные PUSH и POP, нет возможности прочитать или модифицировать содержимое стека в явном виде. Стек имеет кольцевую структуру, при переполнении стека ошибка нет, но пзапись поверх значений, лежащих на дне.

Для косвенной адресации к файлу регистров используется псевдорегистр INDF (по адресу 00). При обращении к INDF производится реальное обращение по адресу, содержащемуся в регистре FSR.

00

1f

9f

80

Вся помещается в 4 байта; Размер банка 128 байт. Получилось 32 ячейки = 64 регистра. При смене банка некоторые регистры дублируются

7F

FF

(например STATUS-аналог PSW). От 00 до 1F и от 80 до 9F SFR. (вроде регистры спец функций).

‘0’

‘1’

- банки (минимум - 2 штуки, м.б. и больше).

Обработка прерываний.

Источников прерываний м.б. несколько, но вектор прерывания только один, располагается по адресу 04h. Поэтому, если нужно обрабатывать прерывания от нескольких источников, то определение источника прерывания делается программно.

Источники прерываний: 1)таймеры, 2) изменение уровня на входах RB4:RB7 порта B, 3) АЦП, 4)внешнее прерывание INT, 5) и еще десяток источников, в зависимости от того, какая еще начинка есть внутри конкретного контроллера.

Порты ввода/вывода.

Пример для контроллера PIC16F74/PIC16C74. Для других контроллеров конфиг портов м.б. другим, но принципиально все примерно так.

Контроллер имеет 5 портов ввода-вывода:

- PORTA - 6-разрядный, 5 из 6 выводов могут использоваться как входы АЦП;

- PORTB - 8-разрядный;

- PORTC - 8-разрядный, выводы порта могут использоваться как входы/выходы различных устройств, например – имеющегося на борту контроллера асинхронного приемопередатчика (UART), устройства ШИМ и т.д.;

- PORTD - 8-разрядный;

- PORTE - 3-разрядный, все 3 линии порта могут использоваться как входы АЦП.

Каждый вывод любого из портов м.б. независимо от других сконфигурирован для работы в режиме входа или выхода. Каждому порту соответствует регистр TRIS, например для порта В это будет регистр TRISB. Разряды этого регистра соответствуют выводам порта. Если необходимо сконфигурировать вывод как вход, то в соответствующем разряде регистра TRIS ставится 1, как выход – ставится 0. В режиме входа сопр-ние вывода велико, его можно рассматривать как вывод, находящийся в третьем (высокоимпедансном) состоянии.

Система команд.

В системе команд НЕТ в принципе команд условного перехода. Их заменяют команды условного пропуска: если выполняется какое то условие, то следующая команда не исполняется, а выполняется следующая за ней. Комбинируя условный пропуск и команды безусловного перехода GOTO можно делать конструкции, эквивалентные командам условного перехода в ассемблерах CISC. Всего 35 команд.

F - регистр; W – рабочий регистр (типа аккумулятора).

В каждой команде используется признак D={ 0,1 } D=1- результат заносится в W, иначе в F ; В- номер бита; К – константа.

  1. Арифметические команды. Особенность – команд MUL/DIV НЕТ

Общий принцип – если команда кончается на WF - она оперирует с какой-то ячейкой памяти и раб рег-ром W. Если на LW – то с раб рег-ром и конст. Если просто на F – то просто делает что-то с ячейкой памяти.

ADDWF f,d Складывает содержимое акк с указанной ячейкой памяти f, результат помещает в акк или в ячейку f в зависимости от флага d.

Влияет на флаги C, DC, Z.

SUBWF f,d

ADDLW k Прибавляет к содержимому акк константу k. Влияет на флаги C, DC, Z.

SUBLW k ANDWF f,d IORWF f,d XORWF f,d

ANDLW k IORLW k XORLW k INCF f,d

DECF f,d SWAPF f,d

RLF f,d ; RRF f,d – циклический сдвиг через флаг переноса.

CLRF f CLRW

COMF f,d – образует дополнение к ячейке F.

2. бит-ориентированные. Их всего две.

BCF f,b. Сбрасывает бит номер b в ячейке памяти f в значение "0". Результат – в ячейке f. Не влияет на флаги.

BSF f,b Устанавливает бит номер b в ячейке памяти f в значение "1". Результат – в ячейке f. Не влияет на флаги.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]