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

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

[���������]----------------------------------------------------
'
' ����......proj07PBC.bas
' ������....PicBasic Compiler
' ����......PIC -> ��� (� 4-������ �����������) (�� ���������������� PIC16F876 �
' ���-������, ����������� 2 ������ �� 16 �������� � ������)
' �����.....��� ��������
' ������....20 ����� 2002 ����
' �������...
'
'
' ---------------------[��������
���������]-----------------------------------------------
'
' ���������� PIC16F876 � ������� ���-�����:
'
' PIC ��� ������ ���������
' --- --- ------------------
' B4 ���.11
' B5 ���.12
' B6 ���.13
' B7 ���.14
' B3 ���.4
' B0 ���.6
' OSC1 ��������� 4 ���
' OSC2 ��������� 4 ���
' MCLR VDD ����� �������� �������������� � 1 ���
' VDD +5 �
' VSS ����
'
' ---------------------[������ ������
���������]------------------------------------------
'
'
'
' ---------------------[�����������
��������]---------------------------------------------
'
' ����� ���������� �������� ���-�����
'
symbol E = 0 ' ���� ��������� ����� ��� (1 = ����� ������ ��������)
symbol RS = 3 ' ���� ������ �������� (1 = ������� ������� �� ������
��������)

' ���� ������ �� ��������� ���-�������


'
symbol ClrLCD = $01 ' �������� �����
symbol CrsrHm = $02 ' ����������� ������ � ������ ������ ������
symbol Row2 = $C0 ' ������� ����������� ������ ������ ���
symbol CrsrLf = $10 ' ����������� ������ �����
symbol CrsrRt = $14 ' ����������� ������ ������
symbol DspLf = $18 ' ����������� ��� ������������ ������� �����
symbol DspRt = $1C ' ����������� ��� ������������ ������� ������
symbol Digit = $30 ' ��� ������� �������� ���
'
' ---------------------[�����������
����������]-------------------------------------------
'
symbol x = B0 ' �������� ���������
symbol char = B1 ' ������ �� �������� �� ���
symbol loop1 = B2 ' ������� ������
'
' ---------------------[���������
�������������]------------------------------------------
'
Init: pins = $0000 ' ��� ������, �������� � ���, �������� � 0
Dirs = %11111111 ' ����� ������� � ������� ��������
PAUSE 215 ' ���������, ���� ��������� ���-������
'
' ��������� ������������� ���-����� (�� ����������� Hitachi 44780)
'
I_LCD:
pins = %00110000 ' ������ 8-������ �����
PULSOUT E, 100 ' �������� ������ ��� ����
PAUSE 10
PULSOUT E, 100 ' �������� ������ ��� ����
PAUSE 10
PULSOUT E, 100 ' �������� ������ ��� ����
PAUSE 10
PINS = %00100000 ' ������ 4-������ �����
pause 1
PULSOUT E, 100 ' �������� ������ ��� ����
HIGH RS
CHAR = %00101000 ' 4-����, 2 ������, ������ �� 5x7 �����
GOSUB LCDCMD
CHAR = 8 ' �������� ���������, ������ � ������� �������
GOSUB LCDCMD
CHAR = 6 ' �������� ������������ ������� ������
GOSUB LCDCMD
CHAR = 1 ' �������� ����� � ����������� ������ � ������ ������
' ������
GOSUB LCDCMD
CHAR = 15 ' ������� ���������, ������ � ������� �������
GOSUB LCDCMD

' ---------------------[�������
��������]------------------------------------------------
'
Start: char = clrlcd ' �������� �����
gosub lcdcmd
char = CRSRHM ' ����������� ������ ��� � ������ ������ ������
gosub lcdcmd

' **********************������� ������� "Hello World" � ������ ������


���*****************

char = "H" ' �������� ����� "Hello World" ����� �� ������ ��


gosub wrlcd ' ���-������
char = "e"
gosub wrlcd
char = "l"
gosub wrlcd
char = "l"
gosub wrlcd
char = "o"
gosub wrlcd
char = " "
gosub wrlcd
char = "W"
gosub wrlcd
char = "o"
gosub wrlcd
char = "r"
gosub wrlcd
char = "l"
gosub wrlcd
char = "d"
gosub wrlcd

Pause 1000 ' �����, ����� ���� ����� ��������

goto start

' ������������ �������� ����� ���� ������� �� ���-������


'
LCDcmd:
LOW RS ' RS - ������ - ������, ����� �������� �������
GOSUB WrLCD ' �������� ����
HIGH RS ' �������� � ����� �������� ��������
RETURN

' ������������ ��������� ������� ���� ASCII �� ���-������


'
WrLCD:
pins = pins & %00001000 ' ������ ������ �������
b3 = char & 11110000 ' ��������� ������ ������� ���������� char � B3
pins = pins | b3 ' ���������� ������ RS � ������ ������� char
pause 1 ' �����, ���� ��������� ������� �� �������
PULSOUT E, 100 ' ������ �����-������� �� ���� ��������� ���
B3 = char * 16 ' �������� ������ ������� �� ����� �������
pins = pins & %00001000 ' ������ ������ �������
pins = pins | b3 ' ���������� ������ RS � ������ ������� char
pause 1 ' �����, ���� ��������� ������� �� �������
PULSOUT E, 100 ' ������ �����-������� �� ���� ���������
RETURN