Вы находитесь на странице: 1из 3

' ---------------------

[���������]--------------------------------------------------------
'
' ����......proj14PBPro.bas
' ������....PicBasic Pro
' ����......����������� ������ ����� ������ �����, ��-�������� ������ ����� ->
PIC16F876
' �����.....��� ��������
' ������....1 ����� 2002 ����
' �������...
'
'
' ---------------------[��������
���������]-----------------------------------------------
' ��� ��������� ������������� �� PIC16F876 � �������� �������-����������,
���������� �
' �������� �������������. ����� ������� ����������� �������, �������� �� ����
����������
' �� ���������� �����, � ������������� ��� ����������. ��� ����������� ����
���������
' ����� ����� ����������� ������, ���� ����� ���� �� ������� ��� ��� �����������.
����
' ����� ���� ������� ���� �� ������� ����������, �� ����� ��������������� ���
���������
' ���, ����� ���� ��������� � ������. ���� ������� � ��������� ������ ���������
�����
' ����� �� ������ �� ����� �� �������.
'
' ��������� � �����:
'
' PIC ���������
' --- -----------
' RA1 ����� ������ ������������ ��������
' RA2 ����� ������������ ������������ ��������
' RA3 ����� ������� ������������ ��������
' RC1 ����� ���������
' RC3 ����������� ���������
' RC6 ������ ���������
' RB2 ���������� ������� ������
' RB7 ���������� ������ ������
'
' ---------------------[������ ������
���������]------------------------------------------
'
'
'
' ---------------------[�����������
��������]---------------------------------------------
'
LSENS var porta.1 ' ����� ����������� �������
RSENS var porta.2 ' ������ ����������� �������
CSENS var porta.3 ' ����������� ����������� �������
LLED var portc.1 ' ����� �� ��������� ������ ����������
CLED var portc.3 ' ����� �� ��������� ������������ ����������
RLED var portc.6 ' ����� �� ��������� ������� ����������
'
' ---------------------[�����������
����������]-------------------------------------------
'
move var byte ' ���������, ���������� ����� ����������� ������
x var byte ' �������� ���������
'
' ---------------------[���������
�������������]------------------------------------------
'
define loader_used 1 ' �����, ������ ���� ����������� ��������� ���������
Init:

ADCON1 = 7 ' ������� ��� ������ ����� PORTA ��������� ��������


TRISA = %11111111 ' ������� ��� ������ ����� PORTA �������
TRISC = %00000000 ' ������� ��� ������ ����� PORTC ��������
TRISB = %00000000 ' ������� ��� ������ ����� PORTB ��������
'
' ---------------------[�������
��������]------------------------------------------------
'
main:
if csens = 1 and lsens = 1 and rsens = 1 then error ' ������ ����
if lsens = 0 and rsens = 0 then halt ' ��� ��������� ����
����
if csens = 0 then center ' �����������
�������� ����� ����,
'
������� � ��������� CENTER
if lsens = 0 then left ' ����� ��������
����� ����,
'
������� � ��������� LEFT
if rsens = 0 then right ' ������ ��������
����� ����,
'
������� � ��������� RIGHT
goto main ' �������� �
������ � ���������
' ���
�����

' ***����������� �������� ����� ����, ��������� ������� ������


center:
high cled ' ������ ����������� ���������
low rled ' �������� ������ ���������
low lled ' �������� ����� ���������
move = 5 ' ��������� ���������� Move �������� 5
gosub fwd ' ������� � ������������ FWD
goto main ' �������� � ������� ���������

' ***����� �������� ����� ����, ��������� ������� �����


left:
high lled ' ������ ����� ���������
low cled ' �������� ����������� ���������
low rled ' �������� ������ ���������
move = 5 ' ��������� ���������� Move �������� 5
gosub lfwd ' ������� � ������������ LFWD
goto main ' �������� � ������� ���������

' ***������ ������������� ����, ��������� ������� ������


right:
high rled ' ������ ������ ���������
low cled ' �������� ����������� ���������
low lled ' �������� ����� ���������
move = 5 ' ��������� ���������� Move �������� 5
gosub rfwd ' ������� � ������������ RFWD
goto main ' �������� � ������� ���������

' ***�� ���� �� ���������� �� ����� �����, ��������� ��������� ������


error:
high rled ' ������ ������ ���������
high cled ' ������ ����������� ���������
high lled ' ������ ����� ���������
move = 1 ' ��������� ���������� Move �������� 1
gosub fwd ' ������� � ������������ FWD
goto main ' �������� � ������� ���������

' ***��� ������� ��������� ���� ����� ����, ��������� ���������


halt:
high rled ' ������ ������ ���������
high lled ' ������ ����� ���������
low cled ' �������� ����������� ���������
pause 10 ' ������� ����� � 10 �����������
goto main ' �������� ����� � ������� ���������

' ***������������ ������� ������ ������


FWD:
For x = 1 to move ' ������ �����, ����������� ��������� ������ ������
pulsout 2, 100 ' ���������� ������ ������ ������
pulsout 7, 200 ' ���������� ����� ������ ������
pause 10 ' �������� �� ������������ �������� ������
next ' ��������� ����, ��������� ������ � �������� ������
return ' �������� ����, ������ ���� ������� ��� ������������

' ***������������ ������� ������ �����


revrs:
For x = 1 to move ' ������ �����, ����������� ��������� ������ �����
pulsout 2, 200 ' ���������� ������ ������ �����
pulsout 7, 100 ' ���������� ����� ������ �����
pause 10 ' �������� �� ������������ �������� ������
next ' ��������� ����, ��������� ������ � �������� �����
return ' �������� ����, ������ ���� ������� ��� ������������

' ***������������ ������� ������ ������-�����


Lfwd:
For x = 1 to move ' ������ �����, ����������� ��������� ������ ������-�����
pulsout 2, 100 ' ���������� ������ ������ ������, ����� �������� �����
pause 10 ' �������� �� ������������ �������� ������
next ' ��������� ����, ��������� ������ � �������� ������-�����
return ' �������� ����, ������ ���� ������� ��� ������������

' ***������������ ������� ������ ������-������


Rfwd:
For x = 1 to move ' ������ �����, ����������� ��������� ������ ������-������
pulsout 7, 200 ' ���������� ����� ������ ������, ����� �������� ������
pause 10 ' �������� �� ������������ �������� ������
next ' ��������� ����, ��������� ������ � �������� ������-������
return ' �������� ����, ������ ���� ������� ��� ������������