Разработка программы для лабораторного стенда SDK 1.1
Рисунок 9. Функциональное назначение клавиш Меню в программном комплексе организовано следующим образом: первая строка двухстрочного дисплея SDK-1.1 содержит название меню, вторая строка используется для отображения пунктов меню. Нажатие клавиш «вверх» или «вниз» приводит к отображению соответственно предыдущего или последующего пункта. Клавишами «влево» или «вправо» можно перейти соответственно… Читать ещё >
Разработка программы для лабораторного стенда SDK 1.1 (реферат, курсовая, диплом, контрольная)
РЕФЕРАТ
Карсаков А. А. Программирование лабораторного стенда SDK1.1.
Руководитель проекта — доцент Захаров М.В.
Курсовой проект. Пояснительная записка объемом 31 с. содержит 4 таблицы, 25 рисунков, список источников, состоящий из 2 наименований.
Ключевые слова: микроконтроллер, программирование, регистр, переменная, условие, цикл.
Цель работы — написание программы для лабораторного стенда SDK 1.1.
Основываясь на знаниях, полученных при выполнении лабораторных работ, составлен текст программы для стенда SDK 1.1 в соответствии с заданием. Приложены все необходимые пояснения к данной программе, а так же приведены порядок написания программы в среде Keil мVision2 и непосредственно запись программы в микроконтроллер при помощи программы T167B.
В настоящее время в связи с бурным и повсеместным развитием микропроцессорной техники все чаще применяются новые микроэлектронные устройства.
Малые размеры, относительная простота работы и программирования, высокое быстродействие, надежность работы — все эти свойства делают микропроцессорную технику — наиболее перспективной основой для автоматизации.
В данной работе будет рассмотрена работа с лабораторным стендом SDK1.1, построенным на базе микроконтроллера AduC812. Лабораторный комплекс предназначен для освоения студентами архитектуры и методов проектирования: систем на базе микропроцессоров и однокристальных микро-ЭВМ, встраиваемых контроллеров и систем сбора данных, периферийных блоков вычислительных систем. Подготовка программ для микроконтроллера AduC812 осуществляется на языке программирования СИ на ПК в обычном текстовом редакторе (или средах программирования, предназначенных для разработки программ под ядро MCS-51), далее программа компилируется в исполняемый модуль, доставляемый в стенд с помощью разработанного программного обеспечения.
Все это позволяет сказать, что данный микроконтроллер возможно запрограммировать в любом месте где есть компьютер с СОМ-портом и необходимым программным обеспечением.
1. ОБЩИЕ СВЕДЕНИЯ
1.1 Архитектура учебного лабораторного комплекса SDK-1.1
Учебный лабораторный комплекс SDK-1.1 представляет собой микропроцессорный стенд SDK-1.1, подключенный к персональному компьютеру через интерфейс RS232C (COM-порт компьютера), и установленное на ПК инструментальное программное обеспечение. Микропроцессорный стенд SDK-1.1 построен на базе микроконтроллера AduC812 (вычислительное ядро MCS-51) и имеет в своем составе разнообразные устройства, предназначенные для ввода, обработки и вывода информации в цифровом и аналоговом виде. Общий вид стенда SDK-1.1 представлен на рисунке 1.
Рисунок 1 — Общий вид стенда SDK-1.1
В состав учебного стенда SDK-1.1 входят следующие компоненты:
— микроконтроллер ADuC812BS;
— программируемая логическая интегральная схема (ПЛИС) MAX3064;
— внешнее электрически стираемое программируемое ПЗУ (EEPROM) объемом 256 байт;
— внешняя статическая оперативная память (SRAM) объемом 128 Kбайт;
— клавиатура AK1604A-WWB фирмы ACCORD;
— жидкокристаллический индикатор (ЖКИ) WH1602B-YGK-CP фирмы Winstar Display;
— часы реального времени PCF8583;
— набор сигнальных светодиодов;
— пьезокерамический акустический излучатель;
— набор DIP-переключателей.
На рисунке 2 представлена структура аппаратной части учебного стенда SDK-1.1.
Рисунок 2. Структура аппаратной части учебного стенда SDK-1.1
Стенд SDK-1.1 может работать без подключения к компьютеру.
На рисунке 3 показан процесс разработки программы для стенда SDK-1.1.
Рисунок 3. Процесс разработки программ для SDK-1.1
Программы для стенда располагаются в ОЗУ объемом 128 Кбайт. Из этих 128 Кбайт как память программ (особенности MCS-51) могут использоваться лишь 56 Кбайт (в стенде первые 8 Кбайт памяти программ заняты ПЗУ, в котором располагается системное программное обеспечение, отсюда 64 Кбайт — 8 Кбайт = 56 Кбайт). Однако, как показывает практика, программы такого размера для стенда подготавливать не требуется. SDK-1.1 позволяет на практике ознакомиться с управлением периферийными устройствами, взаимодействующими с вычислителем посредством различных интерфейсов, освоить некоторые специфические аспекты программирования встраиваемых вычислительных систем, эффективного управления ресурсами. В стенде предусмотрена возможность симулировать некоторые внешние сигналы без использования дополнительного оборудования: сигналы внешних прерываний, счетные импульсы таймеров, аналоговые сигналы на входах АЦП. Интересно отметить возможность программного инициирования прерываний, не предусмотренную в MCS-51, однако реализованную в стенде через механизм программного управления состоянием входа внешнего прерывания INT0 AduC812. ПЗУ с резидентным программным обеспечением реализовано на кристалле ОКЭВМ AduC812 по технологии FLASH/EE и может быть перепрограммировано через интерфейс RS-232C с обычного ПК. Новые версии резидентного ПО могут доставляться в стенд без использования специальных программаторов, а тем более новых микросхем ПЗУ — достаточно иметь лишь образ доставляемой программы в виде файла и специальную утилиту на ПК.
Некоторые устройства стенда подключены к вычислителю через периферийный расширитель, реализованный на базе ПЛИС небольшой емкости, перепрограммируемой через имеемый в SDK-1.1 JTAG-порт, что дает возможность при желании изменять механизмы работы с этими устройствами.
Иногда при программировании SDK-1.1 возникает необходимость сохранять программу и после выключения питания. Так как стенд создавался для массового использования студентами, такая возможность в базовой его конфигурации имеется лишь за счет замены содержимого FLASH-памяти вычислителя. Однако ее размер составляет всего 8Кбайт, что не всегда достаточно для более серьезных программ, таких как курсовые и дипломные проекты, бакалаврские и другие исследовательские работы. К тому же, во FLASH-память AduC812 может быть записан только один образ, то есть либо одна программа, либо несколько программ, но скомпонованных в один файл. Это затрудняет обновление отдельной программы в наборе, так как, во-первых, для этого необходимо заново компоновать все программы из набора, во-вторых, невозможно перезаписать часть FLASH-памяти AduC812 без стирания всего ее содержимого.
На рисунке 4 представлено схематическое изображение стенда SDK-1.1, а расшифровка обозначений на схеме дана в таблице 1.
Рисунок 4 — Схематическое изображение стенда SDK-1.1
Таблица 1
Расшифровка обозначений на лицевой панели стенда SDK-1.1
Обозначение | Расшифровка обозначения | |
LCD | Жидкокристаллический индикатор WH1602B-YGK-CP | |
KEYBOARD | Матричная клавиатура AK1604A-WWB | |
Z1 | Звуковой пьезокерамический излучатель | |
SW1 | Переключатель, замыкающий каналы 0 и 1 ЦАП на входы соответствующих (0, 1) каналов АЦП | |
SW2 | Кнопка сброса RESET | |
SW3 | Набор переключателей, замыкающих соответствующие выводы J3 на корпус (переключение в логический «0») | |
J1 | Выводы каналов АЦП и ЦАП | |
J2 | Выводы JTAG-интерфейса ПЛИС MAX | |
J3 | 16 линий параллельного порта ПЛИС MAX и 4 линии параллельного порта P3 микроконтроллера AduC812 (INT0/1, T0/1) | |
J4 | Разъем питания стенда 9 В | |
JDP1 | Разъем последовательного порта стенда | |
JP1 | Перемычка, замыкающая вывод PSEN микроконтроллера AduC812 на корпус | |
D9-D16 | Набор сигнальных светодиодов | |
1.2 Микроконтроллер AduC812BS и ПЛИС MAX3064
AduC812 выпускается фирмой Analog Devices — мировым лидером в области аналоговой схемотехники. AduC812 является микроконвертором и содержит в себе 12-битный АЦП со встроенным микропроцессором. Процессорное ядро AduC812 является клоном ядра Intel MCS-51.
Основные характеристики микроконтроллера:
— рабочая частота 11,0592 МГц;
— 8-канальный 12-битный АЦП со скоростью выборок 200 Kбит/c;
— 2-канальный 12-битный ЦАП;
— электрически стираемое программируемое ПЗУ (EEPROM) объемом 640 байт со страничной организацией (256 страниц по 4 байта);
— Flash-память программ объемом 8 Кбайт;
— ОЗУ данных объемом 256 байт;
— адресное пространство 16 Мбайт;
— режим управления питанием;
— контроллер системной шины;
— универсальный асинхронный приемник-передатчик (UART);
— интерфейс I2C;
— три 16-битных таймера/счетчика;
— сторожевой таймер (WatchDog);
— параллельные порты;
— внутренний температурный датчик.
На рисунке 5 представлено условно-графическое обозначение микроконтроллера AduC812.
Рисунок 5. Микроконтроллер AduC812
В SDK-1.1 используется программируемая логическая интегральная схема (ПЛИС) MAX3064 фирмы Altera. В очень упрощенном виде ПЛИС представляет собой набор макроячеек и механизм для организации связи между ними. Микросхема MAX3064 содержит 64 макроячейки. Информация о связях между макроячейками хранится в энергонезависимой памяти находящейся внутри самой микросхемы. Для программирования MAX3064 использовался специальный САПР Max+PlusII. Электрическая принципиальная схема расширителя портов ввода-вывода была нарисована в этом САПР и преобразована в базис макроячеек ПЛИС и, далее, в конфигурационный файл, необходимый для соединения нужных логических ячеек ПЛИС. Конфигурационный файл доставляется в память ПЛИС через интерфейс JTAG. Условно-графическое обозначение ПЛИС приведено на рисунке 6.
Рисунок 6. ПЛИС MAX3064
В стенде SDK-1.1 MAX3064A используется как расширитель портов ввода-вывода. Микросхема MAX3064A подключена к внешней шине AduC812. Адресная линия A19 используется как сигнал CS (chip select) для MAX3064A. ПЛИС выбирается, когда на линии A19 логическая единица. Физический адрес ПЛИС таким образом равен 0×80 000, что соответствует восьмой странице памяти.
К ПЛИС подключены следующие устройства: клавиатура, ЖКИ, линейка светодиодов, звуковой излучатель, 16 дискретных портов ввода-вывода. Для программиста расширитель портов представлен в виде нескольких однобайтовых регистров находящихся в начале восьмой страницы памяти данных.
Рассмотрим регистры ПЛИС, представленные в таблице 2.
Таблица 2
Перечень регистров ПЛИС
Адрес | Регистр | Доступ | Назначение | |
8 0000H | KB | R/W | Регистр клавиатуры | |
8 0001H | DATA_IND | R/W | Регистр шины данных ЖКИ. | |
8 0002H | EXT_LO | R/W | Регистр данных параллельного порта (разряды 0−7) | |
8 0003H | EXT_HI | R/W | Регистр данных параллельного порта (разряды 8−15) | |
8 0004H | ENA | W | Регистр управления портами ввода-вывода, звуком, сигналом INT0 и прерыванием от клавиатуры | |
8 0006H | C_IND | W | Регистр управления ЖКИ | |
8 0007H | SV | W | Регистр управления светодиодами. | |
Обозначение R/W означает, что регистр доступен для чтения и для записи, обозначение W означает, что регистр доступен только для записи.
Ниже приведена информация о регистре ENA, так как в данной работе необходимо работать с данным регистром.
Схематическое изображение регистра управления ENA представлено на рисунке 7.
Рисунок 7
Регистр управления ENA
; | W | W | W | W | W | W | W | |
; | KB | INT0 | SND2 | SND1 | SND0 | EN_HI | EN_LO | |
Адрес регистра ENA в памяти равен 8 0004H. Значение регистра после сброса равно x0100000B. Назначение битов регистра ENA указано в таблице 3.
Таблица 3
Назначение битов регистра ENA
Биты | Поле | Описание | |
EN_LO | В полной конфигурации бит EN_LO нужен для управления младшими 8 разрядами (биты 0−7) 16-разрядного порта ввода-вывода. Если записать в EN_LO логический «0», то порт ввода-вывода переводится в Z-состояние и появляется возможность чтения данных из EXT_LO. При записи в данный бит логической «1» порт переключается на вывод и данные, записанные в регистр EXT_LO, попадают на выход порта ввода-вывода. В упрощенной конфигурации этот бит управляет всеми 16 разрядами порта ввода-вывода. Если записать в EN_LO логический «0», то весь порт ввода-вывода переводится в Z-состояние и появляется возможность чтения данных из регистров EXT_LO и EXT_HI. При записи в данный бит логической «1» порт переключается на вывод и данные, записанные в регистры EXT_LO и EXT_HI, попадают на выход порта ввода-вывода. | ||
EN_HI | В полной конфигурации бит EN_HI нужен для управления старшими 8 разрядами (биты 8−15) 16-разрядного порта ввода-вывода. Если записать в EN_HI логический «0», то порт ввода-вывода переводится в Z-состояние и появляется возможность чтения данных из EXT_HI. При записи в данный бит логической «1» порт переключается на вывод и данные, записанные в регистр EXT_HI, попадают на выход порта ввода-вывода. В упрощенной конфигурации бит EN_HI не влияет на функционирование порта ввода-вывода. Все управление портом производится битом EN_LO. | ||
2−4 | SND0-SND2 | Выход звукового ЦАП. Задает уровень напряжения на динамике. Позволяет формировать звуковые сигналы различной тональности и громкости. | |
INT0 | При записи логического «0» в этот бит на вход INT0 AduC812 также попадает логический «0». Бит можно использовать для формирования внешнего прерывания для микроконтроллера. | ||
KB | В полной конфигурации при записи логического «0» прерывание от клавиатуры запрещается. Если бит установлен в «1», то прерывание от клавиатуры разрешено. В упрощенной конфигурации бит KB всегда равен нулю, то есть прерывание клавиатуры запрещено. | ||
2. ПРОГРАММИРОВАНИЕ СТЕНДА SDK-1.1
2.1 Демонстрационный режим
Существует два режима работы SDK-1.1: обычный (запуск загрузчика HEX202 для загрузки пользовательских программ) и демонстрационный (выбор и запуск демонстрационных программ).
Режим работы определяется при старте системы положением переключателя EP7, изображенного на рисунке 8.
Рисунок 8. Переключатель EP7
Если переключатель включен (положение ON), то система стартует в демонстрационном режиме, если выключен (положение OFF), система стартует в обычном режиме. При старте в обычном режиме управление сразу передается программе-загрузчику HEX202.
При старте стенда в демонстрационном режиме производится тестирование памяти и периферийного оборудования стенда. В случае неработоспособности какого-либо из тестируемых блоков, на дисплей выводится соответствующее сообщение. В случае неудачного теста памяти дальнейшая работа стенда становится невозможной. После начального тестирования на дисплее на короткое время появляется подсказка по назначению клавиш клавиатуры, представленная на рисунке 9. Далее появляется меню, предлагающее пользователю выбрать одну из демонстрационных программ. Выбор пунктов осуществляется с помощью клавиатуры стенда.
Рисунок 9. Функциональное назначение клавиш Меню в программном комплексе организовано следующим образом: первая строка двухстрочного дисплея SDK-1.1 содержит название меню, вторая строка используется для отображения пунктов меню. Нажатие клавиш «вверх» или «вниз» приводит к отображению соответственно предыдущего или последующего пункта. Клавишами «влево» или «вправо» можно перейти соответственно в начало или в конец меню. Выбор можно подтвердить клавишей «Enter» («Ввод») или отменить (выйти в меню верхнего уровня) клавишей «Cancel» («Отмена»). Каждое нажатие клавиши сопровождается звуковым сигналом. При длительном удержании клавиши включается режим автоповтора нажатия клавиши.
Программа-загрузчик HEX202 обеспечивает доставку в ОЗУ стенда SDK-1.1 пользовательских программ в формате Intel HEX. Доставка осуществляется с ПК по последовательному каналу RS232 с помощью инструментальных систем, поставляемых в комплекте со стендом. Процесс написания, компиляции и доставки программ для стенда SDK-1.1, а также протокол загрузки HEX-модулей детально описан в следующем разделе. При выборе из главного меню комплекса программы-загрузчика возврат из нее возможен только при перезапуске системы.
2.2 Работа с модулем SDX-09 системы автоматического управления на базе комплекса SDK-1.1
Модуль дискретного и аналогового ввода-вывода SDX-09 предназначен для использования в составе лабораторного комплекса совместно с учебными лабораторными стендами SDK-1.1 и SDK-1.1s с целью изучения: систем на базе микропроцессоров и однокристальных микроЭВМ; встраиваемых контроллеров и систем сбора данных; периферийных блоков вычислительных систем; подсистем ввода-вывода встраиваемых систем.
Модуль SDX-09 позволяет подключать внешние устройства, через аналоговые порты ввода-вывода и гальванически изолированные дискретные порты ввода-вывода к контроллеру SDK-1.1. Модуль SDX-09 представляет собой печатную плату с двухсторонним расположением электронных компонентов. Печатная плата крепится в корпус профиль UM-108. Внешний вид модуля SDX-09 представлен на рисунке 10.
Рисунок 10. Внешний вид модуля SDX-09
Размещение электронных компонентов на модуле SDX-09 и расположение внешних разъемов представлены на рисунке 11.
Рисунок 11. Внешние разъемы SDX-09
Параметры электропитания: напряжение питания — 9 В, потребляемый ток — не более 400 мА. Рекомендуемый блок питания AC-220-Si-10−9-850.
Для работы с модулем аналогового и дискретного ввода-вывода SDX-09 следует соблюдать дополнительные требования по технике безопасности.
Рассмотрим порядок подключения к стенду SDK-1.1 и SDK-1.1s.
Подключить модуль SDX-09 к учебному стенду SDK-1.1 или SDK-1.1s с помощью кабеля К-40 (дискретный ввод-вывод) и кабеля К-20 (аналоговый ввод-вывод).
Убедиться, что переключатели SW1 учебного стенда SDK-1.1 находятся в положении OFF.
Убедиться, что на стенде SDK-1.1 не установлена перемычка JP1.
Подключить кабель питания к модулю SDX-09 и учебному стенду.
Включить питание.
Если необходимо, учебный стенд подключается к персональному компьютеру при помощи коммуникационного кабеля RS-232.
лабораторный комплекс sdk
2.2.1 Аналоговые входы
Управление и настройка АЦП осуществляется при помощи 3 SFR регистров. Результат преобразования в 12-битном формате записывается ADCDATAH/L. В первые четыре бита регистра ADCDATAH записывается биты выбора канала. Формат слова приведен на рисунке 12.
Рисунок 12. Формат слова регистров АЦП Регистр ADCCON1 (SFR адрес EFh) управляет преобразованием, временем переключения, режимом преобразования, токопотреблением устройства.
Регистр ADCCON2 (SFR адрес D8h) управляет режимом преобразования и выбором канала.
Регистр ADCCON3 (SFR адрес F5h) дает пользователю доступ к флагу занятости АЦП.
Аналоговые входы SDX-09 позволяют измерять входные напряжения в диапазоне ±10 В. Входные сигналы преобразовываются в диапазон 0−2,5 В и передаются по внешней шине по линиям AINxV (где x — (0−3) номер аналогового входа). На рисунке 13 приведена электрическая схема аналоговых входов.
Рисунок 13. Электрическая принципиальная схема аналоговых входов Следует помнить, что при работе с модулем SDX-09 необходимо, чтобы переключатели SW1 учебного стенда SDK-1.1 находились в положении OFF.
2.2.2 Аналоговые выходы
Аналоговые выходы выполнены на базе операционных усилителей LM258D и позволяют формировать выходные напряжения в диапазоне ±12 В, при выходном токе 5мА. С выходов ЦАП учебного стенда SDK-1.1 сигналы через внешнюю шину попадают на линии DACx (где x — (0−1) номер аналогового выхода), и на входы операционных усилителей. В данном устройстве для каждого канала DACx имеются выходы напряжения и тока, работающие параллельно. Причем нагрузка для выхода напряжения включается относительно общей земли, а для выхода тока — относительно питания выхода. На рисунке 14 приведена электрическая схема аналоговых выходов.
Рисунок 14. Электрическая схема аналоговых выходов
2.3 Программирование стенда SDK-1.1
Опишем последовательность выполнения операций. Для начала нужно подключить стенд SDK-1.1 к COM-порту компьютера. Очень важно, чтобы стенд во время подключения был выключен, так как это может привести к выходу из строя стенда или COM-порта компьютера.
Для программирования стенда может использоваться любой транслятор ассемблера или C для ядра 8051, например, пакет мVision (Keil Software).
Основные этапы программирования стенда: подготовка программы в текстовом редакторе или среде программирования; транслирование исходного текста и получение загрузочного HEX-модуля программы; подготовка и загрузка HEX-модуля в стенд через интерфейс RS232C с помощью поставляемых инструментальных систем (под подготовкой понимается добавление в конец модуля строчки со стартовым адресом программы, то есть адреса, по которому передается управление после загрузки в стенд); прием и обработка HEX-модуля резидентным загрузчиком HEX202; передача управления загруженной программе.
На рисунке 15 представлены этапы программирования стенда SDK-1.1.
Рисунок 15. Этапы программирования стенда SDK-1.1
2.3.1 Создание проекта в Keil мVision2
Подготовим программу в среде программирования Keil мVision2. Для этого откроем эту среду. Ее внешний вид представлен на рисунке 16.
Рисунок 16. Среда программирования Keil мVision2
Создадим новый проект с названием volt. Для этого в основном меню программы откроем вкладку Project, выберем команду New Project (Project > New Project). Проект сохраним в отдельную папку Карсаков_вольт на локальном диске С. Выполнение этих команд показано на рисунке 17.
Рисунок 17. Создание проекта После нажатия кнопки «Сохранить» появляется окно, в котором из выпадающего списка нужно выбрать модель микроконтроллера фирмы Analog Devices ADuC812, как это показано на рисунке 18.
Рисунок 18. Выбор микроконтроллера После нажатия кнопки OK создается проект. Необходимо создать новый файл с расширением «*.c», в котором будет написана программа для SDK-1.1. Для создания файла выполняется команда File > New, для его сохранения — команда File > Save. Сохраним файл под названием main.c. Для добавления этого файла к проекту, вызовем контекстное меню на списке Source Group 1, и выберем команду Add Files to Group «Source Group 1», как это показано на рисунке 19.
Рисунок 19. Добавление файла к проекту Далее в диалоговом окне выбираются файлы, которые требуется подключить к проекту, в нашем случае это файл main. c, и нажимается кнопка Add, как показано на рисунке 20.
Рисунок 20. Добавление файла main. c к проекту После добавления файла main. c к проекту можно приступать к написанию программы. Для этого воспользуемся готовыми библиотеками, поставляемыми вместе со стендом SDK-1.1. Библиотека представляет собой набор файлов языка C с расширениями «*.h» (заголовочные файлы) и с расширением «*.c» (файлы-исходники). Для этой работы нам потребуются файлы ADuC812. h, max. c, max. h, adc. c, adc.h. Их требуется скопировать в рабочую папку с проектом, и подключить к проекту. Подключение файлов аналогично подключению main.c.
2.3.2 Составление текста программы
По заданию необходимо написать программу повторителя напряжения, который выводит на аналоговый вход такое количество напряжения, которое подается на аналоговый вход.
Текст программы приведен ниже:
#include «ADuC812.h»
#include «max.h»
#include «adc.h»
void main ()
{
unsigned char ch, wait, mask, Num;
unsigned short val, reg, reg1;
unsigned int t;
DACCON &= ~0×03;
DACCON &= ~0×80;
DAC0H = DAC0L = 0;
DAC1H = DAC1L = 0;
DACCON |= 0×60;
DACCON |= 0x1C;
DACCON |= 0×03;
for (wait = 0; wait < 30; ++wait);
init_adc ();
mask = 0×01;
DACCON |= mask;
while (1)
{
reg=get_voltage (0);
reg1 = 27-reg;
val = reg1<<2;
DAC0H = val >> 8;
DAC0L = val;
}
}
Сохраняем написанную программу.
2.3.3 Компиляция, запись и запуск программы на стенде SDK 1.1
Для установки параметров компиляции проекта, открывается окно опций, с помощью кнопки на панели инструментов. Требуется сделать два важных изменения. Первое во вкладке Output, поставить флажок Create HEX File для того, чтобы при компиляции проекта был создан hex-файл. Это изменение показано на рисунке 21.
Рисунок 21. Установка флажка Create HEX File
Второе изменение во вкладке BL51 Locate — задается адрес оперативной памяти микроконтроллера, начиная с которого будет размещаться программа. В поле Code ввести значение 0×2100, как это показано на рисунке 22.
Рисунок 22. Установка адреса оперативной памяти После нажатия кнопки OK, требуется сохранить проект. Далее проект собирается и компилируется с помощью команды Project > Rebuild all target files. Или нажатием кнопки Rebuild all target files на панели инструментов, показанной на рисунке 23.
Рисунок 23. Кнопка Rebuild all target files
В рабочей папке с проектом будет создан файл volt. hex, который будет загружаться в память микроконтроллера. Для загрузки используется инструментальная система для MS-DOS T167b. Ее нужно скопировать в папку с проектом. Система T167b представляет собой набор средств для работы с различными системами, она имеет множество команд. Основные команды для SDK-1.1, представлены в таблице 4.
Таблица 4.
Основные команды для SDK-1.1
Команда | Действие | |
OPENCHANNEL | Открытие COM-порта | |
CLOSECHANNEL | Закрытие COM-порта | |
TERM | Включение эмулятора терминала | |
LOADHEX+ | HEX-загрузка | |
ADDHEXSTART | Добавление стартового адреса в конец HEX-файла | |
BYE | Выход из T167b | |
Команда OPENCHANNEL (com, baud->) — открытие COM-порта.
Аргументы: com — номер COM-порта (1,2,3,4); baud — делитель частоты для получения нужной скорости обмена в порту.
Наиболее часто используемые делители:
24: 4800 бит/с;
12: 9600 бит/с;
6: 19 200 бит/с;
3: 38 400 бит/с;
2: 57 600 бит/с;
1: 115 200 бит/с.
Запускаем систему T167b. Вводим команду:
1 12 openchannel
Нажимаем Enter. На экране должно появиться уведомление об открытии соответствующего COM-порта на заданной скорости, как это показано на рисунке 24.
Рисунок 24. Выполнение команды OPENCHANNEL
Затем вводится команда:
0x2100 0×0 addhexstart volt. hex
В конец файла volt. hex добавляется строка, которая указывает, что программу следует записать в RAM микроконтроллера, начиная с адреса 0×2100, с нулевого сегмента.
Следующая команда:
loadhex+ volt. hex
Загружает файл в оперативную память микроконтроллера. После нажатия Enter происходит загрузка, которая занимает несколько секунд. Потом на экран выводится OK, что подтверждает удачную загрузку, окно загрузчика представлено на рисунке 25.
Рисунок 25. Загрузка файла volt. hex в память микроконтроллера После загрузки, микроконтроллер начинает выполнять записанную программу.
ЗАКЛЮЧЕНИЕ
Результатом выполнения данной работы является программа для стенда SDK-1.1. Выполнение данной работы позволило приобрести базовые навыки работы с микроконтроллером AduC812, со стендом SDK-1.1, модулем SDX-09, а так же с программной средой Keil мVision2.
Работа в программной среде Keil мVision2 позволило более качественно усвоить приемы программирования на языке СИ, которые позволяют работать со многими устройствами, входящими в состав стенда SDK-1.1.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ:
1. Встроенные вычислительные системы [Электронный ресурс] / Режим доступа: http://embedded.ifmo.ru/index.php/ - Загл. с экрана. Яз. рус.
2. Научно-производственная фирма «ЛМТ» [Электронный ресурс] / Режим доступа: http://lmt.ifmo.ru/ - Загл. с экрана. Яз. рус.