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

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

[���������]--------------------------------------------------------
'
' ����......proj08pro.bas
' ������....PicBasic Pro
' ����......PIC -> ���������������� ���� ��������� (�� ���������������� PIC16F876)
' �����....��� ��������
' ������....9 ���� 2001 ����
' �������...
'
'
' ---------------------[��������
���������]-----------------------------------------------
'
' ���������� PIC16F876 � ������� �����������:
'
' PIC ������� ����������
' --- ---
' RB4 Max232 (RX) � �����
' RB2 Max232 (TX) � ��������
' RB0 ���������
' MCLR VDD ����� �������� �������������� � 1 ���
' VDD +5 �
' VSS ����
' ���� ������ DB9, 5-� ������� (Gnd)
'
'
'
' ---------------------[������ ������
���������]------------------------------------------
'
'
'
' ---------------------[����������� ����� � ���������
�������]---------------------------
'
include "modedefs.bas" ' ���������� ������� �� ������� SEROUT
define loader_used 1 ' ������ ���� ����������� ��������� ���������

' ---------------------[�����������
��������]---------------------------------------------
'
'
' ---------------------[�����������
����������]-------------------------------------------
'
RX var byte ' ������� ����
LED var bit ' ���� ������� ����������
'
' ---------------------[���������
�������������]------------------------------------------
'
Init:
TRISB = %00000010 ' ������� ��� ������ ����� PORTB ��������, ����� ������ 1
(RX),
' ������� ����� ������
PORTB = %00000000 ' �� ������ ��������� �������� � 0 ��� ������ ����� PORTB
' � �������� ���������
LED = 0 ' �������� � 0 ���� ������� ����������
' ---------------------[�������
��������]------------------------------------------------
'
Menu:
' **********************������� ��� �� �����
���������**********************************

serout 2, T2400, ["Menu", 10, 13] ' ���������� ��� �� ������ ���������
serout 2, T2400, [#1, ") ", "send hello", 10, 13]
serout 2, T2400, [#2, ") ", "send goodbye", 10, 13]
serout 2, T2400, [#3, ") ", "toggle LED", 10, 13]

Receive:
' **********************������ ��������� ����� ��� �
���������*************************

serin 1, T2400, RX ' ������ ��������� ����� ���


RX = RX - $30 ' ������������� ��� ASCII � ��������� �����
If RX > 3 then error ' ���������, ��������� �� ����� �����
Branch RX, [zero, one, two, three] ' �������������� ��������� � ������������

' ��������� ������� ���

Error:
serout 2, T2400, ["error", 10, 13, "Try again", 10, 13]
goto menu

Zero:
' **********************��� ��������� ���������, ���� ������� �����
0*******************

goto menu ' �������� � ����� Menu, ����� 0 � ������������


' �����

One:
' **********************��� ��������� ���������, ���� ������� �����
1*******************

serout 2, T2400, ["Hello", 13, 10, 13] ' ���������� �� �������� ���������
�Hello�
goto menu ' �������� � ����� Menu
�������� ���������

Two:
' **********************��� ��������� ���������, ���� ������� �����
2*******************

serout 2, T2400, ["Goodbye", 13, 10, 13] ' ���������� �� �������� ���������
' "Goodbye"
goto menu ' �������� � ����� Menu
�������� ���������

Three:
' **********************��� ��������� ���������, ���� ������� �����
3*******************

If LED = 1 then LEDoff ' ���� ���� LED = 1, �� ������� � �����


' LEDOff
portb.0 = 1 ' ������� ���������
led = 1 ' ���������� � 1 ���� ���������� LED
serout 2, T2400, ["LED ON", 13, 10, 13] ' �������� ��������� ��������
����������
goto menu ' �������� � ����� Menu �������� ���������

LEDOff:
portb.0 = 0 ' �������� ���������
led = 0 ' �������� � 0 ���� ���������� LED
serout 2, T2400, ["LED OFF", 13, 10, 13] ' �������� ��������� ��������
����������
goto menu ' �������� � ����� Menu �������� ���������

Goto Menu