Название: Программирование микроконтроллера
Вид работы: контрольная работа
Рубрика: Информатика и программирование
Размер файла: 22.44 Kb
Скачать файл: referat.me-140046.docx
Краткое описание работы: Разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы. Текст программы, инициализация указателя стека, структура системы и ресурсов микроконтроллера. Запись кодов при программировании данного устройства.
Программирование микроконтроллера
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ВОЗДУШНОГО ТРАНСПОРТА
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ГРАЖДАНСКОЙ АВИАЦИИ»
Кафедра радиотехнических устройств
Контрольная работа
по дисциплине «Микропроцессорные устройства РЭО»
студента 4 курса заочного факультета
Храпова Владимира Алексеевича
Специальность 160905
Шифр: РС-071511
Адрес: Ростовская область, Чертковский район, пгт Чертково
Москва 2010
Исходные данные.
Таблица 1.
№ | Номер варианта задания | Адресация при пересылке данных из ОЗУ в РОНы | Адресация при пересылке данных из РОНов в ОЗУ | SP |
1 | 1 | Прямая | косвенная | 10F1 |
Таблица 2.
№ | A1 | A2 | A3 | A4 | A5 | A6 | M1 | M2 | M3 | M4 |
1 | 17 | 5 | 67 | 76 | 65 | 12 | 0041 | 0043 | 0044 | 0045 |
Задание на контрольную работу
· Сложить два числа 17, 5 и 67 (без учета единица переноса), результат уменьшить на единицу и записать в ячейку ОЗУ 0041.
· Загрузить ячейки ОЗУ 0043 и 0044 числами 76 и 65 соответственно, используя косвенную адресацию (регистровые пары Y и Z).
· Записать в регистр R16 число 12.
· Осуществить вызов подпрограммы, в которой требуется:
¾ сохранить указатели Y, Z и содержимое регистра R16 в стеке. Начальный адрес стека 10F1;
¾ записать в регистр R16 содержимое ячейки ОЗУ 0045 и сравнить с содержимым ячейки ОЗУ 0043, в случае неравенства прибавить к содержимому регистра R16 на единицу;
¾ извлечь сохраненные данные из стека, поменяв содержимое указательных регистров Xи Y местами.
· При пересылке данных из ОЗУ в РОНы использовать прямую адресацию, при пересылке данных из РОНов в ОЗУ использовать косвенную адресацию (если вид адресации не указан в задании явно).
· Все числа и адреса – шестнадцатеричные.
· Выбор команд для программы.
В начале программы необходимо задать адрес стека, где будут сохранены необходимые данные при вызове подпрограммы. Указатель стека реализован в виде двух регистров ввода–вывода, для записи данных в регистры необходимо использовать команду OUT:
· для записи в регистр SPL (младший разряд):
OUTSPL, Rr ;
· для записи в регистр SPH (старший разряд):
OUTSPH, Rr ,
где r – номер регистра, из которого пересылаются данные в стек (r=0…31).
· Для непосредственной записи операндов в РОНы используем команду LDIRd, k ,
где d – номер регистра, в который записывается операнд (d=16…31);
k – операнд.
· Для пересылки данных из ОЗУ в РОНы используем команду косвенной адресации
LD Rr, X ;
LD Rr, Y ;
LDRr, Z ,
где X, Y, Z – 16-ти разрядные регистры для хранения адреса ячейки ОЗУ, из которой пересылаются данные. Каждый из этих регистров имеет в своем составе два РОНа. Структура регистров представлена в таблице 3.
Таблица 3
16-ти разрядный регистр | Младший разряд | Старший разряд |
X | R26 | R27 |
Y | R28 | R29 |
Z | R30 | R31 |
РОН |
· Перед использованием команды LD адрес ячейки ОЗУ должен быть предварительно записан в соответствующий регистр, который используется в команде.
· Для прямой адресации данных из РОНов в ОЗУ используем команду STSn, Rr , где n – адрес ячейки ОЗУ.
· Для косвенной адресации данных из РОНов в ОЗУ используем команду
ST X, Rr ;
ST Y, Rr ;
STZ, Rr .
· Адрес ячейки ОЗУ должен быть предварительно записан в один из регистров X, Y, или Z.
· Для выполнения операции сложения используем команду ADDRa, Rb , где a, b – номера регистров, где хранятся операнды (a=0…31, b=0…31). Результат будет записан в регистр Ra.
· Для уменьшения содержимого регистра на единицу используем команду DECRr .
· Для выполнения требуемой в задании операции сравнения используем команду CPSERa, Rb .
· Команда сравнивает содержимое регистров Ra, Rb, и в случае равенства пропускает следующую команду.
· Для вызова подпрограммы используем команду CALL .
· Для выхода из подпрограммы и возврата в программу используем команду RET .
· В подпрограмме для сохранения содержимого регистра Rr в стеке используем команду PUSHRr .
· Для извлечения из стека в регистр Rr используем команду POPRr.
· При этом учитываем то, что данные должны извлекаться из стека в порядке, обратном загрузке – «последний вошел – первый вышел».
· Для «зацикливания» программы используем команду RJMP.
Текст программы.
Инициализация указателя стека:
Адрес стека 10F1, для его задания в регистр SPL помещаем младший байт ; F6, в регистр SPH – старший 10.
· LDIR20, $F1 ; загрузка регистра R20 младшим байтом адреса начала стека
· OUTSPL, R20 ; загрузка младшего байта указателя стека из регистра
· LDIR20, $10 ; загрузка регистра R20 старшим байтом адреса начала стека
· OUTSPH, R20 ; загрузка старшего байта указателя стека из регистра
Выполнение сложения чисел 17, 5 и 67:
· LDIR17, $17 ; загрузка регистра R16 числом 17
· LDIR18, $5 ; загрузка регистра R17 числом 5
· LDIR19, $67 ; загрузка регистра R18 числом 67
· ADDR17, R18; суммирование содержимого регистров R17, R18
· ADDR17, R19 ; суммирование содержимого регистров R17, R19
· DECR17 ; уменьшение на единицу содержимого регистра R17
· LDIR30, $41 ;
· LDIR31, $00 ;
· STZ , R17 ; загрузка ячейки ОЗУс адресом 0075 значением из регистра R17
Загрузка ячеек ОЗУ 0043 и 0044 числами 76 и 65 соответственно:
· LDIR20, $76 ; загрузка регистра R19 числом 76
· LDIR21, $65 ; загрузка регистра R20 числом 65
Загрузка в регистровую пару X адреса ячейки ОЗУ 0043:
· LDIR26, $43
· LDIR27, $00
Загрузка в регистровую пару Y адреса ячейки ОЗУ 0044:
· LDIR28, $44
· LDIR29, $00
· STX, R20 ; загрузка ячейки ОЗУ с адресом 0043 значением из регистра R20
· STY, R21 ; загрузка ячейки ОЗУ с адресом 0064 значением из регистра R21
· LDIR16, $12 ; загрузка регистра R16 числом 12
· CALLROUT ; вызов подпрограммы ROUT
Зацикливание программы:
· LOOP:
· RJMPLOOP
ПОДПРОГРАММА:
· ROUT:
Сохранение указателя X в стеке:
· PUSHR26
· PUSHR27
Cохранение указателя Y в стеке:
· PUSHR28
· PUSHR29
· LDSR16, $0045 ; загрузка регистра R16 содержимым ячейки ОЗУ с адресом 0045
· LDSR17, $0043 ; загрузка регистра R17 содержимым ячейки ОЗУ с адресом 0043
Загрузка в регистровую пару X адреса ячейки ОЗУ 0065:
· CPSER16, R17 ; пропустить следующую команду, если значения регистров R16 и R17 равны
· INCR16 ; увеличить содержимое регистра R16 на единицу
Извлечение сохраненных данных из стека и замена содержимого указательных регистров:
Извлечение сохраненного содержимого Y в X:
· POPR27
· POPR26
Извлечение сохраненного содержимого X в Y:
· POPR29
· POPR28
· RET ; возврат из подпрограммы.
Литература
1. Яманов Д.Н., Жаворонков С.С. Микропроцессорные устройства РЭО. Пособие по изучению дисциплины и выполнению контрольных работ. – М.: МГТУ ГА, 2008. – 24 с.
2. Калабеков Б.А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учебное пособие для вузов. – М.: Радио и связь, 1988. – 368 с.
Похожие работы
-
Разработка микропроцессорного устройства управления
Разработка принципиальной электрической схемы микропроцессорного устройства управления двигателем постоянного тока на базе контроллера ATmega 128. Разработка пакета подпрограмм на языке Assembler в целях регулирования и корректной работы устройства.
-
Устройство управления системой измерения веса
Особенности разработки устройства управления системой измерения веса, построенного на микроконтроллере ATmega16 фирмы Atmel. Схема включения микроконтроллера, сброса, стабилизатора напряжения. Проектирование функций микроконтроллера. Листинг программы.
-
Система съема данных с оптопар
Формирование тактовых импульсов микроконтроллера. Схемы входных и выходных устройств, источника напряжения питания. Проектирование модуля инициализации микроконтроллера, процедур обработки прерываний, процедур вывода информации и процедуры Main.
-
Регистратор дискретных сигналов
Содержание Введение Постановка задачи Аппаратная часть 2.1 Структура устройства 2.2 Описание принципиальной электрической схемы 2.3 Описание используемых микросхем
-
Разработка аппарата измерения торцевого биения
ОСКОВСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ Кафедра ПР-1 «Точные приборы и измерительные системы» РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА
-
Организация обмена информацией между микроконтроллером семейства MCS-51 фирмы Intel и персональным компьютером
ANOTĀCIJA Šajā darbā tiek aplūkota informācijas apmaiņas organizācija starp personālo datoru un firmai Intel MCS-51 mikrokontrolieri. Darbā tiek uzrādīti mikrokontroliera programmas algoritmi un tā arī strukturālās pieslēgumu shēmas pie personālo datoru portam.
-
Построение компьютерной системы на микроконтроллере
Разработка компьютерной системы для считывания данных по последовательному порту и вывода обработанной информации на LCD индикатор. Выбор и обоснование режимов работы узлов микроконтроллера. Проектирование программного обеспечения микропроцессора.
-
Проект электронных весов с микропроцессорным управлением
Понятие, сущность, виды и микропроцессорное устройство весов. Структурная схема и алгоритм работы электронных весов, особенности выбора для них датчика давления, индикатора и микроконтроллера. Принципы формирования принципиальной электрической схемы.
-
Микропроцессорное устройство управления электронными весами
Микропроцессоры позволяют строить универсальные устройства управления электронными весами. Разработка функциональной схемы, схемы алгоритма прикладной программы. Разработка принципиальной схемы, управляющей программы. Листинг управляющей программы.
-
Работа микроконтроллера и его программирование
Запись кодов команд программы и констант в FlashROM, кодов исходных данных в EEPROM, требуемых значений установочных битов (Fuse Bits) и битов защиты (Lock Bits). Запись и чтение кодов при программировании, способы программирования в микроконтроллерах.