АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Описание интерфейса компилятора языка С CodeVision AVR

Читайте также:
  1. Ha eвропейских языках
  2. HMI/SCADA – создание графического интерфейса в SCADА-системе Trace Mode 6 (часть 1).
  3. IDL-описаниеи библиотека типа
  4. II. ОПИСАНИЕ МАССОВОЙ ДУШИ У ЛЕБОНА
  5. XI. Описание заболевания
  6. XIV. ОПЕРАТОРЫ ЯЗЫКА ПАСКАЛЬ
  7. Алфавит языка Паскаль
  8. Анализ основных конкурентов (схема и описание)
  9. Аналитическое описание движения
  10. АНГЛИЙСКОГО ЯЗЫКА
  11. Антиномии языка как проявление его сложности
  12. Античное историческое сознание и историописание

Интегрированная среда CodeVision AVR представляет собой кросс-компилятор языка С ориентированный на семейство микроконтроллеров AVR и содержит: графическую оболочку для управления ресурсами проекта; текстовый редактор исходного модуля программы; кросс-компилятор; отладчик, программатор; автоматический генератор программного кода; терминал для работы с последовательным интерфейсом RS232C (USART). Полученный в результате компиляции исходного кода программы на языке С исполняемый модуль (файл прошивки) может быть непосредственно записан в память программ микроконтроллера.

В среде CodeVision AVR каждая программа для микроконтроллера должна оформляться в виде проекта, представляющего собой совокупность файлов, содержащих исчерпывающую информацию для программатора. Файлы каждого проекта желательно сохранять в отдельном подкаталоге.

При создании нового проекта следует выполнить следующую последовательность действий:

- создать новый каталог для файлов проекта;

- запустить программный модуль CodeVision AVR;

- в появившемся главном рабочем окне программы, используя верхнее меню, выполнить команду File Þ New;

- в открывшемся диалоговом окне (см. рисунок 1.10), выбрать пункт Project;

 

Рисунок 1.10 – Диалоговое окно для выбора типа создаваемого ресурса при создании проекта.

 

 

- В появившемся диалоговом окне Confirm (см. рисунок 1.11), необходимо отказаться от использования автоматического генератора программного кода, нежав кнопку No;

-

Рисунок 1.11 – Диалоговое окно для выбора автоматического генератора программного кода.

 

 

- в появившемся окне для сохранения файла проекта ввести имя файла и нажать ОК (см. рисунок 1.11).

 

 

Рисунок 1.12 – Диалоговое окно для сохранения файла проекта.

 

 

- далее (см. рисунок 1.13) открывается окно конфигурации проекта (вкладка Files), в котором необходимо активизировать вкладку C Compiler;

 

 

Рисунок 1.13 – Вкладка Files окна конфигурации проекта.

 

- на вкладке C Compiler (см. рисунок 1.14)окна конфигурации проекта необходимо задать тип и тактовую частоту микроконтроллера (Chip: Atmega128, Clock: 11.059200 MHz).

 

 

Рисунок 1.14 – Вкладка С Compiler окна конфигурации проекта

 

 

- на вкладке After Make окна конфигурации проекта необходимо активизировать опцию Program the chip и нажать клавишу ОК. В результате будет создан пустой проект и на экране появится главное рабочее окно программы CodeVision AVR, имеющее классическую компоновку для интегрированных средств разработки приложений и CAD систем (см. рисунок 1.15). В верхней части главного рабочего окна находятся текстовое меню и пиктограммы для быстрого запуска отдельных команд. Назначения пиктограмм, отвечающих за выполнение специализированных функций, приводится на рисунке 1.16. В левой части главного окна располагается информация о ресурсах проекта, в правой – ресурс, являющийся, в данный момент, активным. В нижней части главного окна располагается строка сообщений (Messages).

Рисунок 1.15 – Интерфейс главного рабочего окна программы CodeVision

 

Рисунок 1.16 – Назначения пиктограмм, отвечающих за выполнение специализированных функций

 

Исходный текст программы для микроконтроллера на языке С записывается в отдельном текстовом файле, для создания которого необходимо выполнить следующие действия:

- в главном рабочем окне программы, используя верхнее меню, выполнить команду File Þ New;

- в открывшемся диалоговом окне (см. рисунок 1.17), выбрать пункт Source;

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

 

- в правой части вновь появившегося главного рабочего окна программы будет отображаться текстовый редактор для ввода текста в созданный файл ресурса, для сохранения которого необходимо, используя верхнее меню, выполнить команду File Þ Save As … и ввести уникальное имя файла;

- файл ресурса необходимо включить в состав проекта. Для этого необходимо с помощью основного или пиктограммного меню (см. рисунок 1.16) вызвать окно конфигурации проекта (Configure Project), активизировать вкладку Files (см. рисунок 1.13), и, нажав на кнопку Add, указать в появившемся диалоговом окне имя файла-ресурса;

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

- перед выполнением процедуры программирования микроконтроллера необходимо произвести настройку параметров интерфейса программатора (Programmer Settings) с помощью команды Programmer из подпункта главного меню Setting в соответствие с данными, приведенными на рисунке 1.18. Параметры интерфейса программатора устанавливаются только один раз перед началом работы с микроконтроллером и при корректной работе устройства не требуют изменений.

Рисунок 1.18 – Окно настройки параметров интерфейса программатора

 

- далее необходимо выполнить компиляцию проекта – создать исполняемый программный модуль, пригодный для исполнения микроконтроллером. Для этого необходимо нажать клавишу F9 или выбрать подпункт Компиляция проекта (Compile) из пиктограммного меню (см. рисунок 1.16). В большинстве случаев целесообразно сразу после компиляции произвести программирование микроконтроллера, для чего необходимо нажать комбинацию клавиш Shift+F9 или выбрать подпункт Программирование микроконтроллера (Make) из пиктограммного меню (см. рисунок 1.16). При завершении этапа компиляции активизируется окно Information (см. рисунок 1.19), содержащее информацию о скомпилированном проекте. Если компиляция прошла успешно, то для записи программы в память микроконтроллера необходимо нажать кнопку Program, расположенную в нижней части окна Information.

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

Рисунок 1.19 – Окно отображения информации о результатах компиляции проекта

 

В некоторых случаях для проверки работоспособности загруженной программы необходимо выполнить сброс микроконтроллера (Reset Chip) или удалить программу из памяти (Erase Chip). Эти функции (см. рисунок 1.20) становятся доступными при выборе подпункта Настройки Программатора из пиктограммного меню (см. рисунок 1.16).

 

Рисунок 1.20 – Окно отображения настроек программатора

 

 

1.3 Порядок проведения работы и указания по ее выполнению

Перед началом выполнения практической части лабораторной работы проводится экспресс–контроль знаний по принципам функционирования микроконтроллера AVR ATMEGA 128, системе команд и возможностям программного управления светодиодами, которые непосредственно подключаются к внешним линиям порта ввода/вывода. При подготовке к лабораторной работе необходимо составить предварительный вариант листинга программы, в соответствие с индивидуальным заданием (см. таблицу 1.4).

Задание 1. Разработать в среде программирования Code Vision AVR программу на языке С для микроконтроллера AVR ATMEGA 128, управляющую блоком из восьми светодиодов. Варианты индивидуальных заданий представлены в таблице 1.4.

Порядок выполнения задания:

1. Включить лабораторный макет (установить выключатель электропитания в положение I, и убедиться в свечении индикатора электропитания красным цветом).

2. Запустить компилятор Code Vision AVR.

3. Создать пустой проект.

4. Создать файл ресурса для кода программы и подключить его к проекту.

5. Ввести код исходного модуля программы управления светодиодами в соответствие с вариантом задания, указанном в таблице 1.4.

6. Выполнить компиляцию (нажав клавишу F9) исходного модуля программы и устранить ошибки, полученные на данном этапе.

7. Настроить параметры программатора.

8. Создать загрузочный модуль программы (нажав комбинацию клавиш Shift+F9) и выполнить программирование микроконтроллера.

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

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

 

Пример выполнения задания. Разработать программу, выполняющую в бесконечном цикле параллельное включение и выключение 1–го, 3–го, 6–го и 8–го светодиодов с длительностью свечения 2 с и временем нахождения в погашенном состоянии 1 с.

Решение. В лабораторном макете блок, состоящий из 8-ми светодиодов, подключен к порту D микроконтроллера в соответствие принципиальной схемой, приведенной на рисунке 1.9. При этом необходимо учитывать, что нумерация светодиодов начинается с 1, а не с 0. Программное управление светодиодами можно обеспечить, записывая в соответствующие разряды регистра PORTD порта D уровни “логического нуля” (зажечь светодиод) или “логической единицы” (погасить светодиод) согласно алгоритму, приведенному на рисунке 1.21. Полный текст исходного модуля программы с подробными комментариями приводится ниже:

#include <mega128.h> Подключить заголовочный файл mega128.h;

#include <delay.h> подключить заголовочный файл delay.h;

main() { основная часть программы;

DDRD=0xFF; настроить порт D на вывод данных;

while (1) { создать цикл с бесконечным числом итераций;

PORTD=0b11111111; погасить все светодиоды;

delay_ms(1000); установить временную задержку 1 с;

PORTD=0b01010101; включить 1–й, 3–й, 6–й и 8–й светодиоды;

delay_ms(2000); } установить временную задержку 2 с;

} завершающая операторная скобка программы;

Рисунок 1.21 – Алгоритм программы управления светодиодами

 

Задание 2. Выполнить предыдущее задание с использованием команд пересылки данных языка Assembler.

Порядок выполнения задания совпадает с последовательностью действий, указанной в пункте 1.3.1. Адреса регистров порта D приведены в таблице 1.1.

Пример выполнения задания, рассмотренного в пункте 1.3.1, с использованием операторов языка Assembler приводится ниже:

#include <mega128.h> Подключить заголовочный файл mega128.h;

#include <delay.h> подключить заголовочный файл delay.h;

main() { основная часть программы;

#asm начало кода ассемблерной вставки;

ldi R16,0b11111111; загрузить в регистр R16 константу 0b11111111;

ldi R17,0b01010101; загрузить в регистр R17 константу 0b11111111;

out 0x11,R16 настроить порт D на вывод данных;

#endasm завершение кода ассемблерной вставки;

while (1) { установить цикл с бесконечным числом итераций;

#asm(“out 0x12,R16”); погасить все светодиоды;

delay_ms (1000); установить временную задержку 1 с;

#asm (“out 0x12,R17”); включить 1–й, 3–й, 6–й и 8–й светодиоды;

delay_ms(2000); } установить временную задержку 2 с;

} завершающая операторная скобка программы;

Таблица 1.4 – Варианты индивидуальных заданий

№ п.п. Задание
  Разработать программу, выполняющую в бесконечном цикле последовательное включение/выключение 1 – го, 3 – го и 6–го светодиодов с интервалом 2 с.
  Разработать программу, выполняющую 5 раз подряд последовательное включение 2 – го, 4 – го и 6–го светодиодов с интервалом 1,5 с.
  Разработать программу, выполняющую в бесконечном цикле последовательное включение/выключение 1 – го, 2 – го, 3 – го и 4–го светодиодов с интервалом 1 с.
  Разработать программу, выполняющую в бесконечном цикле параллельное включение 1–го, 2–го, 7–го и 8–го светодиодов с длительностью свечения 2 с и временем нахождения в погашенном состоянии 1 с.
  Разработать программу, выполняющую в бесконечном цикле параллельное включение 1–го, 2–го и 8–го светодиодов с длительностью свечения 1 с и временем нахождения в погашенном состоянии 2 с.
  Разработать программу, выполняющую в бесконечном цикле последовательное включение/выключение всех светодиодов (с 1–го по 8–й) с интервалом 1,4 с.
  Разработать программу, выполняющую в бесконечном цикле последовательное включение всех светодиодов (с 1–го по 8–й) с интервалом 0,5 с.
  Разработать программу, выполняющую в бесконечном цикле последовательное включение/выключение 3–го, 4–го и 5–го светодиодов с интервалом 3 с.
  Разработать программу, выполняющую в бесконечном цикле последовательное включение 5–го, 6–го, 7–го и 8–го светодиодов с интервалом 2.5 с.
  Разработать программу, выполняющую в бесконечном цикле параллельное включение и выключение блока из 8-ми светодиодов с длительностью свечения 2 с и временем нахождения в погашенном состоянии 4 с.

 

 

Содержание отчета

В отчете необходимо привести следующее:

характеристики лабораторной вычислительной системы;

исходные модули разработанных программ;

анализ полученных результатов и краткие выводы по работе, в которых необходимо отразить особенности программного управления блоком светодиодов с помощью микроконтроллера AVR ATMEGA 128.

 

1.5 Контрольные вопросы и задания

1. Поясните основные особенности архитектуры микроконтроллера AVR ATMEGA 128.

2. Поясните принципы распределения адресных пространств памяти, регистров общего назначения и портов ввода/вывода в микроконтроллере AVR ATMEGA 128.

3. Каково назначение отдельных битов регистра состояния SREG?

4. Поясните реализацию в микроконтроллере AVR ATMEGA 128 Гарвардской архитектуры и принципа конвейерной обработки команд.

5. Каким образом реализуется вызов операторов языка Assembler из С – программы? Приведите примеры.

6. Дайте характеристику основным командам микроконтроллера AVR ATMEGA 128 при обращении к памяти и портам ввода/вывода.

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |

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



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