Лабораторные работы по микропроцессорным системам. Лб7.1Voroninaиспр1зам2Es. Отчет по лабораторной работе 1 Atmel ч. 1 Воронин Д. А. Группа 16эпв Проверил Слядзевская К. П
Скачать 20.75 Kb.
|
НИЖЕГОРОДСКИЙ ГОСУДОРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. Р.Е. АЛЕКСЕЕВА Кафедра «Электропривод и автоматизация промышленных установок» Дисциплина «Микропроцессорные системы» Отчет по лабораторной работе №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 Где примеры команд на остальные методы? |