Создание первого проекта




Лабораторная работа №1

Знакомство с программным обеспечением для разработки устройств на микроконтроллерах фирмы Atmel

Цель работы: усвоение основных принципов работы с программами эмуляции и отладки

устройств на микроконтроллерах AVR.

1 Знакомство с Proteus:

Proteus - это пакет программ класса САПР, объединяющий в себе две основных программы: ISIS - средство разработки и отладки в режиме реального времени электронных схем и ARES - средство разработки печатных плат.

Мы будем использовать только ISIS

 

Для первого знакомства с proteus, попробуем собрать простую схему.

 

Для этого:

Запустим ISIS.exe

1)Создаём новый документ (при запуске он создаётся по умолчанию, как и в любой другой программе)

2)Заходим в библиотеку, для этого нажмём на кнопку «P»

В строку keywords вводим название нужного элемента, сначала Lamp (лампа) и нажимаем «ОК», затем снова заходим в библиотеку (кнопка «P») и в keywords вводим Sw-spdt-mom (переключатель) и нажимаем «ОК».

 

*При выборе элементов можно воспользоваться группами элементов (в библиотеке элементы сгруппированы по классам), а можно поиском для этого в строку keywords

необходимо ввести имя требуемого элемента, после выбора каждого элемента нажимаем OK, после чего снова заходим в библиотеку.

Два необходимых нам элемента появились в окне селектора элементов (библиотека проекта) и добавились к проекту.

 

3)Выделим в окне селектора нужный нам элемент и кликнем левой кнопкой мыши по пустому месту в рабочем окне, после чего кликнем второй раз по месту, в котором нужно расположить объект.

 

 

 

 

Когда мы добавили все элементы схемы, переходим к следующему пункту.

4)В окне выбора режима селектора нажмём на кнопку «Терминалы»(terminals) и выделим

Ground (земля), поместим её на рабочее поле так же как и элементы, затем выделим Power

(источник) и тоже поместим на рабочую зону.

 

5)Теперь двойным щелчком левой кнопки мыши по элементу Power (источник) откроем окно его свойств, в появившемся окне во вкладке Label в графе string пропишем «+5V»

, нажимаем «ОК»;

Когда всё это проделано нужно соединить элементы так, как показано на схеме,

для этого подводим курсор мыши к проводнику, выходящему из элемента (курсор поменяет цвет на зелёный) нажимаем левой кнопкой мыши и подводим проводник к элементу с которым нам необходимо его соединить, после чего нажимаем кнопку мыши ещё раз.

Таким образом соединяем все элементы в схеме.

Теперь можно запустить симуляцию, нажав на кнопку «play» в окне управления симуляцией.

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

 

 

 

Знакомство с AVRstudio4

Первый взгляд

AVR Studio 4 - профессиональная интегрированная среда разработки (Integrated Development Environment - IDE), предназначенная для написания и отладки прикладных программ для AVR микропроцессоров в среде Windows. AVR Studio 4 содержит ассемблер и симулятор.

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

 

Запустим AVRstudio, если у вас открылось такое окно, жмём на Cancel, это окно

прошлых проектов из которого их можно открыть, также из этого окна можно создать новый проект, процесс создания ничем не отличается от описанного ниже, для создания нового проекта из этого окна жмём на New Project.

 

Окно AVRstudio ничем не отличается от стандартных окон, например Delphi или CodeGear.Сверху служебные окна команд. Слева: направо

1)Окно проекта

2)Окно с кодом Ассемблера

3)Окно составляющих микроконтроллера.

Внизу лог событий.

*Язык ассемблера (автокод) — язык программирования низкого уровня. Команды языка ассемблера один к одному соответствуют командам процессора, но в отличие от языка машинных кодов, позволяют использовать более удобную для человека мнемоническую (символьную) запись.

 

Создание первого проекта

Для более полного знакомства напишем простую программу.

Для этого:

Создаём новый проект (в верхнем меню Project\new project или в стартовом окне

New Project)

В открывшемся окне в графе Project type выберем тип проекта Atmel AVR Assembler, в графе Project name указываем имя нового проекта, в строке Location необходимо указать путь к будущему проекту (путь не должен быть слишком длинным, содержать пробелов и иметь русских символов) также необходимо отметить галочкой Create folder (тогда проект будет создан в отдельной папке). Нажимаем «Finish». Если нажать «Next», то перед нами откроется окно выбора устройства, под которое мы будем писать программу, но пока что нам это не нужно.

Первую программу напишем для микроконтроллера Atmega16. Для начала его хватит на все эксперименты.

 

Постановка задачи:

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

С практической точки зрения это совершенно бессмысленная задача, т.к. можно обойтись без микропроцессора. Но в качестве примера подходит прекрасно.

Алгоритм:

1)настроить порты

2)прочитать состояние кнопки, если значение на кнопке «логический 0», то зажечь светодиод, а если значение на кнопке «логическая 1», то погасить светодиод

3)вернуться в начало цикла

 

Используемые команды:

ldi Rd,K Загрузка константы в регистр общего назначения

in Rd,P Пересылка из регистра ввода-вывода в регистр общего назначения

out P,Rd Пересылка из регистра общего назначения в регистр ввода-вывода

rjmp Относительный безусловный переход

Обозначения:

Регистр общего назначения(РОН), обозначается Rd (приёмник) или Rr (источник) где d и r номер регистра.

Регистр ввода-вывода(РВВ), обозначается P.

Константа обозначается K.

 

Текст возможного варианта программы реализующей поставленную выше задачу.

Данный проект находится в папке с лабораторной\001lab\001.aps

 

;***управление светодиодом***

.include "m16def.inc";подключение библиотеки для работы с ATmega16

.list;включение листинга

.def temp=r16;определение главного рабочего регистра

;--------------------------------------------

.cseg;выбор сегмента программного кода

.org 0;установка текущего адреса на ноль

;--------------------------------------------

ldi temp,0x80;выключение компаратора

out acsr,temp

;--------------------------------------------

ldi temp,0x00;записываем ноль в регистр temp

out ddrd,temp;записываем этот ноль в ddrd(порт rd на ввод)

ldi temp,0xFF;записываем 0xff в регистр temp

out ddrb,temp;записываем temp в ddrb(порт rb на вывод)

out portb,temp;записываем temp в portb(погасить светодиод)

out portd,temp;записываем temp в portd(включаем внутренний резистор)

;---------------------------------------------

metka:

in temp,pind;читаем содержимое порта pd

out portb,temp;пересылаем в порт pb

rjmp metka;переходим по метке к началу цикла

 

После написания программы необходимо её откомпилировать, для этого в AvrStudio в верхнем меню необходимо открыть вкладку Build и нажать опять же на build или можно воспользоваться горячей клавишей F7.

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

Assembly complete, 0 errors. 0 warnings”.

Теперь заходим в папку с нашим проектом и видим там некоторое количество файлов, пока что нам нужны только два:1)файл с расширением.asm, в нём собственно и находится исходный код программы.2)файл с расширением.hex – откомпилированный машинный код (именно его и прошивают в микропроцессор).

 

Теперь проверим нашу программу в действии, для этого в Proteus соберём простую схему.

Необходимые компоненты: ATmega16, Button, Led-green, земля (ground) и источник напряжения (power +5v).

Этот проект находится в папке с лабораторной работой\001lab\002.dsn

 

Питание микроконтроллера в Proteus подключать не надо, оно подключено по умолчанию.

После того как мы собрали схему, необходимо загрузить HEX -файл в микроконтроллер, для этого кликаем правой кнопкой мыши по микроконтроллеру и выбираем Edit properties(правка свойств), находим строку Program file и указываем в ней путь к нашему.hex, пока больше менять ничего не нужно.

После этого запускаем симуляцию и нажимаем кнопку(button), светодиод должен менять своё состояние.

Так как в программе мы управляем целыми портами то без изменения программы можно подключить к порту PD восемь кнопок, а к порту PB восемь светодиодов.

Этот проект находится в папке с лабораторной работой\001lab\003.dsn

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: