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

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

[���������]--------------------------------------------------------
'
' ����......proj14PBC.bas
' ������....PicBasic Compiler
' ����......����������� ������ ����� ������ �����, ��-�������� ������ ����� ->
PIC16F876
' �����.....��� ��������
' ������....1 ����� 2002 ����
' �������...
'
'
' ---------------------[��������
���������]-----------------------------------------------
' ��� ��������� ������������� �� PIC16F876 � �������� �������-����������,
���������� �
' �������� �������������. ����� ������� ����������� �������, �������� �� ����
����������
' �� ���������� �����, � ������������� ��� ����������. ��� ����������� ����
���������
' ����� ����� ����������� ������, ���� ����� ���� �� ������� ��� ��� �����������.
����
' ����� ���� ������� ���� �� ������� ����������, �� ����� ��������������� ���
���������
' ���, ����� ���� ��������� � ������. ���� ������� - ��������� ������ ���������
�����
' ����� �� ������ �� ����� �� �������.
'
' ��������� � �����:
'
' PIC ���������
' --- -----------
' RA1 ����� ������ ������������ ��������
' RA2 ����� ������������ ������������ ��������
' RA3 ����� ������� ������������ ��������
' RC1 ����� ���������
' RC3 ����������� ���������
' RC6 ������ ���������
' RB2 ���������� ������� ������
' RB7 ���������� ������ ������
'
' ---------------------[������ ������
���������]------------------------------------------
'
'
'
' ---------------------[�����������
��������]---------------------------------------------
symbol LSENS = bit1 ' ����� ����������� �������
symbol RSENS = bit2 ' ������ ����������� �������
symbol CSENS = bit3 ' ����������� ����������� �������
symbol adcon1 = $9f ' ����� ����������� �������� ���
symbol trisa = $85 ' ����� �������� TRIS ����� PORTA
symbol trisc = $87 ' ����� �������� TRIS ����� PORTC
symbol porta = 5 ' ����� �������� ������ ����� PORTA
symbol portc = 7 ' ����� �������� ������ ����� PORT�
'
' ---------------------[�����������
����������]-------------------------------------------
'
symbol move = b3 ' ���������, ���������� ����� ����������� ������
symbol x = b4 ' �������� ���������
'
' ---------------------[���������
�������������]------------------------------------------
'
Init:
poke ADCON1, 7 ' ������� ��� ������ ����� PORTA ��������� ��������
poke TRISA, %11111111 ' ������� ��� ������ ����� PORTA �������
poke TRISC, %00000000 ' ������� ��� ������ ����� PORTC ��������
DIRS = %11111111 ' ������� ��� ������ ����� PORTB ��������
'
' ---------------------[�������
��������]------------------------------------------------
'
main:
peek porta, b0
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:
poke portc, %00000000 ' �������� ��� ����������
poke portc, %00001000 ' ������� ����������� ���������
move = 5 ' ��������� ���������� Move �������� 5
gosub fwd ' ������� � ������������ FWD
goto main ' �������� � ������� ���������

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


left:
poke portc, %00000000 ' �������� ��� ����������
poke portc, %00000010 ' ������� ����� ���������
move = 5 ' ��������� ���������� Move �������� 5
gosub lfwd ' ������� � ������������ LFWD
goto main ' �������� � ������� ���������

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


right:
poke portc, %00000000 ' �������� ��� ����������
poke portc, %01000000 ' ������� ������ ���������
move = 5 ' ��������� ���������� Move �������� 5
gosub rfwd ' ������� � ������������ RFWD
goto main ' �������� � ������� ���������

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


error:
poke portc, %01001010 ' ������ ��� ����������
move = 1 ' ��������� ���������� Move �������� 1
gosub fwd ' ������� � ������������ FWD
goto main ' �������� � ������� ���������

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


halt:
poke portc, %01000010 ' ������ � ����� ���������� �������, �����������
' ��������
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 ' �������� ����, ������ ���� ������� ��� ������������