Teknik Özellikleri

Dikkat edilirse 8052 pin sayısı 8051 pin sayısı ile aynıdır. Bu sayede daha önce geliştirilmiş 8051 kartlarının yalnızca entegrelerini değiştirerek daha gelişmiş 8052 entegreli bir kart haline getirmek olanaklıdır. Biz 8051 kartlarında 11.0592 Mhz kristali, 8052 ve 80535 temelli kartlarda ise 12 MHz kristali kullanıyoruz. Dolayısıyla eğer 8051 kartından 8052 kartına geçmek ve kitapta verdiğimiz programları kullanmak istiyorsanız, yapmanız gereken şeylerden biride 8051 kartındaki kristali değiştirmektir.   

 

8052 microkontrolcü, 8051 kontrolcünün bir üst versiyonudur. 8051 mikrokontrolcüye göre bir kaç ilave özelliği vardır. 

Standart 8051'de 128 bayt iç hafıza 8052'de 256 bayttır.  Üçüncü bir sayıcı/zamanlayıcı konulmuştur. Bu zamanlayıcı sayıcıya yeni çalışma modları ve 16 bit tekrar yükleme özelliği konulmuştur.

 

Üçüncü,zamanlayıcı/sayıcıyı desteklemek için yeni özel fonksiyon registerleri tanımlanmıştır. 

Gerçektende 8051 ve 8052 arasındaki tüm temel farklılık bundan ibarettir. Şimdi bu ilave özelliklerin nasıl kullanılacağını incelemeye başlayalım.

 

256 Bayt İç Hafıza

Standart 8051 entegre 128 bayt iç hafıza içerir.  Bu hafıza 8051'de kullanıcıya değişkenler tanımlaması için bir alan ve yığın hafıza için alan olarak sunulmuştur.  Standart 8051 entegrede, 00h-7Fh arası geçici hafıza olarak adlandırılırken 80h-FFh arası hafıza özel fonksiyon registerlerinin bulunduğu hafıza parçasıdır.

8052 entegrenin ek 128 baytlık hafıza alanına yalnızca direkt olamayan adresleme moduyla ulaşılabilir.  Indirekt adresleme her zaman  kullanıcı hafıza alanını işaretlemede kullanılır.  Özel fonksiyon registerlerine Indirekt adresleme moduyla ulaşılamaz.

Buna göre, örneğin 8052 entegrenin kullanıcı hafıza biriminde 90h adresindeki değeri okumak için, aşağıdaki satırlar gereklidir.

MOV R0,#90h ;İndirekt adres 90h

MOV A,@R0 ; R0 ile işaretlenen değeri akümülatöre oku

 Yukarıdaki kod, önce R0 registerine 90h değerini atamaktadır. Daha sonra ındirekt olarak R0'ın gösterdiği adresten değer akümülatöre okunmaktadır. Dikkat edilmesi gereken önemli bir nokta, yukarıdaki kodun,

 MOV A,90h ; 

kodu ile aynı olmadığıdır. Bu komut direkt adresleme kullanmaktadır. İç hafızayı adreslemek için direkt adresleme kullanılamaz. Bu yüzden bu komut ile okunan değer özel fonksiyon registerlerinden 90h adresli olanının (Giriş/çıkış birimi 1) değerinin akümülatöre okunması sonucunu getirir.

 

Yeni Özel Fonksiyon Registerleri ve Uçüncü Zamanlayıcı

8051 entegrenin standart 21 özel fonksiyon registerine ek olarak, 8051 entegrede üçüncü zamanlayıcı/sayıcı fonksiyonları için 5  yeni özel fonksiyon registeri tanımlanmıştır. Standart 8051'in tüm özel fonksiyon registerleri, aynı biçimlerini ve çalıştırma karakterlerini korumuşlardır.  8051 serisinde yalnızca yeni özel fonksiyon registerleri tanımlanmıştır ve eskilerin özellikleri değiştirilmemiştir.

Yeni özel fonksiyon rgisterleri  C8h - CDh  adresleri arasındadır.C9h adresi özel fonksiyon registeri olarak tanımlı bir adres değildir.

 

Zamanlayıcı 2'nin Seri Haberleşmede Kullanımı

Zamanlayıcı 2 seri haberleşmede, haberleşme hızını ayarlamak için kullanılabilir.  Bunun için ya RCLK (T2CON.5) biti yada TCLK (T2CON.4) biti kullanılır   Standart 8051 entegrede, yalnızca zamanlayıcı/sayıcı 1 seri haberleşme hızını kontrol etmekte kullanılabilmekteydi.  Ayrıca standart 8051'de karekter yollama ve karakter alma hızları aynı olmak zorundaydı.

Fakat 8052 entegre ile seri  haberleşmede karakter yollama ve karakter alma hızları birbirinden farklı olabilmektedir. Örneğin eğer RCLK biti "1" ise ve TCLK biti "0" ise, seri data zamanlayıc/sayıcı 2 tarafından belirlenen haberleşme hızına göre data okuyacak, fakat karakter yollama hızı zamanlayıcı/sayıcı 1 tarafından belirlenecektir. Gerekli haberleşme hızının belde edilmesi için gerekli yeniden yükleme değerleri seri iletişim bölümünde tartışılmıştı.  8051 zamanlayıcı/sayıcı 2 birimi için fark, yeniden yükleme için  RCAP2H ve RCAP2L isimli iki yeni registerin bulunması ve yeniden yükleme değerinin 16 bit olmasıdır.

Note:  Zamanlayıcı/sayıcı 2 seri haberleşme hızını kontrol etmek üzere ayarlandığında,   zamanlayıcı taşma biti (TF2) "1" olmaz.

 

T2CON Özel Fonksiyon Registeri

Zamanlayıcı 2 biriminin çalışması hemen hemen tamemen bu özel fonksiyon registeri tarafından kontrol edilir.  T2CON registeri C8h adresinde bulunur. Adres değeri 8 ile bölünebildiğinden bu register bit adreslenebilir bir registerdir.

 

BIT ISIM BIT 

ADRESI

AÇIKLAMA
7 TF2 CFh   Zamanlayıcı  2 Taşma Biti. T2 Taştığında bu bitin değeri "1" olur. T2 kesmesi aktif olduğunda, bu bit kesmenin devreye girmesini sağlar. TCLK veya RCLK bitlerinden birisi aktifse bu bit "1" olmaz..
6 EXF2 CEh Zamanlayıcı 2 Dış Bayrak. EXEN2 biti "1" ise, yeniden yükleme veya      T'2EX pininde 1-0 geçişi ile aktif olur. T2 kesmesi aktifse, bu bit kesmenin devreye girmesini sağlar.
5 RCLK CDh Zamanlayıcı 2 karakter okuma saati. Bu bit "1" ise, zamanlayıcı 2 karakter okuma hızını belirlemekte kullanılır.Bu bit "0" sa zamanlayıcı 1 kullanılır..
4 TCLK CCh Zamanlayıcı 2 karakter yollama saati. Bu bit "1" ise karakter yollama hızı zamanlayıcı 2 tarafından belirlenir. Bu bit "0" sa zamanlayıcı 1 kullanılır.
3 EXEN2 CBh Zamanlayıcı 2 Dışarıdan Aktifle. Bu bit "1" ise,  T2EX (P1.1) pininde bir 1-0 geçişi, yakalama veya yeniden yüklemeye yol açar.
2 TR2 CAh Zamanlayıcı 2 çalıştır. Bu bit "1" olduğunda zamanlayıcı 2 çalışmaya başlar.
1 C/T2 C9h Zamanlayıcı 2 sayıcı/zaman aralığı ölçücü. Bu bit "0" sa zamanlayıcı 2 zamanlayıcıdır. Eğer "1" se Zamanlayıcı 2  T2 (P1.0) bacağındaki her         bir 1-0 geçişi ile bir artırılır.
0 CP/RL2 C8h Zamanlayıcı 2 Yakala/yeniden yükle. Bu bit "0" sa zamanlayıcı 2 taşmasında  veya eğer   EXEN2 biti "1" se  T2EX pinindeki 1-0 geçişi otomatik yeniden yüklemeyi tetikler. Bu bit eğer "1" se  ve EXEN2 "1" se, T2EX pinindeki 1-0 geçişi  otomatik yakalamaya yol açar.

Zamanlayıcı 2 Otomatik Yeniden Yükleme (Auto-Reload) Modu

Zamanlayıcı 2'nin kullanılabileceği ilk mod otomatik-yeniden yükleme modudur. Zamanlayıcı 22nin otomatik yeniden yükle modu, aynı zamanlayıcı 0 ve zamanlayıcı 1'in otomatik yeniden yükle modu gibi çalışır.  Tek fark zamanlayıcı 2'de otomatik yeniden yüklemenin 16 bit olmasıdır. Zamanlayıcı 2'de otomatik yeniden yükleme oluştuğunda, TH2, RCAP2H registerinde buluna değerle, TL2 ise RCAPL2 registerinde bulunan değerle yüklenecektir.

Zamanlayıcı 22yi otomatik yeniden yükleme modunda çalıştırmak için, CP/RL2 biti (T2CON.0) temizlenir.  Bu modda zamanlayıcı 2'nin her taşmasında, zamanlayıcı 2 registerleri (TH2/TL2), (RCAP2H/RCAP2L) registerlerinin değerleriyle yeniden yüklenir.  Zamanlayıcı 2'nin taşması, TF2 bitinin "1" olmasına yol açar. Bu bitin "1" olmasıyla, eğer zamanlayıcı 2 kesmesi aktif durumdaysa, TF2 biti kesmeyi çalıştıracaktır.  Eğer RCLK veya TCLK bitlerinden birisi "1" ise, zamanlayıcı 2 taşmasının TF2 bitini "1" yapmayacağını unutmayınız. Buna ek olarak, EXEN2 (T2CON.3), bitinin "1" olduğu durumda, T2EX (P1.1) pininin 1-0 geçişinde de otomatik yeniden yükleme meydana gelir. Bu tür bir geçiş sonucu yeniden yükleme oluştuğunda, EXF2 bitinin değeri "1" olur.  Eğer zamanlayıcı 2 kesmesi aktifse, bu bitin "1" olması ile zamanlayıcı 2 kesme programı çalıştırılır.

 

Zamanlayıcı 2 Yakalama Modu

 Zamanlayıcı 2'ye özgü yeni bir mod yakalama modudur.  İsminden de anlaşılabileceği gibi, bu modda zamanlayıcı 2 registerlerinin (TH2 ve TL2) değerleri, yakalama registerleri (RCAP2H ve RCAP2L) içerisine okunur. Zamanlayıcı 2'yi yakalama moduna getirebilmek için,  CP/RL2 (T2CON.0) biti ve EXEN2 (T2CON.3) biti "1" yapılmalıdır.

Zamanlayıcı 2 yukarda anlatıldığı gibi, konfigüre edildiğinde, T2EX pininde bir 1-0 geçişi görüldüğünde, zamanlayıcı 2 registerlerinin değerleri  yakalama registerleri içine otomatik olarak okunur. Aynı zamanda  EXF2(T2CON.6) biti de aktiflenir. Eğer zamanlayıcı 2 kesmesi aktifse, bu bit kesme programının çalışmasını sağlar.

Note 1: Yakalama modunda bile, zamanlayıcı 2'nin taşması TF2 bitinin "1" olmasına yol açar ve kesme tetiklenir.

Note 2 : Yakalama modu, olaylar arasında geçen zamanın ölçülmesinin etkin bir yoludur.  Bir olayın oluştuğu durumda, zamanlayıcı 2 nin o anki değeri, RCAP2H ve RCAP2L registerlerine kopyalanacaktır.  Fakat zamanlayıcı 2 durmayacaktır.  Aynı zamanda kesme devreye girecektir. Örneğin, kesme programınız RCAP2H ve RCAP2L registerlerinin değerini geçici bir registere kopyalayabilir. İkinci bir yakalam oluştuğunda,  kesme programınız daha önceki yakalama değerleriyle o andaki yakalama değerlerinin farkını alarak iki yakalama arasında geçen zamanı belirleyebilir.  Buradaki en önemli üstünlük, bir zamanlayıcının içeriğini okumak için, zamanlayıc 0 veya zamanlayıcı 1'de olduğu gibi,  onu durdurmak zorunda kalmamanızdır.

 

Zamanlayıcı 2 Kesmesi

Diğer zamanlayıcılarda olduğu gibi, zamanlayıcı 2^'de bir kesme oluşturmak üzere programlanabilir. Aslındaki yukardaki bölümlerde, zamanlayıcı 2 nin hangi durumlarda kesme ürettiği üzerine bir miktar konuşuldu.

Zamanlayıcı 2'nin kesme aktiflemesi için,  ET2 (IE.5) bitini "1" yapmak gereklidir.  Kesme kontrolü registerinin (IE) bu biti yalnız 8052 de bir anlam ifade eder.  Benzer şekilde zamanlayıcı 2 kesmesinin önceliği,  PT2 (IP.5) biti kullanılarak belirlenir.  Her zaman olduğu gibi, bir kesmenin devreye girebilmesi için, EA (IE.7) bitinin "1" olması gereklidir.

Birkez zamanlayıcı 2 kesmesi aktif hale getirildiğinde,  TF2 (T2CON.7)  biti veya EXF2 (T2CON.6)  biti ne zaman "1" olsa, zamanlayıcı 2 kesmesi progamı çalıştırılacaktır. Zamanlayıcı 2 kesmesi, kesme adresi, program hafıza içerisinde 002Bh adresidir.

Note : Seri kesme gibi, zamanlayıcı 2 kesmesi de, kesmeyi yaratan bayrağı temizlemez.  Zamanlayıcı 2 kesmesini yaratan iki kaynak olduğundan (TF2 ve EXF2), mikrokontrolcü, kesme kaynağının belirlenebilmesi için bu bayrakları değişmeden bırakır.  Çünkü kesme programınız TF2 kaynaklı bit kesmede farklı bir iş, EXF2 kaynaklı bir kesmede farklı bir iş yapmak isteyebilir. Bu nedenle, zamanlayıcı 2 kesme programında her zaman TF2 ve EXF2 bitleri temizlenmelidir.  Bunu unutursanız, sürekli aynı kesme tetikli kalacaktır.