Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Задача: К микроконтроллеру подключены 2 переключателя и 2 светодиода.
  2. ;С помощью светодиодов необходимо показывать состояние переключателей.
  3. ;Первый переключатель подключен к D1, второй -- к D3. Первый диод подключен к D2, второй -- к D7.
  4. ;D3 -> D2, D1 -> D7
  5.  
  6. .include "m8515def.inc"
  7.  
  8. .def temp = r20
  9. .org $000
  10.     rjmp INIT
  11.  
  12. INIT:
  13.     ;Настройка порта и подтягивающих резисторов
  14.     ldi temp, 0b10000100    ;Загрузка конфигурации порта в регистр
  15.     out DDRD, temp          ;Загрузка конфигурации порта
  16.     ldi temp, 0b00001010    ;Загрузка конфигурации подтягивающих резисторов
  17.     out PORTD,temp          ;Загрузка конфигурации резисторов в порт
  18. loop:
  19.     in r16, PIND            ;Прием значений с порта Д в регистр R16
  20.     andi r16, 0b00000010    ;Применяя маскирование, получаем значение B1
  21.     in r17, PIND            ;Прием значений с порта Д в регистр R17
  22.     andi r17, 0b00001000    ;Применяя маскирование, получаем значение B3
  23.  
  24.     lsr r17 ;сдвинули B3 на место B2
  25.     ;Сдвиг B1 -> B7
  26.     lsl r16
  27.     lsl r16
  28.     lsl r16
  29.     lsl r16
  30.     lsl r16
  31.     lsl r16 ;сдвинули B1 до места B7
  32.     or r16, r17             ;Логически складываем R16 и R17
  33.     out PORTD, r16          ;Выводим получившееся значение на порт
  34.     rjmp loop
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement