GİRİŞ
Bu giriş bölümünde,
önce, kitabın mikroişlemci/mikrodenetleyici tabanlı sistemlerin temel
kavramlarını ve uygulamalarını öğretmede takip ettiği yaklaşım sunulacaktır.
Sonra, 8051 mikrodenetleyicisinin kitapta örnek işlemci olarak seçilmesinin
nedenleri verilecektir. Daha sonra, kitapta yer alan bölümler ve ekler özet
olarak tanıtılacaktır.
Türkçe dili ile yazılan
teknik bir kitaptaki zorluklardan biri, hiç şüphesiz, yabancı dildeki
kelimelere karşı gelen Türkçe kelimelerin seçimidir. Aşağıda,
Kitabın
Dili kısmında, Türkçe-İngilizce eğitim problemine biraz değinilmekte ve
ayrıca kitapta kullanılan Türkçe teknik dilin yaklaşımı hakkında bilgi
verilecektir.
En son olarak, kitapta
yer alan önemli 8051 uygulama dosyalarının bulunduğu, ayrıca, çeşitli
mikroişlemci/mikrodenetleyici kaynaklarının da yer aldığı, kitabın Internet
desteği hakkında kısaca bilgi sunulacaktır.
Kitabın Yaklaşımı
Bu kitap mikroişlemci/mikrodenetleyici
tabanlı elektronik sistemlere bir giriş kitabı olarak yazılmıştır.
Mikroişlemcilere klasik giriş kitapları, genelde, endüstride ve
eğitimde yaygın olarak kullanılmış, Zilog Z80, Intel 8085A, 8086 veya
Motorola 6800, 68000 gibi klasik eski işlemcilerinden birini örnek
işlemci olarak almakta, detaylı olarak tanıtmakta ve bu işlemciye yönelik
donanım ve yazılım teknikleri sunmaktadır.
Günümüzde, 2000li
yıllarda, mikroişlemcilerin eğitimi için bu tarz yaklaşım artık çok eskimiş
durumdadır. Çünkü, başta, mikroişlemciler bugün elektronik sistem
tasarımlarında artık kullanılmayıp yerlerine, uygulamaya göre tümdevre-üzerinde
değişik donanım birimleri içeren, mikrodenetleyiciler, sayısal işaret
işlemciler gibi değişik işlemciler kullanılmaktadır. Mikroişlemciler bugün
daha çok bilgisayarlarda kullanılmaktadır ve mikroişlemci tabanlı
elektronik kontrol sistemleri artık pek geliştirilmemektedir.
Mikroişlemci eğitiminde,
yukarıda adları geçen ve artık kullanılmayan işlemcilerden birini ve
uygulamalarını, önce detaylı bir şekilde sunup sonra diğer yaygın
olarak kullanılan işlemcilerin öğretilmesi, zaman almakta ve birçok
gereksiz ve pratik değeri olmayan bilginin sunulmasını gerektirmektedir.
Daha modern bir yaklaşım, ticari kullanıma girmemiş, eğitim amaçlı bir
mimariyi genel hatlarıyla öğretip daha sonra, yaygın kullanımda olan bir
işlemciyi öğretmektir. Bu yaklaşımda da, pratik değeri olmayan bilgilerin
öğretilmesi ve zaman kaybı kaçınılmazdır.
Bu kitap, yukarıdaki iki
yoldan da farkı bir yol takip etmiştir. Temel mikroişlemci ve
mikrodenetleyici kavramları, Intel ailesinin pek çok işlemcisini mimari
olarak etkilemiş 8085A örneği ile genel hatlarıyla sunulmaktadır. Bu
işlemci ile, Intel ailesinin birçok işlemcisinde ortak olan temel
donanım özellikleri sunulmuş olup bu işlemci çok detaylı olarak
anlatılmamıştır. Daha sonra, çok yaygın olarak günümüzde kullanılmakta olan
klasik 8051 mikrodenetleyicisi ve uygulamaları detaylı olarak
sunulmaktadır.
Kullanımda olan bir
işlemcinin ve uygulamalarının kitapta verilmesi, ilk bakışta, yukarıda
bahsedilen mikroişlemci eğitimindeki birinci yola benzemesine rağmen önemli
farkları bulunmaktadır. Birinci fark, günümüzde yaygın olarak
kullanımda
olan bir mikrodenetleyici, mikroişlemci/mikrodenetleyici tabanlı
sistemlerin kavramlarını öğretmede kullanılmaktadır. Diğer önemli
farklar, kullanım yaygınlığı, işlemcinin ömrü ve sunduğu klasikleşen donanım
ve yazılım kavramlarıdır. Muhakkak 8051 işlemcisinin de bir ömrü vardır.
Fakat, tümdevre üzerinde sunmuş olduğu özellikler ile bir klasik
olduğu için ve şu an pek çok türevlerinin bulunmasından ve birçok başka mikrodenetleyiciyi mimari olarak etkilemesinden dolayı, kendisi ve sunmuş
olduğu donanım ve yazılım kavramları daha uzun yıllar yaşayacaktır.
Bir mikroişlemci/mikrodenetleyici
tabanlı sistem, işlemci, hafıza ve giriş/çıkış birimlerinden oluşan
adreslenebilir saklayıcılar topluluğu olarak basit bir şekilde
modellenebilir. Bu modelde, işlemcinin içindeki saklayıcılar,
iç
saklayıcılar ve dışındakiler (hafıza hücreleri ve giriş/çıkış
birimleri) dış saklayıcılar olarak belirtilebilir. Kitapta, bu
modelleme temel olarak alınmakta ve mikroişlemci/mikrodenetleyici tabanlı
sistemlerin temel kavramlarını sunmada, Bölüm 2de, böyle bir sistemin en
küçük yapı taşları olan saklayıcılardan başlanmaktadır. Sonra,
saklayıcıların birleştirilmesiyle oluşan hafıza birimi sunulmaktadır. Daha
sonra, bir mikroişlemcili sistem için hafıza tasarımı anlatılmaktadır.
Bölüm 3te mikroişlemci
mimarisi ve çalışması detaylı bir şekilde öğretilmektedir. Bu bölümde Intel
x86 çekirdeğini ve daha başka işlemcileri, (Intel 8051, 8096, 80960
gibi mikrodenetleyiciler ve Zilog firmasının Z80 mikroişlemcisi gibi
işlemciler) mimari olarak etkileyen, 8085A mikroişlemcisi, 8-bit bir
mikroişlemcinin yapısını ve çalışmasını öğretmede örnek işlemci olarak
kullanılmaktadır. Bu işlemcinin tam komut kümesi sunulmayıp, sadece
mikroişlemci-hafıza
haberleşmesindeki iki komut (LDA ve STA) ve mikroişlemci-giriş/çıkış
cihazları haberleşmesinde kullanılan iki komut (IN ve OUT) ve bu komutların
yürütülmesindeki sinyalleme detaylı olarak anlatılmaktadır. Bölüm 2 ve Bölüm
3te anlatılan kavramların pek çoğu genel olup bilhassa Intelin birçok
işlemcisi için geçerlidir. Bölüm 4ten başlayıp Bölüm 10a kadar olan
kısımlarda, Intelin 8051 mikrodenetleyicisinin mimarisi, programlanması ve
uygulamaları detaylı olarak sunulmaktadır.
8051 Mikrodenetleyicisi
8051 eski yaşına
rağmen, bugün hala yaygın kullanımda olan en gözde mikrodenetleyicidir. 1980lerden
bugüne pek çok 8051 uyumlu ürünler ve 8051 türevleri çıkmıştır. 8051
programcılığı, bugün, mikrodenetleyici kullanan ürünler geliştirmek
isteyenler için, önemli bir başlangıç olmuştur. 8051 geliştiricileri için
bir çok Internet Web sayfası, kitaplar, teknik dokümanlar, yazılım ve
donanım gereçleri bulunmaktadır.
Mikrodenetleyicilere
yeni başlayanlar için, veri kitaplarından bir mikrodenetleyiciyi öğrenmek
oldukça zor olmaktadır. Bu kitabın amaçlarından biri, 8051 mikrodenetleyici
ailesini ve uygulamalarını öğrenmeyi kolaylaştırmak ve hızlandırmaktır.
Kitapta tipik bir 8051 programcısı ve donanımcısının ihtiyaçları göz önüne
alınmış, donanım ve yazılım konularına eşit ağırlıklı olarak değinilmiş ve
en gerekli konulara ve tekniklere yer verilmiştir.
Bu kitapta sunulan bazı
konularda, 8051 ailesini bütün yönleriyle tanıtan, 8051 tümdevresini üreten
firmaların veri kitaplarına ihtiyaç vardır. Özellikle donanıma ait teknik
detaylı bilgiler için, üretici firmaların veri kitaplarına bazen başvurmak
gerekebilir.
Kitaptaki Konular
Kitaptaki konular genel olarak iki kısma ayrılmaktadır. İlk
üç bölümde mikroişlemcili sistemlerin temel kavramları anlatılmakta,
mikroişlemcilere genel bir giriş yapılmaktadır. Bölüm 4ten itibaren, 8051 mikrodenetleyicisinin mimarisi, programcılığı ve uygulamaları sunulmaktadır.
Kitapta özet olarak aşağıdaki bölümler bulunmaktadır:
KISIM I: MİKROİŞLEMCİLERE GİRİŞ
n Bölüm
1, Bilgisayarlar ve
Mikroişlemcilerde, bilgisayarların ve özellikle Intel
işlemcilerinin genel bir tarihçesi detaylı olarak sunulmakta ve Motorola
ailesi hakkında da bilgi verilmektedir.
n Bölüm
2, Hafıza Temelleri
ve Hafıza Sistem Tasarımında, temel statik hafıza kavramları, RAM
ve EPROM hafızlar anlatılmaktadır. Ayrıca, 8-bit veri yoluna sahip bir Intel
işlemcisine yönelik hafıza sistem tasarım örnekleri sunulmaktadır.
n Bölüm
3, Mikroişlemci
Mimarisi ve Çalışmasında, mikroişlemcili sistemlerin temel
kavramları, mikroişlemci mimarisi ve çalışması anlatılmaktadır. Ayrıca,
8-bit bir mikroişlemciye örnek olarak 8085A verilmekte ve hafıza ve
giriş/çıkış birimleri üzerindeki çalışması, LDA, STA, IN ve OUT
komutlarıyla anlatılmaktadır. Bir mikroişlemcinin hafıza haritasına
giriş/çıkış birimlerinin yerleştirilmesi ve 8255A Programlanabilir Çevre
Arabirimiyle giriş/çıkış işlemi de bu bölümde sunulmaktadır.
KISIM II: 8051 MİKRODENETLEYİCİSİ VE
UYGULAMALAR
n Bölüm
4, Mikrodenetleyiciler ve 8051 Ailesindende, kitabın ikinci kısmı
başlamakta, mikrodenetleyicilere ve 8051 ailesine genel bir giriş
yapılmaktadır.
n Bölüm
5, 8051
Mikrodenetleyici Ailesinin Mimarisinde, 8051 çekirdeğinin donanım
mimarisi, CPU zamanlaması ve makine çevrimleri detaylı sinyalleme
diyagramlarıyla verilmektedir. Ayrıca, 8051 tümdevresinde yer alan, paralel
giriş/çıkış portları, zamanlayıcı ve sayıcılar, kesme kontrol ve seri port
gibi önemli yapıların genel özellikleri anlatılmaktadır.
n Bölüm
6, 8051 Assembly Dilinde,
önce 8051 için program geliştirme yöntemleri sunulmaktadır. Daha sonra,
8051 adresleme modları ve 8051 komut kümesi verilmektedir. Bu bölümde
ayrıca, basit program örnekleri ile, 8051 komutlarının kullanımları
gösterilmektedir.
n Bölüm
7, 8051 Assembly ve C
Dili Programcılığına Girişte, 8051 ile yapılan temel giriş/çıkış
işlemleri, basit boolean fonksiyonlarını gerçekleştirme, altprogram çağırma,
kesme hizmet programları, zamanlayıcı/sayıcı işlemleri, 8051 C dili
programcılığı gibi konular bulunmaktadır. Bu bölümde, orta uzunlukta ve
zorlukta olan program ve donanım örnekleri, hem assembly hem de C dili ile
verilmektedir.
n Bölüm
8, Yazılım Tasarımı
ve Doküman Hazırlamada, iyi yazılım tasarımı ve program
dokümanlarını hazırlamak için bazı teknikler sunulmaktadır.
n Bölüm
9, 8051 Tabanlı Bir
Geliştirme Kartı ve Bir Eğitim Seti Tasarımında, 8051 programları
için bir geliştirme kartının tasarımı verilmektedir. Bu kartın detaylı
elektronik devre şeması sunulmakta ve çalışması açıklanmaktadır. Ayrıca,
kartın EPROM monitör programı da verilmekte ve detaylı olarak
anlatılmaktadır. İsteyenlerin kolay ve ucuz bir şekilde bu kartı yapmaları
mümkündür. Bu bölümün sonunda Siemens 80C535 işlemcisi tabanlı bir eğitim
setinin donanım tasarımı sunulmaktadır.
n Bölüm
10, 8051 Uygulamalarında,
Bölüm 7ye göre, daha uzun ve zor yazılım ve donanım uygulamaları
sunulmaktadır. Bu uygulamaları, bölüm 9da sunulan geliştirme kartı ile
gerçekleştirmek mümkündür. Çok az veya hiçbir değişiklik gerektirmeden, bu
bölümde sunulan uygulama programlarını, değişik ortamlarda çalıştırmak
mümkündür. Kitapta yer alan bütün uygulamalar, Bölüm 9da anlatılan
geliştirme katında çalıştırılmıştır.
KISIM III: EKLER
n
Ek Ada
8051 komut kümesi verilmiştir. Bu bölümde ayrıca, 8051 adresleme modlarında
kullanılan gösterim ve her komut için basit kod örnekleri de sunulmaktadır.
n
Ek Bde
kitapta kullanılan sembollerin listesi verilmektedir.
n
Ek Cde
kitapta kullanılan Türkçe teknik kelimeler ve bunlara karşı gelen İngilizce
kelimeler verilmektedir.
n
Ek D, Kaynaklarda,
mikroişlemci/mikrodenetleyici tabanlı elektronik sistemlere yönelik bazı
güzel kitaplar verilmektedir. Ayrıca mikroişlemciler/mikrodenetleyiciler
hakkında bazı önemli Internet adresleri ve bu kaynakları tanıtıcı bilgiler
de sunulmaktadır.
Bu kitabın önemli
büyük bir bölümü (ilk sekiz bölümü) Türkçe ve İngilizce eğitim yapan iki
ayrı üniversitenin farklı iki bölümünde (Uludağ Üniversitesi Elektronik
Mühendisliği ve Marmara Üniversitesi Bilgisayar Mühendisliği Bölümleri)
okutulmuştur.
Marmara Üniversitesi Bilgisayar
Mühendisliği Bölümündeki eğitime dikkat çekmek istiyorum. (İngilizce eğitim
yapan bir bölümde, Türkçe kaynak kullanılıyor, dikkat! Türkçe kaynak
sınıfta İngilizce sunuluyor, belki ilk defa! Gayet başarılı bir eğitim
oluyor!? Tabii, bu tartışılabilir!) Tahminim, genel eğitimin İngilizce
olmasından dolayı, öğrencilerin, bilmeleri gereken, saklayıcı (register,
flip-flop) ve çalışması gibi, bazı en temel kavramlarda eksikliklerini
gördüm. Ayrıca, Türkçe bir kaynaktan, kavramları daha çabuk öğrendiklerini
gözlemledim.
İngilizce eğitim yapan
bir okulda, Türkçe kaynak kullanmam çok ilginç karşılanabilir; zira, 7 yıl
çalıştığım ve Türkçe eğitim yapan Uludağ Üniversitesi Elektronik
Mühendisliği Bölümünde hiç bir zaman Türkçe kaynak kullanmadım veya
kullanamadım. Bu da her zaman öğrenciler açısından büyük bir problem
olmuştu.
Lisans ve yüksek
lisansını İngilizce, doktorasını Türkçe eğitim yapan üniversitelerde
bitirmiş biri olarak, kanaatimce, ülkemizde üniversite eğitim dili Türkçe
olmalıdır. Bunun yanında, İngilizce ile teknik dersler de verilmelidir. Bu
sayede öğrenci, temel kavramları daha çabuk öğrenebilecek, daha güzel bir Türkçeye sahip olacak, dilde ve dolayısıyla yaşantısında batı kültürünün
zararlı olabilecek etkisinden bir derece kurtulacaktır. İkinci planda olan
bir İngilizce eğitimi ile de, öğrenci, rahat bir şekilde bilimsel ve
teknolojik gelişmeleri takip edebilecek ve ayrıca, evrensel bilime ve
teknolojiye katkıda bulunabilecektir.
Kitapta mümkün
olduğunca, yerleşik teknik Türkçe kelimeler kullanılmıştır. Bunların,
ayrıca, kitapta ilk geçtikleri yerde, İngilizce karşılıkları da
verilmiştir. Kullanılan Türkçe teknik kelimelerde birlik sağlamak
pek mümkün değildir. Türkçe kullanılacak diye, aşırıya kaçıp gerçekte,
günlük hayatta teknik insanlar arasında kullanılmayan kelimelerden
kaçınılmıştır. Yaygın olmayan kelimelerin kullanılması, bence, konuların
anlaşılmasını zorlaştırmakta ve bir perde olmaktadır. Bununla beraber,
yaygın olmayan, Türkçeye uyan ve teknik bir heyetin de tasdikinden geçen
kelimeleri, yaygın hale getirmeye de çalışmak gerekmektedir.
Kitapta, özellikle
konuşurken kullandığım, alıştığım ve yaygın olduğuna inandığım kelimeleri
kullandım. Kitapta geçen kelimelerin değişik karşılıklarının kullanılması
mümkündür. Örneğin, kitaptaki hafıza kelimesi yerine bellek
kullanılabilir. Bence, bu kelimeler gibi dilimizde yaygın olan, değişik
kullanımlar dilimizin zenginliğini yansıtır. Bu gibi kelimelerden sadece
birinin veya bazılarının kullanılmasının istenmesi, dilimizi fakirleştirir
ve kavram karmaşası oluşturur. İngilizcede ve diğer dillerde, teknik veya
teknik olmayan pek çok kelimenin, eş anlamlılarının bulunduğunu, hatta
yabancı dillerden karşılıklarının olduğunu ve kullanıldığını unutmamak
gerekir.
Internet Desteği
Bu kitapta yer alan
8051 programlarının kaynak dosyaları Internet web adresimden (http://www.gumuskaya.com)
alınabilir. Ayrıca, kitabın web sitesinde bilgisayarlar, mikroişlemciler ve
mikrodenetleyiciler hakkında bazı önemli Internet kaynaklarının adresleri ve
bu kaynakları tanıtıcı bilgiler de sunulmaktadır.