1-giriş

|

1-GİRİŞ

1.1 MİKROİŞLEMCİLER

Mikrobilgisayarlar, günlük yaşantımızda kullanım alanları gün geçtikçe artmaktadır. Bir mikrobilgisayarın temel yapısı, bir diğerinden pek farklı değildir. 1960’larda bilgisayarlar, fiyatlarının çok yüksek olması nedeni ile sadece büyük şirketler, gelişmiş üniversiteler ve devlet daireleri tarafından kullanılabiliyordu. Yarı iletken teknolojisindeki hızlı gelişmeler neticesinde, 1960 lardaki bilgisayar kapasitesi günümüzde 10 dolardan daha ucuz olan mikroişlemci denilen tümleşik devrelere sığdırılmaktadır. Bir mikroişlemci kullanılarak tasarımlanan bilgisayara mikrobilgisayar denilmektedir.

Bilgisayarlar bit adı verilen, 0 ve 1 sayılarını kullanan ikili sayı sistemi ile çalışır ve haberleşirler. Her bilgisayarın Kendine özgü, makine dili denilen ve ikili kodlardan oluşan sabit bir komut kümesi vardır. Makine dili ile çalışmak zor olduğundan ikili kodlanmış komutların her biri isimlendirilmiştir. Bu komut isimlerine ‘mnemonic’ denir. Mnemoniklerle yazılan programlar ‘assembly’ dili ile yazılmış olurlar. Ancak bilgisayarlar ikili sayılarla çalıştığından assembly programın, makine diline çevrilmesi gerekir. Çevirme işlemine derleme denir. Derleme işlemi tablolardan faydalanılarak yapılır. Bu işlemin elle yapılması oldukça zordur. Bu yüzden her mikroişlemci ailesine ait bir derleyici program (Cross Assembler) geliştirilmiştir. Kullanıcı, programlarını O dili ile de yazabilmektedir. Ancak bunun derleyicisi de farklıdır. Fiziksel olarak bir mikrobilgisayar temel yapısı Şekil l’ de verilmiştir.

Bellek, bilgisayarı çalıştıran programların ve bilgilerin depolandığı kısımdır.

Giriş, çalışma esnasında kullanıcının veri girebildiği kısımdır. Basit anahtarlar, klavye veya başka bir devre olabilir. Çıkış. yapılan işlemlerin neticesinde elde edilen sonuçların dışarıya çıkarıldığı kısımdır. Gösterge, yazıcı veya bir devre olabilir. Giriş/Çıkış birimlerine çevre birimi (Peripheral) denir.

CPU (Central Processing Unit, Merkezi İşlem Birimi), sistemin beynidir. Bilgi depolama için kullanılan çeşitli yazmaçlar, Aritmetik Mantık Birimi, komut çözücü, sayıcı ve denetim hatlarından oluşur. Bellekten komutları okur ve gerekli işlemleri yapar. Diğer birimler ile iletişimi sağlar. Şekil 1.2’de temel CPU yapısı verilmiştir.

ALU (Aritmetik Logic Unit, Aritmetik Mantık Birimi), toplama çıkarma gibi aritmetik işlemler ile VE, VEYA ve Seçkin VEYA gibi mantıksal işlemleri yapan birimdir.

Yazmaç birimi, çalışma esnasında, geçici veya kalıcı olarak bilgi depolanan yazmaçları içeren kısımdır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image001.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image002.gif[/IMG]

Şekil 1.1: Temel mikrobilgisayar blok diyagramı

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image003.gif[/IMG]

ÇIKIŞ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image004.gif[/IMG]

Şekil 1.2 : Temel mikroişlemci blok diyagramı

Denetim birimi, bir komutun işlenmesi esnasında gerekli olan tüm zamanlama ve denetleme çıkışlarını sağlayan kısımdır.

Sistem barası (System bus), mikroişlemci ile çevre birimlerinin iletişimini sağlayan bir bağlantı yoludur. Adres, veri ve denetim bitlerinden oluşur.(9)

1.2 MİKROİŞLEMCİLERİN KARŞILAŞTIRILMASI

Sürekli başarı elde edilen ilk mikroişlemci INTEL’ in ürettiği 8080 işlemcisidir. Bunun geliştirilmiş versiyonu ise 8085 olarak tanınmaktadır. Z80 adıyla anılan daha da geliştirilmiş bir işlemci ise ZILOG tarafından üretilmiştir. MOTOROLA’ nın ilk işlemcisi 6800 olup, bu, kendi saat devresi ve RAM’ i olmayan 6802ye eşdeğerdir. MOTOROLA’nın geliştirilmiş versiyonu 6809’dur. ROCKWELL ise MOS teknoloji ile basitçe geliştirilmiş olan 6502yi piyasaya sürmüştür. Bütün bunlar 8 bitle işlem gören, 16 bit adresleme yapabilen mikroişlemcilerdir.

6800 ismi, içerdiği tümleşik eleman sayısı göz önüne alınarak verilmiştir. 3 durumlu (Tristate) çalışan adres barasına sahip olması, kendinden RAM’ i olmaması ve 2 fazlı bir saat sinyaline ihtiyaç duyması hususları dışında 6802 le aynıdır.

6502, 1975 yılında bir grup 6800 tasarımcısı tarafından tasarımlanmış ve 5802’ye çok benzer bir işlemcidir. Kendinden bir saat devresi olup RAM’ i yoktur. En çok göze çarpan farkı adresleme durumları ve program!ama esnekliğidir. MOS teknolojisi ile tasarımlanmıştır.

6809, 6800’ün oldukça geliştirilmiş bir versiyonu olup MOTOROLA tarafından 1978 yılında dünyaya tanıtılmıştır. Bir adet çarpma ve 16 bitlik veriler için bazı komutları içeren oldukça güçlü ve karmaşık bir komut setine sahiptir. Dahili bir saat devresi vardır, ancak RAM’ i yoktur. 6809E versiyonu, birkaç ek kontrol fonksiyonu içermekte ve harici bir saat devresine ihtiyaç duymaktadır.

6805, MOTOPOLA’ nın tek-yongalı mikrobilgisayarlarının bir ailesidir. 1 veya 4 Kbyte’lık bir program belleği, 64 veya 112 byte’lık PAM, bir saat ve 16 veya 32 1/0 hattını 28 veya 40 bacaklı bir yongada toplamıştır. Güç işleme ve çalışma bakımından 6800’e benzerdir. Program belleği maskeli ROM olduğundan, sabit programlı ve büyük miktarlarda sipariş edilmek zorundadır. Adres ve veri babaları, bacaklara taşınmadığından deneme yapmak için uygun değillerdir.

6801, MOTOR0LA’nın daha ilerlemiş bir mikrobilgisayarıdır. 2 Kbyte’lık maskeli ROM’a ve 31 I/Ohattına sahiptir. ILO hatları adres ve veri hattı olarak programlanabilir ve böylece harici belleklere erişilebilir. 6803, 6801 ‘in ROM’suz versiyonudur. Bu bilgisayarlar ayni komut setini kullandıklarından 6800 ve 6802 ile ayni programları çalıştırabilirler. Çarpma ve l6 bitlik veri işleme gibi komutları da içerirler.(2)

8080′ in 6800’den farkı donanımdan .çok komutlarda ve programlamadadır.

8080, şimdiye kadar anılan tüm mikroişlemcilerden önde olup hızla geniş bir takip kazanmıştır. Komut seti bazı hususlarda 6800den daha güçlü fakat kesinlikle daha az güvenilirdir. Özel bir harici saat yongasına ve 3 adet güç kaynağına (-5 V, +5V ve +12V) gereksinimi vardır.

Z80, 1976’da bir grup 8080 tasarımcısı tarafından tasarımlanmış ve ZILOG tarafından piyasaya sürülmüştür. 8080’in komut setini takip eden ancak ek olarak bazı güçlü komutlar ve çoklu görevlerin kullanımını kolaylaştıran bir çok yeni yazmaç eklenmiştir. Z80 basit bir TTL saat üretecine ve standart +5V güç kaynağına gereksinim duymaktadır.

8085, INTEL’ in 1976’da çıkardığı ve 8080m gelişmiş bir versiyonu olan mikroişlemcidir. Kendinden bir saat devresine sahip olup sadece 5V’luk bir güç kaynağına ihtiyaç duymaktadır. Seri giriş ve çıkış hatları mevcuttur. Veri barası, adres barasının düşük byte’ı ile ortak (multiplex) olarak kullanılmaktadır. Yani bu hatlar aynı bacaklara bağlıdır ve makine dönüşünün ilk kısmında adres bilgisi ve ikinci kısmında veri bilgisi çıkışa verilmektedir. Bellek ve çevre yongaları kullanılacaksa, bunlar ya INTEL’ in multiplex barasına eşdeğer yapıya sahip olmalı yada bir adres tutucu arabirim kullanılmalıdır.

8051, INTEL’ in dahili ROM ve saat devresine ayrıca 1/0 hattına sahip mikro denetim (microcontroller) tüm devresidir. 4KByte’lık bir ROM’a ve 32 1/0 hattına sahiptir. Ayrıca 8O32BASIC adı altında bir de Basic programları çalıştırabilen versiyonu vardır. Kendi üzerinde bir Basic yorumlayıcısı vardır. Program, kısmen Basic ve kısmen de makine dili ile yazılabilir. 8080’ in 6800’ den farkı donanımdan çok komutlarda ve programlamadadır.

8080, şimdiye kadar anılan tüm mikroişlemcilerden önde olup hızla geniş bir takip kazanmıştır. Komut seti bazı hususlarda 6800’den daha güçlü fakat kesinlikle daha az güvenilirdir. Özel bir harici saat yongasına ve 3 adet güç kaynağına (-5V,+5V ve +12V) gereksinimi vardır.(4)

Z80, 1976’da bir grup 8080 tasarımcısı tarafından tasarımlanmış ve ZILOG tarafından piyasaya sürülmüştür. 8080’in komut setini takip eden ancak ek olarak bazı güçlü komut!ar ve çoklu görevlerin kullanımını kolaylaştıran bir çok yeni yazmaç eklenmiştir. Z80 basit bir TTL saat üretecine ve standart +5V güç kaynağına gereksinim duymaktadır.

8085, INTEL’ in 1976da çıkardığı ve 8080m gelişmiş bir versiyonu olan mikroişlemcidir. Kendinden bir saat devresine sahip olup sadece 5V’luk bir güç kaynağına ihtiyaç duymaktadır. Seri giriş ve çıkış hatları mevcuttur. Veri barası, adres barasının düşük byte’ı ile ortak (multiplex) olarak kullanılmaktadır. Yani bu hatlar aynı bacaklara bağlıdır ve makine dönüşünün ilk kısmında adres bilgisi ve ikinci kısmında veri bilgisi çıkışa verilmektedir. Bellek ve çevre yongaları kullanılacaksa bunlar ya INTEL’ in multiplex barasına eşdeğer yapıya sahip olmalı yada bir adres tutucu arabirim kullanılmalıdır.

8051, INTEL’ in dahili ROM ve saat devresine ayrıca I/O hattına sahip mikro denetim (microcontroller) tüm devresidir. 4KByte’lık bir ROM’ a ve 32 1/0 hattına sahiptir. Ayrıca 8O32BASIC adı altında bir de Basic programları çalıştırabilen versiyonu vardır. Kendi üzerinde bir Basic yorumlayıcısı vardır. Program, kısmen Basic ve kısmen de makine dili ile yazılabilir.(4)

2 PIC MİKROİŞLEMCİLER

2.1 PIC MİKROKONTROLÖRLERİNE GİRİŞ

PIC’ in kelime anlamı PERIPHERAL INTERFACE CONTROLLER giriş-çıkış işlemcisidir. İlk olarak 1994 yılında 16 bitlik ve 32 bitlik büyük işlemcilerin , giriş ve çıkışlarındaki yükü azaltmak ve denetlemek amacıyla çok hızlı ve ucuz bir çözüme ihtiyaç duyulduğu için geliştirilmiştir.

2.1.1 PIC MİKROKONTROLERLERİNİN TERCİH SEBEBEPLERİ :

a) Lojik uygulamalarının hızlı olması

b) Fiyatının oldukça ucuz olması

c) 8 bitlik mikrokontroller olması ve bellek ve veri için ayrı yerleşik bus’ ların kullanılması

d) Veri ve belleğe hızlı olarak erişimin sağlanması

e) PIC’ e göre diğer mikrokontrolörlerde veri ve programı taşıyan bir tek bus bulunması, dolayısıyla PIC’ in bu özelliği ile diğer mikrokontrolörlerden iki kat daha hızlı olması.

f) Herhangi bir ek bellek veya giriş/çıkış elemanı gerektirmeden sadece 2 kondansatör ve bir direnç ile çalışabilmeleri.

g) Yüksek frekanslarda çalışabilme özelliği

h) Standby durumunda çok düşük akım çekmesi.

i) İntterrupt kapasitesi ve 14 bit komut işleme hafızası. j) Kod sıkıştırma özelliği ile aynı anda birçok işlem gerçekleştirebilmesi PIC mikrokontrolörleri çeşitli özelliklerine göre PIC16C6X, 16C7X, 16C5X ,16F8X, 16F87X gibi gruplara ayrılırlar.(6)

2.1.2 PIC MİKROKONTROLÖRLERİN KULLANIMI İÇİN GEREKLİ AŞAMALAR

I/O (Giriş / Çıkış) : Mikrokontrolcünün dış dünya ile ilişkisini sağlayan, girdi ve çıktı şeklinde ayarlanabilen bir bağlantı pinidir. I/O çoğunlukla mikrokontrolcünün iletişim kurmasına, kontrol etmesine veya bilgi okumasına izin verir.

Yazılım : Mikrokontrolcünün çalışmasını ve işletilmesini sağlayan bilgidir. Başarılı bir uygulama için yazılım hatasız (bug) olmalıdır. Yazılım C, Pascal veya Assembler gibi çeşitli dillerde veya ikilik(binary) olarak yazılabilir.

Donanım : Mikrokontrolcü, bellek, arabirim bileşenleri, güç kaynakları, sinyal düzenleyici devreler ve bunları çalıştırmak ve arabirim görevini üstlenmek için bu cihazlara bağlanan tüm bileşenlerdir.

Simülatör : PC üzerinde çalışan ve mikrokontrolcünün içindeki işlemleri simüle eden MPSIM gibi bir yazılım paketidir. Hangi olayların ne zaman meydana geldiği biliniyorsa bir simülatör kullanmak tasarımları test etmek için kolay bir yol olacaktır. Öte yandan simülatör, programları tümüyle veya adım adım izleyerek bug’lardan arındırma fırsatı sunar. Şu anda en gelişmiş simülatör programı Microchip firmasının geliştirdiği MPLAB programıdır.

ICE : PIC MASTER olarak da adlandırılır. (In- Circuit Emulator / İç devre takipçisi) PC ve Mikrokontrolcünün yer alacağı soket arasına bağlanmış yararlı bir gereçtir. Bu gereç yazılım, PC de çalışırken devre kartı üzerinde bir mikrokontrolcü gibi davranır. ICE, bir programa girilmesini, mikro içinde neler olduğunu ve dış dünyayla nasıl iletişim kurulduğunun izlenilmesini mümkün kılar.

Programcı : Yazılımın mikrokontrolcü belleğinde programlamasını ve böylece ICE’ nin yardımı olmadan çalışmasını sağlayan bir birimdir. Çoğunlukla seri port ’a (örneğin PICSTART, PROMASTER) bağlanan bu birimler çok çeşitli biçim, ebat ve fiyatlara sahiptir.

Kaynak Dosyası : Hem asembler’ ın hem de tasarımcının anlayabileceği dilde yazılmış bir programdır. Kaynak dosya mikrokontrolör’ ün anlayabilmesi için önceden assemble

edilmiş olmalıdır.

Assembler : Kaynak dosyayı bir nesne dosyaya dönüştüren yazılım paketidir. Hata araştırma bu paketin yerleşik bir özelliğidir. Bu özellik assemble edilme sürecinde hatalar çıktıkça programı bug’lardan arındırırken kullanılır. MPASM, tüm PIC ailesini elinde

tutan Microchip’ in son assemble edicisidir.

Nesne dosyası (object file) : Assembler tarafından üretilen bu dosya; programcı, simülatör veya ICE’ nin anlayabilecekleri ve böylelikle dosyanın işlevlerinin çalışmasını sağlayabilecekleri bir dosyadır. Dosya uzantısı assemble edicinin emirlerine bağlı olarak , .OBJ veya .HEX olur.

2.1.3 PIC MİKROKONTROLÖRLERİNİN ÖZELLİKLERİ

Güvenirlik: PIC komutları bellekte çok az yer kaplarlar. Dolayısıyla bu komutlar 12 veya 14 bitlik bir program bellek sözcüğüne sığarlar. Harward mimarisi teknolojisi kullanılmayan mikrokontrolörler de yazılım programının veri kısmına atlama yaparak bu verilerin komut gibi çalıştırılmasını sağlamaktadır. Bu da büyük hatalara yol açmaktadır. PIC’ ler de bu durum engellenmiştir.

Hız : PIC oldukça hızlı bir mikrokontrolör’ dür. Her bir komut döngüsü 1µsn’ dir. Örneğin 5 milyon komutluk bir programın 20Mhz’ lik bir kristalle işletilmesi yalnız 1sn sürer. Bu süre 386SX33 hızının yaklaşık 2 katıdır. Ayrıca RISC mimarisi işlemcisi olmasının hıza etkisi oldukça büyüktür.

Komut seti : PIC’ in 16C5X ailesinde bir yazılım yapmak için 33 komuta ihtiyaç duyarken 16CXX araçları için bu sayı 35’ tir. PIC tarafından kullanılan komutların hepsi yazmaç (register) temellidir. Komutlar 16C5X ailesinde 12 bit, 16CXX ailesindeyse 14 bit uzunluğundadır. PIC’ te CALL, GOTO ve bit test eden BTFSS ve INCFSZ gibi komutlar dışında diğer komutlar 1 saykıl çeker. Belirtilen komutlar ise 2 saykıl çeker.

Statik İşlem : PIC tamamıyla statik bir işlemcidir. Yani saat durdurulduğunda da tüm yazmaç içeriği korunur. Pratikte bunu tam olarak gerçekleştirebilmek mümkün değildir.

PIC mikrosu programı işletilmediği zaman uyuma (sleep) moduna geçirilerek micronun çok düşük akım çekmesi sağlanır. PIC uyuma moduna geçirildiğinde , saat durur ve

PIC uyuma işleminden önce hangi durumda olduğunu çeşitli bayraklarla ifade eder. (elde bayrağı, 0 (zero) bayrağı … vb.) PIC uyuma modunda 1µA’den küçük değerlerde akım

çeker. (Standby akımı).

Sürme özelliği (Sürücü kapasitesi): PIC yüksek bir çıktı kapasitesine sahiptir. Tek bacaktan 40mA akım çekebilmekte ve entegre toplamı olarak 150mA akım akıtma kapasitesine

sahiptir. Entegrenin 4mHz osilatör frekansında çektiği akım çalışırken 2mA, stand-by durumunda ise 2µA kadardır.

Seçenekler : PIC ailesinde her türlü ihtiyaçların karşılanacağı çeşitli hız, sıcaklık, kılıf, I/O hatları, zamanlama (Timer) fonksiyonları, seri iletişim portları, A/D ve bellek kapasite

seçenekleri bulunur.

Çok yönlülük : PIC çok yönlü bir mikrodur ve ürünün içinde, yer darlığı durumunda birkaç mantık kapısının yerini değiştirmek için düşük maliyetli bir çözüm bulunur.

Güvenlik : PIC endüstride en üstünler arasında yer alan bir kod koruma özelliğine sahiptir. Koruma bitinin programlanmasından itibaren, program belleğinin içeriği, program kodunun yeniden yapılandırılmasına olanak verecek şekilde okunmaz.

Geliştirme: PIC program geliştirme amacıyla programlanabilip tekrar silinebilme özelliğine sahiptir. (EPROM, EEPROM) Aynı zamanda seri üretim amacıyla bir kere programlanabilir (OTP) özelliğine sahiptir.

Liste dosyası : Assembler tarafından yaratılan ve kaynak dosyadaki tüm komutları hexadecimal sistemdeki değerleri ve tasarımcının yazmış olduğu yorumlarıyla birlikte içeren bir dosyadır. Bir programı bug’lar dan arındırırken araştırılacak en yararlı dosya budur. Çünkü bu dosyayı izleyerek yazılımlarda neler olup bittiğini anlama şansı kaynak

dosyasından daha fazladır. Dosya uzantısı .LST dir.

Diğer dosyalar : Hata dosyası ( Error file: uzantısı .ERR) hataların bir listesini içerir ancak bunların kaynağı hakkında hiç bir bilgi vermez. Uzantısı .COD olan dosyalar emülatör

tarafından kullanılırlar.

Bug ‘ lar : Tasarımcının farkında olmadan yaptığı hatalardır. Bu hatalar, basit yazılım hatalarından, yazılım dilinin yanlış kullanımına kadar uzanır. Hataların çoğu derleyici tarafından bulunur ve bir .LST dosyasında görüntülenir. Kalan hataları bulmak ve düzeltmek te geliştiriciye düşer.

2.2 PIC MİKROKONTROLÖRLERİNİN DONANIMSAL İNCELENMESİ

2.2.1 PIC MİKROKONTROLÖRLERİNİN İÇ YAPISI

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image005.gif[/IMG]

CPU bölgesinin kalbi ALU dur. (Aritmetic Logic Unit-Aritmetik mantık birimi) ALU, W (Working-Çalışan) adında bir yazmaç içerir. PIC, diğer mikroişlemcilerden, aritmetik ve mantık işlemleri için bir tek ana yazmaca sahip oluşuyla farklılaşır. W yazmacı 8 bit genişliğindedir ve CPU’da ki herhangi bir veriyi transfer etmek üzere kullanılır. CPU alanında ayrıca iki katagoriye ayırabileceğimiz Veri Yazmaç dosyaları (Data Regıster Files) bulunur. Bu veri yazmaç dosyalarından biri, I/O ve kontrol işlemlerinde kullanılırken, diğeri RAM olarak kullanılır. PIC’ ler de Harward Mimarisi kullanılır. Harward mimarisi mikrokontrolcülerde veri akış miktarını hızlandırmak ve yazılım güvenliğini arttırmak amacıyla kullanılır. Ayrı bus’ ların kullanımıyla veri ve program belleğinde hızlı bir şekilde erişim sağlanır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image006.gif[/IMG]

Şekil 2.2.1: Temel PIC blok diyagramı

PIC mikrokontrolör’ lerini donanımsal olarak incelerken PIC 16F87X üzerinde durarak bu PIC’ i temel alıp donanım incelenecektir. Bellek ve bazı küçük farklılıklar dışında burada anlatılanlar bütün PIC’ ler için geçerlidir. (1)

2.2.2 GENEL TANIMLAMA

PIC 16F87X Serisi yüksek performanslı, CMOS, full-statik, 8 bit mikrodenetleyicidir. Tüm PIC 16/17 mikrodenetleyiciler RISC mimarisini kullanmaktadır.

PIC16F87X mikroları birçok esas özelliklere sahiptir. 14 seviyeli, derin küme ve çoklu iç ve dış kesme kaynaklarına sahiptir. 2 aşamalı komut hattı tüm komutların tek bir saykıl’ la (çevrimle) işlenmesini sağlamaktadır. Yalnızca bazı özel komutlar 2 saykıl çekerler. Bu komutlar dallanma komutlarıdır. PIC16F873/874 microchip’ i 192 bayt ‘lık RAM belleğine, 128 bayt EEPROM belleğine ve 22/33 (PIC 16F873-22/ PIC 16F874-33) I/O pin’ ine sahiptir. Bunun yanı sıra, timer ve sayaç ta mevcuttur. PIC16F87X ailesi dış elemanları azaltacak spesifik özelliklere sahiptir ve böylece maliyet minimuma inmekte, sistemin güvenirliği artmakta, enerji sarfiyatı azalmaktadır. Bunun yanı sıra tüm PIC ler de 4 adet osilatör seçeneği mevcuttur. Bunlarda tek pin li RC osilatör, düşük maliyet çözümünü sağlamakta (4 MHZ) , LP osilatör (Kristal veya seramik rezonatör) , enerji sarfiyatını minimize etmekte (asgari akım) (40 KHZ), XT kristal veya seramik rezonatör osilatörü standart hızlı ve HS kristal veya seramik rezonatörlü osilatör çok yüksek hıza sahiptir (20 MHZ). PIC mikrokontrolörlerinin en büyük özelliği sleep modu özelliğidir.. Bu mod ile PIC işlem yapılmadığı durumlarda uyuma moduna geçerek çok düşük akım çeker. Kullanıcı bir kaç iç ve dış kesmelerle PIC’ i uyuma modundan çıkarabilmektedir. Yüksek güvenilirlikli Watchdog Timer kendi bünyesindeki chip üstü RC osilatörü ile yazılımı kilitlemeye karşı korumaktadır. PIC16F87X EEPROM program belleği , aynı aygıt paketinin orjinali ve üretimi için kullanılmasına olanak vermektedir. Yeniden programlanabilirliği mikroyu uygulamanın sonundan kaldırmadan kodu güncelleştirmeye izin vermektedir. Bu aygıtın kolayca erişilemediği, fakat prototipinin kod güncelleştirmesi gerekli olduğu durumlarda, bir çok uygulamanın geliştirilmesinde

yararlıdır. Bunun yanı sıra bu kodun güncelleştirilmesi diğer ayrı uygulamalarda da yararlıdır.

Aşağıda tablo 1 de PIC16F87X’ ailesinin özellikleri ve şekil 2.2.2 ile şekil 2.2.3’ te de basitleştirilmiş iç yapısı gösterilmektedir. (6)

PIC16F873

PIC16F874

PIC16F876

PIC16F877

Çalışma Frekansı(MHZ)

20

20

20

20

FLASH Program Belleği(14-Bit word)

4K

4K

8K

8K

Veri Hafızası (Byte)

192

192

368

368

EEPROM Veri Belleği (Byte)

128

128

256

256

Kesmeler

13

14

13

14

I/O Portları Sayısı

Port A,B,C

Port A,B,C,D,E

Port A,B,C

Port A,B,C,D,E

10-Bit ADC Modülü

5 Kanal

8Kanal

5Kanal

8 Kanal

Komut Seti

35 Komut

35 Komut

35 Komut

35 Komut

Tablo 1 : PIC16F87X ailesi özellikleri (8)

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image007.gif[/IMG]

Şekil 2.2.3 : PIC 16F874/877 basitleştirilmiş iç yapısı

PIC’ ler yüksek hızlı otomobillerden, motor kontrolü uygulamaları, düşük enerji sarfiyatlı uzaktan çalışan sensörler, elektronik kilitler, güvenlik aygıtları ve akıllı kartlara kadar bir çok uygulamalarda kullanılırlar. EEPROM teknolojisi uygulama programların

(Transmitter kodları, motor hızları, alıcı frekansları, güvenlik kodları vb.) uygulamasını son derece hızlı ve uygun hale getirmektedir. Küçük boyutlarıyla bu mikrodenetleyiciler alan sınırlaması bulunan uygulamalarda kusursuzdur. Düşük maliyet, düşük enerji sarfiyatı, yüksek performans, kullanım kolaylığı ve I/O esnekliği daha önce kullanılması hiç düşünülmeyen alanlarda kullanılmasını sağlamaktadır. (Bunlar ; timer fonksiyonları, seri kominikasyon, ADC, PWM fonksiyonları ve birlikte işlemci uygulamaları)

Seri sistem içi programlama özelliği (iki pinin üzerinden) ürünün tamamen toplanması ve test edilmesinden sonra ürünün alıştırılmasının esnekliğine olanak vermektedir. Bu özellik sayesinde ürün serileştirilebilmekte ve veriler saklanabilmektedir. (6)

2.2.3 ELEKTRİKLE SİLİNEBİLEN MİKROKONTROLÖRLER

Bu mikrolar, programının silinip yeniden yazılabilme özelliğine sahiptir ve oldukça düşük maliyetli plastik ambalajlar halinde bulunmaktadır. Aynı zamanda bu tip mikroların üretimi kadar prototipinin geliştirilmesi ve pilot programlar için kullanılmasına olanak sağlamaktadır. Bunun daha ötesindeki avantajlarından biri, bunların devre içi veya Microchip’s PICSTARTplus veya PROMATE II programlayıcıları tarafından silinebilmesi ve yeniden programlanabilmesidir.

2.2.4BELLEK ORGANİZASYONU

PIC16F87X` de bellek bloğu mevcuttur. Bunlar program belleği,veri belleği ve bunları ayıran veri hattıdır. Her bir bellek kendi taşıyıcısına sahiptir; böylece her bir bloğa erişim aynı osilatör süreci boyunca meydana gelebilmektedir. Bunun ötesinde, veri belleği genel amaçlı RAM ve özel fonksiyon kayıtları (SFR) olmak üzere ikiye bölünür. . SFR`ler her bir bireysel özelleşmiş modülü ele alan bölümde açıklanan özel modülleri kontrol etmek için kullanılmaktadır. Veri belleği EEPROM veri belleğini de içermektedir. Bu bellek, direkt veri belleğine planlanmamış, fakat indirekt olarak planlanmıştır; ve indirekt adres göstergeleri okumak/yazmak için EEPROM belleğinin adresini belirlemektedir.

2.2.5 PROGRAM BELLEK ORGANİZASYONU

PIC 16F87X 13 Bit program sayacına ve 8Kx14 adresleme kapasitesine sahiptir.

PIC16F876/877 aygıtları 8Kx14 ve PIC16F873/874 aygıtları 4Kx14 FLASH program belleğine sahiptir. Reset vektörü 0000h ve kesme vektörü 0004h adresindedir. Şekil 2.2.4’te PIC16F876/877, şekil 2.2.5’te ise PIC16F873/874 program bellek haritaları görülmektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image009.gif[/IMG]

Şekil 2.2.4 : PIC16F876/877 Program Şekil 2.2.5 : PIC16F83/874 Program

Bellek Haritası Bellek Haritası

2.2.6 VERİ BELLEK ORGANİZASYONU

Veri belleği genel amaçlı yazmaçlar ve özel işlev yazmaçları (SFR) olmak üzere ikiye ayrılır. RP0 ve RP1 bitleri sıra seçim bitleridir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image010.gif[/IMG]

= 00 Bank0

= 01 Bank1

= 10 Bank2

= 11 Bank3

Her bir banka 7Fh’ ye kadar (128 bayt) uzanır. Her bankanın alt kısımları özel işlev yazmaçları için ayrılır. Üstteki özel işlev yazmaçları ise statik RAM olarak uygulanan yazmaçlardır. Bütün bankalarda özel işlev yazmaçları vardır. Özel işlev yazmaçlarındaki yüksek kullanım bir bankadan kod indirgemesi ve hızlı erişim için başka bankada gösterilebilir.

2.2.7 ÖZEL İŞLEV YAZMAÇLARI

Özel işlev yazmaçları, aygıtın istenen işlemi kontrol etmesi için CPU ve çevresel modüller tarafından kullanılan yazmaçlardır. Bu yazmaçlar statik yazmaç olarak kullanılırlar.(6)

2.2.8 GİRİŞ/ÇIKIŞ PORTLARI (I/O PORTLARI)

I/O Portları için bazı pinler aygıtta çevresel işlemlerde kullanılmak üzere yardımcı işlevlerle arttırılırlar. Genelde çevre birimleri etkinleştirildiğinde genel amaçlı giriş/çıkış pini kullanılmaz.

2.2.8.1 PORTA VE TRISA YAZMACI

PORTA 6 bit yönlendirilebilir porttur. Bu portu yönlendiren yazmaç ise TRISA yazmacıdır. TRISA Kaydındaki herhangi bir bit 1 ise buna uygun çıkış sürücüsü yüksek direnç moduna getirilecektir. TRISA Kaydındaki herhangi bir bitin 0 olması durumunda ise çıkış mandalı seçilen pinin üzerine getirilir. Analog giriş kullanıldığında TRISA yazmacı RA pininin yönünü kontrol eder.

şekil 2.2.6 A portunun iç yapısını göstermektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image011.gif[/IMG]

Şekil 2.2.6 : PORT A Blok Diyagramı

Örnek 1: A Portunun Kurulması

BCF STATUS, RP0 ;

CLRF PORTA ; A portunun kurulumu için

; çıkış veri tutucuları

; temizleniyor.

BSF STATUS, RP0 ; Bank 1 seçildi.

MOVLW 0xCF ; Veri yönlendirmek

; kullanılan değer

; ayarlanıyor.

MOVWF TRISA ; Giriş için RA<3:0>

; Çıkış için RA<5:4>

; TRISA<7:6>

; daima o iken oku

2.2.8.2 PORTB VE TRISB YAZMACI

PORTB 8 bit yönlendirilebilir porttur. Bu portu yönlendiren yazmaç ise TRISB yazmacıdır. TRISB Kaydındaki herhangi bir bit 1 ise buna uygun çıkış sürücüsü yüksek direnç moduna getirilecektir. TRISB Kaydındaki herhangi bir bitin 0 olması durumunda ise çıkış mandalı seçilen pinin üzerine getirilir. Analog giriş kullanıldığında TRISB yazmacı RB pininin yönünü kontrol eder. (1)

Her bir PORTB pini iç direnç düşürücü engellere sahiptir. Tekli kontrol biti tüm engelleri devreye sokabilir. Bu RBPU(OPTION – REG<7) bitinin silinmesiyle yapılır. Düşürücü engeller, port pini çıkış olarak konfigüre edildiği zaman otomatik olarak kapanmaktadır. Engeller güç reset üzerinde etkinsizleştirilmektedir. Dört PORTB pini, RB7: RB4 değişim özelliklerinde kesmelere sahiptir. Yalnızca giriş olarak konfigüre edilen pinler kesmenin meydana gelmesine sebep olabilirler. (yani, herhangi bir çıkış olarak şekillendirilen RB7:RB4 pini değişim ilişkisi üzerindeki kesmeden hariç tutulmuştur. ) Giriş modundaki pinlerin değeri PORTB` nin önceki okunmasındaki eski değeri ile karşılaştırılır.

Pinlerin “uyuşmayan” kısımları RB port değişim kesmesini üretmek için birlikte OR’lanır.

Şekil 2.2.7 ve Şekil 2.2.8 B portunun iç yapısını göstermektedir.(6)

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image012.gif[/IMG]

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image014.gif[/IMG]

Şekil 2.2.7:RB3:RB0 Pinleri Blok Diyagramı Şekil 2.2.8:RB7:RB4 Pinleri Blok Diyagram

Örnek 2 : B Portunun Kurulması

BCF STATUS, RP0 ;

CLRF PORTB ; B portunun kurulumu için

; çıkış veri tutucuları

; temizleniyor.

BSF STATUS, RP0 ; Bank 1 seçildi.

MOVLW 0xCF ; Veri yönlendirmek

; kullanılan değer

; ayarlanıyor.

MOVWF TRISB ; Giriş için RB<3:0>

; Çıkış için RB<5:4>

; TRISB<7:6>

; daima o iken oku

2.2.8.3 PORTC VE TRISC YAZMACI

PORTC 8 bit yönlendirilebilir porttur. Bu portu yönlendiren yazmaç ise TRISC yazmacıdır. TRISC Kaydındaki herhangi bir bit 1 ise buna uygun çıkış sürücüsü yüksek direnç moduna getirilecektir. TRISC Kaydındaki herhangi bir bitin 0 olması durumunda ise çıkış mandalı seçilen pinin üzerine getirilir. Analog giriş kullanıldığında TRISC yazmacı RC pininin yönünü kontrol eder. Şekil 2.2.9 C portunun iç yapısını göstermektedir

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image016.gif[/IMG]

Şekil 2.2.9: Port C Blok Diyagramı

Örnek 3 : C Portunun Kurulması

BCF STATUS, RP0 ;

CLRF PORTC ; C portunun kurulumu için

; çıkış veri tutucuları

; temizleniyor.

BSF STATUS, RP0 ; Bank 1 seçildi.

MOVLW 0xCF ; Veri yönlendirmek

; kullanılan değer

; ayarlanıyor.

MOVWF TRISC ; Giriş için RC<3:0>

; Çıkış için RC<5:4>

; TRISC<7:6>

; daima o iken oku

2.2.8.4 PORTD VE TRISD YAZMACI

Bu bölüm 28 pinli aygıtlarda yoktur. PORTD 8 bit Schmitt trigger tampon girişli porttur.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image017.gif[/IMG]

Bu port PSPMODE (TRISD) denetim biti tarafından kurulur. Giriş tamponu TTL tampondur. Şekil 2.2.10 da D portunun blok diyagramı görülmektedir.

Şekil 2.2.10: D Portu I/O Blok Diyagramı

2.2.8.5PORTE VE TRISE YAZMACI

Bu bölüm 28 pinli aygıtlarda yoktur Bu port RE0/RD/AN5, RE1/WR/AN6 ve RE2/CS/AN7 olmak üzere 3 adet pine sahiptir. Giriş veya çıkış portu olarak ayarlanabilir. PORTE Kontrolu TRISE tarafından yapılır. PSPMODE(TRISE<4>) denetim biti tarafından ayarlanır. Şekil 2.2.11 de E portu blok diyagramı görülmektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image018.gif[/IMG]

Şekil 2.2.11 : E Portu I/O Blok Diyagramı

2.2.9 VERİ EEPROM VE FLASH PROGRAM HAFIZASI

Veri EEPROM ve FLASH proram hafızası normal işlem süresinde okunabilme ve yazılabilme özelliğine sahiptir. Veri belleği, kaydedici dosyaya doğrudan planlanmamıştır. Bunun yerine bu bellek, özel fonksiyon kaydı üzerinden dolaylı olarak adreslenmiştir. Burada bu belleği okuyan ve yazan 6 özel kaydedici mevcuttur.

·EECON1

·EECON2

·EEDATA

·EEDATH

·EEADR

·EEADRH

EEPROM veri belleği okuma ve yazmaya izin verir. EEDATA yazma/okuma için 8 bitlik veri tutar ve EEADR erişilen EEPROM adreslerini saklar. EEDATH ve EEADRH kaydedicileri veri EEPROM’ u kullanmak için erişemezler. Bu aygıtlar OH ile FFH genişliğindeki adresli EEPROM belleğinin 256 byte’ ına sahiptir. EEPROM veri belleği yüksek silme/yazma süreçlerine oranlanmıştır. Yazma süresi yonga (chip) zamanlayıcısı tarafından denetlenmektedir. Yazma süresi chipten chipe olduğu gibi sıcaklık ve gerilimlede değişmektedir. Program hafızası kelime okuma ve yazmasına izin verir. Byte veya word verisi otomatik olarak silinir ve yeni veri yazılır. Program hafızası arabirimi bloklandığı zaman, EEDATH : EEDATA kaydedicileri oku/yaz için 14 bit veriyi 2 byte word halinde tutar. EEADRH ve EEADR kaydedicileri EEPROM’da 13 bitlik 2 byte word adresini tutar. Bu aygıtlar OH ile 3FFFh arasındaki adreste 8K word program EEPROM’una sahiptir. Program hafızasına yazılan değer bir talimat olmayı gerektirmez. Bu yüzden kalibrasyon parametreleri, seri numaraları ASCII kodunda depolanabilir.(6)

2.2.9.1 EEADR

EEADR kaydı EEPROM verisinin maksimum 256 byte’ını veya FLASH’ın maksimum 8K Word’ünü adresleyebilir. Program adres değeri seçilirken EEADRH kaydedicisi adresin MSByte’ını yazar, EEADR kaydedicisi ise LSByte’ını yazar.(6)

2.2.9.2EECON1 VE EECON2 YAZMAÇLARI

EECON1 belleğe ulaşmak için kontrol kaydedicisidir. EECON2 fiziksel kaydedici değildir. EECON2 yalnızca bellekteki yazı dizisini okumak için kullanılır. Eğer erişim, program veya veri belleğine ulaşma olacaksa buna EEPGD denetim biti karar verir. Veri belleği temizlendiğinde, sonradan yapılan işlemler veri belleğine işlenirler. Bellek ayarlandığında ise yine sonradan yapılan işlemler belleğe işlenirler. RD ve WR kontrol bitleri sırasıyla oku-yaz işlemlerini başlatır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image020.gif[/IMG]

Şekil 2.2.12: EECON1 Yamacı (Adres 18Ch)

2.2.9.3 FLASH PROGRAM BELLEĞİNİN OKUNMASI

Program belleğinin yeri EEADR ve EEADRH kaydedicilere adresin 2 byte’ı yazılarak okunabilir. [ EEPGD (EECON1<7>) ve RD (EECON1<0>) kontrol bitleri ayarlandığında] Okuma kontrol biti bir kez ayarlanıp mikrodenetleyici veriyi okumak için komut çevremini kullanacaktır.

Örnek 4: FLASH Program okuma

BSF STATUS, RP1 ;

BCF STATUS, RP0 ; Bank 2

MOVLW ADDRH ;

MOVWF EEADRH ; MSByte Program adresini oku

MOVLW ADDRL ;

MOVWF EEADR ; LSByte Program adresini oku

BSF STATUS, RP0 ; Bank 3

BSF EECON1, EEPGD ; EEPROM Program belleğini

BSF EECON1, RD ; oku

NOP ; Burada herhangi bir komut olmadığı içim

NOP ; işlem yapılmaz ve döngü için zaman ; harcanmaz

BCF STATUS, RP0 ; Bank 2

2.2.9.4 FLASH PROGRAM BELLEĞİNİN YAZILMASI

WRT Kurulum biti ayarlanır ise FLASH program belleği sadece yazılabilir duruma getirilir. FLASH Belleğe yazma yeri, adresin ilk iki byte’ı EEADR ve EEADRH kaydedicilerine yazılarak ve EEPGD/RD kontrol bitleri 1 yapılarak ilk iki byte EEDATA ve EEDATH kaydedicilerine yazılarak tespit edilir. Program hafızası yazmak için örnek 5 takip edilebilir.(6)

Örnek 5: FLASH Program yazma

BSF STATUS, RP1 ;

BCF STATUS, RP0 ; Bank 2

MOVLW ADDRH ;

MOVWF EEADRH ; MSByte Program adresi oku

MOVLW ADDRL ;

MOVWF EEADR ; LSByte Program adresi oku

MOVLW DATAH ;

MOVWF EEDATH ; MS Program bellek değerini yaz

MOVLW DATAL ;

MOVWF EEDATA ; LS Program bellek değerini yaz

BSF STATUS, RP0 ; Bank 3

BSF EECON1, EEPGD ; PROGRAM bellek noktası

BSF EECON1, WREN ; Yazım etkin

BCF INTCON, GIE ; Komutlar etkin değil

MOVLW 55h ;

MOVWF EECON2 ; 55h yaz

MOVLW AAh ;

MOVWF EECON2 ; AAh yaz

BSF EECON1, WR ; WR bitini yazmaya başlamak için ayarla

NOP ;işlem yok

NOP ;işlem yok

BSF INTCON, GIE ; Komutlar aktif

BCF EECON1, WREN ; Yazma aktif değil

2.2.9.5 YAZIM DOĞRULANMASI

EEPROM verisine yazılan değerlerin yazılması istenen değerlerle doğrulanması gerekmektedir. Bu EEPROM birirnin spesifikasyon limitine yakın uygulamalarda kullanılmalıdır. Toplam kaldırma diski , uygunluk (rahatlık) derecesini belirlemeye yardımcı olacaktır. Genel olarak EEPROM yazım başarısızlığı ”1” olarak yazılan,

fakat geriye “0” olarak okunan bitten kaynaklanmaktadır.

Örnek 6 : Yazım doğrulanması:

BCF STATUS, RP0 ; Bank 0

; ; Herhangi kod buraya gidebilir

MOVF EEDATA, W ; Bank 0 da olmalıdır.

BSF STATUS, RP0 ; Bank1

READ

BSF EECON1, RD ; Evet yazılan değeri oku

BCF STATUS, RP0 ; Bank0

;

; (Wreg) yazılan ve(EEDATA) okunan değerler aynımı?

;

SUBWF EEDATA, W

2.2.9.6 TAKLİT YAZILIMLARA KARŞI KORUMA

Şöyle durumlar olabilir ki , aygıt EEPROM veri belleğine yazmak istemeyebilir. Taklit yazılımlara karşı korunmak için, değişik mekanizmalar monte edilmiş, kurulmuştur. Yüksek güçte WREN temizlenir. Bunun yanı sıra , yüksek güç timer’ i (72 msn süreli) EEPROM yazımını önler. Yazılımı başlatan ardışık ve WREN biti ikisi birlikte ‘Brown-Out’,güç arızası veya yazılım aksamasında tesadüfi yazılımları

önlemeye devam eder.

2.2.9.7 KOD KORUMA SÜRESİNCE EEPROM VERİ İŞLEMİ

Microişlemci, kod korumalı durumdayken düzene sokulan verileri okuyabilir ve EEPROM verisine yazabilir. ROM aygıtlarında iki koruma biti mevcuttur. Birisi ROM program belleği diğeri ise EEPROM veri belleği içindir.

2.2.10 ZAMANLAMA 0 (TIMER0) MODÜLÜ VE TMR0 KAYDI

Timer0 modül, timer/sayaç aşağıdaki özelliklere sahiptir.

·8 bitlik timer/sayaç

·Okunabilir ve yazılabilir

·8 bitlik programlanabilir prescaler.

·İçten veya dıştan saat ayarı

·FFh` tan 00h` ye taşma üzeri kesme

·Dış saatin sınır seçimi

Timer modu, TOCS bitinin (OPTION<5>) temizlenmesiyle seçilir. Timer modunda Timer0 modülü her bir komut sürecini uzatır. Eğer TMR0 kaydı yazılıysa, uzama takip eden 2 süreci engeller. Kullanıcı ayarlanan değeri TMR0 kaydına yazarak, bunun etrafından çalışabilir. Sayaç modu TOCS bitinin (OPTION<5>) ayarlanmasıyla seçilir.

Bu modda, TMR0, RA4/TOCK1 pininin sınırlarının herbir artışında ya da düşüşünde artacaktır. Genişleyen sınır, TO kaynak sınır seçim biti tarafından, TOSE (OPTION<4>) tarafından belirlenmektedir. TOSE bitinin temizlenmesi artan sınırları seçecektir.

Prescaler, Timer0 modülü ile Watchdog Timer arasında paylaşmaktadır. Prescaler ataması, yazılımda PSA biti kontrolü tarafından denetlenmektedir. (OPTION<3>) PSA

bitinin temizlenmesi, prescaler’ ı Timer0 modülüne atayacaktır. Prescaler okunabilir veya yazılabilir değildir. Prescaler Timer0 modülüne atandığında prescaler değeri

(1:2,1:4…;1:256)yazılım tarafından seçilebilirdir. (1)

2.2.10.1 TMR0 KESMESİ

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image021.gif[/IMG]

Şekil 2.2.13 :TMR0 blok diyagramı

TMR0 kesmesi, TMR0 kaydı FFH`dan 00h`ye akışında üretilmektedir. Bu fazla akım TOIF bitini ( INTCON<2>) kurar (ayarlar). Kesme, aktif TOIE bitinin (INTCON<5>) temizlenmesi ile gizlenebilir. (INTCON<5>) TOIF biti, Timer0 modülü tarafından, bu kesmenin yeniden aktifleştirilmesinden önce yazılımdan silinmelidir. TMR0 kesmesi (şek.2.2.15) işlemciyi SLEEP` ten çıkaramaz, çünkü, SLEEP boyunca timer kapalıdır.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image022.gif[/IMG]

Şekil 2.2.14 : TMR0 zamanlaması: Prescaler’ siz içten clock

2.2.10.2 TMR0’ IN DIŞTAN SAAT İLE KULLANIMI

Dıştan saat girişleri TMR0 için kullanıldığında, bazı ön şartların gerçekleştirilmesi gerekir. Dıştan saat gereksinimi , içten faz saati senkronizasyonundan kaynaklanmaktadır. Bunun yanısıra, TMR0 kaydının senkronize edilmesinden sonra, fiili artmada gecikme mevcuttur.

2.2.10.2.1 Dıştan Saat Senkronizasyonu

Hiç bir prescaler kullanılmadığı taktirde , dıştan saat girişi prescaler çıkışındaki gibidir. RA4/TOCKI pininin içten faz saati ile senkronize edilmesi iç faz saatlerinin Q2 ve Q4 süreçlerindeki prescaler çıkışını örneklemek yoluyla yerine getirilir. (Şekil 2.2.13) .

Bunun için , TOCKI’ nin düşük değerinin en azından 2TOSC (artı ufak RC gecikmesi) olması gerekir. Prescaler kullanıldığında, dış saat girişi asenkron sayıcı tipi prescaler’ a bölünür ve böylece prescaler çıkışı simetrik olur. Dış saatin örnekleme gereksinmelerini karşılamak için sayaç(counter) dikkate alınmalıdır. Böylece prescaler değerine bölünen en

azından 4 TOSC peryot uzunluğuna sahip olmalıdır. (1)

2.2.10.2.2 TMR0 Gecikme Uzatılması

Prescaler çıkışı , iç saat ile senkronize edildiği için, dış saat sınırlarının meydana gelmesindeki zamandan TMR0 modülünün fiili olarak uzatılması zamanına kadar küçük bir gecikme vardır. Şekil 2.2.15 dış saat sınırından Timer uzamasına kadar gecikmeyi göstermektedir.

2.2.10.3 PRESCALER( BÖLÜCÜ)

8 Bitlik sayaç Timer0 modülünde veya Watchdog timer’ında bulunur. Prescaler dışarıdan verilen sinyali 256 ya kadar bölmeye yarar. Timer0 modülü ile Watchdog timer’ı arasında karşılıklı istisna tutulan yalnızca bir tek prescaler mevcuttur. Böylece Timer0 modülüne prescaler ataması, watchdog timer’ın prescaleri olmadığı anlamına gelmektedir. PSA ve PS2 : PSO bitleri (option <3:0>) prescaler atamasını ve prescaler oranını belirlemektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image023.gif[/IMG]

Şekil 2.2.15 : Dış saatli TIMER0 zamanlayıcısı

Timer0 modülüne yazılan bütün komutlar, timer0 modülüne atandığında prescaler’i ölçecektir. WDT ye atandığında , CLRWDT komutu Watchdog Timer boyunca prescaler’ i temizleyecektir. Prescaler yazılabilir veya okunabilir değildir.

2.2.11.1 ZAMANLAYICI 1 (TIMER1) MODÜLÜ

Timer1 modül: Timer/sayaç aşağıdaki özelliklere sahiptir.

1-16 bit timer/sayaç

2-Okunabilir ve yazılabilir.

3-İçten ve dıştan saat seçimi

4-FFFFh’den 000h’a taşma üzeri kesme

5-CCP modülünden resetleme

Şekil 2.2.16’da Timer1’in aktif/pasif, ayarlama/sıfırlama işlemleri gösterilmektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image025.gif[/IMG]

Şekil 2.2.16: TIMER1 Blok diyagramı

2.2.11.2 ZAMANLAYICI 1 (TIMER1) İŞLEMLERİ

Timer1 aşağıdaki modlardan birini işletebilir.

·Zamanlayıcı olarak

·Senkronize sayacı olarak

·Asenkronize sayacı olarak

TMR1CS (T1CON<1>) biti bu modlardan hangisinin çalıştırılacağına karar verir.

Zamanlayıcı modunda Timer1 her komut çevrimi artışları, sayaç modunda her harici saat girişi yükselmesini belirler. Timer1 osilatör aktifken RC1/T10SI ve RC0/T10S0/T1CKI pinleri giriş olurlar. TRISC<1:0> değeri ihmal edilir. Timer1 aynı zamanda dahili reset girişine sahiptir. Bu reset CCP modül üretmelidir.

2.2.12ZAMANLAYICI2 (TIMER2) MODÜLÜ

Timer2 modül aşağıdaki özelliklere sahiptir.

·8 bit zamanlayıcı (TMR2 kaydedici)

·8 bit peryot kaydedici (PR2)

·Okunabilir ve yazılabilir

·Yazılım programlanabilir prescaler

·TMR2, PR2 eşlemesinde kesme

·Saat kaymasını üretmek için TMR2 çıkışının seçimli kullanımı SSP modülü

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image027.gif[/IMG]

Şekil 2.2.17: TIMER2 Blok diyagramı

Timer2 şekil 2.2.18’de gösterilen denetim yazmacına sahiptir. Timer2 güç tüketimini en aza indirgemek için TMR0 denetim bitini temizleyerek kapanabilir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image029.gif[/IMG]

Şekil 2.2.18: T2CON:TIMER2 Kontrol yazmacı (Adres 12h)

2.2.12.1 ZAMANLAYICI2 (TIMER2) İŞLEMLERİ

Timer2, CCP modülünün PWM modu için PWM zaman tabanı olarak kullanılabilir.

Giriş saati (Fosc/4) ‘in prescale seçeneğine sahip olur. Aşağıdaki durumlardan herhangi biri gerçekleştiğinde prescaler ve postcaler sayaçları temizlenirler.

·TMR2 kaydedicisine yazıldığında

·T2CON kaydedicisine yazıldığında

·Herhangi bir aygıt hazır olduğunda

T2CON yazıldığında, TMR2 temizlenemez.

2.2.13 USART ADRESLENEBİLİR EVRENSEL SENKRONİZE ASENKRONİZE ALICI VERİCİLERİ

Bu modül iki seri I/O modülleri olabilen bir modüldür. Aynı zamanda seri kominikasyon yüzleştiricisi, SCI olarak ta bilinir. USART aynı zamanda tam dubleks asenkronize sistemi ile de konfigüre edilebilir. Bu sistem araçları CRT terminalleri , şahsi bilgisayarlar ile bağlantı kurulabilir. Yada yar dubleks senkronize olarak ta diğer araçlarla kominike edilebilir. Örneğin ; A/D veya D/A ve seri olarak EEPROM vs. USART aşağıdakiler gibi konfigüre edilebilir.(6)

Asenk ( Tam Duble )

Senkronize Master ( Yarı Duble )

Senkronize Yardımcı ( Yarı Duble)

Bit spen (RCSTA <7>) ve bit TRISC<7.6>, RC6/TX/CK olarak konfigüre edilmelidir ve RC7/RX/DT olarak Ulusal Senkronize ve Asenkronize alıcı vericisidir.

USART modülü aynı zamanda multi-prosesör bağlantı kapasitesine 9-bit address detection kullanılarak ulaşılabilir.

2.2.13.1 USART BAUD ORAN JENAROTÖRÜ (BRG)

Bu cihaz USART’ ın Asenkronize ve Senkronize modlarını destekler. Bu 8 bit’lik bir jeneratördür. Bu cihaz 8 bit’lik serbest zamanlı bir kontrol ile kontrol edilir. Asenk mod’da bit BRGH (TXSTA<2>) olarak kontrol edilir. Senkronize mod’da ise bit BRGH istenmez. Verilen ve istenilen baud rate ve Fosc SPBRG (register) isteği ile aşağıdaki formül ile ayarlanabilir ve hesaplanabilir.(6)

İstenen Baud oranı = Fosc / (64 (X + 1))

9600 = 16000000 /(64 (X + 1))

X = ë25.042û = 25

Hesaplanan Baud oranı=16000000 / (64 (25 + 1))

= 9615

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image030.gif[/IMG] Hata = (Hesaplanan Baud Oranı-İstenen Baud Oranı )

İstenen Baud Oranı

= (9615 – 9600) / 9600

= 0.16%

2.2.13.2 USART ASENKRONİZE DURUMU

Dönüşümsüzden sıfıra formatında kullanılır. En çok kullanılan şekli 8 bit’liktir. Bu çip üzerinde osilatörden standart baud ‘un frekans oranına göre iletilir. USART gönderici ve alıcının birincisi LSB’dir. USART iletici ve kaydedici fonksiyonel olarak bağımsız fakat aynı data formatı şeklinde ve baud oranında kullanılır. Bu baud oranının jeneratörü üretim şekli saat gibi çalışır veya x16 yada x64 lük bitlerin oranı şeklinde üretim yapar ve BRGH üzerinde destek görür. (TXSTAXZ) Bu oranlar hiçbir zaman hardware tarafından desteklenmez fakat sistem içerisinde 9 data bitlik halde sistemde kullanılır. Asenkronize mod’da durdurmak için uyku moduna sokulur. Asenkronize mod SYNC bitinin safi haliyle seçilir (TXSTA <4>) USART Asenkronize modun önemli parçaları aşağıdadır.

1.Baud oran jeneratörü

2.Sade dolaştırıcı

3.Asenkronize kaydedici

4.Asenkronize iletici

2.2.13.3 USART ASENKRONİZE İLETİCİ

Bu USART iletme bloğu aşağıda da görüldüğü gibidir. Bu ileticinin kalbi TSR’dir. Bu TSR bilgileri okuma/yazma işlemleri bufer tarafından iletilir (TXREG). Bu TXREG kaydedici ona hafızaya bilgi ile beraber yüklenir. TSR kaydedici hiçbir zaman sabit yüklenici gibi durmadan yüklenilmez. En yakın zamanda bitiletimiTSR yüklenmesiyle yeni bilgiler TXREG’in kaydı olması sonrasında yüklenir. ( Fakat mümkünse) TXREG Kaydedici bilgi transferinde TSR Kaydediciden, TXREG boşalmış ise büküme tamamlanır ve TXIF (PIR1<4>) müsaadesinde olur. Bu iletim kullanılabilir/kullanılamaz hali yüklenme/boşalım TXIE (PIE1<4>) bit kullanım haliyle oluşur. Bu hiçbir zaman ana hafızadan silinemez ve TXIE bitinde ana şematik hal alır. Bu hal dondurulacak veya silinecek olursa veya silinirse sadece yeni bilgiler TXREG kaydedicisine yüklenir. Diğer bit TRMT (TXSTA<1>) TSR kaydedici içerinde görülür ve bu hal TXIF içerisinde mevcuttur. TRMT bit’i küme halinde iken TSR kaydedicinin boşalabilmesi için küme halinde olması gerekir. Bu sayısal iletim bağlı olduğu bit ile olmaz elbette kullanıcı bu iletimi eğer TSR kaydedici boş ise o şekli seçer.

Not 1: TSR kaydedici haritalanamaz bilgiyi hafızada kaydederken kullanıcı olaya hakim

değildir.

Not 2: FLAG Biti TXIF kümelenmesi TXEN’in kümelenmesi haliyle kümeleşir.

Şekil 2.2.19: USART İletim Blok Diyagramı[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image031.gif[/IMG]

Asenkronize ileticinin kümelenmesi aşağıda adım adım açıklanmıştır.

1.SPBRG kaydedicisi baud rate’in hareketi dahilinde gözükür. Eğer çok yüksek hızlarda baud rate işlem haline geçerse buda BRGH bit’inin kümelenmesini oluşturur.

2.Kullanılabilir asenkronize seri bağlantılarının temizlenebilmesi için SYNC bitinin temizlenmesi ve SPEN bitinin kümelenmesi gerekir.

3.Eğer bu iletimin tamamlanması oluşmuş ise TXIE bitinin kümelenmesi gerekir.

4.Eğer 9 bit’lik çevirici kullanılıyorsa, kümede TX9 bitinin iletimi ile çalışır.

5.Bu çeviricinin kullanılabilmesi içinTXEN bitinin kümelenmesi ve de TXIF bitinin kümde yer alması gerekmektedir.

6.Eğer 9 bitlik çeviri seçilmiş ise TX)D bitine 9bitlik yüklenmelidir.

7.TXREG kaydedicisine bilgi yüklenir ve iletim başlar.

2.2.13.4 USART SENKRONİZE KAYDEDİCİ

Bilgi kaydedici RC7/RX/DT pin’i ve dönüşüm bilgi koruması bloğu üzerinde olur. Bu bilgi koruma bloğu kesinlikle yüksek hız sırasında kontrolü x16 kere baud rate’de olur. Ana kaydedici seri sıralı müdahaleleri de bit oranlarında yada FOSC’de olur. USART şekli özel provizyonu multi prosesörle iletim aracıdır. Ne zaman RX9 bitinde RCSTA kaydedicisinde kümeyi oluşturursa 9 bit kayıt olur ve 9 bit yerini RSTA kaydedicisinde RX9D biti statüsünde mevcuttur. Programın bağlanabilmesi için bit kaydedicinin durdurulması gerekir. Seri bağlantının aktif olabilmesi için RX9D bitinin bire eşit olması gerekmektedir. Bu çeşitlenmelerde kümelenmeler ADDEN bitinin RLSTA<3>’ün RCSTA kaydedicisinin içinde olması gerekmektedir. Bu çeşitler multi presöser sistemlerde aşağıda görüldüğü gibi kullanılır. Ana işlemci blok bilgileri birçok yardımcı bilgi akışı şeklinde olur. Bunun ilk olarak gönderilmesi gereken ilk adres hedef yardımcıyı açıklar. Adrese baytının açıklayıcı RX9D bitinde görülür. Buna göre bilgi verir. Eğer ABDEN bit kümede RCSTA kaydedicisinde kümelenirse, tüm bilgilerin byte’ları iptal olunur. Ne olursa olsun eğer 9 uncu kaydedici biti 1’e eşitse kaydedici byte adresi 1’e eşit olunur ve RSR kaydedicisi Buffer kaydedicisine kaydolunur. Bu işaretler sadece adreslerden iletilir ve kaydedici kontrol edilir ki adrese ulaşsın. Bu ulaşım, ADDEN bit ve hazırlık ana kontrol byteların dışardanda de temizlenir Ne zaman ADDEN kümede yer alır bütün bilgiler silinir ve bu durumda stop biti izlenir ve bilgiler Buffer kaydedicine atılır ve oralarda gözükmez. Eğer diğer byte sırada değilse RSR kaydedicisinde görülür ve takip eden bilgiler kaybolur. ADDEN biti efekt hal olunduğunda kaydedici 9 bitlik asenkronize moduna ayarlanır. Kaydedici blok şeması şekil 22’de görüldüğü gibidir. Asenkronize modu seçildiğinde CREN biti (RCSTA <4> karşılanır.(6)

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image032.gif[/IMG]

Şekil 2.2.20: USART Alıcı Blok Diyagramı

2.2.13.5 9-BİT MOD’DA ADRES DENETİMİN AYARI

Çalışma şekli aşağıda adım adım gösterilir.

·SPBRG kaydedici BAUD RATE’de mevcuttur ve yüksek hızda BRGF biti hali alır.

·Asenkronize seri bağlantısının işlemleri temizlenmiş SYNC biti ve SPEN biti halidir.

·Eğer oluşum, iletilirse RCİE biti halinde oluşur.

·RX9 biti kümelenmesi 9 bitlik olur.

·ADDEN kümesi adres denetleyicisinde oluşur.

·CREN bitinde çalışır.

·RCIF kümelenmesi tamamlanması için RCIE bitinde kümelenmesi gerekir.

·RCSTA kaydedici okursan 9 uncu bitte olur ve iletişimde de hata oluşur.

·8 inci kaydedici bitinde RCREG kaydedici bilgi hata vermez ve aygıt adrese iletir.

·Eğer hata verirse, temizlenmiş hali CREN bitidir.

·Eğer cihaz yerindeyse, ADDEN biti bilgi bytında ve bu adresteki biti yerindeki byte kaydedici bufferinde okunur ve CPU da mevcuttur.

2.2.13.6 USART SENKRONİZE ANA MODU

Senkronize ana modda iken bilgi akışı yarım dublex halde olur. Mesela iletim ve karşılama aynı anda gözükmezler. Ne zaman iletim bilgisi karşılanırsa vice versa halini alır. Senkronize halde giriş SYNC biti tarafından olur (TXSTA <4>) şartlar altında SPEN biti (RCSTA<7>) kümede R(6/TX/CK ve RC7/RX/DT I/O pini etkisi altında CK (saat) ve DT(bilgi) hatta düzgünce ilerlerler ana mod işlemci iletimini ana saatin CK hattı üzerinde hareket eder. Ana mod girişi CSRC (TXSTA<7>) bitleriyle kümeleşme mevcuttur.

2.2.13.7 USART SENKRONİZE ANA İLETİCİ

Usart iletici bloğu şekil 2.2.19’ da görülmektedir. İleticinin kalbi iletim halinde sıralı kaydedilir (TSR). Sıralı kaydedici bilgileri okuma/yazma’ dan tampon kaydediciye iletir (TXREG). (TXREG kaydedici bilgileriyle ana hafızaya yüklenir. TSR kaydedicide bunun arkasından kaydedilir. TSR yükleyici en kısa sürede son biti iletir ve TSR yeni bilgi halinde TXREG yükleyici bilgi akışında TSR kaydediciye yükler. TXREG boş ve etkili bit yan TXIF (PIR1<4>) kümesindedir. Bu oluşum kullanılabilir veya kullanılamaz/yüklenebilir/boşalabilir halde TXIE biti (PIR1<4>) oluşur. TXIF bitinin silinmesi ana hafızada çok zordur. Onun sadece kitlenmesi için TXREG kaydedicinin yeni bilgileri içine yüklenmesi gerekmektedir. Destek bitlerinin bu verilerle bağlantısı yoktur.

2.2.14 ANALOG DİJİTAL KONVERTÖR MODÜLÜ

Analog digital konvertör modülü 5 girişli 28 pinli elemandır. Analog giriş örnekle ve tut kondansatörünü şarj eder. Örnekle ve tut kondansatörünün çıkışı dönüştürücünün girişine uygulanır. Dönüştürücü, ardışık yaklaştırma yoluyla bu analog düzeyin sayısal sonucunu üretir. Bu A/D dönüşümde, analog giriş sinyali 10 bitlik sayı karşılaştırma ile sonuçlanır. A/D çevirici eşsiz bir özelliğe sahiptir. İşlem yapmazken uyuma moduna geçer. Uyuma modunda A/D konvertörün saatinde bir iç RC osilatörü üretilmelidir. A/D Modül dört (4) kaydediciye sahiptir.

Bunlar;

1-A/D Yüksek sonuç kaydedicisi (ADRESH)

2-A/D Düşük sonuç kaydedicisi (ADRESL)

3-A/D Kontrol kaydedici 0 (ADCON0)

4-A/D Kontrol kaydedici 1 (ADCON1)

Şekilde bu kaydedicilerin kontrolü ile ilgili bitlerin kullanımı gösterilmektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image033.gif[/IMG] [IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image035.gif[/IMG]

Şekil 2.2.21: ADCON0 Yazmacı

ADRESH: ADRES2 kaydedicileri A/D dönüşümün 10 bit sonucunu kapsar. A/D dönüşümü bittiği zaman, sonuç A/D sonuç kaydedicisinin içine yüklenir. A/D modülü şekil 2.2.22’de görülmektedir.

[IMG]file:///C:/DOCUME%7E1/Yasin/LOCALS%7E1/Temp/msohtml1/01/clip_image037.gif[/IMG]

Şekil 2.2.22: A/D Blok Diyagramı

A/D Modülü konfigüre edildikten sonra, dönüştürme işlemi başlamadan önce kanal seçilmiş olmalıdır. Analog giriş kanallarında ilgili TRIS bitleri giriş için seçilmiş olmalıdır.

Aşağıdaki adımlar, A/D dönüşüm yapmak için takip edilmelidir.

1-A/D Modülü Konfigürasyonu

·Analog pinler, referans voltajları ve digital I/O konfigürasyonu (ADCON1)

·A/D giriş kanalı seçimi (ADCON0)

·A/D dönüşüm saat çekimi (ADCON0)

·A/D Modülünü açma

2-A/D Kesme Konfigürasyonu

·ADIF bitinin temizlenmesi

·ADIE bitinin ayarlanması

·GIE bitinin ayarlanması

3-Gerekli zamanı bekleme işlemi

4-Dönüşürken başlaması

·GO/DONE bitinin ayarlanması (ADCON0)

5-A/D dönüşümünün beklenmesi

6-A/D dönüşüm sonucunu okuma ve kaydetme

7- Diğer dönüşüm için 1. ve 2. kez adımları tekrarlama

2.2.14.1A/D GİRDİLERİ İÇİN GEREKSİMLER

Belirlenmiş doğruluğu karşılaştırmak için A/D çeviricinin CHOLD kondansatörü giriş gerilimine şarj edilmelidir. Bu analog giriş modeli şekil 11.5’te görülmektedir. CHOLD kondansatörü kaynak empedansı (RS) ve anahtar iç direnci (RSS) üzerinden şarj olur. Anahtar iç direnci, kaynak voltajının değerine göre değişir. Analog kaynaklar için tavsiye edilen maksimum empedans 10 KΩ dur. Dönüşüm yapılmaya başlamadan önce analog giriş kanalı seçilmiş olmalıdır.(6)

Minimum giriş zamanı hesabı

TCAQ=TAMP+TC+TCOFF

TACQ=Minimum girdi zamanı

TAMP=Yükselteç yerleşme zamanı

TC= CHOLD şarj zamanı

TCOFF= Sıcaklık katsayısı

Örnek7:

TACQ = TAMP + TC + TCOFF

TACQ = 2 ms + Tc + [(Temp – 25°C)(0.05 ms/°C)]

TC = -CHOLD (RIC + RSS + RS) ln(1/2047)

-120 pF (1 kW + 7 kW + 10 kW) ln(0.0004885)

-120 pF (18 kW) ln(0.0004885)

-2.16 ms (-7.6241)

16.47 ms

TACQ = 2 ms + 16.47 ms + [(50°C – 25°C)(0.05 ms/°C)]

18.447 ms + 1.25 ms

19.72 ms

2.2.14.2 A/D DÖNÜŞÜMÜNÜN SAAT SEÇİMİ

TAD bit başına A/D dönüşüm zamanı olarak tanımlanır. 10 bit dönüşümü için maksimum 12 TAD gerekir. TAD seçimi için mümkün olan 4 seçenek vardır.

·2TOSC

·8TOSC

·32TOSC

·Dahili RC Osilatörü

A/D Dönüşümün doğru olarak yapılması için , TAD minimum 1,6 mS seçilmiş olmalıdır.

2.2.14.3ANALOG PORT PİNLERİNİ YAPILANDIRMA

ADCON1 ve TRIS kaydedicileri kontrol ve işletim port pinleridir. Analog girişlerin TRU bitlerinin karşılıklı olarak ayarlanması gerekir. TRIS biti temizlenmiş ise dijital çıkış seviyesine ( VOH veya VOL ) dönüştürme yapılmış demektir.

2.2.14.4A/D DÖNÜŞÜMÜ

Örnek 8’de bir A/D dönüşümünün nasıl yapıldığı gösterilmektedir. Analog pinler, analog girdiler olarak yapılandırılır. Analog referans gerilimleri VDD ve VSS dir. A/D kesmesi seçildi ve A/D dönüşüm saat frekansı (FRS) ile sola yanaşık olarak sonuçlandırıldı. Dönüştürme RA/0/AN0 pinleri ile gerçekleşti.(6)

Örnek 8: A/D Dönüşümü

BSF STATUS, RP0 ; Bank 1

BCF STATUS, RP1 ;

CLRF ADCON1 ; A/D girişleri kuruldu

BSF PIE1, ADIE ; A/D komutları etkin

BCF STATUS, RP0 ; Bank 0

MOVLW 11000001 ; RC saat, A/D açık, kanal 0 seçildi.

MOVWF ADCON0 ;

BCF PIR1, ADIF ; A/D komut bayrak bitleri temizlendi

BSF INTCON, PEIE ; çevresel komutlar etkin

BSF INTCON, GIE ; tüm komutlar etkin

BSF ADCON0, GO ; A/D dönüşümü başla

2.2.14.5 A/D DÖNÜŞÜMÜ SIRASINDA UYUMA

A/D Modül işletim sırasında uyuma modunda olacaktır. Bunun için A/D saat kaynağı ayarlanmalıdır. (ADCS1:ADCS0=11). RC saat kaynağı seçildiği zaman dönüştürme başlamadan önce A/D modül bir saat çevrimi süresi kadar bekler. Bu uyku talimatına izin verir. Dönüşümdeki tüm sayısal anahtarlama gürültüsü elemine edilmiş olur. Dönüştürme işlemi bittiği zaman GO/DONE biti temizlenir ve sonuç adres kaydedicisi içine yüklenir. A/D kesmesi etkinleştirilirse aygıt uykudan uyanır. A/D kesmesi pasifleştirilirse A/D modülü kapalı duruma dönse de bir süre açık kalacaktır.(6)

2.2.14.6 A/D DOĞRULUK/HATA <

Previous

Deney No 1:direnç Ölçme

Madde Ve Elektrik

Next

Yorum yapın