Вой двух тональной сирены, сквозь звуки сирены слышен рев мотора, свет мигалки ослепляет прохожих синим и красным свечением...

;******************************************************************************
;***** Программа включает и выключает порт PB4 микроконтроллера ATtiny13 ******
;***** Created: 2015-02-05 01:28 ******** Site: http://integrator.adior.ru ****
;******************************************************************************
.includepath "/home/dior/AVR"		; Папка с файлами заголовками         
.include "tn13def.inc"			; Используем ATtiny13                 
;==============================================================================
;		rjmp reset		; начало программы
reset:
		ldi r23, RAMEND		; Загрузить в R23 адрес последней ячейки памяти
		out SPL, r23		; Инициализация стека
		sbi DDRB, DDB2		; PB2 будет работать на выход
		sbi DDRB, DDB3		; PB3 будет работать на выход
		sbi DDRB, DDB4		; PB4 будет работать на выход
		ldi r23, 157		; Загрузить в R23 157 (горят оба светодиода)
		out PORTB, r23		; PB2, PB3 и PB4 установить уровень 1 
					; На PB2 подкл. динамик, на PB3 и PB4 светодиоды.
main:
		ldi r23, 21		; Загрузить в R23 140 (горит красный светодиод)
		ldi r25, 4		; Длительность звучания
		ldi XL, 255		; Длительность полупериода (младший байт)
		ldi XH, 5		; Длительность полупериода (старший байт)
		rcall duratone		; Вызов подпрограммы генерации ноты
		ldi r23, 140		; Загрузить в R23 140 (горит зеленый светодиод)
		ldi r25, 3
		ldi XL, 255
		ldi XH, 7
		rcall duratone
		ldi r23, 157		; Загрузить в R23 157 (горят оба светодиода)
		ldi r25, 0
		ldi r24, 16
		ldi XL, 255
		ldi XH, 130		; Рев мотора
		rcall duratone

stop:		rjmp main		; Останов или бесконечный цикл

; Подпрограммы

duratone:				; Подпрограмма генератор тона с таймером
					; Длительность таймера R25
					; Высота тона (точнее, длительность полупериода) XH:XL
		movw YL, XL		; ╔Загрузить в счетчик Y длительность полупериода из X
		swap r23		; ║Поменять местами полубайты в r23
		out PORTB, r23		; ║инвертировать сигналы на PB0 и PB4
halfcycle:	sbiw YH:YL,1		; ║╔Y=Y-1 (65535...0)
		brcc halfcycle		; ║╚Повторять пока не было переноса
		sbiw r25:r24,1		; ║R25:R24=R24:R24-1
		brcc duratone		; ╚Повторять пока не было переноса
		ret			; Возврат из подпрограммы


; Задействованы регистры R23, R24, R25, R26, R27, R28, R29

; Компилировать avra test.s
; Загрузить avrdude -C/home/dior/AVR/avrdude.conf -v -v -v -v -pattiny13 -cstk500v1 -P/dev/ttyUSB0 -b19200 -Uflash:w:test.s.hex:i
; Фьюзы avrdude -C/home/dior/AVR/avrdude.conf -v -v -v -v -pattiny13 -cstk500v1 -P/dev/ttyUSB0 -b19200 -e -Uhfuse:w:0xff:m -Ulfuse:w:0x7a:m

На вывод PB2 микроконтроллера ATtiny13 подключите динамик через резистор сопротивлением 140 Ом. На выводы PB3 и PB4 подключите светодиоды через резисторы сопротивлением 140 Ом. Свободный вывод динамика и свободные выводы резисторов подключите к общему проводу.