Delphi » FAQ

Jak podłączyć diode i sterować nią programowo.

napi

Mam nadzieje, że jeszcze tego nie było tutaj...
Wykorzystujemy do tego port COM2. Plus diody podłączyć pod 4pin, minus pod 7pin.

Deklarujemy poniższe procedurki

procedure Wlacz;
assembler;
asm
  mov DX,2fch
  mov AL,2
  out DX,AL
end;
procedure Wylacz(Port:word;Value:Byte);assembler;
asm
  mov DX,Port
  mov AL,Value
  out DX,AL
end;
//Teraz w zdarzniu np Button1Click włączymy diodę a w Button2Click wyłączymy

procedure TForm1.Button1Click(Sender:TObject);
begin
 wlacz
end;

procedure TForm1.Button2Click(Sender:TObject);
begin
 wylacz($2fc,$2);
end;

Źródło: http://www.programmerzone.hitnews.pl/34.htm

FAQ

8 komentarzy

Nie działa u mnie,podaj listing całego kodu.

<ort>Podłanczam</ort> na kablu od mychy a4tech.

chyba nie liczysz na to, że to pójdzie pod NT?

nie wiem czemu ale mi sie pojawaia blad przy kompilacji przy 'out dx,al'
:|

Mam prosbe:
Prosze o wytlumaczenie polexen assemblera
oraz
Jak zrobic aby dioda migala

a jakie polecenia odpowiadają innym pinom?

@miner Jest prostszy sposób.

if X then Wlancz else Wylancz($2fc, $2);
X := not X;

Było, i to chyba ze 20 razy. A błąd pojawia się dlatego, że WinNT, XP i 2000 mają zabezpieczenia - zablokowane polecenia Assemblera In i Out. Więc sterownik by się przydał :] Odsyłam do tematu http://4programmers.net/Forum/viewtopic.php?id=49546&p=0
Wprawdzie chodzi tu o LPT, ale wystarczy o ile się nie mylę zmienić numer portu. Dawno się w to nie bawiłem ;P Poszukajcie też na forum innnych tematów - ta kwestia jest bardzo często poruszana. Pozdrawiam.

moze timerem i wrzucic do niego cos takiego:

var x:boolean=false;

procedure Timer1Timer (...);
begin
case x of
true:wylacz($2fc,$2);
false:wlacz;
end;
x=not x
end;

pisalem to recznie a nie w delphi wiec moga byc literowki albo jakas inna kicha