Вход на сайт Навигация по сайту Любить и уважать Бонус-счастливчики
|
Содержимое файла "Лаб 1.doc" (без форматирования) Міністерство освіти і науки України Одеський національний політехнічний університет Інститут радіоелектроніки та телекомунікацій Кафедра радіотехнічних систем Група РТ-001 Бригада №1 Студент: Конопака Є.А. Звіт з лабораторної роботи №1 Розробка та виконання програм з розгалуженою структурою з використанням внутрішньої пам’яті програм і памяті даних мікроконтролера Складений: Прийнятий: 23 лютого 2003 р. 1. Мета роботи: -закріплення теоретичних знань по системі команд мікроконтролера МК51; -придбання навиків складання на асемблері програм, що реалізують алгоритми з розгалуженнями; -закріплення навиків налагодження програм за допомогою програмного емулятора INFO-8051. 2. Домашнє завдання. У домашнім завданні необхідно скласти схему алгоритму і текст програми на асемблері мікроконтролера МК51 у відповідності зі своїм варіантом. Номера варіантів (відповідні номеру бригади) приведені в табл.1. Скласти контрольні приклади. Контрольні приклади повинні передбачати перевірку програм по всіх гілках алгоритму. Визначити обсяг резидентної пам'яті програм для розміщення програми та максимальний і мінімальний час її виконання. Занести в протокол умову задач, блок-схеми алгоритмів і початковий варіант програми. №№ вар. Формулювання задачі Джерело вхідних даних Місце розташування результатів 1 Задані три однобайтних числа А,В та С. Обчислити (АVВ), якщо А>B>C чи A*B у противному випадку А - порт Р0 В - РПД, адрес 20Н С - РПП, адрес 200Н Порт Р2 2. Основні теоретичні відомості Умовне позначення мікроконтролера МК51 Пам'ять програм (ПЗУ) має ємність 4 Кбайта і призначена для збереження команд, констант, таблиць перекодування вхідних і вихідних змінних і т.п. РПП має 16-бітну шину адреса, через яку забезпечується доступ з лічильника чи команд із регістра-покажчика даних. Останній виконує функції базового регістра при непрямих переходах по чи програмі використовується в командах, що оперують з таблицями. Пам'ять даних (ОЗУ) призначена для збереження змінних у процесі виконання прикладної програми, адресується одним байтом і має ємність 128 байт. Крім того, до адресного простору РПД примикають адреси регістрів спеціальних функцій (РСФ). Зображення простору пам’яті МК51 3. Виконання домашнього завдання Початковий текст программи: MOV A, 0050H SUBB A, 0020H JNC L1 MOV A, 0020H SUBB A, 0200H JNC L1 MOV A,0050H ANL A, 0020H MOV 0A0H,A JMP L1 L2: MOV A, 0050H MOV B, 0020H MUL AB MOV 0A0H,B NOP MOV 0A0H, A L2: Блок схема алгоритму: HYPER15 За початковим варіантом программа займає приблизно 30 байтів, і максимальний час її виконання – близько 10 тактів. Контрольні приклади для перевірки роботи: A>B, B>C; A>B, B AC; A 4. Робота в лабораторії (текст налагодженої програми): mov DPTR,#0200H ; записать в DPTR адрес числа С mov A,#00H ; обнулить аккумулятор movc A,@A+DPTR ; записать в аккумулятор значение числа С, которое нахо- ; дится в DPTR mov R2,A ; записать в регистр R2 это значение mov A,#20H ; записать в аккумулятор адрес числа В mov R0,A ; записать в регистр R0 этот адрес mov A,@R0 ; записать в аккумулятор значение числа В, которое нахо- ; дится в R0 mov R1,A ; записать это значение в регистр R1 mov A,P0 ; записать в аккумулятор значение числа С из порта Р0 mov R0,A ; записать его в регистр R0 mov A,R0 ; записать в аккумулятор значение А subb A,R1 ; вычесть А-В jc operation1 ; проверить А>B, если да, то дальше выполнять программу ; если нет - переход на операцию умножения mov A,R1 ; записать в аккумулятор значение В subb A,R2 ; вычесть В-С jc operation1 ; проверить В>C, если да, то дальше выполнять программу ; если нет - переход на операцию умножения jmp operation2 ; переход на операцию логического И operation1: ; операция умножения mov A,R0 ; записать в аккумулятор значение А mov B,R1 ; записать в регистр В значение В mul AB ; умножить А и В mov P2,B ; вывести на порт Р2 старший бит результата nop ; пауза mov P2,A ; вывусти на порт Р2 младший бит результата jmp end ; перейти на останов operation2: ; операция логического И mov A,R0 ; записать в аккумулятор значение А anl A,R1 ; произвести операцию логического И mov P2,A ; вывести на порт Р2 результат jmp end ; перейти на останов end: ; останов 5. Початкові дані і результат виконання програми Початкові дані: A=FF; B=52; C=00. Результат виконання: P3=52. 6. Висновок На данній лабораторій роботі я ознайомився з емулятором асемблера МК51; початковий варіант програми не працює. Було відлагождено программу з розгалуженою структурою і отримані результати. Програма займає 28 байт і виконується протягом 46 тактів. Початок Ввід чиссел A>B B>C AUB A*B Вивід результата Вивід результата Останов |
Посетителей: 0, из них зарегестрированных: 0, гостей: 0 Зарегистрированные пользователи: Подробно | Страница сгенерирована за 0.0613 сек. |