Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Программирование на Ассемблере в МК Motorolla

Автор:   •  Апрель 9, 2018  •  Курсовая работа  •  1,109 Слов (5 Страниц)  •  458 Просмотры

Страница 1 из 5

Содержание

Содержание        1

ВВЕДЕНИЕ        2

Задание на расчетно-графическую работу.        3

1.Программирование на Ассемблере в МК Motorolla        3

2. Программирования МК AVR.        5

Работа  кода программы на симуляторе Proteus, Микроконтроллер Atmega8.        7

Заключение        10

Список использованной литературы.        11

ВВЕДЕНИЕ

Проектирование микропроцессорных систем (МПС) включает проектирование   как    аппаратных,   так и программных  средств.

Разработка  программ - наиболее трудоемкая часть процесса проектирования. Программное обеспечение (ПО) можно разделить на системное, инструментальное и прикладное.

Системное программное обеспечение (операционная система- ОС) реализует связь аппаратного и программного обеспечения, выступая как "межслойный интерфейс" с одной стороны которого аппаратура, а с другой приложения пользователя. Но для большинства встраиваемых микроконтроллеров ( МК)  ОС излишня.

Прикладное ПО – совокупность программ пользователя для конкретной целевой системы. Прикладное ПО отличается наибольшим разнообразием, так как. сфера применения МК расширяется быстрыми темпами.

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

Задание на расчетно-графическую работу.

1.Программирование на Ассемблере в МК Motorolla

Сложить два 16-разрядных числа без проверки разряда переполнения в старшем байте. Данные хранятся в ячейках памяти ОЗУ МК с адресами  $40, $41 и $42, $43. Результат сложения должен быть помещен в память по адресам $50 и $51. Числа представлены в прямом двоичном коде без знака.

$include 'gpgtregs.inc';

RomStartEQU  $9000    ;назначается начальный адрес прикладной ;программы.

RAMStartEQU  $0040;назначается адрес первой ячейки памяти ОЗУ МК.

VectorStartEQU  $FFFE;назначает адрес для вектора начального запуска.

ORG        RAMStart

Data1:                DS   1                ;эти псевдокоманды резервируют ячейки ОЗУ для ;переменных

Data2:                DS   1         ;одновременно назначают численные значения ;адресов для символьных имен переменных.

ORG        $50

Rezalt                DS1;Далее текст программы не изменился.

ORG        RomStart

main:ldа Data1        ;загрузить в аккумулятор ACCAмладший байт ;первого операнда.

addData2+1        ;сложить ACCAс младшим байтом второго операнда. Разряд переноса запоминается в триггере Cрегистра признаков.

staRezalt+1        ;запомнить младший байт результата по адресу $51. Эта операция не изменяет значения триггера переноса.

ldaData1        ; загрузить в ACCA старший байт первого операнда.

adcData2        ;сложить ACCAсо старшим байтом второго операнда ;и значением триггера переноса от предыдущего сложения. Разряд ;переноса ;пять запоминается в триггере Cрегистра признаков. Но ;далее это значение ;не используется и не анализируется.

staRezalt        ;поместить старший байт результата по адресу $50.

mend:         jmp mend        

ORG VectorStart

DWmain

End

Проверка в симуляторе

[pic 1]

Рисунок 1 – проверка в симуляторе

Как видно из рисунка, программа работает. Подсчет нечетных виден в ячейке $0120.

2. Программирования МК AVR.

Реализовать программу «бегущие огни»Написать программу бегущие огни с задержкой 500 мс.

.include "m8def.inc";

.org 0; начало программы

.defstack=r16;определение стека

.defloop1=r17;определение переменные

.def loop2=r18

.def loop3=r19

SBIDDRB, 0; устанавливается единица

SBIDDRB, 1; устанавливается единица

SBIDDRB, 2; устанавливается единица

...

Скачать:   txt (11.8 Kb)   pdf (1.1 Mb)   docx (275.8 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club