Файл: Архитектура и основы программирования однокристальных микроконтроллеров.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 10.11.2023

Просмотров: 1042

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

при установленном бите защиты невозможно допрограммировать контроллер.

    1. 1   2   3   4   5   6   7   8   9   ...   27

Структурная организация

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

13

Память программы ЭППЗУ 1Кх14
Шина
Программный счетчик
13


  1. уровневый стек

8

Регистры общего назначения

(ОЗУ) 68х8
Шина данных

ЭППЗУ

Память данных

64х8

14 команд

(13 бит)
7

EEADR

Регистр команд

7 Прямой адрес

Мультиплексор адреса
7

Косвенный адрес

RA4/TOCKI

FSR

Регистр состояния

STATUS

8

Счетчик

TMR0

PORT B
RA3 RA0


Таймер включения питания PWRT

Таймер запуска генератора OST

Схема сброса

POR

Сторожевой таймер WDT



6

Декодер команд и схема управления

Тактовый генератор

OSC2/CLKOUT

OSC1/CLKIN MCLR VDD, VSS

Регистр

TRIS A

PORT A
Мультиплексор


АЛУ

Регистр W


Регистр

TRIS B
OPTION
INTCON

RB7 RB0


Рис. 1.1. Структурная схема PIC16F84
работают с высокой скоростью и с перекрытием по времени выборок команд ицикловвыполнения.14-битоваяширинапрограммнойпамятиобеспечиваетвыборку14-битовойкомандызаодинцикл.Двухступенчатыйконвейеробеспечиваетодновременнуювыборкуследующейиисполнениетекущейкоманды.Всекомандывыполняютсязаодинмашинныйцикл,исключаякомандыпереходов,которыевыполняютсязадвацикла.ВPIC16F84программнаяпамятьобъемом1Кх14расположенавнутрикристалла.Исполняемаяпрограммаможетнаходитьсятолько во внутреннемПЗУ.РегистрыРIС16F84разделяютсянадвефункциональныегруппы:специальные и общего назначения. Специальные регистры используются дляуправления режимами работы функциональных блоков контроллера, регистрыобщегоназначения(памятьданных)-дляхраненияпеременных.Микроконтроллер РIС16F84 использует прямую и косвенную адресациювсех регистров и ячеек памяти. Все специальные регистры и счетчик командтакже адресуются как память данных. Ортогональная (симметричная) системакоманд позволяет выполнять любую операцию с любым регистром, используялюбойизназванныхвышеметодовадресации.Этооблегчаетпрограммирование для РIС16F84 и значительно уменьшает время, необходимоенаобучениеработесмикроконтроллером.ВмикроконтроллерахРIС16F84имеется8-разрядноеарифметико-логическое устройство (АЛУ) и рабочий регистр W. АЛУ выполняет сложение,вычитание,сдвиг,битовые
илогическиеоперации.Вкомандах,обрабатывающихдваоперанда,одинизоперандовсодержитсяврабочемрегистре W. Второй операнд может быть константой или содержимым любогорегистраОЗУ.Вкомандахсоднимоперандомоперандможетбытьсодержимым рабочего регистра илилюбого регистра ОЗУ. Длявыполнениявсех операций АЛУ используется рабочий регистр W, который не может бытьпрямоадресован.РезультатоперациивАЛУпомещаетсялибоврабочийрегистр W,либов регистр ОЗУ.В зависимости от результата выполнения операции изменяются значениябитов переноса (С), десятичного переноса (DC) и нулевого результата (Z) врегистре состояния STATUS. При вычитании биты С и DC работают как битызаемаидесятичногозаемасоответственно.Условноеграфическоеизображениемикроконтроллерапоказанонарис.1.2,аназначениевыводов приведено в табл.1.1.Таблица 1.1

Наименование

Номер

Тип

Логические уровни

Назначение

1

2

3

4

5













PORTA является двунаправленным













портом ввода/вывода

RA0

17

I/O

TTL




RA1

18

I/O

TTL




RA2

1

I/O

TTL




RАЗ

2

I/O

TTL




RA4/T0CKI

3

I/O

ST

Выход с открытым стоком/вход таймера













TMR0













PORTB является двунаправленным













портом ввода/вывода. Имеет на всех













выводах программно включаемые













подтягивающие резисторы

RB0/INT

6

I/O

TTL/ST(1)

Вход внешних прерываний

RB1

7

I/O

TTL




RB2

8

I/O

TTL




RB3

9

I/O

TTL




RB4

10

I/O

TTL

Прерывание по изменению состояния

RB5

11

I/O

TTL

Прерывание по изменению состояния

RB6

12

I/O

TTL/ST(2)

Прерывание по изменению состояния, тактирование при программировании

RB7

13

I/O

TTL/ST(2)

Прерывание по изменению состояния, данные при программировании

MCLR/VPP

4

I

ST

Вход сброса/напряжение

программирования. Сброс низким уровнем

OSC1/CLKIN

16

I

ST/CMOS(3)

Вход генератора/внешняя тактовая частота

OSC2/CLKOUT

15

0

___

Выход генератора. Подключается к

резонатору. В режиме RC-генератора выход 1/4 тактовой частоты OSC1

Окончаниетабл. 1.1

1

2

3

4

5

VDD

14

Р



Положительное напряжение питания

VSS

5

Р

___

Общий вывод
Примечания:

  1. I - вход, О - выход, I/O - вход/выход, Р - питание, — - не используется, TTL - вход ТТЛ, ST - вход с триггером Шмитта.

  2. Буфер является триггером Шмитта при использовании в режиме внешних прерываний.

  3. Буфер является триггером Шмитта при использовании в режиме последовательного программирования.

  4. Буфер является триггером Шмитта при использовании в режиме RC-генератора и КМОП-входом — в остальных случаях.



    1. MC


      RA2 RA3 RA4

      MCLR

      VSS RB RB1

      RB2
      RB3
      RA1

    2. RA

    3. OSC1

    4. OSC2

V 5


PIC16F84
DD

  1. RB7

  2. RB6

  3. RB5

  4. RB4

18
17
16
15
14
13
12
11
10




Рис. 1.2. Условное графическое изображение PIC16F84

Входная тактовая частота, поступающая с вывода OSC1/CLKIN, внутри делится на четыре, и из нее формируются четыре циклические неперекрывающиеся тактовые последовательности Q1, Q2, Q3 и Q4. Счетчик команд увеличивается в такте Q1, команда считывается из памяти программы и защелкивается в регистре команд в такте Q4. Команда декодируется и выполняется в течение последующего цикла в тактах Q1...Q4. Временная диаграмма тактирования и выполнения команд изображена на рис. 1.3.