.NOLIST .INCLUDE "tn13def.inc" .LIST .CSEG ;kódový segment .DEF REG=R16 ;pracovní registr .EQU DDR=DDRB ;řízení směru .EQU PORT=PORTB ;port LDI REG,0b11111111 OUT DDR,REG ;aktivuj výstupy LDI REG,LOW(RAMEND) OUT SPL,REG ;nastav SP na konec SRAM LDI REG,HIGH(RAMEND) CLC ;0 do C LDI REG,0b00000001 LDI R20,255 LDI R21,0 SMYCKA: SMYCKA1: LDI REG,0b00010000 OUT PORT,REG MOV R21,R20 RCALL CEKEJ ;počkej LDI REG,0b00001000 OUT PORT,REG LDI R21,255 SUB R21,R20 RCALL CEKEJ ;počkej DEC R20 BRNE SMYCKA1 SMYCKA2: LDI REG,0b00001000 OUT PORT,REG MOV R21,R20 RCALL CEKEJ ;počkej LDI REG,0b00000100 OUT PORT,REG LDI R21,255 SUB R21,R20 RCALL CEKEJ ;počkej DEC R20 BRNE SMYCKA2 SMYCKA3: LDI REG,0b00000100 OUT PORT,REG MOV R21,R20 RCALL CEKEJ ;počkej LDI REG,0b00010000 OUT PORT,REG LDI R21,255 SUB R21,R20 RCALL CEKEJ ;počkej DEC R20 BRNE SMYCKA3 RJMP SMYCKA ;a znovu ;čekací rutina CEKEJ: MOV R17,R21 INC R17 INC R17 LDI R18,255 ;LDI R19,0 CEKEJA: ;DEC R19 ;BRNE CEKEJA ;smyčka 1 DEC R18 BRNE CEKEJA ;smyčka 2 DEC R17 BRNE CEKEJA ;smyčka 3 RET ;návrat