Смарт-ЭК - поставщик алюминиевых корпусов LinTai

Микроконтроллер определяет максимальную / минимальную величину сигнала

MC68HC705KJ1

В системах, использующих микроконтроллеры для измерений, обработки сигналов с датчиков или управления, иногда требуется определить минимальную или максимальную величины данных. Например, в системах обнаружения объектов, таких как радары и сонары, микроконтроллер принимает эхо сигналы от различных целей и должен определить самую близкую цель, другими словами он должен определить минимальную дистанцию. Другим примером могут служить самонастраивающиеся системы, в которых микроконтроллер собирает данные и должен определить их максимальное и минимальное значения. Простой способ определения минимального и максимального значения подразумевает использование микроконтроллера, IC1, который принимает данные от N источников (Рис.1). Данные должны быть в 8-битном формате. Для упрощения процесса, будем считать данные целыми однобайтовыми числами. Другими словами, значения данных могут быть в диапазоне от 0 до 255. В большинстве случаев, такой диапазон обеспечивает приемлемые результаты. Такие же ограничения наложим и на количество источников данных. Если необходима большая точность или большее количество источников данных, можно использовать два или более байтов при соответствующем усложнении программы.

Микроконтроллер определяет максимальную / минимальную величину сигнала

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

Программа, реализующая первый подход, приведена в Listing 1. Предполагается, что массив данных с N=8 находится в памяти микроконтроллера. Для учебных целей, эта часть программы показана в Listing 1 в строках 8, 9 и с 17 по 21, где контроллер загружает регистры данных значениями из предварительно созданной таблицы. В реальной жизни вы должны загрузить в память данные, полученные от источников, до вызова программы. Для поиска минимального значения используется алгоритм «пузырьковой фильтрации». Согласно алгоритму, поиск начинается с конца массива данных в памяти. В конце работы индексный регистр (Х) обнуляется. Если вам необходимо найти не минимальное, а максимальное значение, вам необходимо изменить всего одну команду в строке 28.

При втором подходе, микроконтроллер ожидает ввода значения в регистр данных, и после получения приступает к его обработке (Listing 2). При таком подходе нет необходимости в использовании массива памяти. Этот вариант программы имеет два свойства: первое, он одновременно находит минимальное и максимальное значения поступающих данных и сохраняет их в переменных DATAmin и DATAmax; второе, программа считает данные, равные 0, как отсутствие данных. Таким образом, возможный диапазон значений данных составляет от 01h до ffh.

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

На английском языке: Microcontroller Selects Minimum / Maximum Value

31 предложений от 22 поставщиков
HC05 HC05 Microcontroller IC 8-Bit 4MHz 1.2KB (1.2K x 8) OTP 16-DIP
Триема
Россия
MC68HC705KJ1CP
70 ₽
MC68HC705KJ1CP
Motorola
от 1 991 ₽
MC68HC705KJ1
Freescale
по запросу
TradeElectronics
Россия
MC68HC705KJ1CP
Freescale
по запросу
ТМ Электроникс. Электронные компоненты и приборы. Скидки, кэшбэк и бесплатная доставка
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя