- •Кузнецов в.Н., Лисютченков с.Н. Цифровые и микропроцессорные устройства
- •Часть 3
- •220301– Автоматизация технологических процессов и производств
- •Содержание
- •Предисловие
- •Лабораторная работа №1 «Освоение среды разработки vmlab 3.12»
- •1.2 Теоретическое введение
- •1.2.1 Общие сведения
- •1.2.2 Среда разработки vmlab
- •1.2.3 Описание пользовательского интерфейса
- •1.2.4 Команды меню
- •Save All − сохранить все файлы Save As − сохранить файл текущего окна под новым именем
- •1.2.5 Доступные окна
- •1.2.6 Аппаратные компоненты
- •1.2.7 Формат программы на ассемблере
- •1.3 Порядок выполнения лабораторной работы
- •1.3.1 Создание нового проекта
- •1.3.2 Редактирование файла ассемблера
- •1.3.3 Ассемблирование и выполнение программы
- •1.4 Задание на лабораторную работу
- •1.5 Контрольные вопросы
- •1.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №2 «Изучение микроконтроллера aTmega128 и основы программирования»
- •2.2.1 Общие сведения о микроконтроллере aTmega128
- •Регистры ввода/вывода (рвв)
- •Организация памяти
- •Внешние прерывания
- •2.2.9 Директивы транслятора ассемблера
- •2.2.10 Выражения
- •2.2.11 Операнды
- •2.2.12 Функции
- •2.2.13 Операции
- •2.3 Порядок выполнения лабораторной работы
- •2.4 Задание на лабораторную работу
- •Задание для индивидуальной работы
- •2.5 Контрольные вопросы
- •2.6 Содержание отчета по лабораторной работе
- •3.2.2 Адресация в микроконтроллере
- •3.2.3 Команды пересылки данных
- •Mov Rd,Rr(пересылка между рон) – копирует содержимое регистра Rrв регистр Rd. Регистр-источник Rrне изменяется.
- •3.2.4 Команды передачи управления
- •3.3 Порядок выполнения лабораторной работы
- •3.4 Задание на лабораторную работу
- •3.5 Контрольные вопросы
- •3.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №4 «Выполнение арифметических операций»
- •4.2 Теоретическое введение
- •4.3 Порядок выполнения лабораторной работы
- •4.4 Задание на лабораторную работу
- •4.5 Контрольные вопросы
- •4.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №5 «Изучение логических операций»
- •5.2 Теоретическое введение
- •Управление энергопотреблением и режимы сна.
- •5.3 Порядок выполнения лабораторной работы
- •5.4 Задания на лабораторную работу
- •5.5 Контрольные вопросы
- •5.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №6 «Изучение портов ввода/вывода и их программирование»
- •6.2 Теоретическое введение
- •6.2.1 Общие сведения
- •6.2.2 Порты в качестве универсального цифрового ввода-вывода
- •6.2.3 Настройка выводов
- •6.2.4 Неподключенные выводы
- •6.2.5 Альтернативные функции порта
- •6.2.5.1 Альтернативные функции порта a
- •6.2.5.2 Альтернативные функции порта в
- •6.2.5.3 Альтернативные функции порта c
- •6.2.5.4 Альтернативные функции порта d.
- •6.2.5.5 Альтернативные функции порта e
- •6.2.5.6 Альтернативные функции порта f
- •6.2.5.1 Альтернативные функции порта g
- •6.2.6 Описание регистров портов ввода-вывода
- •6.2.7 Обращение к портам ввода/вывода
- •6.3 Порядок выполнения лабораторной работы на симуляторе
- •6.4 Задание на лабораторную работу
- •Задания для индивидуальной работы
- •Контрольные вопросы
- •6.6 Содержание отчета по лабораторной работе
- •Лабораторная работа №7.
- •7.2.1 Общие сведения о Память
- •7.2.2 Статическое озу памяти данных
- •7.2.3 Организация памяти
- •7.2.4 Запоминающее устройство sram
- •7.2.5 Временная диаграмма доступа к памяти
- •7.3 Память данных на эсппзу
- •7.3.1 Чтение и запись эсппзу
- •7.3.2 Адресные регистры эсппзу
- •Порядок выполнения
- •7.4 Память ввода-вывода
- •Порядок выполнения
- •Порядок выполнения
- •7.5 Задание на лабораторную работу
- •Задание для индивидуальной работы
- •7.6 Контрольные вопросы
- •7.7 Содержание отчета по лабораторной работе
- •Генерация тактовых импульсов
- •Инициализация усапп
- •8.2.2 Передача данных - Передатчик усапп
- •8.2.3 Прием данных - Приемник усапп
- •Асинхронный прием данных
- •8.2.4 Многопроцессорный режим связи
- •8.2.5 Описание регистров усапп
- •8.2.6 Последовательный периферийный интерфейс - spi
- •8.2.7 Функционирование вывода ss
- •8.2.8 Связь двух мк
- •8.3 Задание на лабораторную работу
- •Задание для индивидуальной работы
- •8.6 Контрольные вопросы
- •Лабораторная работа №9 «Изучение принципа работы таймеров/счетчиков микроконтроллера»
- •9.2 Теоретическое введение
- •9.2.1 Общие сведения о таймерах/счетчиках
- •9.2.2 Назначение выводов таймеров/счетчиков
- •9.2.5 Выбор источника тактового сигнала
- •9.2.6 Режим таймера
- •9.2.7 Функция захвата (Capture)
- •9.2.8 Функция сравнения (Compare)
- •9.2.9 Режим шим
- •9.2.10 Сторожевой таймер
- •9.2.11 Общие сведения о работе клавиатуры
- •9.2.12 Ввод кода нажатой клавиши
- •9.2.13 Сканирование и идентификация
- •Листинг проектного файла №9
- •На эмуляторе
- •9.4 Задание на лабораторную работу
- •Задания для индивидуальной работы
- •9.5 Контрольные вопросы
- •10.2.2 Функционирование модуля ацп
- •10.2.3 Принцип действия
- •10.2.4 Каналы дифференциального усиления
- •10.2.5 Изменение канала или выбор опорного источника
- •10.2.6 Входные каналы ацп
- •10.2.7 Источник опорного напряжения ацп
- •10.2.8 Повышение точности преобразования
- •10.2.9 Методы компенсации смещения
- •10.2.10 Описание получения результата преобразования
- •10.2.5 Параметры ацп
- •10.2 Порядок выполнения работы на симуляторе
- •На эмуляторе
- •10.3 Задание на лабораторную работу
- •Задания для индивидуальной работы
- •10.4 Контрольные вопросы
- •Приложение
- •Список литературы
1.2.6 Аппаратные компоненты
Шаблон каждого из ниже перечисленного компонента можно выбрать через меню Components.
Основные аналоговые компоненты
Резистор (Resistor)
Синтаксис:
R[<instName>] <nodeName> <nodeName> <value>
Примеры:
R1 n1 n2 10K ;Резистор R1 в 10 кОм подключается между точками n1 и n2
R node_a VSS 100; Резистор R в 100 Ом подключается между точкой node_a и силовым узлом VSS
Примечание:
Резистор нулевой величины не допускается использовать в схеме. Для того чтобы шунтировать сигнал, нужно использовать сопротивление небольшой величины, к примеру, в 1 Ом.
Конденсатор (Сapacitor)
Синтаксис:
C[<instName>] <nodeName> <PowerNode> <value>
Примеры:
C1 10n node1 VSS; Между точкой node1 и силовой точкой VSS подключен конденсатор C1 в 10 нФ
C 1u node_a VSS ; Между точкой node_а и силовой точкой VSS подключен конденсатор С в 10 мкФ
Примечание:
Второй узел (PowerNode) конденсатора должен быть подключен к VSS.
Ключ (Key)
Ключом можно управлять одной из кнопок панели управления.
Синтаксис:
K{0 - 9, A - F} <nodeName1> <nodeName2> [{NORMAL, LATCHED, MONOSTABLE(<timeValue>)}]
Параметры в скобках означают следующее:
0 - 9, A - F − цифровое и символьное обозначение кнопок панели управления;
NORMAL − в этом режиме ключ запирается пока нажата одна из кнопок панели управления;
LATCHED − в этом режиме при единичном нажатии на одну из кнопок панели управления ключ замыкается, а при повторном нажатии на кнопку ключ должен разомкнуться;
MONOSTABLE(<timeValue>) − режим, при котором ключ замкнут в течение времени определенного в timeValue.
Примеры:
K1 node1 VSS LATCHED ;Между node1 и VSS подключен ключ К1 в режиме LATCHED
KA node_a node_b ;Между node_a и node_b подключен ключ КА в режиме NORMAL
K3 myNode GND monostable(10m) ; Между myNode и GND подключен ключ К3 в режиме MONOSTABLE (время задержки − 10мс)
Светодиод (LED diode)
За состоянием светодиодов можно наблюдать на панели управления. В общей сложности панель управления может содержать 8 виртуальных светодиодов. Анод светодиода обязательно должен быть подключен к VDD.
Синтаксис:
D{1 - 8} VDD <nodeName>
Примеры:
D1 VDD node1; Между VDD и node1 подключен светодиод D1
D1 VDD PB0; Между VDD и ножкой МК PB0 подключен светодиод D1
D2 VDD node2; Подключение светодиода между VDD и ножкой МК PB0
R2 node2 PB0 1K ; через резистор номиналом в 1 КОм
Аналоговые генераторы напряжения
Импульсный генератор напряжения (V Pulse)
Синтаксис:
V[<instName>] <nodeName> <powerNode> PULSE(<vInitial> <vFinal> <tDelay> <tRise> <tFall> <tWidth> <tPeriod>)
Параметры:
<vInitial> − нижний порог напряжения;
<vFinal> − верхний порог напряжения;
<tDelay> − задержка сигнала относительно начала координат;
<tRise> − время нарастания импульса;
<tFall> − время спада импульса;
<tWidth> − длительность импульса;
<tPeriod> − период следования импльсов.
Примеры:
V PA0 VSS pulse(0 5 40u 0 0 50u 100u)
;К PA0 и VSS подключен генератор с параметрами:
;напряжение импульса от 0 до 5В, прямоугольный импульс с длительностью 50мкс и периодом ;100 мкс
Vpulse node1 VSS PULSE(2.5 3.5 0 1u 1u 1.5m 2.5m)
; К node1 и VSS подключен генератор с
;параметрами: напряжение импульса от 2,5 до 3,5В, время нарастания и спада импульса 1мкс, ;длительность импульса 50мкс, а период − 100 мкс
Примечание:
Второе узловое имя (powerNode) должно быть всегда силовым узлом: VDD, VSS, GND (или 0).
Синусоидальный генератор напряжения (V Sinewave)
Синтаксис:
V[<instName>] <nodeName> <powerNode> SIN(<vOffset> <vAmplitude> <frequency>)
Параметры:
<vOffset> − точка смещения синусоиды от начала координат;
<vAmplitude> − амплитуда синусоиды;
<frequency> − частота синусоиды.
Примеры:
Vsin PA0 VSS sin(2.5 2.5 10K) ; К PA0 и VSS подключен генератор с параметрами: смещение ;относительно начала координат 2,5, амплитуда сигнала 2,5В, частота 10 кГц
Примечание:
Второе узловое имя (powerNode) должно быть всегда силовым узлом: VDD, VSS, GND (или 0).
Цифровой генератор (V Digital NRZ)
Этот генератор позволяет формировать последовательности логических единиц и нулей.
Всего может быть подключено 16 генераторов, запускаемых каждой клавишей на панели управления. Активизация генератора происходит после нажатия соответствующей клавиши.
Синтаксис:
Syntax:
P[<instName>] NRZ(<timeBit>) <nodeName> KEY_<keyNumber> "<pattern>"
[+ KEY_<keyNumber> "<pattern>"]
[+ RESET "<pattern>"
[+ ....]
Параметры:
<timeBit> − длительность импульса;
<keyNumber> − номер клавиши;
<pattern> − логическая последовательность.
Примеры:
P1 NRZ(20u) PB0 KEY_1 "01000110xx0000100111" ;К PB0 подключен генератор с параметрами: длительность импульса 20мкс, генератор запускается после нажатия клавиши“1”