Bu sayfadaki yazılar
Sayfanın metni
Sayfa 64
(Bir önceki sayımızda Commodore'unuzun iç işleyişi ve
bağlantıları hakkında bir yazı yayınladık (Nedir bu - Commodore 64). Bu yazıda, Commodore'unuzun dış dünya ile nasıl ilişki kurabileceğini incelemeye çalışacağız.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 65
7 ayrı ilişki
64 dış dünyaya açılabilmek için 7 ayrı İlişki noktasına saşema da bunları gös-
AC € DB E
F G
56579 56577 — ÇIKIŞ Hİ — 1 4 5V 0 | 0V GİRİŞ 2 5V 0 | ER
A) “User Port”: Bu konnektör dışarıya içeride üretilen sinyalleri göndermektedir. Böylece Commodore'dan bir terminal olarak yararlanmak mümkün olabilmekte. Bu port'a bağlanan RS 232 interface (ara birim) ile çeşitli yardımcı parçalarla mümkün olabilmektedir. B) Kaset Konnektörü. C) IEEE Interface'i: Yazıcı ya da disket ünitesini bağlamak için. D ve D') televizyon ve monitör bağlantısı için kullanılır. E) “Memory Expansion”: Hafıza kartı, kartuş ve CPM kartı için kullanılır. F) Elektrik girişi. G ve G') Joystick, lightpen, paddle ve trackball girişi için. Commodore 64 bütün bu noktalar kanalıyla dış dünya ile alışverişe girmektedir. En sık rastlanan alışverişler bilgisayarla, monitör (ya da televizyon) datasette (ya da disket sürücüsü) arasında kurulan ilişkilerdir. Biz bu yazıda biraz daha farklı bir ilişki örneğini anlatıyoruz.
Amacımız bir lambayı kontrol etmek. Biliyoruz ki Commodore 64'ün içinde bir zaman sayacı vardır. İşte bu zaman sayacını programlayıp Commodore 64'ün dış ilişkilerini yürüttüğü bir port'la (E) bir lambayı kontrol edeceğiz. Amacımız lambayı istediğimiz zaman açmak ya da kapatmak. Bu işlem PIA (Peripheral Interface Adapter)'ya dayalı bir işlemdir. PIA bir entegre devredir ve 2 porttan oluşmuştur. İlk port mikroişlemci tarafından hafızanın bir bölümü olarak kontrol edilir. Bu nedenle de PEEK ve POKE komutlarıyla programlanabilir. Programlama adresi ise 56577'dir. Bu port'un 8 “bit”i entegrenin dış ayakları kanalıyla konnektöre bağlıdır. Bu konnektör aracılığıyla elektrik kullanılarak bilgi alışverişi sağlanmaktadır.
Interface Adapter)
Şimdi “56577” adresini inceleyelim. Makineniz sekiz bitlik olduğundan bu adres de 8 bit içermektedir. Bu bitlerde yer alan 0 ya da 1 değeri bitte akımın var olup olmadığını belirtir. Yani biz bir bite 1 yazarsak o bitte 5 voltluk bir akım var demektir. 0 yazarsak o bitte akım yoktur yani 0 volt akım vardır. Bu akımların var olup olmaması ise entegre devrenin öbür portu, yani 56579 adresli ayakları etkilemekte. Eğer bu adresin herhangi bir biti 1 değerini alırsa o zaman voltaj dışarı verilmekte. Böylece bir entegreyi programlayarak konnektör çıkışına akım vermek ya da akımı kesmek mümkün olmakta.
Belirli bir saatte bir ampulü yakmak ya da söndürmek için gerekli hardware devresi ise şöyle:
Devrede kullanılacak “röle” elektrikçilerde kolayca bulabileceğiniz küçük bir alettir. İçinden elektrik geçmesi halinde bir düğme işlevi görür ve devremizdeki görevi de bir elektrik düğmesininkiyle aynıdır. Şimdi rölenin bir ayağına port'un yani 56577'nin 7. bitini, öbür ayağına da port'un ikinci bitini bağlayın. Lambayı da hazırladıysak sıra geldi dışarı akım vermeye yani röleyi elektrik devresi olarak kullanmaya. Bunun için bir program yazmamız gerekli. Bu program 56579'un 7. bitine 1 yazmak amacını taşıyacak. Bunun için 128 değerini kullanacağız. Ama 56577'nin 7. bitine de 1 yazılırsa devre kapanmayacağı için yani her iki uçta da 5 volt akım olacağı için çabamız boşa gidecektir. Bu nedenle de 56577'nin 7. bitine 0 yazmamız gereklidir.
2) ak YA A mA m mlm m EEE EEE *5 Bit 7 RE — - 1 TT S 5 |
Röle
İşte program:
10 Ren MSM
20 İNPUT “SAAT KAÇTA IŞIĞI YAKMAK GEREKLİ”; TAS 30 İNPUT “SAAT KAÇTA IŞIĞI SÖNDÜRMEK GEREKLİ”; TES
40 INPUT “ŞİMDİ SAAT KAÇ”; TIS
50 POKE 56579,128: POKE 56577,128
60 IF TIS<TAS GOTO 60 70 IF TIS <TES GOTO 70 80 POKE 56577,128