.NOLIST .INCLUDE "m8def.inc" ;zvolí použitý mikroprocesor .LIST .CSEG ;kódový segment .DEF REG=R16 ;pracovní registr .EQU DDR=DDRD ;řízení směru .EQU PORT=PORTD ;port LDI REG,$FF OUT DDR,REG ;aktivuj výstupy LDI REG,LOW(RAMEND) OUT SPL,REG ;nastav SP na konec SRAM LDI REG,HIGH(RAMEND) OUT SPH,REG CLC ;0 do D LDI REG,0b00000001 ;počáteční stav bitů SMYCKA: LDI REG,0b00000000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b00000001 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b00000010 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b00000100 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b00001000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b00010000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b00100000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b01000000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b10000000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b10000001 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b10000010 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b10000100 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b10001000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b10010000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b10100000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11000000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11000001 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11000010 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11000100 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11001000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11010000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11100000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11100001 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11100010 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11100100 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11101000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11110000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11110001 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11110010 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11110100 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11111000 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11111001 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11111010 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11111100 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11111101 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11111110 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění LDI REG,0b11111111 OUT PORT,REG RCALL CEKEJ ;zavolá zpoždění RJMP SMYCKA ;a znovu CEKEJ: LDI R17,8 ;zpoždění (zde lze měnit rychlost) LDI R18,0 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