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

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

[���������]--------------------------------------------------------
'
' ����......proj15PBPRO.bas
' ������....PicBasic PRO
' ����......����� � �������� ���������� ����������, �������� Sharp GP2D15 ->
PIC16F876
' �����.....��� ��������
' ������....20 ����� 2002 ����
' �������...
'
'
' ---------------------[��������
���������]-----------------------------------------------
' ��� ��������� ������������� �� PIC16F876 � �������� �������-����������,
���������� �
' �������� �������������. � �������� ����� ������ ���������� ����������, �
�������������
' � ��� ���� ������������ ���������� GP2D15 ������������ ����� Sharp. ���
����������� ����
' ��������� ����� ����� ����������� ������, ������������ ������� ������������ �����
�����
' � ������� ���������� �� ����� ����. ���� ���������� ����� ����������, �� �����
' ��������, � ����� ����� ����� �������� ������. ���� ������� � ��������� ������
�����
' ����� � ��������� ����� � ������������ �������� � �� ������.
'
' ��������� � �����:
'
' PIC ���������
' --- -----------
' RA0 ����� GP2D15
' RC1 ����� ���������
' RC3 ����������� ���������
' RC6 ������ ���������
' RB2 ���������� ������� ������
' RB5 ���������� ������� GP2D15
' RB7 ���������� ������ ������
'
' ---------------------[������ ������
���������]------------------------------------------
'
'
'
' ---------------------[�����������
��������]---------------------------------------------
'
LLED var portc.1 ' ����� �� ��������� ������ ����������
CLED var portc.3 ' ����� �� ��������� ������������ ����������
RLED var portc.6 ' ����� �� ��������� ������� ����������
'
' ---------------------[�����������
����������]-------------------------------------------
'
position var byte ' ���������, � ������� ������� ����������� ��
' ����������
move var byte ' ���������, ���������� ����� ����������� ������
x var byte ' �������� ���������
scan var byte ' ���������, ���������� ���������
' ������� GP2D15
'
' ---------------------[���������
�������������]------------------------------------------
'
define loader_used 1 ' ���������, ������ ���� ����������� ���������
' ���������

Init:
ADCON1 = 7 ' ������� ��� ������ ����� PORTA ��������� ��������
TRISA = %11111111 ' ������� ��� ������ ����� PORTA �������
TRISC = %00000000 ' ������� ��� ������ ����� PORTC ��������
TRISB = %00000000 ' ������� ��� ������ ����� PORTB ��������
scan = 100 ' ������ �������� ���������� GP2D15 = 100
'
' ---------------------[�������
��������]------------------------------------------------
'
main:
portc = 0 ' �������� ��� ����������
position = 0 ' �������� ��������� Position

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


for scan = 70 to 230 step 10 ' ������ ������������ �������� GP2D15 ������ ������
pulsout 5, scan ' �������� ������, �������
��������� ����, ��
' ����������
pause 20 ' �����, ���� ���������� �����������
if porta.0 = 0 then skp ' ���� ���������� �� ����������, �� ������� � �����
' skp
if scan > 150 then pass ' ��������� �������� ���������� scan
position = 1 ' ���� scan ������ ��� ����� 150, �� ���������
' ���������� position �������� 1
goto skp ' ���������� ������� ���������, ������� ���������,
' ����� scan > 150
pass:
position = 2 ' ���� scan ������ 150, �� ���������
' ���������� position �������� 2

skp:
next ' �������� ����� � ������ ����� ��������� �������
' GP2D15

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


if position <> 0 then decide ' ���������, ���� �� ���������� ����������
' ���������� �������������
' ���� ����, �� ������� � �����
Decide

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


portc = 0 ' �������� ��� ����������
high cled ' ������ ������� ���������
move = 6 ' ������ �������� ����������, ����������� ���������
' �������
for x = 1 to move ' ������ ���� ��������� �������������, ����������
' ������ �� ��������
pulsout 2, 100 ' ���������� ���������� ������� ������
pulsout 7, 200 ' ���������� ���������� ������ ������
pause 10 ' �������� � 10 ����������� �� ������������ ��������
' ������
next ' ��������� ��������� ���������� ������
Ret:
goto main ' �������� ����� � ����� Main � ������ ��� �������

decide:
branch position, [main, right, left] ' ������� ���� �� �������� ���������
goto main ' ������� � ����� Main, ����
��������� position > 2

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


left:
portc = 0 ' �������� ��� ����������
high lled ' ������ ����� ���������
move = 6 ' ��������� ���������� Move �������� = 6
for x = 1 to move ' ������ ��������� ������� ��������
pulsout 7, 200 ' ���������� ����� ������ ������, ����� ��������
������
pause 30 ' �������� �� ������������ �������� ������
next ' ��������� ����, ��������� ������ � ��������
goto ret ' �������� � ������� ��������� � ����� Ret

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


right:
portc = 0 ' �������� ��� ����������
high rled ' ������ ������ ���������
move = 6 ' ��������� ���������� Move �������� = 6
For x = 1 to move ' ������ ��������� ������ ��������
pulsout 2, 100 ' ���������� ������ ������ ������, ����� ��������
�����
pause 30 ' �������� �� ������������ �������� ������
next ' ��������� ����, ��������� ������ � ��������
goto ret ' �������� � ������� ��������� � ����� Ret

goto main ' �������� ����������� ���� ���������, ���������� � �����


Main