Использую драйвер LPTIO.
Отправляю команду МК.
procedure tform1.sendcmd_to_chip(cmd:integer);
var
i:integer;
g:integer;
begin
LPTMklr;
lpt.Delay(5);
LPTPwd;
if pin4=true then (направление ШД, 0-передача)
buttonpin4;
Цикл 6-ти битного слова
for i:=0 to 5 do
begin
LPTClk(1);
Загружаю побитно на pin2(data0) управляющее слово.
g:= (cmd shr i) and 1;
lpt.WritePort(GetCurrentPort, LPT_DATA_REG, g);
lpt.Delay(10); (задержка)
LPTClk(0);
end;
end;
function tform1.readdata_from_chip: integer;
var
i:integer;
bit:integer;
dt:integer;
begin
if pin4=false then (направление ШД, 1-прием)
buttonpin4;
dt:=0;
for i:=0 to 15 do
begin
LPTClk(1);
lpt.Delay(5);
Присваиваю bit-у прочитанное из ACK
bit:=lpt.ReadPort(GetCurrentPort, ack);
dt:=dt + (bit shl i);
LPTClk(0);
end;
Читаю все слова
readdata_from_chip:=(dt shr 1);
end;
procedure TForm1.ReadBtnClick(Sender: TObject);
var
firstadr, lastadr:word;
k:Cardinal;
l:Longint;
data:dword;
begin
LPTReset;
firstadr:=0;
lastadr:=$3FF;
k:=(lastadr-firstadr+1);
for l:=1 to k do
begin
sendcmd_to_chip(4);(отправляю команду на чтение- 101000)
data:=readdata_from_chip;
HexGrid1.AData[l-1]:=data and $FF;(вставл.в Grid)
sendcmd_to_chip(6);(отправляю инкремент-011000)
end;
HexGrid1.Repaint;
end;
Прикладываю файлы, которые мне дали, может помогут как нибудь.
Спасибо.
Прикрепленный файл:
5436919.rar