Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 1 / ИДЗ_1 (Глеб М).docx
Скачиваний:
16
Добавлен:
08.04.2022
Размер:
563.64 Кб
Скачать
  1. Программа управления состоянием светодиода по нажатию кнопки на языке Assembler (усложненная)

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

LDI r16, 0b00000000

OUT DDRB, r16

LDI r16, 0b00000010

OUT PUEB, r16

LDI r16, 0b00100000

OUT DDRA, r16

LDI r16, 0b00000000

OUT PORTA, r16

Main:

IN r16, PINB

SBRS r16, 1

RCALL Blink

SBRC r16, 1

LDI r17, 0b00100000

SBRC r16, 1

OUT PORTA, r17

RJMP Main

.equ LowByte = 255

.equ MedByte = 255

.equ HighByte = 4

Blink:

LDI r18, 0b00000000

OUT PORTA, r18

RCALL Delay

LDI r18, 0b00100000

OUT PORTA, r18

RCALL Delay

RET

Delay:

LDI r19, LowByte

LDI r20, MedByte

LDI r21, HighByte

loop:

DEC r19

BRNE loop

DEC r20

BRNE loop

DEC r21

BRNE loop

RET

По сути, данная программа является комбинацией программ из п. 1 и п. 3, и результат её выполнения заключается в мигании светодиода при нажатой кнопке на плате, и отключение светодиода при её отпускании.

Выводы: Микроконтроллер является сложным, по своей структуре, устройством. Написание даже простых программ для такого устройства требует знания и понимания происходящих внутри процессов. Полезным, в процессе написания алгоритмов, является умение использовать разные подходы к реализации поставленных задач, в частности, выбор языка программирования.

Оба, из использованных языков, имеют свои преимущества и недостатки. Так, в Ассемблере, мы имеем наиболее близкую к машинному языку логику, что позволяет максимально оптимизировать код, но с другой стороны отнимает больше времени и требует больше усилий со стороны разработчика. В Си, в свою очередь, гораздо более простой синтаксис, но так как он является высокоуровневым языком, мы в меньшей степени понимаем логику происходящего внутри МК, что тоже, в некоторых случаях, может быть недостатком.

Соседние файлы в папке Лаба 1
  • #
    08.04.202250.62 Кб13AssemblerApplication1.lss
  • #
    08.04.202212.43 Кб13AssemblerApplication1.map
  • #
    08.04.2022425 б13AssemblerApplication1.obj
  • #
    08.04.20221.69 Кб13AssemblerApplication1.tmp
  • #
    08.04.2022383 б13main.asm
  • #
    08.04.2022563.64 Кб16ИДЗ_1 (Глеб М).docx
  • #
    08.04.2022791.83 Кб18ИДЗ_1.docx
  • #
    08.04.2022430.09 Кб18ИДЗ_1.pdf
  • #
    08.04.202214.55 Кб15Схема с кнопкой.pdsprj