Главная страница
Навигация по странице:

  • ЛАБОРАТОРНАЯ РАБОТА №1.

  • Задача.

  • 1.2. Структурная схема типичной микропроцессорной системы

  • 2. ВЫПОЛНЕНИЕ РАБОТЫ 2.1. Разработка принципиальной электрической схемы

  • 3. Разработка алгоритма При наличие схемы приступим к разработке программы. Разработку любой программы будем начинать с разработки алгоритма.Алгоритм

  • Операции начальной настройки

  • Операции, составляющее тело цикла

  • 3.2. Разработка программы на языке C++

  • лабы. Laboratornye_raboty_1-5 Микропроцессорные системы. Методические указания к лабораторным работам 15 по дисциплине "Микропроцессорные системы" для студентов направления подготовкиспециальности


    Скачать 1.97 Mb.
    НазваниеМетодические указания к лабораторным работам 15 по дисциплине "Микропроцессорные системы" для студентов направления подготовкиспециальности
    Дата03.03.2023
    Размер1.97 Mb.
    Формат файлаdocx
    Имя файлаLaboratornye_raboty_1-5 Микропроцессорные системы.docx
    ТипМетодические указания
    #966409
    страница1 из 4
      1   2   3   4

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ ЛНР
    «ЛУГАНСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ
    имени ВЛАДИМИРА ДАЛЯ»


    МЕТОДИЧЕСКИЕ УКАЗАНИЯ

    к лабораторным работам №1-5 по дисциплине
    "Микропроцессорные системы"

    для студентов направления подготовки/специальности:

    "09.03.01 - Информатика и вычислительная техника "

    Авторы: ст.преп. Кийко А.С., асс. Зорин К.И.

    Луганск 2017

    ЛАБОРАТОРНАЯ РАБОТА №1.

    Разработка микропроцессорного устройства управления светодиодными индикаторами

    Цель. Изучение организации памяти и базовой архитектуры МК. Составление принципиальной схемы, разработал алгоритма работы устройства, конфигурирование портов ввода вывода контроллера, написание программы для МК предложенного уст­ройства.

    Задача. Разработать устройство управления светодиодным индикатором при по­мощи кнопки.

    1. ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ

    1.1. Выбор микроконтроллера

    По постановке задачи в разрабатываемом устройстве при нажатии кнопки светодиод должен зажечься, при отпускании - погаснуть. Для этого к микроконтроллеру нам нужно подключить светодиод и кнопку управления. То есть, нужен микроконтроллер, который имеет не менее двух портов. Данным условиям удовлетворяют микроконтроллеры ATtiny2313, ATMega8, ATMega16, ATMega32 и др.

    ATMega8 сочетает в себе функциональность, компактность и сравнительно не высо­кую цену. Такие качества дали широчайшее распространение ATMega8 (рис. 1) среди профессиональных и любительских конструкций. Микроконтроллер имеет широкий на­бор модулей, и может быть использован в большом количестве устройств.
    Рис. 1 – МК ATMega8 и ATtiny2313 в корпусе PDIP




    Рис. 2 – Цоколевка МК ATMega8 и ATtiny2313 в корпусе PDIP
    У микроконтроллера ATMega8 имеет два полноценных порта с разрядностью 8 бит в отличии от АТtinу2313 (рис. 1), младшего собрата. Наличие в ATMega8 аналогово-цифрового преобразователя, дающего возможность измерять такие параметры как напряжение, ток, емкость что позволяет разработать полноценный мультиметр на базе «то­го микроконтроллера. Так же ATMega8 имеет порт UART для приема и передачи данных TTL уровня.
    Рис. 3 – МК ATMega 8 в корпусе TQFP и его цоколевка

    Порт для работы по протоколу TWI (возможность реализовать программный I2C). По I2C к ATMega8 можно подключить целый спектр устройств:

    1.2. Структурная схема типичной микропроцессорной системы

    Основным действующим элементом современной микропроцессорной системы яв­ляется микроконтроллер (рис. 1, 3). Однако для того, чтобы понять основополагающие принципы работы, сначала все же необходимо остановиться на микропроцессоре. Сразу нужно сказать, что микропроцессор не работает сам по себе. Микропроцессор – это всего лишь часть той или иной микропроцессорной системы.



    Рис. 4 – Структурная схема типовой микропроцессорной системы
    Кроме собственно микропроцессора, в состав микропроцессорной системы входят и другие, не менее важные элементы. На рис. 4 приведена обобщенная структурная схема типичной микропроцессорной системы.

    Каждое наименование как в русском, так и в английском варианте представляет со­бой определенное сокращение полного названия элемента:

    • CPU (Central Processing Unit) – центральное процессорное устройство (ЦПУ).

    • RAM (Random Access Memory) – устройство с произвольным доступом, или оперативное запоминающее устройство (ОЗУ).

    • ROM (Read Only Memory) – память только для чтения, или постоянное запоми­нающее устройство (ПЗУ).

    • Port I/O (Port Input/Output) – порт ввода-вывода.

    Рассмотрим все эти элементы подробнее. Процессор – это самая главная часть, сердце всей системы. Процессор не всегда был микропроцессором. Были времена, когда процессор представлял собой одну или даже несколько электронных плат, собранных из радиоэлементов. Теперь же это достаточно интегрированная малогабаритная микросхе­ма. содержащая в своем составе множество компонент. Процессор предназначен для то­го. что бы выполнять различные операции с числами. Последовательность этих операций называется программой. Каждая операция кодируется в виде числа и записывается в память. Те числа, с которыми процессор выполняет свои операции, называются данными.

    Данные также записаны в память. По сути дела, процессор – это цифровой автомат, способный выполнять определенный набор операций с числами. Но главной его особен­ностью является возможность запрограммировать любую последовательность его дейст­вий.

    Все три части вычислительной системы (процессор, модуль памяти, порты ввода/вывода) связаны между собой шинами данных (рис.4). По этим шинам передаются цифровые сигналы от процессора к модулю памяти, от процессора – к портам ввода-вывода. А также и в обратном направлении: от портов ввода вывода и памяти к процес­сору.

    Процессор может выполнять операции:

    • арифметические действия (все простейшие операции, которые можно произ­вести над числом, он может считать число из любой ячейки памяти, складывать,

    • вычитать, сравнивать, умножать и делить прочитанные числа.

    • записывать обратно в память результат вычислений

    • логические операции с числами (булевы функции).

    Набор операций, которые процессор способен выполнять с участием портов ввода–вывода, гораздо меньше, чем операций с ячейками памяти. В них также можно записывать и считывать информацию. Однако хранение чисел – это не главное назначение портов.

    Порт ввода – это специальное электронное устройство, на которое извне поступают какие-либо электрические сигналы, предназначенные для управления микропроцессорным устройством. Например, сигналы, возникающие при нажатии клавиш на клавиатуре, сигналы, возникающие при срабатывании различных датчиков и т.д. Процессор считывает их в виде чисел и обрабатывает полученные числа в соответствии с алгоритмом управления.

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

    Эти сигналы используются для управления. Управлять можно любым устройством, которое допускает электрическое управление, это индикаторы, дисплеи, электромагнитные реле, электромоторы, электропневмоклапаны, электрические нагреватели и т. д.

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

    2. ВЫПОЛНЕНИЕ РАБОТЫ

    2.1. Разработка принципиальной электрической схемы

    Разработаем принципиальную электрическую схему, способную выполнять описанную выше задачу. К микроконтроллеру нам нужно подключить светодиод и кнопку управления. Для подключения к микроконтроллеру AVR любых внешних устройств используются порты ввода–вывода. Причем каждый такой порт способен работать либо на ввод, либо на вывод.

    Удобнее всего светодиод подключить к одному из портов, а кнопку – к другому. В этом случае управляющая программа должна будет настроить порт, к которому подключен светодиод, на вывод, а порт, к которому подключена кнопка, на ввод. Других специальных требований к микроконтроллеру не имеется. Поэтому выберем микроконтроллер.

    Очевидно, что нам нужен микроконтроллер, который имеет не менее двух портов. Данным условиям удовлетворяют многие микроконтроллеры AVR. Остановим свой выбор на микросхеме ATtiny2313. Эта микросхема, хотя и относится к семейству «Tiny», на самом деле занимает некое промежуточное место между семейством «Tiny» и семейством «Mega». Она не так перегружена внутренней периферией и не столь сложна, как микросхемы семейства «Mega». Но и не настолько примитивна, как все остальные контроллеры семейства «Tiny».

    Эта микросхема содержит два основных и один дополнительный порт ввода–вывода, имеет не только восьмиразрядный, но и шестнадцатиразрядный таймер/счетчик. Имеет оптимальные размеры (20-выводной корпус).

    Итак, если не считать порта А, который включается только в особом режиме, который мы пока рассматривать не будем, микроконтроллер имеет два основных порта ввода-вывода (порт В и порт D). Договоримся, что для управления светодиодом мы будем использовать младший разряд порта В (линия РВ.0), а для считывания информации с кнопки управления используем младший разряд порта D (линия PD.0). Полная схема устройства, позволяющего решить поставленную выше задачу, приведена на рис. 5.
    Рис. 5 – Принципиальная схема со светодиодом и кнопкой

    Для подключения кнопки S1 использована классическая схема. В исходном состоянии контакты кнопки разомкнуты. Через резистор R1 на вход PD.0 микроконтроллера подается «плюс» напряжения питания, что соответствует сигналу логической единицы.

    При замыкании кнопки напряжение падает до нуля, что соответствует логическому нулю. Таким образом, считывая значение сигнала на соответствующем выводе порта, программа может определять момент нажатия кнопки. Несмотря на простоту данной схемы, микроконтроллер AVR позволяет ее упростить. А именно, исключим резистор R1, заменив его внутренним нагрузочным резистором микроконтроллера. Как уже говорилось выше, микроконтроллеры серии AVR имеют встроенные нагрузочные резисторы для каждого разряда порта. Главное при написании программы–не забыть включить программным путем соответствующий резистор.

    Подключение светодиода также выполнено по классической схеме. Это непосредственное подключение к выходу порта. Каждый выход микроконтроллера рассчитан на непосредственное управление светодиодом среднего размера с током потребления до 20 мА. В цепь светодиода включен токоограничивающий резистор R3.

    Для того, чтобы зажечь светодиод, микроконтроллер должен подать на вывод РВ.О сигнал логического нуля. В этом случае напряжение, приложенное к цепочке R3, VDL окажется равным напряжению питания, что вызовет ток через светодиод, и он загорится. Если же на вывод РВ.0 подать сигнал логической единицы, падение напряжения на светодиоде и резисторе окажется равным нулю, и светодиод погаснет. Элементы C1, R2 – это стандартная цепь начального сброса. Такая цепь обеспечивает сброс микроконтроллера в момент включения питания. Еще недавно подобная цепь была обязательным атрибутом любой микропроцессорной системы. Однако технология производства микроконтроллеров достигла такого уровня, что обе эти цепи (внешний кварц и цепь начального сброса) теперь можно исключить

    .

    Рис. 6 – Усовершенствованная схема
    Большинство микроконтроллеров AVR. кроме тактового генератора с внешним кварцевым резонатором, содержат внутренний RC-генератор, не требующий никаких внешних цепей. Если вы не предъявляете высоких требований к точности и стабильности частоты задающего генератора, то микросхему можно перевести в режим внутреннего RC-генератора и отказаться как от внешнего кварца (Q1), так и от согласующих конденсаторов (С2 и СЗ).
    Рис. 7 – Печатная плата и монтажная сторона платы

    Цепь начального сброса тоже можно исключить. Любой микроконтроллер AVR имеет внутреннюю систему сброса, которая в большинстве случаев прекрасно обеспечивает стабильный сброс при включении питания. Внешние цепи сброса применяются только при наличии особых требований к длительности импульса сброса. А это бывает лишь в тех случаях, когда микроконтроллер работает в условиях больших помех и нестабильного питания. Все описанные выше переключения производятся при помощи соответствующих fuse-переключателей.

    Три освободившихся вывода микроконтроллера могут быть использованы как дополнительный порт (порт А). Но в данном случае в этом нет необходимости.

    Упростим схему, показанную на рис. 5 с учетом описанных выше возможностей.

    3. Разработка алгоритма

    При наличие схемы приступим к разработке программы. Разработку любой программы будем начинать с разработки алгоритма.

    Алгоритм – это последовательность действий, которую должен произвести микроконтроллер. чтобы достичь требуемого результата. Для простых задач алгоритм можно просто описать словами. Для более сложных задач алгоритм рисуется в графическом виде.

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

    Операции начальной настройки:

    • установить начальное значение для вершины стека микроконтроллера (при программировании на Ассемблере);

    • настроить порт В на вывод информации;

    • подать на выход РВ.0 сигнал логической единицы (потушить светодиод);

    • сконфигурировать порт D на ввод;

    • включить внутренние нагрузочные резисторы порта D.

    Операции, составляющее тело цикла:

    • прочитать состояние младшего разряда порта PD (PD.0);

    • если значение этого разряда равно единице, выключить светодиод;

    • если значение разряда PD.0 равно нулю, включить светодиод;

    • перейти на начало цикла.

    3.1. Использование системы виртуального моделирования

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

    Одна из таких программ PROTEUS 7.5. Именно этим симулятором мы и будем пользоваться в дальнейшем. Симуляция радиоэлементов – это не единственная способность программы. Proteus является так называемой средой сквозного проектирования. Это означает создание устройства, начиная с его принципиальной схемы и заканчивая изготовления печатной платы устройства, с возможностью контроля на каждом этапе производства.



    Рис. 8 – Принципиальная схема, выполненная в PROTEUS
    В «сферу влияний» PROTEUS входят как простейшие аналоговые устройства, так и сложные системы, созданные на микроконтроллерах. Доступна огромная библиотека моделей элементов, пополнять которую может сам пользователь, естественно для этого нужно досконально знать работу элемента и уметь программировать. Достаточный набор инструментов и функций, среди которых вольтметр, амперметр, осциллограф, всевозможные генераторы, способность отлаживать программное обеспечение микроконтроллеров. делают PROTEUS хорошим помощником разработчику электронных устройств.

    Proteus VSM состоит из двух самостоятельных программ ISIS и ARES. ARES это трассировщик печатных плат с возможностью создания своих библиотек корпусов.

    Основной программой является ISIS, в ней предусмотрена горячая связь с ARES для передачи проекта для разводки платы.

    3.2. Разработка программы на языке C++

    Для создания программ на языке C++ мы будем использовать программную среду CodeVisionAVR. Это среда специально предназначена для разработки программ на языке C++ для микроконтроллеров серии AVR. Среда CodeVisionAVR не имеет своего отладчика. но позволяет отлаживать программы, используя возможности системы AVR Studio. Отличительной особенностью системы CodeVisionAVR является наличие мастера-построителя программы. Мастер-построитель облегчает работу программисту. Он избавляет от необходимости листать справочник и выискивать информацию о том. какой регистр за что отвечает и какие коды нужно в него записать. Результат работы мастера – это заготовка будущей программы, в которую включены все команды предварительной настройки, а также заготовки всех процедур языка C++. Поэтому давайте сначала научимся работать с мастером, создадим заготовку нашей программы на языке C++, а затем разберем подробнее все ее элементы. И уже после этого создадим из заготовки готовую программу.




    Рис. 9 – Окно мастера CWAVR

    Для того, чтобы понять работу мастера, нам необходимо прояснить несколько новых понятий. Программа CodeVisionAVR. как и любая современная среда программирования, работает не просто с текстом программы, а с так называемым Проектом.

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

    Задача программиста – лишь написать текст программы. для которого в проекте отводится отдельный файл с расширением «с». Например, «proba.c». При помощи мастера мы будем создавать новый проект. В дальнейшем мы еще рассмотрим подробно процесс установки и работу с программной средой CodeVisionAVR. Сейчас же считаем, что она установлена и запушена.

    Для создания нового проекта выберем в меню «File» пункт «New». Откроется небольшой диалог, в котором вы должны выбрать тип создаваемого файла. Предлагается два варианта:

    • «Source» (Исходный текст программы);

    • «Project» (Проект).

    Выбираем Project и нажимаем «Ок». Появляется окно с вопросом «You are about to create a new project. Do you want to use the CodeWizardAVR?». В переводе на русский это означает: «Вы создаете новый проект. Будете ли вы использовать построитель CodeWizardAVR?». Мы договорились, что будем, поэтому выбираем «Yes», после чего открывается окно построителя (см. рис. 13). Как видите, это окно имеет множество вкладок, каждая из которых содержит элементы выбора режимов.

    Все эти управляющие элементы позволяют настроить параметры создаваемой заготовки программы. Сразу после запуска мастера все параметры принимают значения по умолчанию (все внутренние устройства выключены, а все порты ввода–вывода настроены на ввод, внутренние нагрузочные резисторы отключены). Это соответствует начальному состоянию микроконтроллера непосредственно после системного сброса.

    Пройдемся по вкладкам мастера и выберем необходимые нам параметры. Для тех же параметров, которые нам не нужны, оставим значения по умолчанию.

    Первая вкладка называется «Chip». На этой вкладке мы можем выбрать общие параметры проекта. Используя выпадающий список «Chip», выберем тип микроконтроллера.

    Для этого щелкаем мышью по окошку и в выпавшем списке выбираем ATtiny2313 или АТМега8.

    При помощи поля «Clock» выбираем частоту кварцевого резонатора. В нашем случае она должна быть равна 4-12 МГц. При помощи поля «Crystal Oscillator Divider» выбирается коэффициент деления тактового генератора. Поясним этот параметр. Дело в том. что выбранный нами микроконтроллер имеет систему предварительного деления тактовых импульсов. Если частота тактового генератора нас не устраивает, мы можем поделить ее. и микроконтроллер будет работать на другой, более низкой частоте. Коэффициент деления может изменяться от 1 до 256. Мы выберем его равным единице (без деления). То есть оставим значение по умолчанию.

    Без изменений оставим флажок «Check Reset Source» (Проверка источника сигнала сброса). Не будем углубляться в его назначение. Достаточно будет понять, что включение данного флажка добавляет к создаваемой программе процедуру, связанную с определением источника сигнала системного сброса.

    Закончив с общими настройками, перейдем к вкладке (Порты). Эта вкладка позволяет настроить все имеющиеся порты ввода–вывода.

    Каждому порту в МК AVR соответствуют минимум три регистра:
      1   2   3   4


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