Главная страница
Навигация по странице:

  • «МИРЭА – Российский технологический университет» РТУ МИРЭА

  • Отчет по лабораторной работе №1

  • MOV Rn, data n = 0-7Запись в регистр Rn данных data.MOV ad, data Запись по адресу ad данных data.MOV A, @Rn

  • INC Rn n = 0-7Прибавление единицы к данным, записанным на регистре Rn.DEC Rn

  • XCH A, ad Обмен данными между аккумулятором и адресом ad.JZ rel Переход по адресу или метке rel, если на аккумуляторе ноль.MOV ad, @Rn

  • SUBB A, ad Вычитание с заемом из аккумулятора значения, записанного в ВПД по адресу ad.JBC bit, rel

  • SJMP rel Безусловный переход по метке rel.PUSH ad

  • микропроцессоры. Отчет по лабораторной работе 1 Изучение команд микроконтроллера mcs51


    Скачать 143.66 Kb.
    НазваниеОтчет по лабораторной работе 1 Изучение команд микроконтроллера mcs51
    Анкормикропроцессоры
    Дата15.09.2022
    Размер143.66 Kb.
    Формат файлаdocx
    Имя файлаLaboratnoraya_rabota_1.docx
    ТипОтчет
    #679120









    МИНОБРНАУКИ РОССИИ

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    «МИРЭА – Российский технологический университет»

    РТУ МИРЭА

    Институт Информационных технологий

    Кафедра Вычислительной техники

    Отчет по лабораторной работе №1

    «Изучение команд микроконтроллера MCS-51»

    По дисциплине

    «Микропроцессорные системы»

    Выполнил:

    Студент группы ИВБО-04-19


    Трушкина Э.С.

    Прокопишин Г.Н.

    Проверил:

    Семенов Р.Э.

    МОСКВА 2022 г.

    Содержание


    1.Лабораторная работа № 1 3

    1.1Задание 3

    1.2Используемые регистры и ячейки памяти 3

    1.3Алгоритм решения задачи 3

    1.4Описание используемых команд 5

    1.5Код программы 6

    1.6Результат программы 7


    1. Лабораторная работа № 1

      1. Задание


    Вариант 4.

    Найти наибольший элемент массива, расположенного во внутренней памяти, и сохранить его значение в стеке.
      1. Используемые регистры и ячейки памяти


    Таблица 1. Используемые регистры и ячейки памяти

    Регистр или ячейка памяти

    Назначение

    R0(0000h)

    Адрес текущего элемента массива. В начальный момент содержит адрес начала массива 0010h.

    R1(0001h)

    Количество элементов массива. Счетчик итераций.

    R2(0002h)

    Регистр для временного хранения данных (элемента массива, с которым в данной итерации ведется работа).

    0008h

    Наибольший элемент массива данных, записанный в стек после завершения работы программы.

    0010h-0013h

    Данные


      1. Алгоритм решения задачи


    Алгоритм решения задачи представлен на рисунке 1.



    Рисунок 1 – Блок-схема алгоритма решения задачи
      1. Описание используемых команд


    MOV Rn, #data

    n = 0-7

    Запись в регистр Rn данных #data.

    MOV ad, #data

    Запись по адресу ad данных #data.

    MOV A, @Rn

    n = 0-1

    Запись из внутренней памяти данных (ВПД) в аккумулятор данных, расположенных по адресу, который содержится в регистре Rn.

    INC Rn

    n = 0-7

    Прибавление единицы к данным, записанным на регистре Rn.

    DEC Rn

    n = 0-7

    Вычитание единицы из данных, записанных на регистре Rn.

    XCH A, ad

    Обмен данными между аккумулятором и адресом ad.

    JZ rel

    Переход по адресу или метке rel, если на аккумуляторе ноль.

    MOV ad, @Rn

    n = 0-7

    Запись по прямому адресу данных из ВПД, адрес которых записан в регистре Rn.

    SUBB A, ad

    Вычитание с заемом из аккумулятора значения, записанного в ВПД по адресу ad.

    JBC bit, rel

    Переход по адресу или метке rel, если установлен бит bit, с очисткой этого бита.

    SJMP rel

    Безусловный переход по метке rel.

    PUSH ad

    Запись в стек значения, записанного по адресу ad.
      1. Код программы


    Листинг 1 – код программы

    Start:

    MOV R0, #0010h; Начальный адрес массива

    MOV R1, #0004h; Кол-во эл-тов

    MOV A, @R0; Первый (эталонный) эл-т - на аккумуляторе

    INC R0; Следующий адрес эл-та

    DEC R1; Декремент кол-ва эл-тов

    XCH A, 0001h; Обмен аккумулятора и R1 (эталонный эл-т на R1)

    JZ Если на аккумуляторе ноль (эл-ты массива кончились) - конец программы

    XCH A, 0001h; Обмен аккумулятора и R1 (эталонный эл-т на A)

    MOV 0002h, @R0; Запись в R2 след. эл-та, адрес которого на R0

    XCH A, 0002h; Обмен аккумулятора и R2 (эталонный эл-т на R2)

    SUBB A, 0002h; Вычитание из следующего элемента эталонного

    XCH A, 0002h; Обмен аккумулятора и R2 (эталонный эл-т на A)

    JBC если есть перенос (эл-т меньше эталонного) - переходим к следующему элементу

    MOV A, @R0 иначе - записываем значение в аккумулятор

    Переходим к след. эл-ту

    PUSH 0001h; Запись результата в стек

    END


      1. Результат программы


    Рисунок 1- результат работы программы


    написать администратору сайта