Вход на сайт Навигация по сайту Любить и уважать Бонус-счастливчики
|
Содержимое файла "Laba#3_1.doc" (без форматирования) Мета роботи:закріплення теоретичних знань системи команд мікроконтролера МК51; придбання навиків складання програм на мові програмування асемблер, що реалізують алгоритми опрацюванням багатобайтних чисел та використанням подпрограм; закріплення навиків налагодження програм за допомогою програмного емулятора INFO-8051. Домашнє завдання.Скласти блок-схему алгоритму і текст програми на асемблері мікроконтролера МК51 відповідно до завдання. Занести в протокол умову задач, блок-схеми алгоритму і початковий варіант програми. Завдання.В РПД з адреси 0100H, розміщено масив з 3-х байтних чисел з фіксованою комою (старший розряд старшого байта знаковий). Негативні числа записані в прямому коді. Обчислити суму чисел цього масиву і результат записати, починаючи з адреси 0100H. Приведемо принципові схеми підключення зовнішніх пам'яті програм і пам'яті даних до МК51 – рис. 1 та рис. 2 відповідно. Рис. 1. Рис. 2. Алгоритм роботи програми.Алгоритм роботи основної програми приведено на рис. 3. Рис. 3. Алгоритм роботи підпрограми переводу числа в додатковий код - на рис.4. Рис. 4. Алгоритм роботи підпрограми додавання двох чисел - рис.5. Рис. 5. Робота в лабораторії. Нижче приведено текст налагодженої програми: ORG 0 JMP START ORG 30 START: NOP; початок основної програми MOV R1,#0AH ; лічильник циклів MOV R0,#40H ; лічильник адреси MOV 28H,#00H MOV 29H,#00H MOV 30H,#00H MAIN: NOP MOV 25H,@R0 INC R0 MOV 26H,@R0 INC R0 MOV 27H,@R0 INC R0 JB 2FH,M_OTR ; C=1 CALL SUMMA JMP M_7 M_OTR: CALL DOP_COD CALL SUMMA M_7: DJNZ R1,MAIN MOV 70H,28H MOV 71H,29H MOV 72H,30H DOP_COD: ; переведення числа в додатковий код MOV IE,#00H MOV R7,27H MOV R6,26H MOV R5,25H MOV A,R7 CPL A MOV R7,A MOV A,R6 CPL A MOV R6,A MOV A,R5 CPL A MOV R5,A CLR C MOV A,R7 ADDC A,#01H MOV R7,A JNC M_1 ; C=0 MOV A,R6 ADDC A,#01H MOV R6,A JNC M_1 ; C=0 MOV A,R5 ADDC A,#01H MOV R5,A JNC M_1 ; C=0 JMP RES M_1: MOV 27H,R7 ; молодший MOV 26H,R6 ; средній MOV 25H,R5 ; старший RET SUMMA: MOV A,27H ADDC A,30H MOV 30H,A JNC M_2 ; C=0 MOV A,26H ADDC A,#01H ADDC A,29H M_5: MOV 29H,A JNC M_3 ; C=0 MOV A,25H ADDC A,#01H ADDC A,28H M_6: MOV 28H,A JNC M_4 ; C=0 JMP RES M_2: MOV A,26H ADDC A,29H JMP M_5 M_3: MOV A,25H ADDC A,28H JMP M_6 M_4: NOP RET RES: END Висновок. На даній лабораторій роботі було проведено ознайомлення з емулятором асемблера МК51; розроблено початковий варіант програми та налагождено программу з що реалізують алгоритми опрацюванням багатобайтних чисел та використанням подпрограм і отримані результати її роботи. |
Посетителей: 0, из них зарегестрированных: 0, гостей: 0 Зарегистрированные пользователи: Подробно | Страница сгенерирована за 0.0597 сек. |