Menu Home

Бесплатная техническая библиотека для любителей и профессионалов Бесплатная техническая библиотека


Инициализация дополнительных сегментов памяти в программах для микроконтроллеров семейства MCS-51. Энциклопедия радиоэлектроники и электротехники

Бесплатная техническая библиотека

Энциклопедия радиоэлектроники и электротехники / Микроконтроллеры

Комментарии к статье Комментарии к статье

Современные микроконтроллеры имеют встроенную энергонезависимую память данных (EEPROM), информацию в которую иногда необходимо занести до начала работы прибора. Образ (прошивка) этой памяти должен быть сформирован при разработке программы. Это позволяют сделать, например, ассемблеры для микроконтроллеров семейств PICmicro и AVR. Они дают программисту возможность организовать дополнительный сегмент памяти и задать в нем исходные данные для записи в EEPROM.

Ассемблеры для микроконтроллеров с ядром MSC-51 тоже позволяют разделить память на несколько частей, но лишь в одной из них - сегменте исполняемого кода - возможна инициализация. Во всех остальных разрешено лишь резервировать ячейки памяти и записывать в них данные только в процессе исполнения программы. Выходом из ситуации может послужить прием, о котором рассказано ниже. Суть его - в использовании условного ассемблирования, в результате чего инициализация сегмента кода происходит по-разному, в зависимости от условий трансляции. Полученные НЕХ-файлы могут быть использованы для программирования не только внутреннего EEPROM микроконтроллера, но и внешних микросхем памяти.

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

Пример программы с двумя дополнительными инициализированными сегментами, условно названными EEPROM и FLASH, приведен в табл. 1. Сохранив его в файле example.asm, воспользуемся ассемблером ASEM-51, который можно бесплатно "скачать" по адресу <plit.de/asem-51/ asem5113.zip>.

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

asem example.asm eeprom.hex/define:EEPROM

Обрабатывая первые строки текста программы, он поместит в свою таблицу символов метки idEeprom, ptrWord и prtBufE, а в выходной файл eeprom.hex (табл. 2) - заданные директивами DB и DW данные. Затем будет выполнена проверка длины сегмента. Если значение программного счетчика превысило физически существующий объем EEPROM (в рассматриваемом случае - 640 ячеек), будет выведено сообщение об ошибке. При заведомо небольшом объеме сегмента проверку можно исключить. Аналогичные проверки можно предусмотреть и в других сегментах.

Инициализация дополнительных сегментов памяти в программах для микроконтроллеров семейства MCS-51
(нажмите для увеличения)

Далее ассемблер встретит директиву IFNDEF EEPROM. Поскольку символ с таким именем в командной строке определен (параметр /define:EEPROM), все следующие строки программы, вплоть до директивы ENDIF, будут проигнорированы и трансляция на этом закончится.

Повторную трансляцию той же программы запустим командной строкой

asem example.asm flash.hex/define:FLASH

Она отличается от предыдущей лишь определением символа FLASH вместо EEPROM. Первый этап трансляции пройдет точно так, как описано выше, и в выходной файл будут записаны данные сегмента EEPROM. Однако директива IFNDEF EEPROM на этот раз процесс не прервет, а следующая за ней директива ORG 0 обнулит программный счетчик. Ассемблер начнет заносить в выходной файл с нулевого адреса данные, предназначенные для сегмента FLASH. Трансляцию прервет директива IFNDEF FLASH. Окончательный вид файла flash.hex показан в табл. 3.

Трансляцию истинного сегмента исполняемого кода зададим командой

asem example.asm

Прежде всего, будут вновь оттранслированы дополнительные сегменты, а все определенные в них метки занесены в таблицу символов ассемблера, что позволит ссылаться на них из сегмента кода. Директива ORG 0 в самом его начале в очередной раз обнулит программный счетчик. Далее трансляция пойдет обычным образом. В полученном файле example.hex (табл. 4) исполняемый код программы начинается с четвертой строки, находясь после строк, идентичных содержащимся в предыдущих НЕХ-файлах.

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

Некоторые программаторы не имеют промежуточного буфера либо строго контролируют входные данные, не допуская перекрытия адресов. В первом случае программирование будет неправильным, во втором - вообще не начнется, пока "ошибки" не будут устранены.

Удалить лишние строки из НЕХ-файла можно вручную с помощью любого текстового редактора. Можно сделать это и автоматически, выполнив подряд две команды:

hex2bin example.hex bin2hex example.bin

Первая создаст двоичный образ содержащихся в файле example.hex данных и поместит его в файл example.bin. Вторая выполнит обратное преобразование и создаст новый файл example.hex уже без излишеств. Необходимые программы можно "скачать" по адресам <ftp://atmel.com/pub/atmel/hex2bin.exe> и <ftp://atmel.com/pub/atmel/bin2hex.exe>.

Автор: С.Чекунов, г. Ижевск

Смотрите другие статьи раздела Микроконтроллеры.

Читайте и пишите полезные комментарии к этой статье.

<< Назад

Последние новости науки и техники, новинки электроники:

Стерильного нейтрино не существует 15.01.2026

В физике элементарных частиц поиск новых, пока не обнаруженных объектов играет ключевую роль в понимании устройства Вселенной. Иногда такие поиски приводят к громким открытиям, а иногда - к не менее важным отрицательным результатам, которые позволяют отбросить неверные направления. Именно к таким случаям относится недавний вывод ученых о судьбе стерильного нейтрино - одной из самых интригующих гипотетических частиц последних десятилетий. Исследователи из американской лаборатории Fermilab официально сообщили, что им не удалось найти доказательства существования стерильного нейтрино. К такому выводу пришла команда эксперимента MicroBooNE после многолетнего анализа столкновений нейтрино, которые ранее рассматривались как возможный намек на существование четвертого типа этих частиц. Предполагалось, что стерильное нейтрино взаимодействует с материей исключительно через гравитацию, что делало его крайне трудным объектом для обнаружения. В рамках современной физики нейтрино известны в т ...>>

Беспроводные наушники и колонки Fender 15.01.2026

Музыкальная индустрия постепенно адаптируется к цифровым технологиям, и известный производитель музыкальных инструментов Fender расширяет свое присутствие за пределы гитар и усилителей, представляя современные решения для прослушивания музыки. Новые беспроводные наушники и Bluetooth-колонки Fender объединяют богатый звук, модульность и удобство использования как для дома, так и для профессиональной работы. Флагманской новинкой стали наушники Fender Mix, отличающиеся модульной конструкцией. Динамики подключаются к оголовью через порт USB Type-C и могут быть сняты вместе с амбушюрами, что облегчает уход и транспортировку. Один из динамиков оснащен встроенным адаптером USB Type-C для подключения к источнику звука без потерь, поддерживая кодеки LDHC и Fire, а также функцию Auracast. На другом динамике размещен съемный аккумулятор, который обеспечивает до 100 часов работы без активного шумоподавления; при включении ANC время работы сокращается до 52 часов. Наушники доступны по цене $299 ...>>

Польза белкового завтрака 14.01.2026

Правильное питание по утрам играет ключевую роль в поддержании здоровья и контроле веса. Многочисленные исследования подтверждают, что состав завтрака может влиять на аппетит в течение всего дня и качество употребляемой пищи. Австралийские ученые провели масштабный эксперимент, который показал, что употребление белковой пищи с утра помогает дольше чувствовать сытость и предотвращает переедание. В исследовании участвовали более 9 тысяч человек среднего возраста 46 лет. В период с 2011 по 2012 год специалисты анализировали рационы респондентов, оценивая долю основных макронутриентов. В среднем участники потребляли 43% углеводов, 31% жиров, 18% белков, 2% клетчатки и 4% алкоголя. Такой рацион позволил ученым проследить взаимосвязь между утренним приемом пищи и пищевым поведением в течение дня. Выяснилось, что участники, чей завтрак содержал недостаточное количество белка, ощущали повышенный аппетит в течение дня. Они ели больше, чем необходимо, и часто выбирали продукты с высоким со ...>>

Случайная новость из Архива

Визуальный микрофон 07.08.2025

Исследовательская группа из Пекинского технологического института, возглавляемая Сюй-Жи Яо, разработала уникальную систему, способную воспринимать звук, анализируя микроскопические колебания света, отраженного от вибрирующих объектов. Это устройство получило название "визуальный микрофон", поскольку не использует традиционные воздушные колебания для захвата аудиосигналов.

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

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

Во время испытаний исследователи использовали привычные материалы - бумажную карточку и лист бумаги, помещенные в полуметре от колонок. Источники звука воспроизводили голос и музыкальные фрагменты. Наилучший результат по качеству распознавания получился при использовании бумажной карточки. Хотя высокочастотные звуки иногда искажались, низкие частоты передавались с достаточной точностью. Команда частично компенсировала искажения с помощью цифровой обработки сигнала.

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

Несмотря на то что пока система существует только в лабораторном прототипе, ее перспективы кажутся весьма многообещающими. Как отмечает Сюй-Жи Яо, разработка пригодится в ситуациях, когда прямое использование традиционного микрофона невозможно: например, при удаленном измерении пульса или дыхания, а также во время спасательных операций, когда к пострадавшему нет физического доступа.

Другие интересные новости:

▪ Собаки понимают слова и интонации также, как человек

▪ Первый 5G-смартфон

▪ Озон снижает урожайность

▪ Генерация электроэнергии во время сушки древесины

▪ Интерактивное телевидение Hybridcast

Лента новостей науки и техники, новинок электроники

 

Интересные материалы Бесплатной технической библиотеки:

▪ раздел сайта Детекторы напряженности поля. Подборка статей

▪ статья Медведь на ухо наступил. Крылатое выражение

▪ статья Какой человек в 2011 году входил в рейтинги и лучших мужских моделей, и самых красивых женщин? Подробный ответ

▪ статья Блу-Хоулс. Чудо природы

▪ статья Особенности тринисторных регуляторов. Энциклопедия радиоэлектроники и электротехники

▪ статья Уменьшение пульсаций выходного напряжения. Энциклопедия радиоэлектроники и электротехники

Оставьте свой комментарий к этой статье:

Имя:


E-mail (не обязательно):


Комментарий:





Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте

www.diagram.com.ua

www.diagram.com.ua
2000-2026