Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование mcs 51

Radiohobby Forum

Объявление

Внимание! Не используйте при регистрации почту в доменах Яндекс и Mail.ru. Письмо на них физически не дойдёт с серверов в Украине, из-за введённых правительством Украины санкций против этих компаний. Всем, кто ранее использовал подобную почту, для сохранения прежней функциональности форума, рекомендуется её поменять.

Огромная просьба заливать картинки и файлы в личные файловые каталоги на форуме, чтобы они физически оставались на сайте форума!

Ссылка «Загрузки» находится справа внизу формы набора сообщения.

Подписка на журнал «Радиохобби» прекращена. Подробности. Форум же продолжает свою работу.

  • Форум
  • » Автоматика и цифровая техника
  • » MCS-51 для «чайников»

Страницы 1 2 3 … 6 Вперед

#1 25.07.2006 00:44:34

MCS-51 для «чайников»

Предлагаю в этой ветке вести обсуждение различных вопросов, возникающих у людей, которые начинают «с нуля».
Заранее пригласим Леонида Ивановича (ака Liv, если кто не знает) выступать в качестве эксперта

Если кто считает, что 51-м пора на пенсию, милости просим сюда:http://www.atmel.com/dyn/products/param_table.asp?family_id=604&OrderBy=part_no&Direction=ASC

Кроме того, 51-м нынче не нужен программатор. Они тоже поддерживают ISP и прошиваются в схеме незабвенным Альтеровским БайтБластером.
По этому поводу тут:http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2877. Здесь есть распиновка кабеля (стандартная в общем) и халявная софтина для прошивки.

У меня на данный момент советов никаких, одни вопросы естессьно.
1) Что нужно, чтобы написанный мною код (допустим в текстовом редакторе) стал hex- или obj-файлом для прошивки МК?? Попрошу не смеяться, я в серьезном затруднении по этому поводу. Я накачал цельну кучу разных ассемблеров, и ни в одном толком разобраться не могу. Все они представляют собой некоторые программы, конвертирующие .txt в .hex или .obj, причем каждая со своими требованими, со своим синтаксисом команд и директив. Однако это не наглядно. Есть ли какая-нибудь среда для разработки со своим текстовым редактором, с подсветкой ошибок в самом тексте программы при ассемблировании и самое главное с доступным описанием? (Было б неплохо еще симулятор для отладки).
2) Как описать МК?? Т.е. как сказать асму, что я пишу например для AT89S2051 ?? Я слышал там надо указывать адреса толи каких-то регистров специальных функций, толи вообще всех регистров, портов и прочего. Хотелось бы четко уяснить, с чего надо начинать программу, чем надо заканчивать, и что в ней должно обязательно присутствовать. Может надо как-то обьявлять переменные или каким-то особым образом указывать начала подпрограмм.
Вот. Хватит пока. Вы уж извините за идиотские вопросы, но у меня уже крышу сносит от обилия разрозненной информации по этому поводу. Хотелось бы все упорядочить и разложить по полочкам.

. There is someone in my head, but it’s not me.

#2 25.07.2006 09:46:05

Re: MCS-51 для «чайников»

1. Компилятор. Можно попытаться поискать IDE (Integrated Development Enviropment) для МС51.

2. Зависит от того, какой компилятор.

ЗІ. Я 51-ми не занимался, больше врядли смогу что-то подсказать.

Почему когда мы нарушаем, нас штрафуют, а когда всё делаем правильно, с нас берут налоги.

#3 25.07.2006 11:28:44

Re: MCS-51 для «чайников»

1. Обычно программатору нужен именно hex-файл
2. Сам пользуюсь и могу рекомендовать IDE Projekt-52 от «Фитона». Рабочая версия (без ограничений) с симулятором свободно доступна у них на сайте www.phyton.ru/cp1251/renevals/8051.shtml. Нормальный интерфейс (русский/аглицкий), хорошая интеграция разных инструментов, возможность работы с разными ассемблерами (в комплекте идёт свой) — очень приятный коммерческий продукт. В самой среде найдёте ответы на все Ваши вопросы. Успехов..

#4 25.07.2006 12:58:05

Re: MCS-51 для «чайников»

Ядро MCS-51 было разработано в 1980 году. В настоящее время выпускается огромное количество клонов 51-го, такими фирмами как Atmel, Silabs, Philips, Winbond и другими. Ядро на свое время было хорошее, но современные процессоры с RISC-архитектурой его существенно превзошли. Основным недостатком ядра является его аккумуляторная архитектура и бедный набор операций с указателями. Сильной стороной ядра является очень удобный битовый процессор. Периферия на сегодняшний день выглядит бедной, за исключением, пожалуй, клонов от Silabs, но они дорогие. На сегодняшний день оптимальным выбором на изучение среди 8-разрядных микроконтроллеров является AVR. Они дешевые, производительные, на борту хорошая периферия (АЦП, таймеры с захватом/сравнением, ШИМ, EEPROM, WATCHDOG, BOD и т.д.).

Насчет прошивки. Atmel сейчас делает несколько моделей 51-х с последовательным программированием (они содержат букву S в названии). Ну а все Silab-овские изначально имели последовательное программирование. Атмеловские AT89Sxxx хоть и дешевые, но это тормоза (на порядок медленнее AVR) и имеют очень бедную периферию. Я их использую только при повторении старых разработок. Для программирования AT89Sxxx использую стандартный Altera ByteBlaster MV и программу spi.exe, которую можно взять здесь: spiprog.chat.ru/
Програматорам обычно нужен или двоичный файл (.bin), или файл в формате Intel HEX (.hex). Этот файл получается при трансляции программы. Трансляторы обычно имеют опцию получать на выходе тот или другой файл. Существует и конвертор bin hex.

Для того, чтобы начать работать с MCS-51, нужна какая-то среда разработки. Есть очень хорошая среда Keil uVision, она даже лучше аналогичных сред для других микроконтроллеров. Версия 7.08 весит примерно 16 Мб. Среда позволяет работать на Си и Ассемблере, содержит симулятор для отладки. Но в Keil мне довелось поработать мало, так как пересел на AVR. А в давние времена для 51-х я использовал табличный ассемблер TASM (весит менее 1 Мб), подключив его к Borland C++ 3.0 под DOS, который использовался в качестве оболочки. Хотя можно использовать любой другой редактор, MultiEdit, например. Вообще, трансляторов для 51-х — море. Когда-то очень давно я даже сам писал транслятор Ассемблера для 48-х и 51-х, который работал на компьютерах на базе 8080 («Орион», «Специалист»).

51-е хороши тем, что большинство из них способны работать с внешней памятью программ, а некотрые для этого имеют отдельные порты (остальные порты остаются свободными). Это позволяет сделать самодельный эмулятор для 51-х, который, в отличие от симулятора, позволяет отлаживать программы прямо в «железе». Я сделал такой эмулятор на базе SIEMENS SAB80C535 (хотя «урезанные» версии типа 2051 и 4051 можно эмулировать обычным 51-м). Посмотреть можно по ссылке: www.telesys.ru/projects/proj046/index.shtml

Читать еще:  Синтаксис в программировании это

Почитать о программировании 51-х можно книгу Фрунзе «Микроконтроллеры? Это же просто!», или классику: Проектирование цифровых устройств на однокристальных микроконтроллерах. /В.В.Сташин, А.В.Урусов, О.Ф.Мологонцева. -М.: Энергоатомиздат, 1990, — 324 с. Если хорошо поискать, всё это можно скачать из Тырнета
Очень хороший курс: «Ваша первая программа для микроконтроллера Intel8051»
www.reis.ustu.ru/Docs/MPlab1.pdf
www.reis.ustu.ru/Docs/MPlab2.pdf
www.reis.ustu.ru/Docs/MPlab3.pdf
www.reis.ustu.ru/Docs/MPlab4.pdf

Что касается вопроса «Как описать МК». Все микроконтроллеры 51-го семейства имеют одинаковую систему команд. Отличаются они только регистрами специальных функций (SFR) — это адреса в пространстве данных МК, по которым можно «достучаться» до той или иной периферии (или ресурсов ядра). Для универсальных трансляторов, таких как TASM, файл описания SFR нужно писать самим. Он нужен для того, чтобы в программе мы могли обращаться к SFR по именам, а не по адресам. Какой набор SFR опишите, с таким процессором и будете работать. Компиляторы, специально «заточенные» под 51-е, сами знают наборы SFR, у них обычно есть специальная директива, которая позволяет выбрать нужный набор SFR для желаемого процессора.

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

P.S. Совет: прочтите это: avr123.nm.ru/02.htm
сходите на сайт Atmel, скачайте AVR Studio и посмотрите вначале эту среду.
Если понравится, возможно, переименуем ветку в «AVR для «чайников»
Все-таки 21-й век на дворе.

Программирование микроконтроллеров MCS-51 — Андреев Д.В.

Программирование микроконтроллеров MCS-51

Автор: Андреев Д.В.
Издательство: УлГТУ
Год издания: 2000
Страницы: 88
ISBN 5-89146-133-1
Читать: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Скачать: programmirovaniemikrokontrolerov2000.doc

ПРОГРАММИРОВАНИЕ
МИКРОКОНТРОЛЛЕРОВ MCS-51

Допущено Министерством образования Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки бакалавров и магистров «Проектирование и технология электронных средств»

УДК 681.32(075)
ББК 32.973.2я7
А65

Рецензенты: кафедра вычислительной техники и защиты информации Уфимского государственного авиационного технического университета (зав. кафедрой д-р техн. наук, профессор В.И.Васильев); кафедра радиотехники Ульяновского государственного технического университета (зав. кафедрой канд. техн. наук, профессор Н.А.Трефилов); канд. техн. наук, с.н.с. Г.П.Токмаков

Андреев Д.В.
А65 Программирование микроконтроллеров MCS-51: Учебное пособие. — Ульяновск: УлГТУ, 2000. — 88 с.
ISBN 5-89146-133-1
Приведены технические характеристики и функциональные возможности популярных микроконтроллеров семейства MCS-51, выпускаемых ведущими компаниями мира. Рассмотрены особенности программной модели микроконтроллера 8051, являющегося ядром MCS-51, и соответствующего машинно-ориентированного языка АСМ51. Описаны содержание основных этапов разработки прикладного программного обеспечения микроконтроллера 8051, а также технология применения специальных программных кросс-средств (кросс-ассемблера X8051 и кросс-редактора связей Link). Даны варианты типовых микроконтроллерных программ. Изложение сопровождается большим числом практических примеров.
УДК 681.32(075)
ББК 32.973.2я7

Учебное издание
АНДРЕЕВ Дмитрий Васильевич
ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРОВ MCS-51
Учебное пособие
Редактор Н.А.Евдокимова
Изд. лиц. 020640 от 22.10.97. Подписано в печать 22.02.00. Формат 60х84/16.
Бумага писчая. Усл. печ. л. 5,12. Уч.-изд. л. 5,00. Тираж 200 экз. Заказ
Ульяновский государственный технический университет,
432027, Ульяновск, Сев. Венец, 32.
Типография УлГТУ, 432027, Ульяновск, Сев. Венец, 32.

ISBN 5-89146-133-1 © Д.В.Андреев, 2000
© Оформление. УлГТУ, 2000

Эффективная автоматизация машин, приборов и технологического оборудования, которая является обязательным условием ускорения научно-технического прогресса, основана на широком применении средств микропроцессорной техники (МТ). Автоматизация с использованием микропроцессоров (МП) и микроконтроллеров (МК) быстро распространяется в самых разнообразных отраслях народного хозяйства, охватывает новые сферы.
Характерно, что создание микропроцессорных устройств и систем все в большей степени становится функцией специалистов в конкретной предметной области, а не профессиональных программистов и специалистов по вычислительной технике. Это вызывает большую потребность в инженерных кадрах, которые, кроме своей предметной области, дополнительно разбираются в микропроцессорной технике.
Как известно, МТ состоит из двух специфических частей: аппаратурных средств (АС) и прикладного программного обеспечения (ППО). При этом, рассматривая общий процесс проектирования МТ, можно отметить, что в большинстве случаев доля общей трудоемкости разработки ППО значительно превосходит трудоемкость разработки АС. Указанное обстоятельство объясняется тем, что разработка аппаратурной части МТ на базе типовых микропроцессорных БИС сводится (чаще всего) к выполнению стандартных операций в соответствии с рекомендациями, изложенными в технической документации на используемые БИС. Совсем по-другому выглядит инженерный труд при разработке ППО. Проектная работа носит здесь творческий характер, изобилует решениями, имеющими «волевую» или «вкусовую» окраску, и решениями, продиктованными конъюнктурными соображениями. В силу перечисленных обстоятельств именно при проектировании ППО разработчик сталкивается с наибольшим количеством проблем и от того, как они будут решены, зависит успех разработки МТ в целом. Таким образом, весьма актуальным представляется ориентация будущих инженеров на более глубокое изучение вопросов, связанных именно с программированием МТ, в частности языков программирования, средств автоматизации программирования (ассемблеров, компиляторов с языков высокого уровня, линкеров и др.), структурных особенностей микропроцессорной элементной базы.
Известны многочисленные книги, справочники, учебники и учебные пособия отдельно по программированию МП или МК и по средствам его автоматизации, причем вся эта литература издана, в основном, на рубеже 90-х годов. Отсюда следует необходимость создания литературы, в которой совместно, с единых методологических позиций рассматриваются особенности программирования современных микропроцессоров или микроконтроллеров и средства автоматизации их программирования.
Указанным требованиям в полной мере соответствует предлагаемое учебное пособие, основное внимание в котором уделено одним из наиболее популярных и перспективных микропроцессорных БИС — однокристальным микроконтроллерам семейства MCS-51.
2 3 4 5 6 7 .. 31 >> Следующая

Программирование mcs 51

Пожалуйста, сообщите об этом — просто выделите ошибочное слово или фразу и нажмите Shift Enter.

На этой страничке лежат мои старые проекты.

отлаженная схема преобразователя DC 12 В >> DC 300 В, со стабилизацией, в формате ACCEL EDA 14

сервисный интерфейс к пейджинговому передатчику с использованием АЦП AD7858 (восьмиканальный, с последовательным интерфейсом). Там же принципиальная схема в формате Corel Draw 5.

Читать еще:  Методология структурного программирования

работа микропроцессора AT89C1051 в качестве slave-устройства на шине I2C, но: кривовато, не хватает быстродействия

работа с микросхемами энергонезависимой памяти по шине I2C

регулятор напряжения для паяльника на AT89C2051 (. )

программа загрузчика для самодельного эмулятора 80C31

программирование микросхем 24Cxx с интерфейсом I2C через порт LPT компьютера

программа для домофона

тоже программа для домофона, но звук ДИН-ДОН генерируется с помощью ШИМ

программатор для микросхем KeeLoq (брелки для автомобильных сигнализаций с прыгающим кодом). Сам программатор выполнен на AT89C2051, работает через RS232 с компьютерной программой.

принципиальная схема и разводка печатной платы программатора kl1.arj в формате MicroSim Design Center 8

интегрированное управление системой телевизионного наблюдения (поворот камер, управление видеокоммутатором ROBOT).

принципиальная схема и разводка печатной платы приёмника DTMF для tele2.arj (подключение удалённого пульта управления) в формате Corel Draw 5.

удалённый пульт управления для tele2.arj. Сам пульт — обыкновенная PC-клавиатура, подключенная напрямую к AT89C52. Управляющая информация передаётся в линию с помощью DTMF (генерация ШИМ).

тот же пульт управления, но реализованный с помощью компьютера. Для передачи информации в кодер DTMF (на AT89C2051) используется RS232.

простой пример написания DOS-драйвера

редактор основной (conventional) памяти AT-совместимого компьютера

ASM8086 + Borland C

генерация DTMF с использованием LPT, ЦАП на резисторах и прерываний таймера

ASM8086 + Borland C

проигрывание звуков (wav без заголовков) через LPT и ЦАП на резисторах.

старая и новая версии программы-загрузчика для эмулятора ПЗУ (Borland C). Эмулятор собран с использованием макетной платы, вставляемой в шину ISA, эмуляционная память встраивается в адресное пространство convertional-памяти AT-совместимого компьютера с адреса D0000H.

программатор ПЗУ, собранный на той же макетной плате. Но здесь обмен данными уже происходит через порты ввода/вывода

формирование частотных таблиц для номерных фильтров в программе радиотелефона «Волемот-АРС»

ASM8086 + Borland C

работа с портом RS232 через прерывания — чтение данных от мышки

проверка микросхем статической памяти 62256 с помощью псевдослучайной последовательности

автономный программатор/считыватель микросхем X24022 (интерфейс I2C). Индикация режимов с помощью азбуки Морзе (!)

электронный замок с использованием ключей-таблеток iButton фирмы Dallas Semiconductor.

пример декодирования DTMF

приставка для радиотелефона «Алтай-3С», схема и разводка печатной платы приставки в формате Corel Draw 5

программа для радиотелефона «Волемот-АРС»

тоже программа для радиотелефона «Волемот-АРС», но с возможностью изменения АОНа с клавиатуры

система подключения сигнализации «Vista-10» к компьютеру, схема этой системы в формате Corel Draw 5

подключение сотового телефона NOKIA (аналоговой системы NMT450) к телефонной сети

приставка для радиотелефона «Волемот-АРС», схема и разводка печатной платы приставки в формате Corel Draw 5

декодирование POCSAG с использованием фазовой подстройки частоты. Этот пример скачан откуда-то из Интернет (не проверял).

кодер POCSAG, схема и разводка печатной платы кодера POCSAG (ps9_1.arj) в формате MicroSim Design Center 8. В эпоху популярности пейджинга этот кодер трудился в Калуге, в Обнинске и в Останкино (Москва).

пейджинговый ретранслятор, расчёт низкочастотного фильтра для пейджингового ретранслятора

схема и разводка печатной платы пейджингового ретранслятора r20.arj в формате ACCEL EDA 14

то же самое, но в формате MicroSim Design Center 8

проверка работы алгоритма BCH коррекции ошибок пейджингового ретранслятора r20.arj

тестовая программа для пейджингового ретранслятора r20.arj

программа для радиотелефона «Алтай-СП»

старая версия приставки для радиотелефона «Алтай-СП» (импульсный набор цифр)

более новая версия приставки для радиотелефона «Алтай-СП» (тональный набор цифр)

схема и разводка печатной платы приставки prist.arj в формате Corel Draw 5

Примечание: в столбце 2 MCS51 означает микропроцессор типа 8751H, AT89С51 или 8031(наш КР1830ВЕ31), Delphi — программа для компьютера IBM PC (486 и выше), 8080 — процессор типа 8080 (наш КР580ВМ80), ASM8086 — ассемблер процессора 8086 (и выше), Borland C — язык Си фирмы Borland (откомпилировано для DOS).

1. постеры репродукции известных картин.
2. недвижимость в Черногории.
3. новости автотюнинга.
4. Магазин компьютеров рекомендует быстрые компьютеры. Интересный ассортимент офисных компьютеров.
5. thomas twin t2.

Язык программирования C-51

C — это язык программирования общего назначения, предназначенный для написания программ, эффективных по исполняемому коду, с элементами структурного программирования и богатым набором операторов. Язык программирования C практически не имеет ограничений, что позволяет использовать его для эффективного решения широкого круга задач. Однако при написании программ для микроконтроллеров, принадлежащих к семейству MCS-51, необходимо учитывать особенности построения аппаратуры этих микросхем, поэтому был создан диалект этого языка.

В состав языка программирования С-51 введён ряд изменений, отображающих особенности построения памяти микроконтроллеров семейства MCS-51. Кроме того, эти изменения позволяют непосредственно обращаться к встроенным портам, таймерам и другим устройстваммикроконтроллеров указанного семейства. Особенности микроконтроллеров этого семейства в основном отображаются через описания переменных.

Язык программирования С-51 удовлетворяет стандарту ANSI-C и предназначен для получения компактных и быстродействующих программ, предназначенных для микроконтроллеров семейства MCS-51. Язык С-51 обеспечивает гибкость программирования на широко известном языке C, при скорости работы и компактности, сравнимой с программами, написанными на языке программирования ассемблер.

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

Компилятор c51.exe — это программное средство, которое транслирует исходный текст, написанный на языке программирования C51 в перемещаемые объектные модули. Эти модули затем могут объединяться с другими модулями, написанными на языках программирования C51, PLM-51 или ASM-51. Компилятор выводит на экран дисплея или в файлы листингов сообщения об ошибках и вспомогательную информацию, которая может быть использована при отладке и разработке программ.

Компилятор c51.exe может быть установлен на компьютерах серии IBM или совместимых с ними в операционной системе DOS 3.Х и выше и использоваться для генерации команд микроконтроллеров семейства MCS-51.

Применение языка программирования С-51

Язык программирования C-51 и его библиотеки являются частью интегрированного набора средств разработки программного обеспечения для микроконтроллеров семейства MCS-51. Язык программирования C51 поддерживает модульное написание программ. Процесс разработки программ на языке программирования C-51 показан на рисунке 1.

Читать еще:  Не включается безопасный режим


Рисунок 1. Процесс написания программы на языке программирования С-51

При разработке программного обеспечения выполняются следующие этапы:

  • постановка задачи (полное определение решаемой проблемы);
  • разработка принципиальной схемы и выбор необходимого программного обеспечения;
  • разработка системного программного обеспечения. Этот важный шаг состоит из нескольких этапов, включающих: описание последовательности выполняемых каждым блоком задач, выбор языка программирования и используемых алгоритмов;
  • написание текста программы и подготовка к трансляции при помощи любого текстового редактора;
  • компиляция программы;
  • исправление синтаксических ошибок, выявленных компилятором, в текстовом редакторе с последующей перетрансляцией;
  • создание и сохранение библиотек часто используемых объектных модулей при помощи программы lib51.ехе;
  • связывание полученных перемещаемых объектных модулей в абсолютный модуль и размещение переменных в памяти микроконтроллера при помощи редактора связей bl51.exe;
  • создание программы, записываемой в ПЗУ микроконтроллера (загружаемый модуль) в hex формате, при помощи программы oh.exe;
  • проверка полученной программы при помощи символьного отладчика или других программных или аппаратных средств.

Файл, в котором хранится программа, написанная на языке C51 (исходный текст программы), называется исходным модулем. Для исходного текста программы принято использовать расширения файла: ‘*.c’. Исходный текст программы можно написать, используя любой текстовый редактор, однако намного удобнее воспользоваться интегрированной средой программирования, подобной keil-C. В интегрированную среду программирования кроме текстового редактора обычно входят отладчик программ, менеджер проектов и средства запуска программ-трансляторов.

В интегрированной среде программирования процесс трансляции исходного текста программы проходит намного проще. Для получения объектного модуля достаточно нажать на кнопку трансляции файла, как это показано на рисунке 2.


Рисунок 2. Кнопка трансляции исходного текста файла в интегрированной среде программирования keil-c

Готовый оттранслированный участок программы обычно хранится на диске в виде файла, записанного в объектном формате. Такой файл называется объектным модулем. Получить объектный модуль можно, указав имя исходного модуля программы в качестве параметра программы-транслятора в DOS строке или строке командного файла, как это показано в следующем примере:

В этом примере в результате трансляции исходного текста программы, содержащегося в файле modul.c будет получен объектный модуль, который будет записан в файл с именем modul.obj. Как показано на рисунке 1, объектный модуль не может быть загружен в память программ микроконтроллера. В память микроконтроллера загружается исполняемый модуль.

Программа, которая может быть выполнена микроконтроллером, получается после соединения объектных модулей в единый исполняемый модуль. Получить исполняемый модуль программы можно, указав все имена объектных модулей программы в качестве параметров программы редактора связей в DOS строке или строке командного файла, как это показано в следующем примере:

bl51.exe main.obj, modul1.obj, modul2.obj

Имя исполняемого модуля программы по умолчанию совпадает с именем первого объектного файла в списке параметров строки запуска редактора связей. Исполняемый модуль программы записывается в файл без расширения. При выполнении приведённой выше в качестве примера командной строки будет получен исполняемый модуль, который будет записан в файл с именем main.

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


Рисунок 3. Кнопка получения исполняемого и загрузочного модулей в интегрированной среде программирования keil-c

Большинство программаторов, предназначенных для записи информации в память программ микроконтроллеров, не может работать с объектным форматом исполняемого модуля программы, поэтому для загрузки машинного кода в процессор необходимо преобразовать объектный формат исполняемого модуля в общепринятый для программаторов HEX-формат. При преобразовании форматов вся отладочная информация теряется. Машинный код процессора в HEX-формате называется загрузочным модулем.

Загрузочный модуль программы можно получить при помощи программы-преобразователя программы oh.exe, передав ей в качестве параметра имя файла исполняемого модуля программы, например:

В результате выполнения этой командной строки будет получен загрузочный модуль программы, который будет записан в файл с именем main.hex.

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

Отладка программ

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

  • внутрисхемным эмулятором
  • встроенным программным отладчиком
  • внешним программным отладчиком
  • отлаживаемым устройством с записанным в память программ двоичным кодом программы

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


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

При отладке программы с использованием внутрисхемного эмулятора необходимо включать в объектные модули символьную информацию. Для этого используются директивы компилятора. (При использовании интегрированной среды программирования достаточно установить соответствующую галочку в свойствах проекта) В компиляторе языка программирования C-51 возможны следующие действия:

  • включение информации о типе переменных для проверки типов при связывании модулей. Эта же информация используется внутрисхемным эмулятором. Исключение информации о переменных пользователя может использоваться для создания прототипов или для уменьшения размера объектного модуля;
  • включение или исключение таблиц символьной информации;
  • конфигурация вызовов подпрограмм для обеспечения связывания с модулями, написанными на языке программирования ASM-51;
  • определение желаемого содержания и формата выходного листинга программы. Распечатка промежуточных кодов на языке ассемблер после компилирования программ, написанных на языке программирования PLM-51. Включение или исключение листингов отдельных блоков исходного текста.

Вместе со статьей «Язык программирования C-51» читают:

Ссылка на основную публикацию
Adblock
detector