Билет 2
4. Составить подпрограмму, выводящую в порт вывода минимальное из тысячи чисел, расположенных в последовательных ячейках ОЗУ. Определить механизм передачи параметров в подпрограмму, привести пример вызова разработанной подпрограммы.
Min1000: mov R1,#255 ; начальный минимум
mov R2,#10 ; инициализация счетчиков
L2: mov R3,#100 ; на 1000 циклов
L3: movx A,@DPTR ; чтение элемента
inc DPTR ; установка указателя на след. элемент
mov R4,A ; временное сохранение элемента
clr c ; сравнение с
subb A,R1 ; минимумов
jnc L1 ; если больше то обработка счетчиков цикла
mov R1,R4 ; если меньше то новый минимум
L1: djnz R3,L3 ; обработка счетчиков цикла
djnz R2,L2
ret
Пример вызова:
mov DPTR,#Massive ; загрузка в указатель адреса начала массива
acall Min1000 ; вызов подпрограммы
5. К МПС подключены магнитный пускатель мощного нагревательного элемента и цифровой восьмиразрядный датчик (выходы типа ТТЛ) температуры со шкалой 0-500 С. Предложить фрагмент принципиальной (функциональной) электрической схемы МПС . Составить программу нагрева скачками по 10 С с фиксацией в каждом положении в течение заданного времени.
Характеристика датчика
Код Температура С
0 0
255 500
(255/500)*10=5,1?5 10
mov R1,P1 ; чтение исходной температуры
L2: clr P1.0 ; включить нагреватель
L1: mov A,P1 ; чтение текущей темперетуры
clr c ; вычисление приращения
subb A,R1 ; температуры
cjne A,#5,L1 ; проверка равно ли приращение 10 С
setb P1.0 ; выключение нагревателя
mov R1,P1 ; запоминание текущей точки по температуре acall Delay ; задержка времени
sjmp L2 ; следующий этап нагрева
6. МПС принимает через параллельный порт ввода в квитируемом режиме байты информации. Максимальное из введенных чисел (в дополнительном коде) должно размещаться в одном из регистров общего назначения. Остальные вводимые числа не сохраняются. Предложить фрагмент принципиальной (функциональной) электрической схемы МПС . Составить программу на Ассемблере.
mov R1,#0 ; исходный максимум
Next: clr P1.0 ; установка сигнала готовности
L1: jnb P1.1,L1 ;ожидание синхроимпульса
mov A,P2 ;прием байта
setb P1.0 ; снятие сигнала готовности
L2: jb P1.1,L2 ;ожидание конца синхроимпульса
mov R2,A ; временн. сохранение принятого байта
clr c ; сравнение с
subb A,R1 ; текущем максимумом
jc Next ; это не максимум работаем дальше
mov R1,R2 ; это максимум
sjmp Next ; работаем дальше