.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes\m8515def.inc"
.def temp = R17
.def temp1 = R16
.def counter = R18
.def temp2 = R19
.def fff = R21
.def reg1 = R20

clr temp ; очистить рег. 17 (temp)
clr temp1
;clr temp1
clr counter
ldi temp1,$ff ; присвоить temp1 значение 0
ser fff ; установить в fff $FF
out ddrb, fff
out portb,fff
out pind,fff
ldi counter,$ff

beg:


in temp,pind ; установить в temp значение portd
cpse temp,temp1 ; сравнить temp с temp1 и пропустить следующую строчку, если равно
lsl fff ; сдвинуть содержимое fff на ед. влево
cpse temp,temp1 ;
mov counter,fff ; скопировать в counter значение из fff
cpse temp,temp1 ;
;com counter ; инверция значения counter
cpse temp,temp1 ;
out portb,counter ; вывести в pinb значение counter


end:

; ПРОВЕРКА ИЗМЕНЕНИЯ СОСТОЯНИЯ PORTA D
in temp2, pind ; установить в temp2 значение portd
cpse temp2, temp
rjmp beg
rjmp end





Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.