- •Кузнецов в.Н., Лисютченков с.Н. Цифровые и микропроцессорные устройства
- •Часть 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.5 Доступные окна
Окно файла проекта
Файл проекта (рис. 1.2) является текстовым файлом с расширением .PRJ, который идентифицирует систему: аппаратные средства и программное обеспечение.
Файл проекта, как правило, содержит элементы:
директивы, начинающие строку с точки (пример: .PLOT V(n1) )
компоненты, начинающие строку с буквы (пример: R1 n1 n2 1K )
У директив или определений компонента могут быть формальные пункты в <угловых скобках>:
<inst_name>: Любой идентификатор, начинающийся с буквы или цифры, (идентификатор может содержать максимум 8 букв или цифр).
Примеры обозначения сопротивления, диода и ключа: R1, D1, С1.
<nodeName>: Любой идентификатор, начинающийся с буквы или цифры, (идентификатор может содержать максимум 8 букв или цифр).
Примеры обозначения узла схемы и ножки МК: node0, PB0.
<powerNode>: Любой из трех силовых идентификаторов узлов: “VDD”, “VSS” и “GND” (или число 0). VDD и VSS − силовые шины; GND (или число 0) − “земля” схемы.
Пример соединения светодиода с положительным полюсом источника питания и выводом МК PB0: D1 VDD PB0.
<value>: Знаковое или беззнаковое, дробное или целое десятичное числа. Числа могут иметь следующие суффиксы:
P(pico) = x10e-12
N(nano) = x10e-9
M(mili) = x10e-3
K(kilo) = x10e+3
MEG(mega) = x10e+6
Примеры представления величин сопротивления в 10 Ом,10 кОм, 10 МОм: 10, 10к, 10meg.
Просмотреть файл проекта открытого проекта можно через меню View/Project File (Alt+Shift+P).
Рис. 1.2 Окно файла проекта
Окно кодов
Окно кодов (рис. 1.3) является специальным окном редактора ассемблерного кода, кода языка Си или формата .COFF. Это окно используется для кодовых файлов определенных в директиве .PROGRAM файла проекта. VMLAB автоматически загружает связанные файлы в кодовое окно. Если подключаемый файл имеет не редактируемый код (подобно файлу .OBJ), будет выдано сообщение о невозможности загрузить файл.
Выбрать окно кодов открытого проектного файла можно через меню View/Code Notebook(Alt+Shift+N).
Рис. 1.3 Окно кодов
Окно осциллографа (Scope)
В окне осциллографа (рис. 1.4) можно следить за изменением сигналов, снимаемых с точек электрической схемы, во времени. Окно осциллографа имеет такие возможности:
увеличение и уменьшение области просмотра осциллограммы;
вертикальное и горизонтальное масштабирование осциллограммы;
измерение длительности сигнала от одной до другой точки;
Директива .PLOT работы с окном осциллографа указывает, в какой точке будет сниматься сигнал.
Синтаксис:
.PLOT V(<nodeName>) [V(<nodeName>) ...]
Пример:
.PLOT V(node1) V(PA0) V(PB0) ;Сигналы снимаются с узла node1 и выводов МК PA0 и PB0.
Для изменения масштаба по горизонтали нужно навести курсор на всплывающее меню Horiz/div и выбрать нужное значение. Те же изменения можно выполнить кнопками Zoom In и Zoom out.
Кнопка Analyze дает возможность измерить средние значения частоты и напряжения сигнала, а также максимальное и минимальное значения напряжения сигнала. Для получения этих сведений нужно навести курсор на измеряемый сигнал и нажать кнопку Analyze.
Для измерения длительности сигнала от нижней до верхней границ необходимо выбрать курсор Cursor 1 и поставить его на нижней границе, а потом курсором Cursor 2 обозначить верхнюю границу. Результат разности двух сигналов будет виден в окне Cursors delta time.
Открыть окно осциллографа можно через меню View/Scope (Alt+Shift+S).
Рис. 1.4 Окно осциллографа
Окно Watch
Окно watch (рис. 1.5) дает информацию о состоянии переменных или программы. Оно поделено на две секции:
Дисплей переменных. Он предназначен для отображения программных переменных. Изменить список переменных можно c помощью команды Add/Edit watch (F10);
Символический стек вызова. Стек вызова показывает обычные или вложенные уровни прерываний.
Для отображения окна нужно выбрать команду View/Watch (Alt+Shift+W).
Рис. 1.5 Окно Watch
Окно сообщений (Messages)
Окно сообщений (рис. 1.6) выдает все сообщения от компилятора, ассемблера; сообщения с предупреждениями, ошибками, и т.п. Окно поделено на четыре секции:
Секция файла проекта − для сообщений, исходящих из синтаксического анализа файла проекта;
Построителя кода − для сообщений, сформировавших компилятором, ассемблером и т.п.;
Выполнения программы − для сообщений о выполняемых действиях.
Для сообщений об инструментальных средств и найденных файлах;
Окно сообщений можно открыть командой View/Messages (Alt+Shift+M).
Рис. 1.6 Окно сообщений
В случае возникновения ошибок в файле проекта в окне сообщений будет выдано соответствующее предупреждение, а в самом файле проекта напротив строки с ошибкой появится восклицательный знак красного цвета.
Панель управления (Control panel)
Панель управления (рис. 1.7) позволяет пользователю управлять процессом симуляции. Оно позволяет:
Управлять скоростью симуляции;
Управлять температурой, при этом изменяется температура окружающей среды, влияющая на температурно-зависимые элементы;
Управлять частотой генератора МК. Нормально установленная величина частоты определяется в директиве .CLOCK в файле проекта.
Оценить текущее значение тока МК;
Наблюдать за 8-ю светодиодами, определить которые можно в файле проекта;
Управлять 3-я движками − S1, S2, S3. Эти элементы должны быть определены в файле проекта;
Управлять процессом 16-ю кнопками, которые определяются в файле проекта;
К этой панели могут быть подключены и другие модули (такие как LCD, TTY и др.) при соответствующем определении их в файле проекта.
Открыть панель управления можно через меню View/Control Panel (Alt+Shift+C).
Рис. 1.7 Панель управления
Панель управления с LCD (жидкокристаллическим индикатором)
К панели инструментов может быть подсоединен дополнительный модуль − LCD с контроллером HD44780 (рис. 1.8). Подключить LCD-модуль можно в файле проекта. Ниже указано, как это сделать.
Возможная размерность LCD: 8x1, 8x2, 16x1, 16x2, 16x4, 20x1, 20x2, 20x4, 24x2 и 40x2.
Этот модуль может работать как в 8-разрядном режиме приема данных, так и в 4-разрядном, что дает возможность использования меньшего числа линий порта ввода-вывода.
Синтаксис:
X[<instName>] LCD(<chars> <lines> <osc_freq>) <RS> <RW> <E> <D7>...<D0>
Параметры:
<chars> − количество знаков в строке;
<lines> − число строк;
<osc_freq> − время регенерации экрана;
<RS> − линия задания передачи данных/команд;
<RW> − линия передачи команд чтения/записи;
<E> − линия стробирующего импульса.
<D7>...<D0> − 8-разрядная линия передачи данных/команд.
Примеры:
X1 LCD(16 1 250K) PD2 PB0 PD3 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 ;К порту PA0 подключен LCD-модуль с параметрами: 16 знакомест, 1 строка, частота регенерации экрана 250 кГц, по линии PD2 передаются либо данные либо команды, по линии PB0 передаются команды чтения/записи, по линии PD3 передается сигнал-строб
Рис. 1.8 Панель управления с LCD-модулем
Окно регистров и флагов (Registers/flags)
Это окно (рис. 1.9) содержит все 32 регистра общего назначения и несколько регистров ввода-вывода. Для изменения содержимого регистра его нужно выбрать левой кнопкой мыши и вызвать всплывающее меню правой кнопкой. Это меню содержит:
битовые операции над регистром;
окно изменения/просмотра (Modify/browse);
форматы представления содержимого регистра (шестнадцатеричный (Hexadecimal), десятичный знаковый (Decimal signed), десятичный беззнаковый (Decimal unsigned), двоичный (Binary), ASCII-код (ASCII code), аналоговый (Analog)).
Окно регистров и флагов можно открыть через меню View/Registers/Flags (Alt+Shift+R).
Рис. 1.9 Окно регистров и флагов
Окно памяти данных (Data Memory)
В этом окне (рис. 1.10) отображена регистровая и оперативная память c адресами расположения данных. Ячейки памяти можно изменять также как и в окне регистров/флагов.
Окно открывается через меню View/Data Memory (Alt+Shift+D).
Рис. 1.10 Окно памяти данных
Окно памяти программ (Program Memory)
Окно памяти программ (рис. 1.11) содержит команды, управляющие функционированием микроконтроллера. Оно разделено на следующие поля:
Адресов (Address) − отображает адрес расположения кода команды в памяти программ;
Кода (Code) − в этом поле содержится шестнадцатеричный код команды;
Метки (Label) − показывает название метки;
Дизассемблированной команды (Disassemble) − показывает настоящее значение аргументов команды;
Числа обращений (Coverage) − показывает число обращений к команде;
Исходная программа (Source code line) − показывает программу в том виде, в котором она записана в файле кодов.
Окно памяти программ можно открыть через меню View/Program Memory (Alt+Shift+G).
Рис. 1.11 Окно памяти программ
Окно памяти данных ЭСППЗУ (EEPROM)
Это окно (рис. 1.12) отображает данные с адресами ЭСППЗУ (электрически стираемого перепрограммируемого постоянного запоминающего устройства). Кроме того, окно EEPROM содержит регистры ввода-вывода для работы с ЭСППЗУ. Изменяются эти регистры аналогично регистрам окна Registers/flags. Из этого окна кнопкой Load можно загрузить данные из файла в ЭСППЗУ микроконтроллера.
Окно памяти данных открывается командой View/EEPROM (Alt+Shift+E).
Рис. 1.12 Окно памяти данных ЭСППЗУ
Окно периферийных устройств (Peripherals)
В этом окне (рис. 1.13) показаны все периферийные устройства микроконтроллера и их регистры. Справочная информация внизу каждого устройства отображает параметры заданного режима.
Открыть окно периферийных устройств можно через меню View/
Peripherals (Alt+Shift+L).
Рис. 1.13 Окно периферийных устройств
Окно портов ввода-вывода (Ports) (рис. 1.14)
Здесь отображены все порты ввода-вывода микроконтроллера и из регистры. В поле Type можно видеть в режиме ввода или вывода работает соответствующий порт.
Открыть окно портов ввода-вывода можно через меню View/ I/O Ports (Alt+Shift+I).
Рис. 1.14 Окно портов ввода-вывода