RTD, varDecoderPORTB, num
; ***************************************;
; Підпрограми і функції ;
; ***************************************;: ; Перевірка, чи змінився стан кнопок
in var, PINDvar, 0b00000011pressedBtn, varEventBtn
EventBtn: ; Обробка події зміни стану кнопок
mov pressedBtn, varpressedBtn, 0b00000001PressBtn1pressedBtn, 0b00000010PressBtn2
ldi ledOn, 0 ; Вимкнення світлодіодів в разі отпускакія кнопки: ; Включення/вимикання світлодіодів
in var, PINDvar, 0b00110000ledOn, varPORTD, ledOn
PressBtn1: ; При натисканні кнопки, підключеної до каналу PD0
ldi ledOn, 0b00000100i ; Збільшення числа, виведеного на індікаториOutLed: ; При натисканні кнопки, підключеної до каналу PD1ledOn, 0b00001000i ; Зменшення числа, виведеного на індікаториOutLed: ; Підготовка числа для виведення на лівий індікаторind, 0b00010000 ; (розряд десятків)
mov num, inum, 0b11110000numnumnum num
rjmp OutNumber
Tablo2: ; Підготовка числа для виведення на правий індикатор
ldi ind, 0b00100000 ; (розряд одиниць)
mov num, inum, 0b00001111 OutNumber
Decoder: ; Декодування числа для виведення на індкаториZL, Low (DcMatrix * 2) ; Завантаження початкової адреси масиву
ldi ZH, High (DcMatrix * 2) var, 0ZL, numZH, varnum, r0: ; Матриця кодів 7-сегментного індикатора
; hgfedcba hgfedcba
. db 0b00111111, 0b00000110 ; 0,1
. db 0b01011011, 0b01001111 ; 2,3
. db 0b01100110, 0b01101101 ; 4,5
. db 0b01111101, 0b00000111 ; 6,7
. db 0b01111111, 0b01101111 ; 8,9
. db 0b01110111, 0b01111100 ; A, B
. db 0b00111001, 0b01011110 ; C, D
. db 0b01111001, 0b01110001 ; E, F