Видео работы:
Статья
Код программы:
Code
'*******************************************************************************
' Автор: Space *
' Сайт: www.enore.ucoz.ru *
' Дата начала: 28.06.2011 г. *
' CPU: ATmega32 *
' Тактовая частота: 16000000 Hz *
' Компилятор: BASCOM-AVR 1.11.9.0 *
'*******************************************************************************
' Программируемые Fuse:
' BOOTSZ0, BOOTSZ1
' CKORT
' SPIEN
' SUT0
'*******************************************************************************
'***************************Тип_микроконтроллера** ******************************
$regfile = "m32def.dat" ' файл спецификации Меги32
$crystal = 16000000 ' указываем на какой частоте будем работать
'********************************Порты******************************************
Config Pina.1 = Output : Пн Alias Porta.1 'ногу сконфигурировали как выход и обозвали пн(правый_назад)
Config Pina.2 = Output : Пв Alias Porta.2 'ногу сконфигурировали как выход и обозвали пв(правый_вперёд)
Config Pina.3 = Output : Лн Alias Porta.3 'ногу сконфигурировали как выход и обозвали лн(левый_назад)
Config Pina.4 = Output : Лв Alias Porta.4 'ногу сконфигурировали как выход и обозвали лв(левый_вперёд)
Config Rc5 = Pind.2
'*******************************************************************************
'*******************************Прерывания******** *****************************
Enable Interrupts
'******************************Переменные***************************************
'*********************************Byte******** **********************************
Dim Address As Byte
Dim Command As Byte
'************************Оcновной_цикл_программы********************************
Do
Gosub Прием_rc5
Gosub Команды
Loop
'******************************Подпрограммы*************************************
Команды:
If Command = 32 Then : Gosub Прямо
Elseif Command = 33 Then : Gosub Назад
Elseif Command = 17 Then : Gosub Влево
Elseif Command = 16 Then : Gosub Вправо
Else : Gosub Стоп : End If
Return
'*******************************************************************************
Прием_rc5:
Getrc5(address , Command)
If Address <> 255 And Command <> 255 Then
Command = Command And &B01111111
End If
Return
'*******************************************************************************
Влево:
Пн = 0 : Пв = 1
Лн = 1 : Лв = 0
Return
'*******************************************************************************
Вправо:
Пн = 1 : Пв = 0
Лн = 0 : Лв = 1
Return
'*******************************************************************************
Прямо:
Пн = 0 : Пв = 1
Лн = 0 : Лв = 1
Return
'*******************************************************************************
Назад:
Пн = 1 : Пв = 0
Лн = 1 : Лв = 0
Return
'*******************************************************************************
Стоп:
Пн = 0 : Пв = 0
Лн = 0 : Лв = 0
Return
'*******************************************************************************
End
'***************************************** **************************************
P.S. Питание идёт 9 вольт, от паяльной станции, лениво было заряжать аккумулятор