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

  • Где ответ на допуск

  • Лабораторные работы по микропроцессорным системам. Лб7.1Voroninaиспр1зам2Es. Отчет по лабораторной работе 1 Atmel ч. 1 Воронин Д. А. Группа 16эпв Проверил Слядзевская К. П


    Скачать 20.75 Kb.
    НазваниеОтчет по лабораторной работе 1 Atmel ч. 1 Воронин Д. А. Группа 16эпв Проверил Слядзевская К. П
    АнкорЛабораторные работы по микропроцессорным системам
    Дата23.09.2020
    Размер20.75 Kb.
    Формат файлаdocx
    Имя файлаЛб7.1Voroninaиспр1зам2Es.docx
    ТипОтчет
    #139347

    НИЖЕГОРОДСКИЙ ГОСУДОРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. Р.Е. АЛЕКСЕЕВА

    Кафедра «Электропривод и автоматизация промышленных установок»

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

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

    Atmel ч.1

    Выполнил:

    Воронин Д.А.
    Группа 16-ЭПв

    Проверил:

    Слядзевская К.П.

    г. Нижний Новгород

    2020

    Вариант № 41.

    Цель работы:

    Сравнить содержимое ячеек памяти $0079 и $0080 и вывести на светодиоды номер той, содержимое которой меньше (если содержимое обеих равно, то с программно реализованной выдержкой времени показать оба номера).

    Код программы:

    .include "tn2313def.inc"
    .org $0

    rjmp RESET ; Reset Handler

    nop; rjmp INT0 ; External Interrupt0 Handler

    nop; rjmp INT1 ; External Interrupt1 Handler

    nop; rjmp TIM1_CAPT ; Timer1 Capture Handler

    nop; rjmp TIM1_COMPA ; Timer1 CompareA Handler

    nop; rjmp TIM1_OVF ; Timer1 Overflow Handler

    nop; rjmp TIM0_OVF ; Timer0 Overflow Handler

    nop; rjmp USART0_RXC ; USART0 RX Complete Handler

    nop; rjmp USART0_DRE ; USART0,UDR Empty Handler

    nop; rjmp USART0_TXC ; USART0 TX Complete Handler

    nop; rjmp ANA_COMP ; Analog Comparator Handler

    nop; rjmp PCINT ; Pin Change Interrupt

    nop; rjmp TIMER1_COMPB ; Timer1 Compare B Handler

    nop; rjmp TIMER0_COMPA ; Timer0 Compare A Handler

    nop; rjmp TIMER0_COMPB ; Timer0 Compare B Handler

    nop; rjmp USI_START ; USI Start Handler

    nop; rjmp USI_OVERFLOW ; USI Overflow Handler

    nop; rjmp EE_READY ; EEPROM Ready Handler

    nop; rjmp WDT_OVERFLOW ; Watchdog Overflow Handler

    ;----------------------------------------------------------------

    .org $13

    RESET: ldi r16, low(RAMEND); Main program start

    out SPL,r16 ;Set Stack Pointer to top of RAM
    ser r16; настройка порта на вывод

    out DDRB,r16;
    ldi r16,10;загрузка начальных данных

    sts $0079,r16

    ldi r16,10

    sts $0080,r16

    ;--------------------------------------------

    main: lds r16,$0079;читаем данные

    lds r17,$0080

    cp r16,r17;сравниваем между собой

    brlo lower;если меньше то на метку

    breq rawno; если равно то на метку

    ldi r17,$80

    out PORTB,r17; если больше то вывод в порт адреса меньшего

    rjmp main;обратно в главный цикл

    ;--------------------------------------------

    lower: ldi r16,$79

    out PORTB,r16;вывод адреса меньшего в порт

    rjmp m
    rawno: ldi r16,$79;выводим оба адреса в порт по очереди

    out PORTB,r16

    rcall wait; временная задержка

    ldi r17,$80

    out PORTB,r17

    rcall wait; временная задержка

    rjmp rawno;обратно в цикл вывода

    m: rjmp m

    ;--------------------------------------------

    wait: ldi r21,10; подпрограмма временной задержки

    w03: ser r20

    w02: ser r19

    w01: dec r19

    brne w01

    dec r20

    brne w02

    dec r21

    brne w03

    ret

    ;----------------------------------------------

    Вывод: в результате выполненной лабораторной работе, сравнили содержимое ячеек памяти $0079 и $0080 и вывели на светодиоды номер той, содержимое которой меньше.

    Вывод не соответствует программе.


    Где ответ на допуск?

    В качестве допуска к лабораторной работе в отчете рассмотреть методы адресации с примерами команд из программы лабораторной работы. Если к некоторым методам адресации нет примеров команд из лабораторной работы, то привести примеры команд из лекций или литературы.

    lds r16,$0079;читаем данные – непосредственная, адрес явно указан в команде.

    lds r17,$0080 неправильно
    ld r16,Z – косвенная какой области памяти, по указателю адрес в регистровой паре: Z, Y, X

    sbi PORTB,1 – битовая, адрес бита в регистре общего назначения или ввода вывода. Нет такой адресации

    Определите методы адресации для команд из лабораторной работы:

    out PORTB,r17

    rcall wait

    ldi r17,$80

    ser r20
    Где примеры команд на остальные методы?


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