Gelişen mikrokontrol teknolojileri ve artan bilgi birikimi sayesinde geliştirici düzeyinde daha yaygın kullanımına olanak tanımıştır. Burada elimden geldiği kadar bazı örnekler sunmaya çalışacağım... Görüleceği gibi ilk örneklerimizde çoğunlukla ASM üzerinde iken daha sonraları C üzerinde örnekler yer almaktadır. Hatta ilerleyen zamanlarda Arduino örneklerinin yer alması kaçınılmaz olacaktır.

klavye etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
klavye etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Şubat 2011 Pazartesi

Atmega8 ile USB (FT232) İletişimli Bilgisayar Klavyesi


"Atmega8 ile Seri İletişimli Bilgisayar Klavyesi" projesi ile PS/2 bağlantısı kullanan bir bilgisayar klavyesi ile Atmega8 işlemcisi arasında iletişim sağlanarak seri port üzerinden bilgisayara bilgi aktarılmıştı. Günümüzdeki bilgisayarların seri portları olmadığı düşünülürse, bazı sorunlara yol açacağı açıktır.

Bu projede PS/2 bağlantısı kullanan bir F tipi bilgisayar klavyesini Atmega8 işlemcisi üzerinden bir seri-USB dönüştürücü devresi (FT232) ile bilgisayarın USB bağlantısı oluşturulmaya çalışılacaktır.
USB

"FT232BL USB-Seri Dönüştürücü" projesinde USB konusunda ve devrenin çalışması konusunda ayrıntılı olarak işlenmişti. FTDI Chip firması tarafından üretilmiş FT232BL ile USB Seri dönüştürücü kullanılarak oluşturulmuş devre FT232 çipine ek birkaç eleman ile kolaylıkla oluşturulmaktadır. Tek yapılması gereken birkaç kablo bağlamak ve kart üzerindeki köprüleri ayarlamak.

FT232 devresi bilgisayardan beslenecek şekilde köprüleri ayarlanmalıdır. Bu şekilde ek bir besleme gerekmeden, sistem kolaylıkla kullanılabilir. Bilgisayarın USB portu yaklaşık 500mA ve +5V besleme sağlayabilecek yapıdadır.
Devre

Sistem üç ana parçadan oluşmaktadır. Aslında isteyen Atmega8 kartı ile USB kartını birleştirebilir.

Bilgisayar klavyesi üzerindeki tuşlar basıldığında mini-din 6 bağlantısı üzerinden elektrik sinyalleri oluşturur. (Basılan tuşa göre değişiklik gösteren yapıda).

Atmega8 devresi klavyeden gelen elektrik sinyallerini yorumlayarak seri port (UART) üzerinden veri aktarımı yapar.

FT232 devresi ise Atmega8 işlemcisinden seri port (UART) verilerini alır ve bilgisayarın USB portuna) yönlendirir. Bu projede doğrudan USB port uygulaması oluşturulmamıs, sadece FT232 devresinin oluşturduğu sanal seri port kullanılarak FT232 ile bilgisayar arasında iletişim sağlanmıştır.

Yani bilgisayar programı çalıştırıldığı zaman bilgisayar üzerinde seri port yok ise, Seçenekler penceresinde görülecek tek seri port FT232 sürücüleri tarafından oluşturulan seri port olacaktır. Seçenekler diyalog kutusundan bu seri portun seçilmesi gerekiyor.

Bilgisayar üzerinde seri port varsa, var olan seri porta ek olarak FT232 tarafından oluşturulan seri port bu portlara eklenecektir.

Şekil-1 :Klavye-UART arayüz kartı.


Şekil-2 :UART-USB arayüz kartı.


Şekil-3 :Projede kullanılan F-klavye. (10 yıllık bir klavyedir).


Şekil-4 :Klavye-UART arayüz kartı ile UART-USB arayüz kartı arasındaki bağlantıyı sağlayan kablo.


Şekil-5 :USB kartı ile bilgisayar arasındaki bağlantı kablosu.

Şema

Atmega8 işlemcimiz olan üzere IC3 ile temsil ediliyor. Bunun saat frekansı üretimini sağlayan XTL2 kristal olup 7,3728MHz değerinde ve bu kristale eşlik eden C7 ve C8 kondansatörleri 27pF değerindeler. İşlemcinin programlanmasında kullanılan ISP konnektörüdür. D3 ledi işlemci ve devrenin çalışmasının gösterirken, LED ve işlemci arasında 1K'lık R15 dirençleri akım sınırlama elemanı olarak iş görürler. 10K'lık R11 ve R12 dirençleri pull-up dirençleridir. P4 USB kartı ile UART bağlantısı için kullanılır. P5 konnektörü 6 bacak mini DIN konnektörüdür ki bu klavye girişidir. R13 ve R14 kısa devre elemanıdır. (Köpreleme teli yeri kullanılmaktadır). C6,C9 ve C10 Atmega8 devresinde filtreleme elemanlarıdır.

UART-usb köprüsü olarak kullanılan FT232BL IC1. Bu tüm devreye bağlı olan R9 ve R10 27R USB akım sınırlama dirençleri. Burada R9 ucuna bağlı olan R8 1K5 direnci USB’nin tipini (USB2.0) belirleyen dirençtir. Buradaki R6 4K7 ve R7 10K devre harici besleme durumunda bilgisayarın kapatılması durumunda USB cihazın sıfırlanması ile ilgili bir görevi var. R1 ve R2 1K dirençleri D1 ve D2 LED’lerinin akım sınırlama dirençleridir. D1 ve D2 LED’leri seri port iletişim monitörü olarak çalışır. R3 10K ve R4 2K2 IC2 EEPROM’un veri aktarma uçlarının FT232BL entegresine bağlantısında kullanılır. C1,C2 27pF ve XTL1 6MHz ise IC1 için saat frekans üretim sistemini oluşturuyor. USB-A USB bağlantı konnektörü. P1 seri bağlantı için bağlantı portudur. P2 ve P3 ise besleme bağlantısı için seçim konnektörleridir.

Geriye kalan kondansatörler filtre amaçlıdır.

Şekil-6:Blok şeması


Şekil-7:Devrenin şeması

Devre Yapımı

Devre yapımınde SMD elemanların lehimlenmesi biraz daha özen gerektiriyor. Devre yapılırken öncelikle SMD elemanların lehimlenmesi sonra bazı sorunların önüne geçecektir. Dikkate edilmesi gereken SMD elemanlarda Eleman yüzü üzerinde gösterilmiştir. IC1 noktası sağa bakar halde gösterilmiştir ama PCB tarafında lehimlenirken bu elemanın noktası sola bakacak şekilde yerleştirilmelidir. Yani IC1 eleman tarafından görüldüğü gibi gösterilmiştir.

Şekil-8:Devrenin baskı devresi şekli-kartın eleman yüzü tarafından görünümüdür


Şekil-9:Devrenin yerleşim planı-kartın eleman yüzü tarafından görünümüdür


Şekil-10:Eleman ve yolların birlikte görünümü


Şekil-11:Kartların alttan görünümü .


Şekil-12:Kartlar arasındaki bağlantı çizimi


Şekil-13:Bağlantıları yapımış kartlar

Devre Elemanları

27RR9,R10
220RR1,R2
470RR5
1k5R8
2k2R4
4k7R6
10KR3,R7
27pFC1,C2
100nFC3,C4,C5
3mm Kırmızı LEDD2
3mm Yeşil LEDD1
FT232BLIC1
93C46 (DIL)IC2
6Mhz kristalXTL1
10 HeaderP1
USB-A konnektörUSB-A
3 bacak sıra pinP2,P3
köprüköprü(jumper) 2 Adet
8 bacaklı entegre soketi (DIL)-
1K(1206 smd)R15
10K(1206 smd)R11,R12
27pF(1206 smd)C7,C8
100nF(1206 smd)C9,C10
10µFC6
3mm LEDD3
ATMEGA8 (DIL)IC3
7,3728Mhz kristalXTL2
2x3Header (ISP6)isp
mini DIN-6 dişi konnektör P5
2x5 HeaderP4
28 bacaklı entegre soketi (DIL)-
kartlar arası kablo-
USB kablosu-
PS/2 F-Klavye-

Bilgisayar Programı

"Klavye-USB.exe" programı Borland Delphi ile yazıldı ve derlendi. Bazı kodlar internet üzerindeki sitelerden alınarak istenen amaç doğrultusunda birleştirildi. Program çalıştırıldığında Windows araç çubuğundaki Görev Çubuğu bölümünde bir simge olarak eklenecek ve gerektiğinde Seri Port gibi bazı seçeneklerin seçilmesi için erişim imkanı sağlarken, ön plandaki açılmış olan herhangi bir uygulamaya basılan tuşun gönderilmesini sağlamaktadır.

Şekil-14:Açılmış program ile birlikte yerleşmiş Görev çubuğu simgesi.

Program basitçe şöyle çalışmakta;

Program ilk açıldığında Görev çubuğu alanına kendi simgesini ekler. Bu simge üzerinden program kapatılabildiği gibi seçenekler pencresinin açılmasına da olanak tanımaktadır.

Program kendi ini dosyasından Seri port numarasını okur ve seçenekler penceresindeki seri porta atar.

Program klavye üzerindeki tuş basılması ile sanal seri port üzerinden gelen veriyi bekler. Veri geldiğinde ilk olarak ön planda açık olan uygulamanın class adını alır. Çünkü class adı o uygulmaya erişim için gereklidir. Class adını seçenekler penceresindeki gerekli alana yazar.

Tuş basılması ile gelen veri okunarak öncelikle Seçenekler penceresindeki alana yazılır. Sonra gelen tuş karakteri class adına uygun olarak o programa gönderilir.

Not:Bazı karakterin ASCII tablosuna uygun olarak diğer uygulamalara gönderilmediğini belirtmek gerekiyor.

Bilgisayar programının kullanımı

Program konusunda söylenecek fazla bir şey yok. Basitçe "Klavye-USB.exe" uygulamasını çalıştırıyorsunuz.

Gerekirse seçenekler penceresindeki seri port (sanal) seçiyorsunuz. Seri port seçiminden sonra Tamam butonuna basarak onaylıyorsunuz. Bu işlem Seçenekler penceresini kapatacaktır.

Yazı yazılacak bir metin programı açıyorsunuz. Artık tek yapmanız gereken sadece klavyenin tuşlarını basmak. Tuşları basıp bıraktıkça metin programı üzerinde bilgisayarın kendi programını kullanıyormuş gibi yazacaktır.

Projede bazı sınırlamalar var. Fonksiyon tuşları (F1,F2…),Caps Lock, Ctrl, Alt tuşları ve Sağ Ctrl tuşunun sağında kalan tuşlar kullanım dışıdır. (Klavye üzerindeki LED'leri kullanım dışı olduğunu belirtmek gerekiyor)

Şekil-15:Klavyede kullanım dışı tuşlar kırmızı alanlar ile gösterilmiştir.

Not:Program XP işletim sistemi üzerinde denenmiştir."Bilgisayar programı" ve "Bilgisayar programının kullanımı" başlıkları altındaki metin bu proje kullanımıyla yazılmıştır

Şekil-16:Seçenekler penceresi.

Resimde görülen alanların basitce tanımlarını açıklayacak olursak;
  1. Bilgisayarda bulunan seri portları ve seçilmiş olan seri portu gösteren açılır menü penceresi.
  2. Basılan tuşu göstere yazı alanı (basılan tuş ile güncellenir)
  3. Bilgisayarın ekranında en öndeki açıl olan programın class adı (basılan tuş ile güncellenir).
  4. Yapılan ayarları onaylayıp Seçenekler penceresini kapatır.

Görev çubuğundaki program simgesini farenin sağ butonu ile ulaşılabiler iki menü öğesi vardır. "Kapat" menü öğesi programı kapatır. "Seçenekler" menü öğesi "Seçenekler" penceresini açar.

Ayarlamalar

"Klavye-USB" programındaki ayarlar zaten tek seçenek olan seri port seçim için "Seçenekler" penceresindedir.

Donanım için ise UART-USB arayüz kartı üzerindeki P2 ve P3 konnektörlerine takılacak olan köprülerdir.

Şekil-17:USB kartı üzerindeki köprülerin yerleşimi.


Şekil-18:USB üzerindeki köprülerin konumu açıkça görülmektedir.

Not:Program üzerinde hata kontrolu yoktur. Yani program çalışırken USB kablosunu bilgisayardan çıkartırsanız program hata döngüsüne girecektir. Bu nedenle USB kablosunu bilgisayardan çıkarmadan önce çalışan programın Görev Çubuğundan kapatılması gerekmektedir. ("Klavye-USB" programı hata döngüsüne girerse "Windovs Görev Yöneticisi" altındaki "İşlemler" etiketi altından kapatılabilir.)


Ekler:

ATMEGA8 hakkında bilgi için

"Atmega8 ile USB (FT232) İletişimli Bilgisayar Klavyesi" için dosyalar-birleşik

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A....

21 Ekim 2009 Çarşamba

Atmega8 ile Seri İletişimli Bilgisayar Klavyesi


Giriş

Günümüzde kişisel bilgisayarların neredeyse vazgeçilmez girdi elemanı: klavye. Eh çoğumuz için her ne amaç için olursa olsun yazı yazmak,oyun kontrol elemanı olarak, hatta programların kullanımı için önemli bir girdi elemanı olarak kullanılır. Bir klavye ile işlemci devresinde nasıl kullanıldığı bu projede anlatıldı.

Klavye

Klavye basitçe kendi kontrol ünitesi tarafından üzerinde tüm tuşlar çoğullamalı olarak taranır. Klavye üzerindeki her bir tuşa bir kod atanmıştır. Bu noktada atanmış olan bu kod klavye üzerindeki ASCII karakterleri ile aynı olmadığı unutulmamalıdır. Basitçe bir tuşa basıldığında klavye tarafından tuş kodu gönderilir. Tuşa basılı tutulursa, belirli aralıklarla bu kod gönderilmeye devam eder. Tuş bırakıldığı zaman ise, önce "break" olarak tanımlanan "0xF0" (onlatılık sayı sistemi) kodunu gönderir ve sonra bırakılan tuşun kodu gönderilir. Şunuda belirtmekte fayda varki klavye üzerinde bazı tuşlar daha fazla kodla tanımlanmıştır. Örneğin sağ taraftaki sayı tuşları ve yön tuşları 0xE0,0xF0, 0xXX (XX burada tuş kodunu belirtir) gibi bir kod dizisi ile tanımlanır.

Şekil-1:Bu projede kullanılan klavye tuşları ve tuş kodları (Bazı tuşlar ve kodları gösterilmemiştir)

Klayve diğer bağlantı türlerini saymazsak, 5-bacaklı DIN veya 6- bacaklı mini-DIN iki bağlantı tipi PS/2 portu olarak tanımlanmaktadır. Bu bağlantı tipleri aslında birbirinin aynıdır ve kolaylıkla birbirlerine dönüştürülebilir. Burada 6- bacaklı mini-DIN bağlantı tipi kullanıldı. 6 bağlantı ucu olmasına rağmen sadece 4 bağlantı ucu kullanılır: Vcc(+5V), GND, Saat sinyali ve Veri ucu.

Şekil-2:Mini DIN-6 konnektörünün bacak bağlantıları

Klavye İletişimi

Klavye iletişimini iki yönlüdür. Yani sadece klavye veri göndermez, yeri geldiğinde bazı işlemler için komutda alır. Bu projede bu komut alma bölümü konu dışı bırakılmıştır. Yani sadece klavyenin veri göndermesi üzerine kuruludur.

Normalde bir klavyenin veri ve saat hatları lojik 1 seviyesinde durur. Klavye üzerinde bir tuşa basılana kadar. Saat hattı bir dizi saat darbesi üretmeye başlar. Veri hattındaki veri saat hattındaki darbenin inen kenarında geçerli olacak şekilde şekillendirilir.

Şekil-3: Saat ve Veri iletişim dalga şeması. "F" tuşu=0x15

Verinin gönderilme şekli ise; ilk veri bit daima lojik 0 ile başlar, 8 bitlik veri, bir elde biti ve lojik 1 seviyesinde sonlandırma bitinden oluşur. Yani bu bitlere 11 tane saat darbesi eşlik eder. Başlama bitinden sonraki ilk veri bitin en düşük anlamlı bittir. Saat frekansına gelince10KHz ile 16.7 KHz arasında.

Bitleri baytlara dönüştürürsek, 8 bitlik verinin kesme veya tuş kodu olduğunu söyleyebiliriz.

Bağlantıların elektriksel olarak aslında klavye içinde pull-up dirençleri ile +5V (lojik 1) seviyesine çekilmiş durumda. Bu da hem klavye hemde işlemci (veya bilgisayar) tarafında lojik 0 çekebilme yapısında olduğunu gösterir ki, iki yönlü iletişim için gerekli şart. Klavyenin veri gönderme durmunda lojik 0 çekme işini sadece klavye yerine getirir.

Şekil-4:Bir klavyenin tuşa basıldığında çalışma şekli

Klavyenin kabini (1) kontroller ünitesi oluşturur. Kontroller ünitesi belirli bir zaman aralığı içinde (2) tuşları tarar ve tuşların basılıp basılmadığını kontrol eder. Bir tuş basıldığı zaman (3) tarama hatlarından birisinin devresini tamamlar ve kontroller ünetisi tarafından değerlendirilir. Tuş kodu (5) verisi veri hatları üzerinden iletilirken, tuş verisine eşlik eden bir (4) saat sinyalini kontrol ünitesi oluşturur. Her iki sinyalde bir mini DIN-6 konnektörü (6) üzerinden bağlandığı cihaza veri aktararır.

Devre

Devreyi geliştirilirken referans alınan Atmel firmasının uygulama notlarından AVR313 uygulama notu göz önüne alındı. Tabiki uygulama notunda verilen program C ile yazılmış olsada bir fikir vermeye yetti.

6- bacaklı mini-DIN bağlantı tipini oluşturan konnektör klavye ile işlemci kartı arasında bağlantı noktasını oluşturuyor. Her ne kadar klavye içinde olduğu belirtilmiş olsada iki pull-up direnci devreye her ihtimale karşı eklendi. (Klavyenin takılı olmadığı durumlara karşı.) İki led devrenin durumu hakkında kullanıcıya bilgi vermekte. Şu hali ile kırmızı sürekli yanarak devrenin çalıştığını belirtirken, yeşil led sadece klavye işlemci kartına bilgi gönderdiğinde yanmaktadır. Ledlere bağlı dirençler tabii ki akım sınırlama elemanı olarak iş görür. Devre saat frekans 7,3728 MHz kristal ve iki 27pF kondansatör ile üretilmektedir.

RS232 için söylenecek fazla bir şey yok. Devre sadece bilgisayara veri göndermekle birlikte, gerekli durumlar için Alma için bağlantı yapılmış durumda. Bilgisayar seri kablosu için bir DB9 konnektörü devre üzerine eklenmiştir.

Besleme için bir köprü diyodu üzerinden alınan besleme doğrulma kondansatörlerinden geçirilerek 7805 regülatörüne uygulanmakta, çıkışıda devre ve klavye için gereken +5V besleme gerilimini sağlar. Geriye kalan kondansatörler sadece filtre amaçlı.

Şekil-5:Klavye seri bağlantısı için kullanılan kart

Şema

Atmel 8 işlemcimiz olam üzere IC1 ile temsil ediliyor. Bunun saat frekansı üretimini sağlayan XT1 veya XTL1 kristal olup 7,3728MHz değerinde ve bu kristale eşlik eden C7 ve C8 kondansatörleri 27pF değerindeler. İşlemciye bağlantılı P3 konnektörü işlemcinin programlanmasında kullanılan ISP konnektörüdür. D2 ve D3 ledleri işlemci ve devrenin çalışmasının gösterirken, LED ve işlemci arasında 1K'lık R1 ve R2 dirençleri akım sınırlama elemanı olarak iş görürler. 10K'lık R3 ve R4 dirençleri pull-up dirençleridir. P2 konnektörü 6 bacak mini DIN konnektörüdür ki bu klavye girişidir.

P1 (DB9), IC2,C2,C6,C4,C3 elemanları artık çok bilinen seri port devresini oluşturur. Bilgisayar seri portu ile işlemci seri portu arasında iletişim arayüzü (seviye uygunlaştırıcı) olarak işlev görür.

D1,C9,C10 IC3 C11 elemanları en basit besleme devresini oluşturmakta. +5V besleme devresi.

Geriye kalan kondansatörler zaten filtre kondansatörü olarak çalışırlar. Eh, sadece 100 nF kondansatörler kaldı.

Şekil-6:Blok şeması


Şekil-7:Devrenin şeması


Devrenin Çalışması

Devre şeması incelenirse klavyenin saat girişinin işlemcinin int0 bacağına bağlı olduğu görülür. Yani işlemci saat bacağına sinyal geldiğinde bir kesme üretmesini sağlar. Dikkat: Sadece inen kenarda. Üretilen bu kesme sinyalı ile Veri bacağında zaten bir bit olacağından bu değer okunur. Sonraki saat darbesinin inen kenarın kadar devre bekler. Saat darbesinin inen kenarında bir kesme üretimi ile birlikte gelen bit okunur. Bu işlem 11 kez tekrarlanır. Şimdi elimizde 11 bitlik veri var. Klavyenin iletişim şekline göre gelen verinin başından bir bit ve sonundan iki bit atılarak ,8 bit bitlik klavyenin gönderdiği veri alınmış olur. Klavyeden bilgi geldiği zaman diliminde yeşil LED yanacaktır. Sonra sönecektir.

Sonra bu gelen verinin niteliği incelenir. Bu noktada sadece tuş bırakma durumunda üretilen tuş kodu kullanılıyor (0xF0+tuş kodu). Shift tuşu bu şartın dışındadır. Çünkü Shift tuşu basılı olduğu zaman diliminde işlemdedir.

Alınan tuş kodu bir tablodan basılan tuşun ASCII kodunu bularak bunu bilgisayara gönderir.

Not:
1. Elimde bu iş için kullanabileceğim sadece F tipi klavye vardı. Dolayısı ile üretilen tuş kodları bu klavyeye göredir. Eğer proje Q klavye ile yapılır ve program değiştirilmezse,Q tuşuna basıldığında F yazacaktır.
2. Büyük harf kilit tuşu (Capslock) devre dışıdır.
3.Klavyenin sağ tarafındaki tuşlar (enter tuşunun sağındaki tuşlar) devre dışıdır.
4.Tuşun sürekli basılma durumu göz ardı edilmekte. Sadece tuş bırakıldığında veri işlenmektedir.

Şekil-8:Devrenin besleme verilmiş, programlanmış ve denenmiş hali


Devre Yapımı

Devre yapımında kritik bir eleman yok. Baskı devre kartı üzerinde geçekleştirildiğinde standart eleman yerleşimi göz önüne alınarak devre kurulabilir. Bu noktada diğer devre montaj teknikleri kullanıldığında bacakların doğru bağlanması önemlidir. Tabii ki kristal topraklanmalıdır. Devrede 7805 5V gerilim regülatörü üzerinden geçen akım göreceli olarak küçük olduğu için ek bir soğutucu kullanımına gerek duyulmamamıştır.
Tüm dirençler çeyrek wattır.
Besleme konusunda bir sorun oluşturmayacağınızı düşünüyorsanız girişteki köprüyü devre dışı bırakabilir veya tek bir diyotla değiştiribilirsiniz. (Kendi besleme kaynağınız varsa ve devreyi kendiniz kullanacaksanız). Bacak bağlantıları uyan başka bir LED kullanılabilir. Entegreler için soket kullanılması sonradan oluşabilecek sorunların çözümünde size yardımcı olabilecektir. Belki daha sonra tümdevreleri başka bir devre üzerinde kullanmak isteyebilirsiniz. Sizin imkan ve tercihlerinize kalmış bir durum...

Şekil-9:Devrenin baskı planı


Şekil-10:Devrenin yerleşim şekli


Şekil-11:Devrenin yerleşim planı


Şekil-12:Kartın alttan görünümü. Devre görüldüğü gibi fazla karışık değil.

Devre Elemanları

1KR1,R2
10KR3,R4
27pFC7,C8
100nFC1,C5,C9,C12,C13
10µFC2,C3,C4,C6,C10,C11
B125C1500 veya benzeriD1
3mm Kırmızı LEDD2
3mm Yeşil LEDD3
ATMEGA8IC1
MAX232IC2
7805IC3
7,3728Mhz kristalXT1
DB9P1
6 Header (ISP6)P3
mini DIN-6 dişi konektör P2

Malzeme listesi. Burada işlemci için soket ve 9V adaptör verilmemiştir. Kaliteli 16 ve 28 bacaklı soketler oluşabilecek problemlerin önüne geçecektir.

Söylemeye bile gerek görülmeyen bir mini DIN 6 bağlantı konnektörü olan bir klavye malzeme listesine eklemek gerekiyor.(Bu proje değiştirilmeden uygulanacaksa, F klavye oluyor.)

Bilgisayar Programı

Bilgisayar üzerinde kullanılan program Delphi 7 ile yazıldı. Sadece seri port üzerinden gelen ascii karakteri yazmak üzere kullanılabilecek basit bir metin düzenleme programıdır. Program üzerindeki metin alanı siz tıklasanızda tıklamasanızda her zaman girilen tuş bileşeni metnin en sonuna eklemek üzere tasarlandı. Yazılan metin rtf formatında kayıt yapılabilmektedir.

Yani metin üzerinde fazla işlem yapamazsınız ama klavye ve işlemci devresinin çalışmasının izlenmesinde yardımcı olacaktır. En basit bir seri klavye sistemi oldu, ama sadece bu program için.

Şekil-13:Klavye-seri dönüştürücü devresi için oluşturulmuş metin düzenleme programı

Şekil-13 Klavye-seri dönüştürücü devresi için oluşturulmuş metin düzenleme programını göstermektedir. Görüldüğü gibi fazla karmaşık değil. Basılan tuş pencere altındaki yazı alanında gösterilirken tüm basılan tuşlar metin alanında toplanmaktadır.

Şekil-14 ve Şekil-15 klavyenin gönderdiği verileri incelemek üzere hazırlanmış basit bir Visual Basic programıdır. Sadece işlemci kartının geliştirilmesinde bilgisayardan izlemek üzere oluşturuldu.

Şekil-14: 'F' tuşu basılıp bırakıldığında klavyenin gönderdiği veri

"F" tuşuna basılıp bırakıldığında klavyeden gelen bilgi görülmektedir. Alttaki ilk (0x15)değer tuş basıldığında klavye tarafından gönderilen değerdir. Üstteki değerler tuş bırakıldığında (0xF0 ve 0x15) klavyenin gönderdiği değerleri gösterir.

Şekil-15:V tuşunun Shift ile birlikte kullanımı

Shift tuşu ile birlikte V tuşunun klavye tarafından gönderdiği değerleri göstermektedir. Shift basıldığında sürekli olarak Shift tuş kodunu göndermektedir ("shift basıldı"-mavi). Bu bir başka tuş basılana veya Shift bırakılana kadar devam eder. V tuşu ile işlemler bunu takip ederek ("v tuşuna basıldı ve bırakıldı"-yeşil). Son olarak "Shift tuşu bırakıldı" kodu kırmızı yazı ile görülmektedir. İşlemci tüm bunları inceler ve seri port üzerinden "V" karakteri olarak gönderir.



Film izlenirken görüleceği üzere yeşil led yanıp sönmektedir. Bu yanma anlarında klavyenin tuşlarına basılmaktadır.

Ekler:

ATMEGA8 hakkında bilgi

Atmega8 ile Seri İletişimli Bilgisayar Klavyesi için dosyalar -birleşik

Bu devrenin yapım sorumluluğu size aittir. Devre yapıldı ve çalışıyor. K.A...

Translate

Sayfalar

Etiketler

74C922 (1) 74HC125 (2) 74HC138 (1) 74HC20 (1) 74HC590 (1) 93C46 (5) adc (2) adım motor (1) Android (1) Arduino (5) Arduino UNO (5) at90S2313 (7) atmega128 (1) Atmega128 (1) atmega16 (5) atmega32 (4) Atmega328p (5) Atmega8 (44) attiny (1) attiny2313 (18) avr (71) barometre (1) bilgisayar ses (1) Biplor step motor (1) Bluetooth (2) bootloader (1) cep telefonu (1) CGRAM (1) CGROM (1) DHT11 (1) DS1302 (1) DS1307 (5) ds1820 (3) EDMCPR6YOY (1) ENC28J60 (3) ethernet (3) F2631XH-44 (1) fiber optik (2) floresan ekran (4) frekans (1) FT232BL (9) FT232RL (1) FTDI232 (3) GLCD (2) grafik LCD (8) HC06 (2) HH10D (2) HITCHACHI (1) higrometre (2) HP03S (1) HR911105A (1) i2c (1) isp (2) kapasitemetre (2) karakter LCD (5) kızılaltı (2) klavye (2) kondansatör (1) L2432 (1) L298 (1) LAN (1) LCD (22) LCD ekran (2) led (8) led ekran (14) led matris ekran (4) LM044L (1) LM1117-3V3 (2) LM35 (8) lm358 (1) LM75 (2) max3232 (1) MCP3550 (1) nea02017 (2) panasonic (1) PCF8574AT (2) PCM1602 (3) programlayıcı (1) RCM2048R (1) rs232 (16) rs485 (14) saat (14) sayıcı (1) Seri (3) Sharp (1) Step motor (1) şifreli kilit (2) T6963C (3) TC1602.TC2004 (1) termometre (13) tester (1) transistör (1) tuş takımı (2) tx179 (2) uf-150 (1) USB (14) voltmetre (1) wifi (1) YMC162 (2) zamanlayıcı (2)

İzleyiciler