Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование портов для цифрового ввода-вывода ⇐ ПредыдущаяСтр 3 из 3
Каждый разряд порта представляет собой двунаправленную линию ввода-вывода с возможностью подключение внутреннего сопротивления нагрузки. На рис. 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; просмотров: 174; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.74.54 (0.041 с.) |