Воть. :D
$crystal = 4000000 'Частота кварца ZQ1, Гц
$regfile = "2313def.dat" 'Подключаем описание МК
$lib "mcsbyte.lbx" 'Подключаем библиотеку функций
Config Rc5 = Pind.0 'PD0 - вход RC-5
Config Pinb.7 = Output 'PB7 - выход
Config Pinb.6 = Input 'PB6 - вход
Config Pinb.5 = Input 'PB5 - вход
Config Pinb.4 = Output 'PB4 - выход
Config Pinb.3 = Output 'PB3 - выход
Config Pinb.2 = Output 'PB2 - выход
Config Pinb.1 = Output 'PB1 - выход
Config Pinb.0 = Output 'PB0 - выход
Config Pind.6 = Output 'PD6 - выход
Dim Address As Byte 'Объявляем переменные
Dim Command As Byte
Dim A As Byte
Enable Interrupts 'Разрешаем прерывания
Set Portb.0 'Включаем HL1
Waitms 100 'и через 100 мс
Reset Portb.0 'выключаем его.
Sound Portd.6 , 50 , 800 'Подаем зв.сигнал
1: 'Основной цикл программы
Do
Debounce Pinb.5 , 0 , Prl 'Сработал SF2 -> на Prl
Debounce Pinb.6 , 0 , Prr 'Сработал SF1 -> на Prr
Getrc5(address , Command) 'Прием команды ПДУ
If Address = 0 Then 'Затем – ее выполнение
Command = Command And &B01111111
If Command = 12 Then 'Выключаем все (клавиша ОN-OFF)
For A = 0 To 7
Reset Portb.a : Reset Portd.a
Next A
End If
If Command = 2 Then 'Малый вперед (клавиша 2)
Set Portb.4 : Set Portb.1 'Включаем М1, М2 вперед
Waitms 45 'и через 45 мс выключаем
Reset Portb.4 : Reset Portb.1
End If
If Command = 6 Then 'Малый назад (клавиша 6)
Set Portb.2 : Set Portb.3 'Включаем М1, М2 назад
Waitms 45 'и через 45 мс выключаем
Reset Portb.2 : Reset Portb.3
End If
If Command = 7 Then 'Направо (клавиша 7)
Set Portb.4 : Set Portb.2 'Включаем M1 назад, М2 вперед
Waitms 45 'и через 45 мс выключаем
Reset Portb.4 : Reset Portb.2
End If
If Command = 5 Then 'Налево (клавиша 5)
Set Portb.3 : Set Portb.1 'Включаем М1 вперед, М2 назад
Waitms 45 'и через 45 мс выключаем
Reset Portb.3 : Reset Portb.1
End If
If Command = 32 Then 'Средний вперед (клавиша P+)
Set Portb.4 : Set Portb.1 'Включаем М1, М2 вперед
Waitms 180 'и через 180 мс выключаем
Reset Portb.4 : Reset Portb.1
Set Portb.2 : Set Portb.3 'Тормозим в течение 20 мс
Waitms 20
Reset Portb.2 : Reset Portb.3
End If
If Command = 33 Then 'Средний назад (клавиша P-)
Set Portb.2 : Set Portb.3 'Включаем М1, М2 назад
Waitms 180 'и через 180 мс выключаем
Reset Portb.2 : Reset Portb.3
Set Portb.4 : Set Portb.1 'Тормозим в течение 20 мс
Waitms 20
Reset Portb.4 : Reset Portb.1
End If
If Command = 16 Then 'Резко направо (клавиша VOL+)
Set Portb.4 : Set Portb.2 'Включаем M1 назад, М2 вперед
Waitms 80 'и через 80 мс выключаем
Reset Portb.4 : Reset Portb.2
Set Portb.3 : Set Portb.1 'Тормозим в течение 20 мс
Waitms 20
Reset Portb.3 : Reset Portb.1
End If
If Command = 17 Then 'Резко налево (клавиша VOL-)
Set Portb.3 : Set Portb.1 'Включаем M1 назад, М2 вперед
Waitms 80 'и через 80 мс выключаем
Reset Portb.3 : Reset Portb.1
Set Portb.4 : Set Portb.2 'Тормозим в течение 20 мс
Waitms 20
Reset Portb.4 : Reset Portb.2
End If
If Command = 4 Then 'Полный вперед (клавиша 4)
Set Portb.4 : Set Portb.1 'Включаем М1, М2 вперед
Waitms 250 'и через 250 мс выключаем
Reset Portb.4 : Reset Portb.1
End If
If Command = 8 Then 'Полный назад (клавиша
Set Portb.2 : Set Portb.3 'Включаем М1, М2 назад
Waitms 250 'и через 250 мс выключаем
Reset Portb.2 : Reset Portb.3
End If
If Command = 1 Then 'Включить М3 (клавиша 1)
Set Portb.7
End If
If Command = 9 Then 'Выключить М3 (клавиша 9)
Reset Portb.7
End If
If Command = 3 Then 'Включить HL1 (клавиша 3)
Set Portb.0
End If
If Command = 10 Then 'Выключить HL1 (клавиша -/--)
Reset Portb.0
End If
If Command = 13 Then 'Звуковой сигнал (клавиша MUTE)
Sound Portd.6 , 300 , 600
End If
If Command = 0 Then 'Демонстрация (клавиша 0)
Sound Portd.6 , 300 , 600 'Подаем звуковой сигнал
Set Portb.0 : Set Portb.7 'Включаем HL1 и M3
Waitms 500
Reset Portb.7 'Через 500 мс выключаем M3
Set Portb.3 : Set Portb.1
Waitms 1000 'и 1000 мс поворачиваем налево
Reset Portb.3 : Reset Portb.1 : Set Portb.4 : Set Portb.2
Waitms 1000 ' еще 1000 мс поворота направо
Reset Portb.4 : Reset Portb.2 : Set Portb.4 : Set Portb.1
Waitms 300 '300 мс вперед
Reset Portb.4 : Reset Portb.1 : Set Portb.2 : Set Portb.3
Waitms 300 '300 мс назад
Reset Portb.2 : Reset Portb.3 : Set Portb.4 : Set Portb.1
Waitms 300 'Еще 300 мс вперед
Reset Portb.4 : Reset Portb.1 : Set Portb.2 : Set Portb.3
Waitms 300 'и 300 мс назад.
Reset Portb.2 : Reset Portb.3
Reset Portb.0 'Выключаем HL1
Sound Portd.6 , 200 , 600 'Подаем звуковой сигнал
End If
End If
Loop 'Конец основного цикла
Prl: 'После срабатывания SF2
Set Portb.2 : Set Portb.3 '200 мс движемся назад
Waitms 200
Reset Portb.2 : Reset Portb.3
Waitms 50 'Через 50 мс подаем зв. сигнал
Sound Portd.6 , 70 , 800
Waitms 40 'и еще через 40 мс поворачиваем
Set Portb.3 : Set Portb.1 'налево в течение 100 мс
Waitms 100
Reset Portb.3 : Reset Portb.1
Goto 1 'К началу основного цикла
Prr: 'После срабатывания SF1
Set Portb.2 : Set Portb.3 '200 мс движемся назад
Waitms 200
Reset Portb.2 : Reset Portb.3
Waitms 50 'Через 50 мс подаем зв. сигнал
Sound Portd.6 , 70 , 800
Waitms 40 'и еще через 40 мс поворачиваем
Set Portb.4 : Set Portb.2 'направо в течение 100 мс
Waitms 100
Reset Portb.4 : Reset Portb.2
Goto 1 'К началу основного цикла
End