Вы находитесь на странице: 1из 5

Министерство Образования и Исследований

Республики Молдова
Технический Университет Молдовы

Факультет Вычислительной Техники, Информатики, и


Микроэлектроники
Департамент Микроэлектроники и Биомедицинской
Инженерии

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

по Системам с Микропроцессорами

Тема: Программирование AVR на ассемблере.


Периферийный модуль GPIO

Выполнил: ст.гр. MN-211 Макисон Д.

Проверил: asis. universitar Вержбицкий В.

Кишинев – 2023
1)Цель работы: Обучение средствам проектирования и
моделирования для программирования микроконтроллеров (AVR
Studio и Proteus). Изучить интерфейсы связи с портом ввода-вывода
внешней среды;
Разработать приложение, которое позволяло бы менять состояние
светодиода с текущего на реверсивное при нажатии кнопки.

2) Ход работы:

f
Рис.(1.1) Схема работы с двумя светодиодами
Код для переключателя между двумя светодиодами:

; LAB_1_mcu.asm OUT DDRC, R16


.include "m32def.inc" LDI R16, 0b11111111
.cseg OUT PORTC, R16
.org 0 LDI R16, 0b00000000
Init: LDI R16, 0b00000000 OUT DDRA, R16
LDI R16, 0b11111111 cbi portb, 7
out porta, r16 rjmp buttonoff
ldi r16, 0b01000000
out ddrb, r16 ledoff:
ldi r16, 0b00111111 cbi portb, 6
out portb, r16 sbi portb, 7
ldi r16, 0b11000000 rjmp buttonoff
out ddrb, r16
buttonoff:
mainloop: sbis pina, 4
sbis pina, 4 rjmp buttonoff
rjmp delay nop rjmp mainloop. rjmp mainloop

Validpress: delay:
sbis pinb,6 sbic pina, 4
rjmp ledon ldi R17, 0b11111111
rjmp ledoff dec r17
cpi r17, 0b00000000
ledon: breq validpress
sbi portb, 6 rjmp delay
Рис.(1.2-1.3) Пример работы программы с двумя светодиодами

Рис.(1.4-1.5) Пример работы программы с четырьмя светодиодами

Код для переключателя между четырьмя светодиодами:


; LAB_1_mcu.asm out portb, r16
.include "m32def.inc" ldi r16, 0b11110000
.cseg out ddrb, r16
.org 0
Init: LDI R16, 0b00000000
OUT DDRC, R16 mainloop:
LDI R16, 0b11111111 sbis pina, 4
OUT PORTC, R16 rjmp delay nop rjmp mainloop.
LDI R16, 0b00000000
OUT DDRA, R16 Validpress:
LDI R16, 0b11111111 sbis pinb,6
out porta, r16 rjmp ledon
ldi r16, 0b01000000 rjmp ledoff
out ddrb, r16
ldi r16, 0b00001111 ledon:
sbi portb, 6 buttonoff:
sbi portb, 4 sbis pina, 4
cbi portb, 7 rjmp buttonoff
cbi portb, 5 rjmp mainloop
rjmp buttonoff
delay:
ledoff: sbic pina, 4
cbi portb, 6 ldi R17, 0b11111111
cbi portb, 4 dec r17
sbi portb, 7 cpi r17, 0b00000000
sbi portb, 5 breq validpress
rjmp buttonoff rjmp delay

ВЫВОД

В ходе выполнения данной лабораторной работы был изучен механизм


работы с ассемблером для Atmega32. Были установлены кнопка и два, четыре
светодиода, управляемые с её помощью. Также были получены знания для
работы с различными входами и выходами схемы, внутренней памятью и
регистрами, избегание «дребезга» кнопки, выполнение программных задержек.

Вам также может понравиться