Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;Задача: К микроконтроллеру подключены 2 переключателя и 2 светодиода.
- ;С помощью светодиодов необходимо показывать состояние переключателей.
- ;Первый переключатель подключен к D1, второй -- к D3. Первый диод подключен к D2, второй -- к D7.
- ;D3 -> D2, D1 -> D7
- .include "m8515def.inc"
- .def temp = r20
- .org $000
- rjmp INIT
- INIT:
- ;Настройка порта и подтягивающих резисторов
- ldi temp, 0b10000100 ;Загрузка конфигурации порта в регистр
- out DDRD, temp ;Загрузка конфигурации порта
- ldi temp, 0b00001010 ;Загрузка конфигурации подтягивающих резисторов
- out PORTD,temp ;Загрузка конфигурации резисторов в порт
- loop:
- in r16, PIND ;Прием значений с порта Д в регистр R16
- andi r16, 0b00000010 ;Применяя маскирование, получаем значение B1
- in r17, PIND ;Прием значений с порта Д в регистр R17
- andi r17, 0b00001000 ;Применяя маскирование, получаем значение B3
- lsr r17 ;сдвинули B3 на место B2
- ;Сдвиг B1 -> B7
- lsl r16
- lsl r16
- lsl r16
- lsl r16
- lsl r16
- lsl r16 ;сдвинули B1 до места B7
- or r16, r17 ;Логически складываем R16 и R17
- out PORTD, r16 ;Выводим получившееся значение на порт
- rjmp loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement