Emu8086 ile Port Bağlantısı

Emu8086 ile C# da yazılmış bir formun butonu ile port bağlantısı kurma işlemini yapmak için,

c:/emu8086/devices/developers adresine girip io.cs classını bulunuz.

Daha sonra c# da yaptığınız projenin üzerine tıklayıp  Existing New items ile io.cs  classını projenize ekleyiniz.

emu2

Bu işlemide gerçekleştirdiğinize göre projenize Assembly ile c# arasında port bağlantısını sağlayacağınız classı eklemiş oldunuz.

Classı incelerseniz içersinde 4 tane metodun olduğunu göreceksiniz.Bu metodların ne işimize yaradığını anlattıktan sonra kullanımlarıyla ilgili de bilgi vereceğim.

READ_IO_BYTE

READ_IO_WORD

Yukarıdaki iki metod ile c# assembly’nin kendisiyle iletişime geçebileceği port numaralarını belirliyor.Bu port numaralarının birimlerinin  byte veya word  cinsinden olmasına göre ikisinden birini seçiyoruz.

WRITE_IO_BYTE

WRITE_IO_WORD

Yukarıdaki diğer iki metod ile de c# ile Assembly’nin içinde kullanılan,port numarası bilinen herhangi bir porta müdahele edebiliyoruz.Write_io_byte ve Write_io_word metodları 2 parametrelidir.Bu parametrelerin birincisi ile port numarasını ikincisiyle de portun açık /kapalı olma durumu tutuluyor.

Mesela ben Emu8086 içerisinde örneklerde olan Thermometer  kodunu form ile çağırdım.Ve bu form ile o thermometer projesine c# ile müdahele etmek istiyorum.Thermometer projesini c#’da buton ile çağırdım.

Bunu

System.Diagnostics.Process.Start (“C:\\emu8086\\DEVICES\\thermometer.exe”); komutuyla gerçekleştirdim.emu2

Formdaki kapat butonuna basıldığında thermometrenin çalışmamasını ve Aç butonuyla da çalışmasını istiyorum.Bunun için port işlemlerini yapmamız gerekli.Butonların click kısmına gelip
Emu8086.IO.WRITE_IO_WORD(127, 0); //Thermometreyi kapatır.
Emu8086.IO.WRITE_IO_WORD(127, 1);//Thermometreyi açar.

Yukarıdaki birer satırlık kodları yazmamız yeterli.Peki 127 sayısı nerden çıktı?127 sayısı emu8086 içerisindeki thermometre örneğinde kullanılan port numarası olarak verilmiş.Yani aslında biz yukarıdaki kodlarla portu açıp kapama işlemini yerine getiriyoruz.

emu2

 

Reklamlar