![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование портов для цифрового ввода-выводаСодержание книги
Поиск на нашем сайте
Каждый разряд порта представляет собой двунаправленную линию ввода-вывода с возможностью подключение внутреннего сопротивления нагрузки. На рис. 1.8 показана, функциональна схема одной линии порта ввода-вывода. Выходной контакт этой линии обозначен на схеме Pxn.
Рис. 1.8 - Упрощённая схема одной линии цифрового ввода-вывода
Конфигурация выводов Каждый разряд порта связан с тремя разрядами трёх специальных регистров: DDxn; PORTxn; PINxn. Как уже говорилось: ♦ бит DDxn – это разряд номер n регистра DDRx; ♦ бит PORTxn – это разряд номер n регистра PORTx; ♦ бит PINxn – это разряд номер n регистра PINx. Бит DDxn регистра DDRx выбирает направление передачи информации соответствующего разряда. Если в DDxn записана логическая единица, разряд Pxn работает как выход. Если в DDxn записан логический ноль, разряд Pxn работает как вход. Если разряд порта сконфигурирован как вход, установка бита PORTxn в единицу включает внутренний резистор нагрузки. Для отключения резистора нагрузки нужно в PORTxn логический ноль. Сразу после системного сброса все выводы всех портов переходят в третье (высокоимпендансное) состояние. Если разряд порта сконфигурирован как выход (установка бита PORTxn в единицу), то эта единица появится на выходе порта. Если в разряд PORTxn записан логический ноль, то и на выходе будет ноль.
Описание лабораторной установки
Лабораторная установка представляет собой: макетную отладочную плату, изображенную на рис 2.1.
Рис.2.1.Макетная плата для микроконтроллера AtTiny2313
В состав входят следующие устройства:
Для того чтобы запрограммировать микроконтроллер нам понадобится программа формирующая файл прошивки. (*.hex) В качестве этой программы компилирующей файл прошивки мы будет использовать CodeVisionAVR CodeVisionAVR — интегрированная среда разработки программного обеспечения для микроконтроллеров семейства Atmel AVR. Программа является 32-битовым приложением, которое работает под операционными системами Windows95,98, NT4, 2000 и XP CodeVisionAVR обеспечивает выполнение почти всех элементов языка Си, которые разрешены архитектурой AVR, с некоторыми добавленными характеристиками, которые реализуют преимущество специфики архитектуры AVR CodeVisionAVR включает в себя следующие компоненты: - компилятор Си-подобного языка для AVR; - компилятор языка ассемблер для AVR; -генератор начального кода программы, позволяющего произвести инициализацию периферийных устройств; - модуль взаимодействия с отладочной платой STK-500; - модуль взаимодействия с программатором; - терминал.
Выходными файлами CodeVisionAVR являются: HEX, BIN или ROM-файл для загрузки в микроконтроллер посредством программатора; COFF — файл, содержащий информацию для отладчика; OBJ — файл; Работа с CodeVisionAVR начинается с создания нового проекта
МК должен быть сконфигурирован с помощью визадра под ATtiny2313
Начинаем с того что создаем новый проект. File- New
На вопрос, что бы будем создавать выбираем - Project Использовать ли визард – отвечаем -Yes Откроется окно нового проекта. На закладке Chip выберем нужный МК – в нашем случае это – Attyny2313. Установим рабочую частоту тут же. Переходим на закладку Ports и подзакладкуPortB. Здесь мы выбираем, порт B его мы сконфигурируем на выход. Напротив каждого бита выберите In\Out так чтобы все выходы были Out
Переходим на закладку Ports и подзакладкуPortD. Здесь мы выбираем, порт D его мы сконфигурируем на вход. Проверьте чтобы Биты 0,1,2 стояли на вход – In
Далее открываем Меню – Program - Выбираем пункт Generate, SaveendExit. Далее программа спросит имя файла (*.с) напишите любое название имя файла (*.prj) напишите любое название – Это и Есть ваш проект имя файла (*.сwp) напишите любое название После этого у вас откроется созданный мастером код. Чтобы до конца создать проект и сделать прошивку для МК (файл *.hex) Идем в меню Project- Build Выйдет окно в котором будет информация о компиляции нашего проекта. Ошибок 0 Предупреждений 0. Сначала надо прописать библиотеку, которую мы хотим использовать для паузы: #include<delay.h> Вставить ее надо ниже #include<tiny2313.h> вставленной мастером. Далее надо описать переменные, у нас пока она будет одна. – она будет отвечать за то какой светодиод будет гореть назовем ее – I Третья строка это и есть описание переменной I - целый тип (integer) int i; Мастер сконфигурировал нам порты на вход и выход, теперь мы должны написать сам код нашей программы идем в самый низ кода и ищем строку: While (1) { // Place your code here }; Это тело программы
Сюда мы вставимцикл в котором мы зажигаем светодиоды и обрабатываем нажатие кнопки:
While (1) { if (PIND.0==0) for (i=0; i<=7; i++) { PORTB = 0b00000001 <<i; delay_ms(1000); } }
Теперь обсудим то что написали: while (1) - это цикл который выполняется до выполнения условия прописанного в скобках именно этот цикл будет бесконечным.
if (PIND.0==0) - это наше прерывание оно нам говорит что когда на 0 бите(ноге микросхемы) порта D - напряжение соответствует логическому нулю, выполнить условие идущее дальше в скобках.
for (i=0; i<=7; i++) - это цикл выполняющийся от 0 до 7 увеличивая I на 1 единицу каждый шаг. Т.е. он нам переберет 0,1,2,3,4,5,6,7. PORTB = 0b00000001 <<i; - записать в порт B - в бинарном виде (0b- приставка бинарного числа) числа 00000001 и сдвинуть справа на лево число разрядов равных i
Т.е. каждый цикл мы сдвигаем на 1 место единицу в порте B. Порт B – это всего 8 выходов микросхемы ATtyny2313. 0\1 соответствует нижнему и верхнему логическим уровням т.е. 0\5 в И при подключении светодиода через резистор 330м – он будет гореть. Т.е. одновременно будет гореть у нас только 1 светодиод. delay_ms(1000); - задержка для нашего цикла «перебирающего» биты порта B. время за которое зажигается светодиод 15 мсек, если мы не поставим паузу не заметим кАк гаснет и загорается светодиод. Как же мы проверим наш проект,до того чтобы паять нашу плату? Для этого мы используем симулятор. Proteus Знакомство с PROTEUS Программа Proteus представляет собой мощную систему схемотехнического моделирования, сделанной на основе виртуальных моделей электронных элементов. Специфической чертой данного программного пакета (Proteus) — есть отличная возможность моделирования различной работы программируемых устройств: микропроцессоров, контроллеров, DSP и т.д.
1) ISIS - это графический редактор принципиальных электронных схем, который служит для ввода проектов с дальнейшей имитацией и передачей на разработку различных печатных плат в ARES. После общей отладки устройства можно развести имеющуюся печатную плату в ARES, которая имеет поддержку автоматического размещения и трассировки по существующей схеме.
COMPIM - этот компонент позволяет вашему виртуальному устройству подключиться к РЕАЛЬНОМУ COM-порту вашего ПК. USBCONN - этот инструмент позволяет подключиться к реальному USB порту компьютера. Открываем программу.
Нажимаем на левой панели маленькую букву «Р»
Откроется менеджер добавляющий элементы в проект. В строке поиска Keywords – пишем «2313» и программа предложит те элементы в которых содержится эта цифра. Выбираем ATtyny2313 – на панели показан будет тип корпуса и схема элемента- нажимаем –ок.
Получится вот такая картина, по аналогии добавляем светодиоды и 1 резистор и button (кнопку) Резисторы – выбираем категорию Resistors – в столбце Descriptionвыбираем резистор с сопротивлением 1КОм (1К ОНМ) Светодиоды-В строке поиска Keywords – пишем «led»и выбираем светодиод
Добавляем с TerminalsMode питание(Powers) и землю (Ground)
Добавлять элементы следует в ComponentMode.
Такая картина у вас должна была получиться, соединяем наши элементы согласно схеме. Чтобы соединить элементы надо выбрать в левом верхнем углу стрелку, далее выбрать угол одного элемента и соединить с углом второго эелемента.
Далее нам понадобиться файл *.hexкоторый мы получил от компиляции нашей программы в CVAVR. 2 раза кликнем по нашему контроллеру левой кнопкой.
В строке programfiles – выбираем наш файл *.hexнажимаем ок.(фал находитсяв той же папке где вы сохранили ваш проектCodeVisionAVR в директории exe)
Внизу проекта нажимаем Play. Наша схема изменится появятся красные и синие квадратики соответствующие нижнему \ верхнему лог уровню. Теперь можно нажать кнопкой мыши - на пиктограмме кнопки (button). И наш контроллер начнет выполнять программу.
Выглядеть будет так. При нажатии кнопки с паузой в 1 сек будут зажигаться последовательно светодиоды с 0 по 7 соответстующим битам порта B.
Порядок выполнения работы 1. Получить задание у преподавателя 2. Разработать алгоритм 3. Разработать программу в CodeVisionAVR 4. Скомпилировать файл прошивки 5. Спроектировать макетную плату в PROTEUS 6. Загрузить файл (*.hex) в PROTEUS и запустить симуляцию в проекте. Оформление отчета Отчет должен содержать: а) формулировку цели работы, б)схему устройства в) код программы в CodeVisionAVR г)схема проекта в PROTEUS д) Выводы по работе
Список использованной литературы 1) М.Б. Лебедев. CodeVision AVR. Пособие для начинающих. Додэка XXI, 2008. 592 с.
Содержание: 1.Методические указания по подготовке к работе 1.1. Основные сведения из теории: Состав микроконтроллеров Устройство микроконтроллера на примере ATtiny 2313 Гавардская архитектура микроконтроллеров AVR Понятие стека АЛУ – арифметико-логическое устройство X-регистр, Y-регистр и Z-регистр Системная перепрограммируемая Flash-память программ Память данных SRAM Порты ввода-вывода Использование портов для цифрового ввода-вывода
|
||||
Последнее изменение этой страницы: 2021-01-08; просмотров: 208; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.27 (0.01 с.) |