Главная страница

порт. Дипломный проект дп 09. 02. 01 Эвм475102020 2020 Министерство образования и молодежной политики Свердловской области


Скачать 1.19 Mb.
НазваниеДипломный проект дп 09. 02. 01 Эвм475102020 2020 Министерство образования и молодежной политики Свердловской области
Дата08.06.2022
Размер1.19 Mb.
Формат файлаdocx
Имя файлаDIPLOM (1).docx
ТипДиплом
#577354
страница7 из 20
1   2   3   4   5   6   7   8   9   10   ...   20

4.8 Кнопка KLS7-TS6601




Рисунок 17 - Кнопка KLS7-TS6601


Рисунок 18 - Габаритные размеры кнопки KLS7-TS6601

Таблица 17 - Электрические параметры

Тип

Прямая

продолжение таблицы 17

Способ монтажа

В отверстия на плату

Рабочее напряжение, В

12

Рабочий ток, А

0,05

Высота, мм

5

Типоразмер

6х6

Вес,г

0,25


4.9 Микроконтроллер ATMEGA16



4.9.1 Основные характеристики микроконтроллера ATMEGA16




  • AVR RISC-архитектура - архитектура высокой производительности и малого потребления;

  • система команд содержит 130 инструкций, большинство которых выполняется за один машинный цикл;

  • единый 16-разрядный формат команд;

  • производительность 16 MIPS на частоте 16 МГц;

    • наличие аппаратного умножителя;

    • 16 Кбайт Flash ПЗУ программ, с возможностью до 1000 циклов стирания/записи;

  • 512 байт ЭСППЗУ (EEPROM) данных, с возможностью до 100000 циклов стирания/записи;

  • 1 Кбайт оперативной памяти (SRAM);

  • возможность программирования непосредственно в целевой

  • системе через последовательные интерфейсы SPI и JTAG;

  • возможность самопрограммирования;

  • возможность внутрисхемной отладки в соответствии со стандартом IEEE 1149.1 (JTAG);

  • различные способы синхронизации;

  • встроенный RC-генератор с внутренней и внешней задающей RC-цепочкой или с внешним резонатором (пьезокерамическим или кварцевым); внешний сигнал синхронизации;

  • 6 режимов пониженного энергопотребления (Idle, ADC Noise Reduction, Power-save, Power-down, Standby и Extended Standby);

  • детектор снижения напряжения питания (BOD);

  • программное снижение частоты тактового генератора;

  • 21 источник прерываний (внутренних и внешних);

  • ·многоуровневая система прерываний, поддержка очереди прерываний;

  • возможность защиты от несанкционированного чтения и модификации памяти программ и данных;

  • загрузочный сектор с независимыми битами защиты;

  • возможность чтения памяти программ во время ее записи;

  • два 8-разрядных таймера/счетчика с предварительным делителем частоты и режимом сравнения;

  • 16-разрядный таймер/счетчик с предварительным делителем

  • частоты, режимом сравнения и режимом внешнего события;

  • сторожевой таймер WDT;

  • четыре канала генерации выходных ШИМ-сигналов;

  • аналоговый компаратор;

  • 8-канальный 10-разрядный АЦП как с несимметричными, так и с дифференциальными входами;

  • полнодуплексный универсальный синхронный/асинхронный

  • приемопередатчик USART;

  • последовательный синхронный интерфейс SPI, используемый также для программирования Flash-памяти программ;

  • последовательный двухпроводный интерфейс TWI (аналог I2C)

    • 32 программируемые линии ввода/вывода с уровнями ТТЛ; на эти линии выведена также поддержка периферийных функций;

  • напряжения питания 2.7 … 5.5 В.




Рисунок 16 - Блок-схема микроконтроллера ATMEGA16



Рисунок 17 - Порты ввода/вывода микроконтроллера ATMEGA16

4.9.2 Описание портов ввода/вывода микроконтроллера ATMEGA16


Таблица 16 - Порты ввода/вывода микроконтроллера ATMEGA16

Обозначение

Номер 
вывода

Тип вывода

DIP

Описание




XTAL1

13

8

I

Вход тактового генератора

XTAL2

12

7

O

Выход тактового генератора

RESET

9

4

I

Вход сброса




AREF

32

29

P

Вход опорного напряжения для АЦП




AGND

31

28

P

Общий вывод (аналоговый)




AVCC

30

27

P

Вывод источника питания АЦП




GND

11

6, 18, 39

P

Общий вывод




VCC

10

5, 17, 38

P

Вывод источника питания




PA0 (ADC0) – PA7 (ADC7)

40 – 
– 33

37– 
– 30

I/O

A0 – А7 (Вход канала 0–7 АЦП)




PB0 (T0/XCK)

1

40

I/O

B0 (Вход внешнего тактового сигнала таймера/счетчика Т0 / Вход/выход тактового сигнала USART)





продолжение таблицы 16

PB0 (T0/XCK)

1

40

I/O

B0 (Вход внешнего тактового сигнала таймера/счетчика Т0 / Вход/выход тактового сигнала USART)

PB1 (T1)

2

41

I/O

B1 (Вход внешнего тактового сигнала таймера/счетчика Т1)

PB2 (AIN0/INT2)

3

42

I/O

B2 (Положительный вход компаратора / Внешнее прерывание)

PB3 (AIN1/OC0)

4

43

I/O

B3 (Отрицательный вход компаратора / Выход таймера/счетчика Т0 (режимы Compare, PWM))

PB4 ( SS )

5

44

I/O

B4 (Выбор Slave-устройства на шине SPI)

PB5 (MOSI)

6

1

I/O

B5 (Выход (Master) или вход (Slave) данных модуля SPI)

PB6 (MISO)

7

2

I/O

B6 (Вход (Master) или выход (Slave) данных модуля SPI)

PB7 (SCK)

8

3

I/O

B7 (Выход (Master) или вход (Slave) тактового сигнала модуля SPI)

PC0 (SCL)

22

19

I/O

C0 (Тактовый сигнал модуля TWI)

PC1 (SDA)

23

20

I/O

C1 (Линия данных модуля TWI)

PC2 (TCK)

24

21

I/O

C2 (Тактовый сигнал JTAG)

PC3 (TMS)

25

22

I/O

C3 (Выбор режима JTAG)

PC4 (TDO)

26

23

I/O

C4 (Выход данных JTAG)

PC5 (TDI)

27

24

I/O

C5 (Вход данных JTAG)

PC6 (TOSC1)

28

25

I/O

C6 (Выход для подключения резонатора к таймеру/счетчику Т2)

PC7 (TOSC2)

29

26

I/O

C7 (Вход для подключения резонатора к таймеру/счетчику Т2)

PD0 (RXD)

14

9

I/O

D0 (Вход USART)

PD1 (TXD)

15

10

I/O

D1 (Выход USART)

PD2 (INT0)

16

11

I/O

D2 (Вход внешнего прерывания)

PD3 (INT1)

17

12

I/O

D3 (Вход внешнего прерывания)

PD4 (OC1B)

18

13

I/O

D4 (Выход B таймера/счетчика Т1 (режимы Compare, PWM))

PD5 (OC1A)

19

14

I/O

D5 (Выход A таймера/счетчика Т1 (режимы Compare, PWM))

PD6 (ICP)

20

15

I/O

D6 (Вход захвата таймера/счетчика Т1 (режим Capture))

PD7 (OC2)

21

16

I/O

D7 (Выход таймера/счетчика Т2 (режимы Compare, PWM))

Микроконтроллер ATmega16 имеет прогрессивную RISC архитектуру и энергонезависимую память программ и данных. Интерфейс микроконтроллера JTAG совместим с IEEE 1149.1. Микроконтроллер выполняет и специальные микроконтроллерные функции, такие как: сброс по подаче питания, программируемую индикацию кратковременного снижения напряжения питания, шесть режимов пониженного потребления и снижения шумов ADC и др. Питание микроконтроллера осуществляет источника постоянного напряжения 4,5 - 5,5 В. Тактовая частота работы микроконтроллера лежит в диапазоне 0 – 16 МГц. Ядро микроконтроллеров AVR выполнено по усовершенствованной RISC-архитектуре (enhanced RISC). Арифметико-логическое устройство (АЛУ), выполняющее все вычисления, подключено непосредственно к 32 рабочим регистрам, объединенным в регистровый файл.

Практически каждая из команд (за исключением команд, у которых одним из операндов является 16-разрядный адрес) занимает одну ячейку памяти программ. Файл регистров быстрого доступа содержит 32 8- разрядных рабочих регистра общего назначения, связанных непосредственно с АЛУ. За один тактовый цикл из файла регистров выбираются два операнда, выполняется операция, и результат вновь возвращается в файл регистров. Все регистры ввода-вывода (РВВ) условно можно разделить на две группы – служебные регистры микроконтроллера и регистры, относящиеся к конкретным периферийным устройствам.

Микроконтроллер ATmega16 имеет в своем составе три таймера-счетчика с условными именами Т0, Т1 и Т2. По функциональности 8-разрядные таймеры Т0 и Т2 аналогичны. Таймеры в процессе своей работы используют некоторые внешние выводы микроконтроллера в режиме альтернативных функций.

Микроконтроллеры ATmega16 оснащены 10-разрядным АЦП последовательного приближения. Аналого-цифровой преобразователь характеризуется абсолютной погрешностью ±2 МЗР, интегральной нелинейностью ±0.5 МЗР и быстродействием до 15 тысяч выборок за секунду.

На входе модуля АЦП всех моделей имеется 8-канальный аналоговый мультиплексор, предоставляющий в распоряжение пользователя 8 каналов с несимметричными входами. В качестве источника опорного напряжения для АЦП может использоваться как напряжение питания микроконтроллера, так и внутренний либо внешний источник напряжения. АЦП может функционировать в двух режимах: - режим одиночного преобразования, когда запуск каждого преобразования инициируется пользователем; - режим непрерывного преобразования, когда выполняется непрерывно через определенные интервалы времени. Микроконтроллер поставляется в корпусах двух типов: TQFP44 и PDIP40.



Рисунок 18 - Конструкция корпуса PDIP4

4.9.3 Память программ и стек


Память программ представляет собой электрически стираемое ППЗУ (FLASH-ПЗУ). В связи с тем, что длина всех команд кратна одному слову (16 бит), память программ имеет 16-битную организацию. Объем памяти микроконтроллера ATmega16 составляет 16К (16x1024) 16-битных слов. Память программ логически разделена на две неравные части: область прикладной программы и область загрузчика.

Последней может располагаться специальная программа (загрузчик), позволяющая микроконтроллеру самостоятельно управлять загрузкой и выгрузкой прикладных программ. Если же возможность самопрограммирования у микроконтроллера не используется, прикладная программа может располагаться и в области загрузчика. Для адресации памяти программ используется счетчик команд (Program Counter — PC).

Размер счетчика команд составляет 12 бит, в зависимости от объема адресуемой памяти. По адресу $0000 памяти программ находится вектор сброса. После инициализации (сброса) микроконтроллера выполнение программы начинается с этого адреса (по этому адресу должна размещаться команда перехода к инициализационной части программы). Начиная с адреса $0002 памяти программ, располагается таблица векторов прерываний. Стек реализован программно. Он размещается в памяти данных, и его глубина определяется только размером свободной области памяти данных.

В качестве указателя стека во всех моделях используется пара регистров ввода/вывода SPH: SPL, расположенных по адресам $ЗЕ ($5Е) и $3D ($5D) соответственно. Так как после подачи напряжения питания (или после сброса) в регистрах содержится нулевое значение, в самом начале программы указатель стека необходимо проинициализировать, записав в него значение верхнего адреса памяти данных.

При вызове подпрограмм адрес команды, расположенной за командой вызова, сохраняется в стеке. Значение указателя стека при этом уменьшается на 2 или 3, в зависимости от размера счетчика команд. При возврате из подпрограммы этот адрес извлекается из стека и загружается в счетчик команд. Значение указателя стека соответственно увеличивается на 2 (3). То же происходит и во время прерывания. При генерации прерывания адрес следующей команды сохраняется в стеке, а при возврате из подпрограммы обработки прерывания он восстанавливается из стека. Стек доступен и программно. Для работы со стеком имеются две команды: команда занесения в стек (P USH) и команда извлечения из стека (POP).

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


Память данных микроконтроллера разделена на три части: регистровая память, оперативная память (статическое ОЗУ) и энергонезависимое ЭСППЗУ (EEPROM). Регистровая память включает 32 регистра общего назначения (РОН), объединенных в файл, и служебные регистры ввода/вывода (РВВ). В обеих областях регистров ввода/вывода располагаются различные служебные регистры (регистр управления микроконтроллера, регистр состояния и т. п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера. Для хранения переменных помимо регистров общего назначения также используется статическое ОЗУ объемом от 512 байт до 8 Кбайт.

Микроконтроллер, кроме того, имеет возможность подключения внешнего статического ОЗУ объемом до 64 Кбайт. Для долговременного хранения различной информации, которая может изменяться в процессе функционирования готовой системы (калибровочные константы, серийные номера, ключи и т. п.), в микроконтроллерах семейства может использоваться встроенная EEPROM-память. Ее объем составляет для различных моделей 512Кбайт. Эта память разложена в отдельном адресном пространстве, а доступ к ней осуществляется с помощью определенных РВВ.

В адресном пространстве ОЗУ также расположены все регистры микроконтроллера, под них отведены младшие 96 (256) адресов Остальные адреса отведены под 512/1К/2К/4К.…64К ячеек статического ОЗУ.



Рисунок 19 - Память данных

4.9.5 Прерывания


Микроконтроллеры AVR семейства Mega имеют многоуровневую систему приоритетных прерываний. Младшие адреса памяти программ, начиная с адреса $0002, отведены под таблицу векторов прерывания. Каждому прерыванию соответствует адрес в этой таблице, который загружается в счетчик команд при возникновении прерывания. Положение вектора в таблице также определяет и приоритет соответствующего прерывания: чем меньше адрес, тем выше приоритет прерывания.

Размер вектора прерывания зависит от объема памяти программ микроконтроллера и составляет 2 байта. Соответственно, для перехода к подпрограммам обработки прерываний в моделях используются команда JMP.

Во всех микроконтроллерах семейства Mega, за положение таблицы векторов прерываний может быть изменено. Таблица может располагаться не только в начале памяти программ, но также и в начале области загрузчика, причем перемещение таблицы может быть осуществлено непосредственно в ходе выполнения программы.

Для управления размещением таблицы прерываний используется регистр управления прерываниями GICR, расположенный по адресу $ЗВ ($5В). Для управления таблицей прерываний в этом регистре используются два младших бита: IVSEL (1-й бит) и IVCE (0-й бит).

Для глобального разрешения/запрещения прерываний предназначен флаг I регистра SREG. Для разрешения прерываний он должен быть установлен в I, а для запрещения - сброшен в 0. Индивидуальное разрешение или запрещение (маскирование) прерываний производится установкой/сбросом соответствующих битов регистров масок прерываний, рассматриваемых ниже.

При возникновении прерывания флаг I регистра SREG аппаратно сбрасывается, запрещая тем самым обработку следующих прерывании. Однако в подпрограмме обработки прерывания этот флаг можно снова установить в 1 для разрешения вложенных прерываний. При возврате из подпрограммы обработки прерывания (при выполнении команды RETI) флаг I устанавливается аппаратно.

Все имеющиеся прерывания можно разделить на два типа. Прерывания первого типа генерируются при наступлении некоторого события, в результате которого устанавливается флаг прерывания.

Затем, если прерывание разрешено, в счетчик команд загружается адрес вектора соответствующего прерывания. При этом флаг прерывания аппаратно сбрасывается. Он также может быть сброшен программно, записью лог. 1 в бит регистра, соответствующий флагу.

Прерывания второго типа не имеют флагов прерываний и генерируются в течение всего времени, пока присутствуют условия, необходимые для генерации прерывания. Соответственно, если условия, вызывающие прерывание, исчезнут до разрешения прерывания, генерации прерывания не произойдет.

Следует помнить, что при вызове подпрограмм обработки прерываний регистр состояния SREG не сохраняется. Поэтому пользователь должен самостоятельно запоминать содержимое этого регистра при входе в подпрограмму обработки прерывания (если это необходимо) и восстанавливать его значение перед вызовом команды RETI.

Микроконтроллеры семейства Mega поддерживают очередь прерываний, которая работает следующим образом: если условия генерации одного или более прерываний возникают в то время, когда флаг общего разрешения прерываний сброшен (все прерывания запрещены), соответствующие флаги устанавливаются в 1 и остаются в этом состоянии до установки флага общего разрешения прерываний.

4.9.6 Регистры ввода/вывода микроконтроллера ATMEGA16


Таблица 17 - Регистры ввода/вывода микроконтроллера ATMEGA16

Название

Адрес

Функция

SREG

$3F($5F)

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

SPH

$3E($5E)

Указатель стека, старший байт

SPL

$3D($5D)

Указатель стека, младший байт

OCR0

$3C($5C)

Регистр совпадения таймера/счетчика Т0

GICR

$3B($5B)

Общий регистр управления прерываниями

GIFR

$3A($5A)

Общий регистр флагов прерываний

TIMSK

$39($59)

Регистр маски прерываний от таймеров/счетчиков

продолжение таблицы 17

TIFR

$38($58)

Регистр флагов прерываний от таймеров/счетчиков

SPMCR

$37($57)

Регистр управления памятью программ

TWCR

$36($56)

Регистр управления TWI

MCUCR

$35($55)

Регистр управления МК

MCUCSR

$34($54)

Регистр управления и состояния МК

TCCR0

$33($53)

Регистр управления таймером/счетчиком ТО

TCNT0


$32($52)

Счетный регистр таймера/счетчика Т0

OSCCAL

$31($51)

Регистр калибровки тактового генератора

OCDR

$30($20)

Регистр специальных функций

SFIOR

$2F($4F)

Регистр управления А таймера/счетчика Т1

TCCR1A

$2E($4E)

Регистр управления В таймера/счетчика Т1

TCCR1B

$2D($4D)

Счетный регистр таймера/счетчика Т1, старший байт

TCNT1H

$2C($4C)

Счетный регистр таймера/счетчика Т1, младший байт

TCNT1L

$2B($4B)

Регистр совпадения А таймера/счетчика Т1, старший байт

OCR1AH

$2A($4A)

Регистр совпадения А таймера/счетчика Т1, младший байт

OCR1AL

$29($49)

Регистр совпадения В таймера/счетчика Т1, старший байт

OCR1BH

$28($48)

Регистр совпадения В таймера/счетчика Т1,

OCR1BL

$27($47)

Регистр захвата таймера/счетчика Т1, старший байт

продолжение таблицы 17

ICR1H

$26($46)

Регистр захвата таймера/счетчика Т1, младший байт

ICR1L

$25($45)

Регистр управления таймером/счетчика Т2

TCCR2

$24($44)

Счетный регистр таймера/счетчика Т2

TCNT2

$23($43)

Регистр совпадения таймера/счетчика Т2

OCR2

$22($42)

Регистр совпадения таймера/счетчика Т2

ASSR

$21($41)

Регистр состояния асинхронного режима

WDTCR

$20($40)

Регистр управления сторожевым таймером


4.9.7 Регистры портов ввода/вывода используемые в программе




Рисунок 20 - Регистр DDRC


Рисунок 21 - Регистр DDRB



Рисунок 22 - Регистр PORTB


Рисунок 23 - Регистр DDRA


Рисунок 24 - Регистр PORTA


Рисунок 25 - Регистр DDRD


Рисунок 26 - Регистр TCCR1B


Рисунок 27 - Регистр TCNT0



Рисунок 28 - Регистр TCCR0


Рисунок 29 - Регистр TCNT1


Рисунок 30 - Регистр WDTCR

1   2   3   4   5   6   7   8   9   10   ...   20


написать администратору сайта