Вход на сайт Навигация по сайту Любить и уважать Бонус-счастливчики
|
Содержимое файла "Лаб 2.doc" (без форматирования) Міністерство освіти і науки України Одеський національний політехнічний університет Інститут радіоелектроніки та телекомунікацій Кафедра радіотехнічних систем Група РТ-001 Бригада №1 Студент: Конопака Є.А. Звіт з лабораторної роботи №2 Розробка та виконання програм з циклічною структурою з використанням внутрішньої пам’яті програм і зовнішньої пам’яті даних мікроконтролера Складений: Прийнятий: 9 березня 2003 р. 1. Мета роботи: -закріплення теоретичних знань по системі команд мікроконтролера МК51; -придбання навиків складання на асемблері програм, що реалізують алгоритми з циклічною структурою; -закріплення навиків налагодження програм за допомогою програмного емулятора INFO-8051. 2. Домашнє завдання. У домашнім завданні необхідно скласти схему алгоритму і текст програми на асемблері мікроконтролера МК51 у відповідності зі своїм варіантом. Номера варіантів (відповідні номеру бригади) приведені в таблиці. Скласти контрольні приклади. Контрольні приклади повинні передбачати перевірку програм по всіх гілках алгоритму. Визначити обсяг резидентної пам'яті програм для розміщення програми та максимальний і мінімальний час ії виконання. Занести в протокол умову задач, блок-схеми алгоритмів і початковий варіант програми. № вар. Формулювання задачі 1. В РПД з адреси 0100H, розміщений масив з 20 однобайтних цілих чисел зі знаком (старший розряд). Визначити скільки позитивних, негативних і нульових чисел у цьому масиві. Результати помістити в РПД по адресам 0200H,0201H,0202H відповідно. 2. Основні теоретичні відомості Принципова схема підключення зовнішньої пам’яті програм Принципова схема підключення зовнішньої пам’яті даних 3. Виконання домашнього завдання Початковий текст программи: mov R0,#001 mov DPTR, #0100H mov R1,#0000H mov R2,#0000H mov R3,#0000H m1: movx A,@DPTR jz zero zero_return: jnb ACC.7, minus minus_return: jb ACC.7, plus plus_return: inc DPTR djnz R0, m1 jmp end zero: inc R1 jmp zero_return minus: inc R2 jmp minus_return plus: inc R3 jmp plus_return end: mov DPTR,#0200H mov A,R1 movx @DPTR,A mov DPTR,#0201H mov A,R2 movx @DPTR,A mov DPTR,#0202H mov A,R3 movx @DPTR,A Блок схема алгоритму: За початковим варіантом программа займає 32 байта, і максимальний час її виконання – близько 32 машинних цикла. Контрольний приклад для перевірки роботи (перед початком перевірки роботи ввести в пам’ять дану послідовність відповідно до завдання): 00 11 FF 00 11 FF 00 11 FF 00 11 FF 00 11 FF 00 11 FF 00 11 4. Робота в лабораторії (текст налагодженої програми): mov R0,#001 mov DPTR, #0100H mov R1,#0000H mov R2,#0000H mov R3,#0000H m1: movx A,@DPTR jz zero jnb ACC.7, minus minus_return: jb ACC.7, plus plus_return: zero_return: inc DPTR djnz R0, m1 jmp end zero: inc R1 jmp zero_return minus: inc R2 jmp minus_return plus: inc R3 jmp plus_return end: mov DPTR,#0200H mov A,R1 movx @DPTR,A mov DPTR,#0201H mov A,R2 movx @DPTR,A mov DPTR,#0202H mov A,R3 movx @DPTR,A 5. Початкові дані і результат виконання програми Початкові дані – дані контрольного прикладу: Результат виконання-за адресом 0200Н-07Н,0201Н-06Н,0202Н-07Н. 6. Висновок На данній лабораторій роботі я ознайомився з принципом побудови програм асемблера МК51 з циклічною структурою; у початковому варіанті програми допущена неточність. Було відлагождено программу з циклічною структурою і отримані результати. Програма займає 32 байт і виконується протягом 32 тактів. Початок Ввід даних =0 Записати число в А Інкремент лічильника 1 Вивід результата Інкремент лічильника 2 Останов i=0,20,1 >0 <0 Інкремент лічильника 2 |
Посетителей: 0, из них зарегестрированных: 0, гостей: 0 Зарегистрированные пользователи: Подробно | Страница сгенерирована за 0.046 сек. |