Рефераты. Разработка и описание работы устройства на PIC-контроллере

Обозначения: 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 выкл., инд.

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

PCL

82h

03h

STATUS

STATUS

83h

04h

FSR

FSR

84h

05h

PORTA

TRISA

85h

06h

PORTB

TRISB

86h

07h

Недоступен

Недоступен

87h

08h

EEDATA

EECON1

88h

09h

EEADR

EECON2

89h

0Ah

PCLATH

PCLATH

8Ah

0Bh

INTCON

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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.