Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы_МПС.doc
Скачиваний:
18
Добавлен:
22.08.2019
Размер:
3.47 Mб
Скачать
  1. Память данных eeprom мк pic16f84

Рис. 5.1.  Структурная схема МК подгруппы PIC16F8X.

Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (гарвардская архитектура). Шина данных и память данных (ОЗУ) – имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14-битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов.

PIC16F84 и PIC16CR84 – 1Кх14 памяти программ. Вся память программ является внутренней.

Микроконтроллер может прямо или косвенно обращаться к регистрам или памяти данных. Все регистры специальных функций, включая счетчик команд, отображаются на память данных. Ортогональная (симметричная) система команд позволяет выполнять любую команду над любым регистром с использованием произвольного метода адресации. Ортогональная архитектура и отсутствие специальных исключений делает программирование МК группы PIC16F8X простым и эффективным.

18 Организация прерываний в мк pic16f84

У МК PIC16F84A есть 4 источника прерываний:

  1. Внешний источник прерываний INT(RB0)

  2. Изменение сигнала на линиях RB7:RB4

  3. По переполнению TMR0

  4. По завершению записи в EEPROM память данных МК

Всеми прерываниями управляет один регистр INTCON. Регистр INTCON содержит индивидуальные биты флагов прерываний для ядра МК, биты разрешения прерываний, а также бит глобального разрешения прерываний.

7

6

5

4

3

2

1

0

GIE

EEIE

T0IE

INTE

RBIE

T0IF

INTF

RBIF

GIE- Глобальное разрешение прерываний (1-разрешены)

EEIE- бит маски разрешения прерывания по завершению записи в EEPROM

T0IE - разрешения прерывания по переполнению TMR0

INTE – разрешение внешнего прерывания INT

RBIE – разрешение по изменению сигнала на линиях RB7:RB4

T0IF – флаг прерывания по переполнению TMR0

INTF – флаг внешнего прерывания INT

RBIF – флаг прерывания по изменению сигнала на линиях RB7:RB4

( если флаг установлен в 1 – произошло событие для прерывания, флаг сбрасывается программно).

В Программе описание кода векторов прерываний начинается после строки ORG 0x04.

19 Работа с модулем ацп в мк pic16f676

Модуль АЦП служит для преобразования аналогового сигнала в N-разрядный код.

Данный МК имеет 10 – разрядный 8 канальный АЦП с входными каналами AN0 – AN7 (PORTA).

Опорное напряжение, относительно которого формируется результат выбирается программно в регистре ADCON0 специальным битом VCFG.

Структурная схема АЦП

Управляющие регистры:

ADCON0 содержит основные биты управления модуля:

Бит7: ADFM –выравнивание результата 0- правое, 1 –левое

Бит6: VCFG – выбор источника опорного напряжения ( 1 – внешний с RA1/AN1/VREF, 0- Vdd)

Бит5: не используется

Бит 4-2 биты выбора канала АЦП CHS2:CHS0 ( адреса 000-AN0, 111 – AN7)

Бит1: Go/Done – бит статуса модуля (1 –выполняет преобразование, 0- ожидание)

Бит0: ADON – бит включения модуля (1-вкл, 0- выкл)

Регистр ADCON1 содержит биты настройки длительности одного бита АЦП. В нем используются биты 5, 6, 4.

ADCS2:ADCS0 – биты настройки длительности такта

000 – Fosc/2

001 – Fosc/8

010– Fosc/32

100 – Fosc/4

101 – Fosc/16

110 – Fosc/64

X11 – тактирование от встроенного RC – генератора мах частота 500 кГц

Регистр ANSEL содержит биты конфигурации портов ввода вывода. Установка в 1 одного или несколько битов, соответствующего выводам AN0 – AN7 отключает все модули от выбранных портов.

Схема аналогового входа АЦП

Сопротивления Rs и Rss непосредственно влияют на время заряда конденсатора СHOLD.

После того как будет выбран один из каналов но прежде, чем будет производится преобразование находится выражение (*), это уравнение дать погрешность в 2048 шагов АЦП. Эта ошибка позволяет функционировать модулю АЦП с необходимой точностью.

( *)

Tamp – время задержки усилителя

Tacq – время задержки усилителя

Tc – время заряда конденсатора СHOLD

  1. Настройка АЦП. Настроить выводы как аналоговые входы.

    1. Настроить VREF и биты ADCON1

    2. Входной канал АЦП ADCON0

    3. Выбрать источник тактовых импульсов ADCON1

    4. Вкл АЦП ADCON0

  1. Настроить прерывание от АЦП

2.1 Сбросить бит ADIF в 0

2.2 Установить бит ADIE в 1

2.3 Установить PEIE в 1

2.4 Установить GIE

3. Выдержать паузу необходимую для зарядки конденсатора

4. Начать аналого-цифровое преобразование установить Go/Done в 1.

5.Ожидать окончание преобразования бит Go/Done сбросится аппаратно или ожидать прерывание по окончанию преобразования.

6. Считать рез –т из ADRESH:ADRESL.