SİPILASPILAS

Başlatan mikimaus, 14 Aralık 2002, 02:00:20

mikimaus

:lol:  Bismilahirahmanirahim
bir de

bunu deneyelim bakalım

mikimaus

bu programlar neden bende stres yapıyo arkadaşlar bilen

varmı yaww...paralel portun bari bi datasını high yapabiliyim be o bile olmuyooooooooooo
led mi bozuk acaba  :lol:  :lol:  :lol: du

bide skopla bakiim

ise

bir de bu şekilde dene bakalım


outportb(888,0);
delay(100);
outportb(888,255);


void __fastcall delay(short int i)
{ asm{
   

 mov eax,2ffffh  // işlemciye göre değişir
      mov bx,i
      @loop:
      dec eax
      cmp eax,0
      jne

@loop
      dec bx
      cmp bx,0
      jne @loop
     

}

}
//-------------------------------------------------------
void __fastcall outportb(short int adr, unsigned char

data)
{asm  { mov al,data;
       mov dx,adr;
       out dx,al;
       

}
}
//-------------------------------------------------------
__fastcall inportb(short int adr)
{

unsigned char

i;
asm {  mov dx,adr;
       in al,dx
       mov i,al
     }
 return(i);
}

AlundrA

walla thief kusura bakma ama o kadar assembly kodu yeni

başlayan biri görürse korkar ve arkasına bakmadan kaçmaya başlar  :lol:  :lol:

aslında en baştaki üç satır bu iş için yeterli

ben bi küçük örnek yazayım

#include <stdio.h>
#include 

<dos.h>
#define DATA  0x378	//Paralel port adresi

void 

main(void)
{
	while(1)
	{
		outportb(DATA,0x00);


		delay(100);
		outportb(DATA,0x01);
		delay(100);
	}
&#

125;


bu kodu kullanarak paralel portun D0 (pin 2) hattındaki bir ledi belli aralıklarla yakıp

söndürebilirsiniz. Bunun için ledin anodunu 330 ohmluk bi dirençle paralel portun iki nolu bacağına bağlayın kkatotu ise şaseye

bağlayın.

programı windowsta çalıştırırsanız multitasking den dolayı ledin periyodik olarak yanıp sönmediğini

göreceksiniz eğer dos altında çalıştırırsanız led periyodik olarak yanıp sönecektir.

bu arada vc++ outportb fonksiyonunu

tanımadığı için programı turbo c++ 3.0 ile derlemeniz lazım. bu programı nette bulabilirsiniz bulamazsanız ben picprojeye

gönderirim siteye koyar.

isteyen olursa programın herbir satırını tek tek açıklayabilirim.

bu arada program

çalışmazsa bios tan paralel portun açık olup olmadığına ve adresinin 0x378 olduğuna emin olun

birde donanımla alakalı

olarak size haluk gümüşkayanın "mikroişlemciler ve bilgisayarlar" kitabını tavsiye ederim ben oradan çok şey öğrendim bu kodda

o kitaba dayanıyor zaten.

paralel port bağlantıları için http://pauillac.inria.fr/~harley/pws/service/pin_desc.htm adresine

bakabilirsiniz

koddaki delay komutları ledin yanıp sönmesini geciktirmek için bunlarla oynayıp farkı

görebilirsiniz
hadi kolay gelsin
yapabilirim!

AlundrA

bu arada yazmayı unuttum kodda programdan çıkmak için

bi bölüm yok yani programı kapatmak için turbo c++ da run demişseniz ctrl+break tuşlarına basmalısınız.
yapabilirim!

Prof.EleCTroN

Paralel port monitör  

progragramı paralel port pinlerini incelemek için en basit yol!

ise

alundra    visual programlarda  outportb ve inportb  

komutları olmadığı için assembler kodları ile fonksiyon yaptım. assembler komutlarıyla fonksiyon yaparlarsa   delay(x);

outportb(adres,data); data=inport(adres);  gibi komutları kullnabilirler

AlundrA

kusura bakma thief seni kırmak istemedim aslında yaptığın

şey çok güzel visual dillerde o komutlar yok ve sen bi çözüm sunmuşsun fakat ben kendimden biliyorum ki bir insan yeni

öğrenmeye başladığı bir şey de bir anda gözünü korkutacak şeylerle karşılaştığı zaman o işten biraz soğuyor. yeni başlayanlara çok

basit şeylerle nasıl çok iş yapabildiklerini gösterip onlara güven vermek gerekir bence. Bunu yazmamım sebebi buraya genelde yeni

başlayan insanların geleceğini düşünmemdir.
yapabilirim!

mikimaus

yeni baslayan biriydim ama tam su anda yeni birakan biri  

olacam  :lol:  :lol:  :lol:

AlundrA

buna gerçekten çok üzüldüğümü bilmeni isterim  :(  :(  :(  

:(
yapabilirim!

munzur

Vallahi bu iş çok zora benziyor (tabiki zordur kolay olsaydı

herkes Bil Geyts olurdu)
Sanırım önce c++ derleyicisi gerek.
Şimdilik bir kıpırtı yok ama belkim olur c++ beni

korkutuyor. :)
İki yumurtayı birbirine vurun sadece biri kırılır. [email]smunzur@gmail.com[/email]

ise

ooo   mikmaus hemen pes etmek varmı öyle  sorun nedir  tam

olarak anlat çözüm bulalım

sakiralp

arkadaşlar iyi bir başlangıç için anlamlı bir sorum

var.

İlk olarak visual c++ hangi versiyonu kullanacağız? Nereden bulacağız?web den ya da tezgahlardan mı?
Dostça Kalın

AlundrA

merhaba visual c++ visual studio ile birlikte geliyor ve 5 cd

sanırım tezgahtan almanız gerekiyor alabilirseniz sadece birinci cd yeterli ayrıca son iki cd'de msdn help dosyaları varki mutlaka

alınmalı. fakat vc++ yeni başlayan biri için birçok gereksiz ayrıntılar içerdiğinden ben size turbo c++ 3.0 ile başlamanızı tavsiye

ederim oldukça sade ve kullanışlı (ne yazıkki dos tabanlı ama pek sorun olmuyor) nette bulamazsanız ben gönderirim.
yapabilirim!

sakiralp

Alundra merhaba ben win xp kullanıyorum.en iyisi vc++

herhalde.vc++ son versiyonu kaç şu aralar ona bakalım yani?Teşekkürler
Dostça Kalın