- •1. Состав и назначение семейств pic-контроллеров
- •6. Схема тактирования и цикл выполнения команды в мк pic16f84
- •7. Организация памяти программ и стека
- •8. Организация памяти данных
- •9. Регистры специального назначения pic16f84: регистр status
- •10. Регистры специального назначения pic16f84: регистр option
- •11. Регистры специального назначения pic16f84: регистр intcon
- •12. Регистры специального назначения pic16f84: счетчик команд pcl и pclath
- •13. Прямая и косвенная адресация в мк pic16f84
- •Порт ввода/вывода «а» мк pic16f84
- •Порт ввода/вывода «в» мк pic16f84
- •Модуль таймера tmr0 мк pic16f84
- •Память данных eeprom мк pic16f84
- •18 Организация прерываний в мк pic16f84
- •19 Работа с модулем ацп в мк pic16f676
- •20. Работа с модулем опорного напряжения в мк
- •21 Работа с модулем компаратора в мк
- •22 Форматы команд pic16f84a
- •23 Команды работы с байтами в мк pic16f84
- •24 Команды работы с битами в мк pic16f84
- •25 Команды управления в мк pic16f84
- •26 Команды работы с константами в мк pic16f84
- •27 Синтаксис ассемблера mpasm: метки, мнемоники, операнды, комментарии
- •Директивы языка mpasm
- •Языки программирования плк
- •Промышленные сети и интерфейсы: Can
Память данных eeprom мк pic16f84
Рис. 5.1. Структурная схема МК подгруппы PIC16F8X.
Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (гарвардская архитектура). Шина данных и память данных (ОЗУ) – имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14-битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов.
PIC16F84 и PIC16CR84 – 1Кх14 памяти программ. Вся память программ является внутренней.
Микроконтроллер может прямо или косвенно обращаться к регистрам или памяти данных. Все регистры специальных функций, включая счетчик команд, отображаются на память данных. Ортогональная (симметричная) система команд позволяет выполнять любую команду над любым регистром с использованием произвольного метода адресации. Ортогональная архитектура и отсутствие специальных исключений делает программирование МК группы PIC16F8X простым и эффективным.
18 Организация прерываний в мк pic16f84
У МК PIC16F84A есть 4 источника прерываний:
Внешний источник прерываний INT(RB0)
Изменение сигнала на линиях RB7:RB4
По переполнению TMR0
По завершению записи в 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
Настройка АЦП. Настроить выводы как аналоговые входы.
Настроить VREF и биты ADCON1
Входной канал АЦП ADCON0
Выбрать источник тактовых импульсов ADCON1
Вкл АЦП ADCON0
Настроить прерывание от АЦП
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.