Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Motorola MCHC908GP32




Обработка данных на микроконтроллере

КУРСОВОГО ПРОЕКТА

МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ

 

 

К задачам, решаемых микроконтроллерными системами, можно отнести: задачи ввода/вывода информации, задачи обработки и преобразовании информации, а так же задачи организации временных функций.

Рассмотрим примеры программной реализации типовых алгоритмов обработки данных.

Часто при выполнении арифметико-логических операций необходимо определить минимальный (максимальный) элемент массива. Суть алгоритма определения минимального элемента заключается в следующем. Из массива данных выбираются два числа, одно из которых помещается в аккумулятор А, другое в специально отведенную ячейку. Эти числа сравниваются, и меньшее число записывается в аккумулятор. Далее в специально отведенную ячейку, которую использовали ранее, записывается следующий элемент массива. Процедура повторяется. В конечном счете в аккумуляторе будет храниться минимальный элемент массива, который помещается в отдельную ячейку.

На рис. 3.1 представлена блок-схема программы определения минимального элемента списка.

Команда ORG устанавливает начальный адрес программы в памяти МК. При ассемблировании первая команда будет размещаться начиная с адреса $8000. После этого в ячейку памяти ОЗУ с адресом $50, которая выбрана в качестве счетчика циклов, загружается число 5 (число элементов массива). В индексный регистр H:X загружается начальный адрес первого элемента массива. В нашем случае – это $82. Далее в аккумулятор записывается число, адрес которого содержится в Н:Х. Содержимое Н:Х увеличивается на единицу, и число, адрес которой указан в ячейке Н:Х, записывается в специально отведенную ячейку $40. После этого содержимое индексного регистра Н:Х уменьшается на 2. Содержимое аккумулятора А сравнивается с числом, содержащимся в ячейке $40. Выполняемое действие будет иметь вид: (А) – ($40). По результату сравнения устанавливаются признаки.

Содержимое А и ячейки памяти после операции не изменяются. Если после операции сравнения бит знака в регистре ССR установлен в 0, т. е. число положительное, или содержимое аккумулятора больше содержимого ячейки $40, то процессор переходит по метке m 2, где в аккумулятор записывается $40. Иначе же процессор переходит по метке m 3, где очищается ячейка $40, увеличивается содержимое индексного регистра H:X на единицу, уменьшается содержимое счетчика циклов на единицу.

 

Нет
Да
Нет
Да
НАЧАЛО
объявить минимумом первый элемент массива
считать следующий элемент
объявить минимумом текущий элемент
он меньше минимума?
уменьшить анализируемую часть массива на один элемент
массив исчерпан?
КОНЕЦ

 

Рис. 3.1. Блок-схема программы определения минимального элемента массива.

 

 

После этого проверяется счетчик циклов на «0». Если содержимое счетчика циклов не равно 0, то необходимо продолжить выполнение программы, перейдя по метке m 1 (программа опять от метки m 1 начнет заново выполняться). Если же содержимое счетчика циклов равно 0, то программа выполняется дальше, а именно: происходит запись содержимого аккумулятора в ячейку $51 –в ней и будет храниться минимальное число данного массива чисел.

Процедура pr2 необходима для образования массива данных, DB – для определения байта данных. В поле операндов задаваемые данные записываются через запятую. С ячейки, имеющей адрес $82, резервируются 5 ячеек, в которые записываются соответствующие значения.

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

 

Текст программы на языке ассемблера для микроконтроллера MC68НС908GP32:

 

pr1: org $8000 ;задание начального адреса программы
  mov #5,$50 ;организация счетчика циклов с коэффициентом ;пересчета, равным 5
  ldx #$0082 ;загрузка в Н:Х начального адреса первого;элемента массива (Н:Х)←$82
  lda ,x ;запись в А числа, адрес которого находится в Н:Х
m1: cmp 1,x ;сравнение содержимого А с содержимым ячейки ((Н:Х)+1). (А) - ((Н:Х)+1)
  bpl m2 ;перейти на m2, если N = 0
  lda 1,x  
m2: aix #1 ;увеличить содержимое Н:Х на 1
  dec $50 ;уменьшить содержимое $50 на 1
  bne m1 ; перейти на m1,если ($50) = 0
  sta $51 ; ($51)←(А)
  jmp *  
  org $0082 ;образование массива данных
pr2: db $7,$4,$3,$2,$13,$10  
  end    



Поделиться с друзьями:


Дата добавления: 2017-01-14; Просмотров: 220; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.