Обозначения: I - Вход, О - Выход, I/O - Вход/Выход, Р - вывод питания,
TTL - стандартный TTL вход, ST - вход с триггером Шмитта.
Примечания:
1. Триггер Шмитта на входе применяется, только если вывод сконфигурирован, как вход внешнего прерывания.
2. Триггер Шмитта на входе применяется только в режиме последовательного программирования кристалла.
3. Триггер Шмитта на входе применяется только если включен режим RC-генератора, в остальных случаях как CMOS вход.
Микроконтроллеры PIC16F84 могут программироваться непосредственно на плате устройства, что позволяет отлаживать программу либо записывать константы и калибровочные данные. Для программирования на плате необходимо максимум пять проводов: питание +5В, напряжение программирования, последовательные данные, тактирующие импульсы и общий. Память программ только встроенная.
Таблица 3.3 - Электрические параметры
Параметр
Значение
Примечание
Рабочая температура Та,°С
0 ... +40
-40... +85
Коммерческое исполнение.
Индустриальное исполнение
Максимальная тактовая частота Fosc, МГц
4
10
PIC16F84-4
PIC16F84-10
Напряжение питания
Vdd,B
2,0... 6,0
4,0... 6,0
PIC16LF84
PIC16F84
Потребляемый ток в стандартном режиме Idd, мА
1,8 ...4,5
5... 10
Fosc=4 МГц, Vdd=5.5 В Fosc=10MГц, Vdd=5.5B
Потребляемый ток в стандартном режиме Idd, мA
1 ...4
15... 45
Fosc=2 МГц, Vdd=5.5 В
Fosc=32 кГц, Vdd=2.0 В,
WDT отключен
Потребляемый ток в режиме SLEEP Ipd, мкА для PIC16F84
7... 28
1 ... 16
1 ... 14
Vdd=4 В, WDT вкл., инд.
Vdd=4 В, WDT выкл., инд.
Vdd=4 В, WDT выкл., комм.
Потребляемый ток в режиме SLEEP Ipd, мкА для PIC16LF84
3... 16
0,4 ...9
0,4... 7
Vdd=2 В, WDT вкл., инд.
Vdd=2 В, WDT выкл., инд.
Максимальный втекающий ток для любого вывода, мА
25
Управление светодиодами без дополнительного буфера (но с резистором!)
Максимальный вытекающий ток для любого вывода, мА
20
Количество циклов стирание/запись для флэш-памяти программ, не менее
1000
Количество циклов стирание/запись для памяти данных EEPROM, не менее
10.000.000
Организация памяти.
В микроконтроллерах PIC16F84 существует два блока памяти - память программ и память данных. Каждый блок имеет собственную шину, таким образом, доступ к блокам может происходить одновременно.
Память данных, в свою очередь, разделена на специальные регистры и регистры общего применения (ОЗУ пользователя). Специальный регистры применяются для хранения битов состояния, определяющих работу портов вода/вывода, таймеров и других периферийных модулей контроллера.
Кроме специальных регистров и ОЗУ, пространство памяти данных содержит ячейки EEPROM. Эта область памяти не может быть адресована непосредственно, и доступ к ней получают через специальный регистр косвенной адресации EEADR, в который записывают порядковый номер ячейки. 64 байта EEPROM имеют номера с 00h по 3Fh. Обычно EEPROM используется для хранения констант, значения которых не должны пропадать при отключении питания, например кодов управления, индивидуальных номеров и т.п. Важным достоинством EEPROM является то, что данные в ней могут быть изменены даже после занесения программы в однократно программируемый кристалл.
Память программ.
Микроконтроллеры PIC16F84 имеют 13-битный программный счетчик, позволяющий адресовать до 8К х 14 памяти программ. В PIC16F84 доступны первые 1024 (0000h-03FFh) ячеек памяти. Обращение к старшим адресам, лежащим за пределами указанного диапазона физически равносильно обращению к соответствующим адресам внутри диапазона, например, адреса 30h, 430h, 830h, C30h, 1030h, 1430h, 1830h и 1C30h равносильны и адресуют одну и ту же команду.
Старт по сбросу происходит с адреса 0000h, вектор прерывания один и расположен по адресу 0004h. Обычно по адресу 0004h располагают подпрограмма распознавания и обработки прерываний, а по адресу 0000h команду перехода на метку, расположенную за подпрограммой обработки прерывания.
Память данных.
В микроконтроллерах PIC16F84 память данных разбита на две части - специальные регистры и регистры общего применения (ОЗУ пользователя). Кроме этого, память данных разделена на два банка.
Таблица 3.4 - Организация памяти данных
Адрес
00h
Косвенный адрес
80h
0lh
TMR0
OPTION
81h
02h
PCL
82h
03h
STATUS
83h
04h
FSR
84h
05h
PORTA
TRISA
85h
06h
PORTB
TRISB
86h
07h
Недоступен
87h
08h
EEDATA
EECON1
88h
09h
EEADR
EECON2
89h
0Ah
PCLATH
8Ah
0Bh
INTCON
8Bh
0Ch
4Fh
68 регистров общего применения (SRAM)
Отображается на пространство банка 0
8Ch
CFh
50h
7Fh
D0h
FFh
Банк 0
Банк 1
Переключение банков происходит при помощи задания 5-го бита в регистре STATUS. Если бит установлен в 0, адресуется нулевой банк, если в 1, соответственно, первый.
Специальные регистры
Специальные регистры представляют собой статическое ОЗУ.
Регистр STATUS (Адрес 03Н, 81Н)
Регистр STATUS хранит арифметические флаги АЛУ, информацию о сбросе и бит выбора банка памяти данных.
bit7 IRP - регистр выбора банка памяти, применяемый при косвенной адресации. Это бит не применяется в PIC16F84 и должен всегда оставаться сброшенным.
0 = bank 0,1 (00h-FFh)
1 = bank 2,3(100h-1FFh)
bit6-5 RP1, RP0 - регистр выбора банка памяти, применяемый при прямой адресации.
00 = bank 0 (00h-7Fh)
01 = bank 1 (80h-FFh)
bit4 TO - флаг срабатывания сторожевого таймера. Устанавливается в 1 при включении питания и командами CLRWDT и SLEEP. Сбрасывается в 0 по завершении выдержки сторожевого таймера.
bit3 PD - режим хранения данных. Устанавливается в 1 при включении питания или выполнении команды CLRWDT. Сбрасывается в 0 командой SLEEP.
bit2 Z - флаг нулевого результата. Устанавливается в 1, если результат арифметической или логической операции равен нулю. Сохраняет свое значение до следующей операции.
bit1 DC - флаг десятичного переноса. Используется для команд ADDWF, ADDLW, SUBWF и SUBLW. Отслеживает перенос из четвертого разряда результата.
1 = Произошел перенос при сложении
0 = Не произошел перенос при сложении
Вычитание в АЛУ выполняется сложением кода первого операнда с дополнительным кодом второго операнда. Значение бита контекстно зависит от того, какая операция выполнялась. Для операции вычитания значения бита инвертированы.
Страницы: 1, 2, 3, 4, 5