folder Tahribat.com Forumları
linefolder Delphi - Pascal
linefolder Pascal Port Kontrolü Sağlayan Örnek Kodlar



Pascal Port Kontrolü Sağlayan Örnek Kodlar

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kabus
    kabus's avatar
    Kayıt Tarihi: 29/Temmuz/2002
    Erkek
    Step Motor Kontrol.
    Port`a Step Motor Baglanmasi gerekiyor.
    --------------
    uses crt,graph;
    var
    p,X_,Y_:word;
    A,B:INTEGER;
    X1,X2,Y1,Y2:INTEGER;
    AC,YAZI:STRING;
    GM,GS,HATANO:integer;
    x:integer;
    tus:char;
    q,sonuc:integer;
    w:real;
    {m e n u n u n h a z i r l a n m a s i}
    procedure renk(r:byte);
    begin
    setcolor(r);
    end;
    procedure menu;
    begin
    settextstyle(8,0,4);
    setbkcolor(1);
    renk(14);
    outtextxy(130,30,"M E N U");
    line(120,70,280,70);

    renk(9);
    settextstyle(1,0,1);
    outtextxy(50,110,"<- Motoru Geriye Dogru Dondur... ");

    settextstyle(1,0,1);
    outtextxy(50,140,"-> Motoru ileriye Dogru Dondur... ");

    settextstyle(1,0,1);
    outtextxy(50,170,"Esc CiKiS... ");

    end;
    BEGIN
    q:=2;
    x:=0;

    DETECTGRAPH(GM,GS);
    INITGRAPH(GM,GS,"");
    HATANO:=GRAPHRESULT;

    IF HATANO <> 0 THEN
    BEGIN
    WRITELN("GRAFIK ORTAMIMA GECILEMEDI...");
    WRITELN("GRAFIK HATA NUMARASI:",HATANO);
    Writeln("Grafik HATASI:",GRAPHERRORMSG(HATANO));
    ReadLn;

    END;

    repeat
    menu;
    repeat
    tus:=upcase(readkey);
    until tus in[chr(27),chr(75),chr(77)];
    if tus=#27 then
    begin
    renk(14);
    outtextxy(80,350,"H A Z I R L A Y A N L A R");
    line(60,380,350,380);
    renk(9);
    settextstyle(0,0,1);
    outtextxy(20,400,"HIDIR ATSIZ - BiL.PROG");
    outtextxy(20,420,"KABUS - BiL.PROG");
    tus:=readkey;
    halt;
    end;
    if tus=#75 then
    begin

    port[$378] :=q;
    cleardevice;
    menu;

    renk(9);
    circle(500,235,100);
    setfillstyle(4,14);
    pieslice(500,235,x,x+18,100);
    x:=x+18;
    if x=342 then
    x:=0;
    q:=q*2;
    if q=32 then
    q:=2;
    end;
    if tus=#77 then
    begin
    port[$378]:=q;
    cleardevice;
    menu;


    circle(500,235,100);
    pieslice(500,235,x,x-18,100);
    x:=x-18;
    if x=0 then
    x:=342;
    w:=q;
    sonuc:=round(w/2);
    q:=sonuc;
    if q=1 then
    q:=16;
    end;
    until false;
    readln;
    end.

    Laaaaaan.
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hellcaraxe
    hellcaraxe's avatar
    Kayıt Tarihi: 13/Ekim/2003
    Erkek
    delphide ozellestirsek kodu walla cok yararı olcak..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hellcaraxe
    hellcaraxe's avatar
    Kayıt Tarihi: 13/Ekim/2003
    Erkek
    yani demek istedigim
    port[$378]:=q demissin iki seferde fark ne merak ettim dogrusu
    aynı tip bi program uzerinde calısıyorum ama biraz daha karısık. bi printer yapıyorum step motorlarla.
    benim tek istediğim lpt seri yada paralelde belirleyebildiğim bi pine logic 0 1 gondermek.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    micprog2003
    micprog2003's avatar
    Kayıt Tarihi: 04/Ocak/2003
    Erkek
    ben x-y koordinatında hareket edebilecek bir tezgah yaptım yazıcı portu gibi portlara erişim sağlam asm ile mümkün fakat bu komutları Win2000 WinXp gibi programlardada çalıştırman gerekirse farklı bir bilgiye daha ihtiyacın var istersen sana gönderebilirim hazır kodları okulda ödev için yapmıştım bende ben uln2803 entegre kullanmıştım neysede
    delphide açıklıyım portlara erişimin win98 kullanımını
    önce 378 ne onu anlatayım 378 bilgisayarımın özelliklerinden aygıt yöneticisini aç ve aradan Yazıcı Bağlantı Noktası (Lpt1) üzerini çifttıkla veya özelliklerine tıkla oradanda Kanaklar sekmesine geç orada yazıcı portunun veri giriş ve çıkış aralığını göreceksin orası genelde 378 olur fakat donanım çakışmalarında başka bir değerde alabilir. her neyse bu 378 o 378 yani dahası..
    dx registeri portlara erişim registeridir diyelim ve smallintdir
    ör:
    asm
    mov dx,$378 // Burada dx Registerine Hangi portla uğraşacağımızı bildiriyoruz..
    // ve in out komutlarıyla bilgi gönderimi veya alımı işlemlerini gerçekleştereceğiz..
    // Eğer Porta veri data göndereceksek göndereceğimiz veriyi tabi bayt olarak al registerine atarız al veya direkte atayabiliriz baytı bite çevirerek hesaplamaları yaparsın artık oralarada girmiyim çok uzar..
    mov al,255 // al registerine 255 atayalım yani buda bütün pinlerin lojik bir olması demek
    out dx ,al // ve bu al registerindeki veriyi porta
    yollayalım..
    end;
    // sonuç 8 pininde bir sonraki uyarıya kadar lojik bir oldu..

    // veriyi okutmak içinse
    in al,dx komutunu kullanırsın ve al registeride veriyi barındırız örneğin yukarıdaki işlemden sonra okutursan 255 olur gibi bir problem olursa beni haberdar et yardımcı olmaya çalışırım elden geldiği kadar..

    maillerim :
    micprog2003@yahoo.com / micprog2003@hotmail.com

    Adige Michael
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hellcaraxe
    hellcaraxe's avatar
    Kayıt Tarihi: 13/Ekim/2003
    Erkek

    cok tesekkur ederim ama ben yazdım kodu calıstırdım ii niyetin icin saol


    (biraz gec gordum galıba:)))

  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MoLiVeR
    MoLiVeR's avatar
    Kayıt Tarihi: 25/Nisan/2003
    Erkek

    bana devreyi yapıp gönderebilirmisin bu arada sen step motromu dc motormu kullandın ?


    yanlız bana 2 tane motor lazım çift yönlü hereket yaptıcam aynı anda ikisine ileri ve geri şeklinde... 20 -30 milyon veririm bayağı laızm oldu


     


    Ir4DeX Security Group 2007
Toplam Hit: 2681 Toplam Mesaj: 6