;**************************************************************** ;* BAFF.ASM: Let walk 6 LEDs in sequence (mini KITT scanner) ;* ;* Rob's ElectroSoft ©2000 ;* ;* ;* MCU type: ATiny22 ;* Copyright: RES ;* Date: 06-03-2000 ;**************************************************************** .include "2343def.inc" rjmp RESET ;reset handle ;* Walk delay ;* Register variables .def T1 = r16 .def T2 = r17 .def temp = r18 ;* Code walkDelay: ldi T1, 150 ;T1 used as delay 2nd count ldi T2, 150 ;T2 used as delay 3nd count delay_1: dec T1 brne delay_1 dec T2 brne delay_1 dec temp ;temp must be preset as brne delay_1 ; delay master count ret ;* Mainprogram - let the LEDs walk back and forth ;* Defines .equ A = 0 ;portB0 (1st LEDs) .equ B = 1 ;portB1 (2nd LEDs) .equ C = 2 ;portB2 (3th LEDs) .equ D = 3 ;portB4 (common 1) .equ E = 4 ;portB5 (common 2) .equ X = 1 ;X times walkDelay ;* Register variables .def baff = r19 ;* Code RESET: ldi temp, RAMEND ;point stack in RAM out SPL, temp sbi DDRB, A ;output A sbi DDRB, B ;output B sbi DDRB, C ;output C sbi DDRB, D ;output D sbi DDRB, E ;output E KITT: ldi baff, 0b11101011 ;E active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11101101 ;E active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11101110 ;E active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11110011 ;D active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11110101 ;D active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11110110 ;D active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11110101 ;D active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11110011 ;D active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11101110 ;E active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay ldi baff, 0b11101101 ;E active and walk next LED out PORTB, baff ;data to portB ldi temp, X ;delay rcall walkDelay rjmp KITT ;next loop