- •Кузнецов в.Н., Лисютченков с.Н. Цифровые и микропроцессорные устройства
- •Часть 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 «Освоение среды разработки vmlab 3.12»
1.1 Цель работы: Изучить возможности и основные принципы работы в среде разработки VMLAB 3.12.
1.2 Теоретическое введение
1.2.1 Общие сведения
Создание программного обеспечения. Целью создания программного обеспечения является получение набора машинных кодов, определяющих содержание и последовательность работы микро-ЭВМ. Теоретически существует два метода создания программного обеспечения для микро-ЭВМ – ручной и автоматизированный. При ручном методе на бумаге составляется программа на языке ассемблера данной микро-ЭВМ, выполняется ручной перевод инструкций ассемблера в коды команд (с использованием соответствующих таблиц) и осуществляется занесение полученных кодов в память микро-ЭВМ. Этот метод характеризуется большими затратами времени, отсутствием наглядности и возможности отладки, наличием большого числа ошибок и на практике обычно не используется.
Автоматизированный метод предполагает использование вычислительной техники (обычно, компьютера) и наличие специального программного обеспечения для нее. Создание программ с помощью этого метода состоит из нескольких этапов:
Написание текста программы на языке ассемблера;
Трансляция и компиляция – перевод текста программы в набор машинных кодов, их распределение по адресам, проверка правильности синтаксиса программы, возможное объединение нескольких программных блоков, подключение библиотечных функций и др.;
Отладка – проверка правильности логики работы программы, взаимодействие ее с внешними по отношению к микро-ЭВМ устройствами;
Занесение программы в память микро-ЭВМ.
Исходный текст программы создается при помощи любого из доступных текстовых редакторов по правилам языка ассемблера, который понимается имеющимся транслятором. К этим правилам относится описание переменных, операторов непосредственного определения данных и т.д.
Трансляция выполняется при помощи специальной программы, которая проверяет правильность написания исходного текста программы и переводит инструкции ассемблера в коды команд конкретной микро-ЭВМ. Результатом трансляции программы является листинг программы – текстовый файл, в котором показано соответствие адресов команд, их команд и инструкций ассемблера, а также файл кодов программы в двоичном (bin) или шестнадцатеричном (hex) форматах.
Отладка программы является главным этапом создания программного обеспечения, так как позволяет проверить логическую правильность ее работы и устранить ошибки. Отладка выполняется с помощью специальных программных средств, которые можно разделить на две группы – симуляторы и эмуляторы.
Общим в работе симулятора и эмулятора является то, что они представляют собой программную модель одной или нескольких микро-ЭВМ и позволяют последовательно выполнить все команды созданной для нее программы с просмотром результата действия. Обычно пользователю отладочных средств предоставляются следующие возможности:
Загрузка данных в память программы;
Просмотр содержимого регистров общего назначения, счетчика команд, указателя стека, флагов, состояний линий портов, состояние управляющих линий и др.;
Пошаговое выполнение программы;
Быстрое выполнение программы (в виде одного шага);
Задание и удаление закладок для выделения определенных фрагментов программы.
Основное отличие между эмулятором и симулятором заключается в способе задания внешней среды для микро-ЭВМ. Симулятор работает только в режиме имитации, т.е. состояние входных сигналов управления, содержимое внешней памяти задается программным образом и не отражает их реального изменения во времени. В состав эмулятора обязательно входит аппаратная часть, которая выполнена на реальных микросхемах и, с одной стороны подключается к ЭВМ через стандартный интерфейс (последовательный или параллельный), а с другой – к проектируемому устройству в виде панели, сигналы на ножках которой по расположению и назначению полностью соответствуют сигналам на выходах микро-ЭВМ. Отлаживаемая программа загружается во внутреннюю память аппаратной части эмулятора и выполняется в реальных условиях, а ЭВМ только управляет этим процессом (устанавливает режим ожидания для пошагового выполнения программ, считывает или записывает содержимое регистров, памяти, портов и т.д.)
В лабораторных работах предполагается использование микроконтроллера (МК) AVR семейства Mega. Микроконтроллер семейства AVR фирмы Atmel представляет собой восьмиразрядную однокристальную микро-ЭВМ с упрощенной (сокращенной) системой команд — RISC (Restricted (Reduced) Instruction Set Computer).
Большинство команд, входящих в систему команд, выбираются из памяти за один такт и выполняются за один такт работы микроконтроллера. При выполнении последовательности таких команд выборка из памяти очередной команды совмещается во времени с исполнением ранее выбранной команды. При этом число команд, выполняемых за 1 сек, совпадает с тактовой частотой работы микроконтроллера.
Микроконтроллеры изготавливаются по высококачественной КМОП (CMOS) технологии, содержат энергонезависимые запоминающие устройства для хранения программы и данных, выполненные по Flash и EEPROM технологиям, и отличаются низким энергопотреблением при высокой тактовой частоте. Запись программы и исходных данных в память может выполняться программатором, подключаемого с одной стороны к микроконтроллеру, а с другой к ЭВМ.
AVR – это семейство 8-разрядных микроконтроллеров фирмы Atmel. Эти микроконтроллеры позволяют решать множество задач встроенных систем. Они отличаются от других распространенных в настоящее время микроконтроллеров большей скоростью работы, большей универсальностью. Быстродействие данных микроконтроллеров позволяет в ряде случаев применять их в устройствах, для реализации которых ранее можно было применять только 16-разрядные микроконтроллеры, что позволяет ощутимо удешевить готовую систему. Кроме того, микроконтроллеры AVR очень легко программируются – простейший программатор можно изготовить самостоятельно в течение 30 минут!
Как и все микроконтроллеры AVR фирмы «Atmel», микроконтроллеры семейства Mega являются 8-разрядными микроконтроллерами, предназначенными для встраиваемых приложений. Они изготавливаются по малопотребляющей КМОП-технологии, которая в сочетании с усовершенствованной RISC-архитектурой позволяет достичь наилучшего соотношения быстродействие/энергопотребление. Микроконтроллеры описываемого семейства являются наиболее развитыми представителями микроконтроллеров AVR.
К числу особенностей микроконтроллеров AVR семейства Mega относятся:
• FLASH-память программ объемом 8... 128 Кбайт (число циклов стирания/записи не менее 1000);
• оперативная память (статическое ОЗУ) объемом 1...4 Кбайт;
• память данных на основе ЭСППЗУ (EEPROM) объемом 512 байт...4 Кбайт (число циклов стирания/записи не менее 100000);
• возможность защиты от чтения и модификации памяти программ и данных;
• возможность программирования непосредственно в системе через последовательные интерфейсы SPI и JTAG;
• возможность самопрограммирования;
• возможность внутрисхемной отладки в соответствии со стандартом IEEE 1149.1 (JTAG);
• различные способы синхронизации: встроенный RС-генератор с внутренней или внешней времязадающей LС-цепочкой или с внешним резонатором (пьезокерамическим или кварцевым); внешний сигнал синхронизации;
• наличие нескольких режимов пониженного энергопотребления;
• наличие детектора снижения напряжения питания (brown-out detector, BOD);
• возможность программного снижения частоты тактового генератора.
Лабораторные работы построены на изучении микроконтроллера AVR ATmega128 семейства Mega. Отличительная особенность этого микроконтроллера:
– Высокопроизводительный, маломощный 8-разрядный AVR-микроконтроллер;
– Развитая RISC-архитектура;
– 133 мощных инструкций, большинство из которых выполняются за один машинный цикл;
– 32 8-разрядных регистров общего назначения и регистры управления встроенной периферией;
– Полностью статическая работа;
– Производительность до 16 млн. операций в секунду при тактовой частоте 16 МГц;
– Встроенное умножающее устройство выполняет умножение за 2 машинных цикла;
– Энергонезависимая память программ и данных;
– Износостойкость 128-ми кбайт внутрисистемной перепрограммируемой флэш-памяти: 1000 циклов запись/стирание;
– Опциональный загрузочный сектор с отдельной программируемой защитой;
– Программируемая защита кода программы;
– Интерфейс SPI для внутрисистемного программирования;
– Интерфейс JTAG (совместимость со стандартом IEEE 1149.1);
– Граничное сканирование в соответствии со стандартом JTAG;
– Обширная поддержка функций встроенной отладки;
– Программирование флэш-памяти, ЭСППЗУ, бит конфигурации и защиты через интерфейс JTAG ;
– Отличительные особенности периферийных устройств;
– Два 8-разр. таймера-счетчика с раздельными предделителями и режимами сравнения;
– Два расширенных 16-разр. таймера-счетчика с отдельными предделителями, режимами сравнения и режимами захвата;
– Счетчик реального времени с отдельным генератором;
– Два 8-разр. каналов ШИМ;
– 6 каналов ШИМ с программируемым разрешением от 2 до 16 разрядов;
– Модулятор выходов сравнения;
– 8 мультиплексированных каналов 10-разрядного аналогово-цифрового преобразования;
8 несимметричных каналов;
7 дифференциальных каналов;
2 дифференциальных канала с выборочным усилением в 1x, 10x и 200x;
– Двухпроводной последовательный интерфейс, ориентированный на передачу данных в байтном формате;
– Два канала программируемых последовательных УСАПП (универсальный синхронный и асинхронный последовательный приемопередатчик);
– Последовательный интерфейс SPI с поддержкой режимов ведущий/подчиненный;
– Программируемый сторожевой таймер со встроенным генератором
– Встроенный аналоговый компаратор;
– Специальные возможности микроконтроллера;
– Сброс при подаче питания и программируемая схема сброса при снижении напряжения питания;
– Встроенный калиброванный RC-генератор;
– Внешние и внутренние источники прерываний;
– Шесть режимов снижения энергопотребления: холостой ход (Idle), уменьшение шумов АЦП, экономичный (Power-save), выключение (Power-down), дежурный (Standby) и расширенный дежурный (Extended Standby);
– Программный выбор тактовой частоты;
– Общее выключение подтягивающих резисторов на всех линиях портов ввода-вывода.