
- •Часть I – Основы архитектуры и язык ассемблера мк51
- •Вивчення команд арифметичних операцій та способу вивода даних на статичний 7-сегментний індикатор
- •Изучение команд передачи управления и программирование алгоритмов с ветвлением для микроконтроллеров mcs-51
- •Изучение команд передачи управления и программирование алгоритмов с ветвлением для микроконтроллеров mcs-51
- •Порядок выполнения работы
- •Содержание отчёта
- •Контрольные вопросы
- •Перечень рекомендуемой литературы
- •Приложение а – сИстема команд мк51
Изучение команд передачи управления и программирование алгоритмов с ветвлением для микроконтроллеров mcs-51
Цель работы: изучить команды передачи управления однокристальных микроконтроллеров MCS-51 и освоить составление программ с ветвлением.
Задание
Изучить команды передачи управления микроконтроллеров MCS-51 для выполнения логических операций: JZ, JNZ, JC, JNC.
Разработать блок-схему алгоритма решения задачи в соответствии с вариантом индивидуального задания (табл. 3.1);
Составить текст программы на языке ассемблера MCS-51;
Подготовить тесты для составленной программы и выполнить контрольный расчет.
При выполнении работы в учебной компьютерной аудитории:
набрать текст программы и выполнить её отладку;
выполнить тестирование программы и проверить результаты её работы в отладчике;
сделать выводы.
Содержание отчета
Титульный лист.
Цель работы, индивидуальное задание (табл. 1).
Блок-схема алгоритма решения задачи.
Текст программы.
Результаты тестирования программы.
Выводы.
Таблица 3.1 Варианты индивидуальных заданий
№ варианта |
Функция |
Размещение |
1 |
|
X1 – 14h X2 – 15h Y – 1Ah |
2 |
|
X1 – 10h X2 – 12h Y – 16h |
3 |
|
X1 – 20h X2 – 22h Y – 26h |
4 |
|
X1 – 2Ah X2 – 2Bh Y – 2Ch |
5 |
|
X1 – 2Ah X2 – 2Bh Y – 2Ch |
6 |
|
X1 – 0Ah X2 – 0Bh Y – 0Ch |
7 |
|
X1 – 2Ah X2 – 2Bh Y – 2Ch |
8 |
|
X1 – 1Ah X2 – 1Bh Y – 1Ch |
9 |
|
X1 – 0Ah X2 – 0Bh Y – 0Ch |
10 |
|
X1 – 25h X2 – 26h Y – 27h |
11 |
|
X1 – 19h X2 – 1Ah Y – 1Bh |
12 |
|
X1 – 1Bh X2 – 1Ch Y – 1Dh |
13 |
|
X1 – 2Dh X2 – 2Eh Y – 2Fh |
14 |
|
X1 – 1Eh X2 – 1Fh Y – 20h |
Пример выполнения лабораторной работы №4
(7+2x1)/(x2-2x1)
, 2x1≠x2
Y=
4x2+5x1 , 2x1=x2
X1=1ah
X2=1bh
Y=1ch
Текст программы:
$INCLUDE(C:\MK5 l\Compiler\ASM51\MOD\MOD51)
org 0
start:
mov 1ah,#4 ;записать в 1ah число x1
mov 1bh,#0bh ;записать в 1bh число x2
mov a,1ah ;записать в А значение 1ah
mov b,#2 ;записать в B число 02h
mul ab ;умножить число в А на число в B результат - в А
subb a,1bh ;вычесть из числа в А число в 1bh результат - в А
jz m1
mov a,1ah ;записать в А значение 1ah
mov b,#2 ;записать в B число 02h
mul ab ;умножить число в А на число в B результат - в А
mov 1dh,a ;записать в 1dh значение A
mov a,1bh ;записать в А значение 1bh
subb a,1dh ;сложить числа в А и 1dh результат - в А
mov b,a ;записать в B значение А
mov a,#7 ;записать в А число 07h
add a,1dh ;сложить числа в А и 1dh результат - в А
div ab ;раздельть число в A на число в B результат - в А
sjmp m2
m1:
mov a,1bh ;записать в А значение 1bh
mov b,#4 ;записать в B число 04h
mul ab ;умножить число в А на число в B результат - в А
mov 1dh,a ;записать в 1dh значение A
mov a,1ah ;записать в А значение 1ah
mov b,#5 ;записать в B число 05h
mul ab ;умножить число в А на число в B результат - в А
add a,1dh ;сложить числа в А и 1dh результат - в А
m2:
mov 1ch,a ;записать в 1ch значение A
ret
END
Блок-схема:
Результат программы: Y=5 при x1=4 и x2=11
Проверка:
2*4≠11; 8≠11
(7+2*4)/(11-2*4)=15/3=5
Y=52 при x1=4 и x2=8
Проверка:
2*4=8; 8=8
4*8+5*5*4=32+20=52
Вывод: В процессе выполнения лабораторной работы я изучил команды передачи управления MCS-51, закрепил использование арифметических команд и освоил использование команд MCS-51 для составления программ вычислений с ветвлением.
ЛАБОРАТОРНАЯ РАБОТА №4