BÖLÜM 1
|
|
|
- Süleyman Kimyacıoğlu
- 10 yıl önce
- İzleme sayısı:
Transkript
1 BÖLÜM 1 IR HABERLEŞME 1.1.IR Haberleşme Sisteminin Gerçekleştirilmesi Tüm haberleşme sistemlerinde olduğu gibi IR haberleşme sistemlerinde de modülasyon tekniğinden yararlanılır. IR haberleşme tekniği seri dijital haberleşme olduğundan dijital modülasyon teknikleri kullanılır. Modülasyondaki amaç çevre ışıklarından ve diğer IR haberleşme kullanan aygıtlardan alıcıyı yalıtmak, yalnızca kendi haberleşme protokolüne ve frekansına bağlı olarak iletişim sağlamaktır. Tüm modülasyon tekniklerinde olduğu gibi IR haberleşmede de taşıyıcı sinyal bilgi sinyali ile dijital olarak çarpılarak modüle sinyal elde edilir. Modüle sinyal kuvvetlendirilerek haberleşmeyi kızılaltı ışık bölgesinde gerçekleştiren IRLED diyotunun sürülmesi için kullanılır. Diyot üzerinden yayılan modüle ışık alıcı tarafından demodülasyon işlemine tabi tutularak gönderilen data sinyali elde edilmesi sağlanır ve data sinyali bir microcontrollerlar tarafından işlenir. Şekil 1.1 modüle dalga Şekil 1.1de 40kHzlik taşıyıcı dalga 900Hz ile modüle edilmiş şekli görülmektedir. İşlem basit olarak şu şekilde yapılır. Şekilden de görüleceği gibi modülasyon işlemi iki sinyalin çarpılması ile elde edilmiştir. O halde modülasyon işlemi için iki sinyalin birbirleri ile AND lenmesi gerekmektedir. Şekil 1.2 modülasyon işlemi Modülasyon işlemini gerçekleştirebilecek devre ise şekil 1.2 de gösterildiği gibidir. 1
2 Şekil 1.3 demodülasyon işlemi Demodülasyon işlemi ise şekil 1.3 de görüldüğü gibi kompleks bir yapıya sahiptir. Bu işlem için özel entegreler kullanılır. Bu tip entegrelerde PIN diyotu üzerinden alınan sinyal ön kuvvetlendirici tarafından kuvvetlendirilir ve band geçiren filtreye aktarılır. Filtre çıkışından sonra sinyal demodüle edilir ve çıkışa aktarılır. Tüm uzaktan kumanda cihazları IR sinyallerini göndermek için bazı kodlama teknikleri kullanırlar. Gönderilen sinyal binary olup çeşitli zaman ve bit uzunluklarında olabilir. Uzaktan kumanda cihazları kızılaltı ışık palsleri yayarlar. Yayılan ışık çeşitli frekanslarda modüle edilmiş IR sinyali olabilir. Modüle edici sinyal yaklaşık 40kHz civarındadır. Gelen IR sinyalleri modüle sinyaller olduğundan alıcı ünitede uzaktan kumanda cihazından yayılan asıl sinyallerin diğer sinyal kaynaklarından arındırılması sağlanır. IR sinyallerini modülasyona tabi tutmanın birçok yolu vardır. Bunlardan bazıları şunlardır; pals genişliği yada boşluk genişliği değiştirerek veya pals ve boşluklar arasının düzenlenmesi ile modüle sinyaller elde edilir. Bunun anlamı 1 ve 0 seviyelerinin farklı pals genişliklerine sahip olması veya palsler arasındaki boşlukların farklı olmasıdır. # bir pals kodlu sinyal; pals genişliği değiştirilerek elde edilir: Sony bu kodlamayı kullanır Şekil 1.4 pals kodlu sinyal # bir boşluk kodlu sinyal; boşluk uzunluğu değiştirilerek elde edilir: Panasonic bu kodlamayı kullanır Şekil 1.5 boşluk kodlu sinyal 2
3 # bir shift kodlu sinyal; pals ve boşluk uzunluğu değiştirilerek elde edilir: Philips bu kodlamayı kullanır Şekil 1.6 PWM kodlu sinyal Bunlara ek olarak çoğu kez başlangıç bitleri diğer adıyla header ler kullanılır. Header, koddan önce gönderilen palsdir ve alıcıyı aktif etek için kullanılır. Header her zaman koddan önce gönderilen bir pals olup, kendisinden sonra gelen koddan bağımsızdır ve her farklı kod için aynı header gönderilir \ /\... Header kod Şekil 1.7 kodlama formatı Header ve kod uzaktan kumanda cihazındaki butona basılı tutulduğu sürece defalarca gönderilir. Normal olarak headerin ve arkasından gelen kodun tekrarlanma süresi yaklaşık olarak 50ms dir. Gerçekte headerden sonraki kod normal olarak iki parçaya ayrılmıştır: 1. adres ( hangi donanımın işlem yapacağını gösterir, GROUP olarak adlandırılır. 2. komut ( donamıma ne yapması gerektiğini anlatır, FUNCTION olarak adlandırılır. Buna ilaveten bazı uzaktan kumandalar transmisyonlar arasında gönderilen kodu değiştirebilirler. Bu bir güvenlik sistemidir. Alıcıya gelen kod değişmesine rağmen alıcı bunu normal algılar fakat verici sinyallerini test etmek isteyen bir kullanıcı için sıkıntı yaratacak bir problemdir. Avrupa ve Amerika da farklı modülasyon sistemleri kullanıldığı gibi gönderilecek bilgiyi taşımak içinde farklı taşıyıcı frekansları da kullanılır. Bunlar 30kHz, 33kHz, 36kHz, 36.7kHz, 38kHz, 40kHz ve 56kHzlik taşıyıcı frekanslardır. En çok kullanılanları ise 38kHz ve 40KHzlik taşıyıcı frekanslarıdır. 1.2.Kullanılan Protokoller Her üretici kendi protokollerini geliştirmiştir. Bunlardan en çok bilinenleri PHILIPS in geliştirdiği RC5 ( Remote Control 5 ) protokolü ve SONY nin geliştirdiği SIRCS ( Sony Infrared Remote Control Sistem ) protokolüdür. Ayrıca 3
4 yine SONY nin CTRL-S adını verdiği protokolü de vardır. CTRL-S in SIRCS den farkı sadece aygıt kodundan sonra gönderilen 3 veya 5 bitlik ekstra bilgidir RC5 RC5 13 bit uzunluğunda; 5 grup biti, 6 komut biti ve 2 stop bitinden oluşur. Fakat daha sonra 7 komut biti ve 1 stop biti olarak değiştirilmiştir. Bilinen en eski RC5 kodu ise 14 bit uzunluğunda; 2 senkronizasyon biti, 1 kontrol biti ve 11 data bitinden oluşur. Gönderilen bir datanın uzunluğu ise msdir. Taşıyıcı frekansı ise 36kHzdir. RC5 protokolünde header yoktur kodu: T T kodu: T T T = 889us Şekil 1.8 RC SIRCS/CTRL-S SIRCS 12 bit uzunluğunda, headeri bulunan bir protokoldür. CTRL-S protokolü uzunluğu ise 15 veya 17 bittir. Her data arası 25ms boşluk bırakılır ve taşıyıcı frekansı 40kHzdir Header: T T kodu: T T kodu: T T T = 550us Şekil 1.9 SIRCS/CTRL-S 4
5 data: hhhhxxxxxxyyyyyy ^ ^ MSB LSB xxxxxx komut yyyyyy adres SHARP Sharp tarafından geliştirilen bu kod 17bit uzunluğunda ve 32kHzlik taşıyıcı sinyal ile alıcı tarafa gönderilir. Kodun headeri yoktur, transmisyonlar arasında 43ms lik boşluk vardır. 1: 275us pals us boşluk 0: 275us pals + 775us boşluk PANASONIC/TECHNICS 48 bitlik kod uzunluğa sahip ve taşıyıcı frekansı 32kHzdir. Kodun 48biti ilk transmisyon anında gönderilir, bir sonraki transmisyon uzunluğu 47bit olarak gerçekleştirilir. Transmisyonlar arası boşluk 76msdir Header: T 4T kodu: T 3T kodu: T T T = 400us Şekil 1.10 PANASONIC/TECHNICS OLDER PANASONIC/OLDER TECHNICS 22 bitlik kod uzunluğuna sahiptir ve taşıyıcı frekansı 32kHzdir. Headeri bulunmakla birlikte USA-Kanada ve Avrupa-diğerleri için farklı pals genişlikleri sahip iki çeşit seri haberleşme protokolü vardır Header: T 6T 5
6 kodu: T 6T kodu: T 2T T=420 (US of A and Canada) T=454 (Europe and others ) Şekil 1.11 OLDER PANASONIC/OLDER TECHNICS Kod formatı header + ürün kodu + data kodu + ürün kodu tersi ( terslenmiş hali ) + data kodu tersi ( terslenmiş hali ) şeklindedir. Header kodu 8T 1 seviyesi- 8T 0 seviyesinden, ürün kodu 5 bitten, data kodu ise 6 bitten oluşur. Esasen gönderilen kod 11 bitlik koddur fakat kodların terslenmiş bileşenleri de alıcı tarafa gönderilir. Transmisyon sonunda avrupa için 41130us lik 0 seviyeli, USA için ise 37390uslik 0 seviyeli senkronizasyon boşlukları gönderilir NEC/PIONEER/KENWOOD/HITACHI/GOLDSTAR/YAMAHA 32 bitlik kod 39.2kHz lik taşıyıcı frekansı ile gönderilir. Headerden sonra kod birkez gönderilir ve ardından stop bit gönderilerek transmisyon tamamlanır. Transmisyonlar arası boşluk 95msdir ve PANASONIC protokolüne benzer olarak; ilk transmisyon anında gönderilen kodun son biti 1 ise bir sonraki transmisyon anında son bit eksik gönderilir Header: T 8T 8.8ms kodu: T 3T kodu: T T 4.4ms Stop kodu: T 4T T 8.8ms 2.2ms T = 550us Şekil 1.12 NEC/PIONEER/KENWOOD 6
7 1.2.7.JVC 16 bit uzunluğa sahip ve 35.5kHzlik taşıyıcı frekansı ile gönderilir. Protokolde header ilk transmisyon anında bir kez, alıcı ile verici arasındaki senkronizasyonu sağlamak için gönderilir ve sonraki transmisyonlarda header atlanarak yalnızca kod gönderlir. Kodun son biti 1 ise bir sonraki transmisyon anında bu bit atlanarak yalnızca 15 bitlik data gönderilir Header: T 8T kodu: us 1800us kodu: us T = 500us Şekil 1.13 JVC GRUNDIG 10 bit uzunluğunda ve headeri olan bir seri haberleşme protokolüdür. Headreden sonra 18mslik boşluk gönderilir ve transmisyonlar arası 120lik boşluk vardır. Kod start bit + data + stop bit formatında gönderilir. Start bit her zaman bir kez, stop bit ise iki kez gönderilir start bit: us 2600us kodu: us 550us kodu: us 500us Şekil 1.14 GRUNDIG 7
8 1.2.9.FINLUX 10/16 bit uzunluğunda headeri bulunan ve taşıyıcı frekansı 32kHz olan seri haberleşme protokolüdür. Transmisyon ( startbit & 18ms bekleme ) + ( data & 105ms bekleme ) + ( stop bit ) formatında gönderilir. Header 500uslik pals ve 5200uslik boşluktan oluşur. 1 ve 0 bitleri ise us formatında gönderilir. Eğer gönderilecek bit 1 ise 500uslik palsin ardından 530uslik boşluk, gönderilecek bit 0 ise 500uslik boşluğun ardından 530uslik pals gönderilir MITSUBISHI 16 bit uzunluğundadır ve header kullanılmaz farklı taşıyıcı frekanslarına sahip seri haberleşme protokolüdür. Transmisyonlar arası boşluk 24.3msdir kodu: us 1950us kodu: us 800us 1.3.Çalışma Prensibi Şekil 1.15 MITSUBISHI IR seri haberleşmede birden fazla kanallı kumanda sistemi dizaynı için microcontroller veya microprocessor kullanılması şarttır. Verici ve alıcı ise birbirleriyle senkronize çalıştırılmalıdır. Daha basit bir ifadeyle verici ve alıcı üniteler arasında seri haberleşme gerçekleştirilmelidir. Seri haberleşme için ise RC5, SIRCS, CTRL-S gibi protokoller uygulanabilir veya sistemi dizayn eden kişinin kendi ihtiyaçlarına göre bir seri haberleşme protokolü geliştirmesi gerekir. Bu daha basit bir yöntemdir. Özellikle IR haberleşme gerçekleştiren bir çok uzak kontrol sistemi olduğundan güvenlik veya diğer uzak kontrollerin sisteminize karışmaması için protokoller önemli bir yer kaplar. CPU bu kurallara göre programlandığında yalnızca kendi protokolünde veya kendi haberleşme formatında yayın yapan vericilerle anlaşabilir ki buda karışıklığın yani diğer bir uzak kontrol sisteminin sizin sisteminizde söz sahibi olmasını önler. Burada taşıyıcı frekansı da önemlidir. Çoğu uzak kumanda sistemleri 40kHzlik taşıyıcı frekansı ile gönderilirler o halde taşıyıcı frekansınızı 40kHz dışında bir frekans seçerseniz daha güvenli bir kontrol sistemi elde edebilirsiniz. IR haberleşmede önemli olan vericiden gönderilen modüle ışık tayfını alıcıda yakalayabilmek, demodülasyonunu yaptıktan sonrada işleyebilmektir. Daha önceki konularda bir IR haberleşmede kullanılan modülasyon ve demodülasyon işlemlerinin nasıl yapıldıklarını anlatmıştık, o halde bir uzak kontrol devresi dizaynı için yapmamız gereken tek şey basit bir alıcı ve verici 8
9 blok diyagramlarını çizerek bunlara uygun devreleri yerlerine yerleştirmek suretiyle projeyi tamamlamaktır. osc IRLED sürücü microcontroller tuş takımı Şekil 1.16 verici Şekil 1.16 da IR verici blok diyagramı görülmektedir. Microcontrollera bağlı tuş takımı ile seçilen data, osc tarafından üretilen taşıyıcı frekansı ile çarpılarak IRLED sürücü devresine aktarılır. Osilatör taşıyıcı frekansı üreten, kare dalga osilatörüdür. Osilatörün ürettiği kare dalganın duty-cycle lı kritik değildir fakat %25 ila %70 arasında olması transmisyon açısından daha elverişlidir. Genellikle tv uzak kontrol ünitelerinde %25 ila %30 luk duty-cycle seviyesi kullanılır. Çarpıcı devre ise osc frekansı ile data sinyalini çarpılması için kullanılan basit bir AND kapısından ibarettir. IRLED AND kapısı çıkışına doğrudan da bağlanabilir fakat bu durumda alıcı ile verici arasındaki transmisyon mesafesi 1m den az olur. Transmisyon mesafesini artırmak için IRLED yüksek akımlı darbeler ile sürülmesi gerekir. Bir IRLED in maksimum peak akımı 1A den yüksekdir ve bu akım değerlerinde LED üzerinden yayılan kızılaltı ışık şiddeti artar. Dolayısı ile 1A lik bir akımın AND kapısı çıkışından almak imkansızdır. Bu yüzden IRLED ler yüksek akımlar gerektirdiğinden transistorlu devreler ile sürülürler. NOT: osc ve çarpım devresinin yaptığı görevi tek başına microcontroller üstlenerek verici devresi yalnızca microcontroller ve IRLED sürücü devreden oluşan bir düzenek oluşturulabilir fakat microcontroller için daha karmaşık bir program yazmak gerekir. önkuvvetlendirici AGC Band geçiren filtre demod Kontrol ünitesi microcontroller kanallar Şekil 1.17 alıcı 9
10 Şekil 1.17 de IR alıcı blok diyagramı görülmektedir. Alıcı devresindeki PIN diyotu veya fotodiyot ile modüle sinyaller alınıp önkuvvetlendiriciden geçirilir. Elde edilen sinyal AGC ( Automatic Gain Control ) devresinden geçerek, band geçiren filtreye aktarılır ve son olarak demodülasyon işlemine tabi tutulur. Band geçiren filtre merkez frekansı modülasyon frekansıyla aynı değerde olan filtredir. Genellikle verici ünitelerin gönderdiği headerlar verici ile alıcı arasındaki senkronizasyonu sağladığı gibi AGC ünitesinin ayarlanması içinde kullanılır. Son olarak demodülasyon sonucu elde edilen data microcontroller tarafından işlenir. 10
11 BÖLÜM 2 KULLANILAN MALZEMELERİN TANITILMASI CMOS 14 Bölümlü Sayıcı ve Osilatör CMOS 4060 entegresi bir osilatör bölümü ve 14 basamaklı ikilik sayıcısı vardır. Osilatör konfigürasyonu RC ve XTAL osc devrelerine göre dizayn edilebilir. Bir RESET girişi bulunur. RESET tüm sayıcı çıkışlarının 0 a çekilmesi ve osilasyonun durmasını sağlar. RESET girişine uygulanan yüksek lojik seviye reset işlemini gerçekleştir. Tüm sayıcı bölümleri master ve slave FF lerden oluşur. Entegre içerisindeki tüm sayıcılar düşen kenar tetiklemelidir ve tüm giriş-çıkışlar tamponlanmıştır. Giriş devresindeki Schmitt trigger sayesinde Şekil bölümlü sayıcı ve osilatör giriş sinyalinin yükseliş ve düşüş zamanları limitsiz kılınmıştır. Özellikleri: - 15V besleme ile 12MHzlik clock girişi - ortak reset - tamamen statik çalışma - tamponlanmış giriş ve çıkışlar - Schmitt trigger sinyal girişi Osc özellikleri: - RC ve XTAL osc konfigürasyonu - Minimum 15V ta 690kHz RC osc frekansı Kullanım alanları: - sayıcı kontrolleri - zamanlayıcılar - frekans bölücüler - zaman geciktirme devreleri 11
12 Şekil iç yapısı entegrenin iç yapısı şekil 2.2 de gösterilmiştir Şekil FF yapısı entegre içerisindeki FF yapısı ise şekil 2.3 de gösterilmiştir Maksimum değerleri: - DC besleme gerilimi V DD ( referans V SS kaynağı ).-0.5V-20V - Giriş gerilimleri V-V DD +0.5V - Girişten çekilen akım.±10ma - Güç harcaması...500mw - Kılıf sıcaklığı c -125C osilatör devreleri: Şekil osilatör devreleri 12
13 CMOS 2 Girişli 4lü AND kapısı 4081 tek chip içerisinde 2 girişli 4 adet AND kapısı bulunan bir CMOS entegredir. Özellikleri: - 10Vluk VDD besleme gerilimi ile tipik olarak 60nslik cevap hızı - maksimum 20V luk besleme ile çalışabilme Şekil 2.5 AND kapısı Maksimum değerleri: - DC besleme gerilimi V DD ( referans V SS kaynağı -0.5V-20V - Giriş gerilimleri -0.5V-V DD +0.5V - Girişten çekilen akım...±10ma - Güç harcaması..500mw - Kılıf sıcaklığı...-55c -125C TSOP12.. IR Alıcı Modülü Şekil iç yapısı TSOP12.. serisi kızılaltı uzak kontrol sistemleri için geliştirilmiş alıcılardır. Alıcı kısmı bir PIN diyotu ve ön kuvvetlendiriciden oluşur. Kılıfı IR filtre olacak şekilde tasarlanmıştır. Alıcı çıkışındaki sinyal doğrudan microişlemci girişine uygulanarak dekodlaması yapılabilir. TSOP12.. standart IR alıcı serisi tüm transmisyon tekniklerini desteklemektedir. 13
14 Özellikleri: - foto dedektör ve ön kuvvetlendirici aynı kılıf içindedir - PCM frekansları için dahili filtre - TTL ve CMOS uyumluluk - Çıkış aktif iken lojik 0 seviyesi - Düşük güç harcaması - Ortam ışığından bağımsız - Uygun burst uzunluğu 10cycles/burst Ürün numaralarına göre taşıyıcı frekansları: blok diyagramı: Tablo 2.1 ürün numaralarına göre taşıyıcı frekansları uygulama devresi: Şekil 2.7 TSOP1240 blok diyagramı Şekil 2.8 TSOP1240 uygulama devresi 14
15 Aşağıdaki koşullar sağlandığında çıkışta data sinyali elde edilebilir: - taşıyıcı frekansı band geçiren filtre frekansına yakın olmalıdır - burst sinyali 10cycle/burst veya daha fazla olmalıdır - her 10cycle veya 70cycle arasındaki burst sinyali değerinden sonra 14cycle lık boşluk gereklidir. - Saniyede 800den fazla burst sinyali alınabilir. En uygun data formatları: - NEC ( tekrarlanan pals ) - NEC ( tekrarlana data ) - Toshiba Micom - Sharp - RC5 - RC6 - R Sony 2.4.CQY36N GaAs Kızılaltı Işık Yayan Diyot CQY36N kızılaltı ışık yayan, plastik kılıflı GaAs diyottur. Diyot kılıfı BPW16N foto diyotuna uyumludur. Özellikleri: - pals uygulamaları için uyumluluk - geniş yayılım açısı φ=±55 - peak dalga boyu 950nm - Si fotodedektörleri için spectral uyumluluk Şekil 2.9 CQY36N 2.5.PIC16F84A 18-pin FLASH/EEPROM 8-bit Microcontroller PIC16F84A, 1K program hafızası olan 8 bitlik bir microcontroller dır. 1Klık program kendi dilinde hex tabanında 1024 worde çevrilerek seri olarak programlanır ve 35 basit komutu vardır. CPU özellikleri: - 35 basit komut - DC-20MHz çalışma frekansı words program hafızası - 68byte RAM - 64byte EEPROM - 4 kesme kaynağı - 13 I/O pin - maksimum 25mA pin akımı Şekil 2.10 PIC16F kez yazılıp silinebilen FLASH program hafızası kez yazılıp silinebilen EEPROM hafızası 15
16 - 40 yıldan fazla EEPROM bellekte veri saklama - 2 pin üzerinden seri olara programlanabilme - Power-on Reset ( POR ), Power-up Timer ( PWRT ),Oscillator Start-up Timer ( OST ) - Dahili RC osilatörüne bağlı Watchdog Timer ( WDT ) - Kod kroma - Farklı osilatör çalışma tipleri - SLEEP modu ile daha az güç harcama CMOS FLASH/EEPROM teknolojisi: - düşük hız, yüksek hız teknolojisi - tamamen statik dizayn - 2.0V-5.5V besleme aralığı - düşük güç harcaması: <2mA@5V;4MHz, 15µA@2V;32kHz, <0.5µA stand-by akımı@2v microcontrollerin blok şeması aşağıda gösterilmiştir: Şekil 2.11 PIC blok diyagramı 8 bitlik microcontroller aşağıda açıklandığı gibi programlanır ve program bir metin dökümanı içerisine yazılır ve txt uzantılı olarak kaydedilir. Microchip derleyicileri ile txt uzantılı doküman asm uzantılı bir dosyaya daha sonra ise hex uzantılı diğer bir dosyaya dönüştürülür. PIC programlamak için kullanılan hardware bilgisayara takıldıktan sonra softwareye ilgili hex dosyası gösterilir ve PIC programlanır. 16
17 2.5.1.File register haritası Bank 0 Bank INDF 0 80 INDF 0 01 TNF OPTION 0 02 PCL 0 82 PCL 0 03 STATUS 0 83 STATUS 0 04 FSR 0 84 FSR 0 05 PORT A 0 85 TRISA 0 06 PORT B 0 86 TRISB EEPROM bellek alanı ( kullanılmayacak ) 0 0A PCLATH 0 8A PCLATH 0 0B INTCON 0 8B INTCON 0 0C 0 8C genel amaçlı registerlerin kullanılacağı alan ( veri depolama alanı olarak kullanılır ) 0 4F 0 CF Bank değiştirme Bir banktan diğerine geçmek için STATUS register denilen özel registerin 5. ve 6. bitinin durumunu değiştirmek gerekir. 00 bank 0 01 bank 1 16F84 ün sadece 2 bankı bulunduğundan sadece 5. bitin değerini değiştirmek yeterlidir. 6. bit daima 0 olmalıdır. Her iki bit pic enerjilendiğinde 0 dır. Ayrıca reset girişleri ile bu bitler 0 yapılır. Pic enerjilendiğinde doğrudan bank 0 seçilmiş olur. STATUS registerinin 5. bitini 1 yapmak için BSF, 0 yapmak için BCF kullanılır. BSF h 03, 5 bank 1 seçilir BCF h 03, 5 bank 0 seçilir 17
18 2.5.3.Portların I/O olarak yönlendirilmesi PortA yı TRISA registeri PortB yi TRISB registeri yönlendirir. PortA/B nin hangi biti giriş yapılma isteniyorsa TRISA/B içerisine o bite karşılık gelen bit 1 yapılır, çıkış olarak yönlendirilmek istenen bit içinse 0 yazılır. TRISA/B 1/0 PortA/B giriş/çıkış Akış diyagramları Akış diyagramı başlangıcı ve sonu Hazırlık İşlem Karar Alt program Akış diyagramı bağlayıcı Şekil 2.12 akış diyagramları Konfigürasyon bitlerinin yazılması Aşağıdaki koşulları belirlemede kullanılır - osilatör tipi belirlemek - watchdog timer on-off yapmak - power-on reset on-off yapmak - kod korumayı on-off yapmak ( programın okunmasını engellemek ) yazılacak tanım kodları - kod koruma var _CP_ON - kod koruma yok _CP_OFF - power-on reset var _PWRTE_ON - watchdog timer devrede _WDT_ON - low power osc LP_OSC - xtal osc _XT_OSC - high speed osc _HS_OSC 18
19 - RC osc _RC_OSC Buna göre program şöyle yazılmaya başlanır LIST P=16F84 INCLUDE P16F84.INC _CONFIG _CP_OFF &_WDT_OFF &_PWRTE_OFF işlem Veri Transferi W registeri kullanımı Veri transferi W register RAM içerisindeki file registerden bağımsızdır. Registerler arasında veri transferi yapmak için kullanılır. PORTA içeriğini PORTB ye yazmak MOVF PORTA, W ; PORTA içeriğini W registerine taşı MOVWF PORTB ; W registeri içeriğini PORTB ye gönder PORTB nin ilk 4 bitini 1 yapmak MOVLW H 0F ; W registerine H 0F yükle ( 0F ilk 4 hanenin binary karşılığı ) MOVWF PORTB ; W registeri içeriğini PORTB ye gönder Bit test ederek karar verme BTFSC veya BTFSS komutları ile register içerisindeki herhangi bir bit test edilebilir. BTFSC register deki biti test et eğer 0 ise bir sonraki komuta atla. BTFSS registerdeki biti test et eğer 1 ise bir sonraki komuta atla. BTFSC (register), (test edilecek bit 0-7) PORTA bit 1, 0 mı Tekrar test et evet TEST_PORTA BTFSC PORTA, 1 GOTO TEST_PORTA BSF PORTB, 0 PORTB 0.bit 1 Şekil 2.13 bit test döngüsü 19
20 2.5.7.Döngü Düzenleme Sayaç kullanarak döngü düzenleme Bazı işlemlerin önceden belirlenen sayıda tekrarlanması durumunda register sayaç olarak kullanılır. Her işlem tekrarında sayaç bir azalır. DECFSZ (sayaç) ( 0veyaW-1veyaF W ise sayaçtan 1 çıkarılır ve sonuç W ye yazılır- F ise sayaçtan 1 çıkarılır ve sonuç sayaç içerisine yazılır ) Sayaç= sayaç-1 Sayaç 0 mı evet TEKRAR DECFSZ SAYAC, F GOTO TEKRAR BSF PORTB, 0 Tekrar et PORTB 0.bit 1 Şekil 2.14 sayaç test döngüsü Karşılaştırma yaparak döngü düzenleme Bazı işlemler önceden belirlenen sayıda tekrarlanması gerekir. Bu durumda bir register sayaç olarak kullanılır. Her bir işlem tekrarında sayaç bir arttırılır. Sayaç sayısı işlemin tekrar sayısına ulaştığında döngü sona erer ve başka komuta geçilir. TEKRAR DONGU CLRF SAYAC ;sayaç temizle INCF SAYAC, F ;sayacı 1 artır MOVLW h 07 ;W registerine h 07 yükle SUBWF SAYAC, W ;sayaçtan W yi çıkar BTFSC STATUS, 2 ;STATUS 2. biti 1mi? GOTO TEKRAR GOTO END DONGU Döngünün tekrar sayısı W registeri içerinse yüklenen sayı ile belirlenir. SAYAC değişkeni içerisindeki sayı döngünün her tekrarında bir artırılır ve SUBWF komutu ile SAYAC tan W nin içeriği çıkarılır. Çıkarma işlemi 20
21 neticesinde STATUS registerinin 0. ve 2. bitindeki değer etkilenir. Bu bitler BTFSC komutuyla test edilir. Test sonucunda istenen değere ulaşınca döngüye son verilir. STATUS registeri 0. bir CARRY FLAG 2. bit ZERO FLAG olarak adlandırılır SUBWF komutu Çıkarma yapan bir komuttur. W registerinin içeriğini file registerden çıkarır ve sonucu W registerine yazar. SUBWF (file register), W yada F olabilir. W çıkarma sonucunu W registerine yazdırır F ise file registere. Z ve C flag içeriği çıkarma sonucu şöyle etkilenir. File register > W Z=0 C=1 File register = W Z=1 C=1 File register < W Z=0 C=0 1) F=W ise MOVLW h 50 MOVWF MEM SUBWF MEM, W BTFSC STATUS, 2 ;W=MEM ise program GOTO ile devam eder, > veya < ise GOTO yu atlar GOTO XXX BSF PORTB, 0 2) F<W ise MOVLW h 40 MOVWF MEM MOVLW h 50 SUBWF MEM, W BTFSC STATUS, 0 ;W=veya> ise program GOTO ile devam eder, < ise GOTO yu atlar GOTO XXX BSF PORTB, 0 3) F>W ise MOVLW h 60 MOVWF MEM MOVLW h 50 SUBWF MEM, W BTFSC STATUS, 0 ;W=veya< ise program GOTO ile devam eder, > ise GOTO yu atlar GOTO XXX 21
22 BSF PORTB, SUBLW komutu Çıkarma yapan komuttur. Sabit L içerisinden W registeri içeriğini çıkarır, sonucu W registerine yazar. Çıkarma sonucunda W ve sabitin değerleri flagların değerini değiştirir. File register>w Z=0 C=1 File register=w Z=1 C=1 File register<w Z=0 C=0 1) sabit=w ise MOVLW h 50 SUBLW h 50 BTFSC STATUS, 2 ;sabit=w ise BSF komutuna geçilir GOTO XXX BSF PORTB, 0 2) sabit<w MOVLW h 60 SUBLW h 50 BTFSC STATUS, 0 ;sabit<w ise BSF komutuna atlanır GOTO XXX BSF PORTB, 0 3) sabit>w MOVLW h 40 SUBLW h 50 BTFSC STATUS, 0 ;sabit>w ise BSF komutuna atlanır GOTO XXX BSF PORTB, Status Register STATUS registerinin içeriği bir çok komutun çalışması neticesinde değişir. STATUS registerinin Z, DC veya C bitleri etkileyen bir komut kullanıldığında bu bitlere yazma işlemi yapılamaz. Bu bitlerin 1 veya 0 olan durumu kullanılan PIC e bağlıdır. Bank seçmek için kullanılan RP0 ve RP1 bitlerine yazmak mümkün olduğu halde, TO ve PD bitlerine yazma işlemi yasaklanmıştır. Bu nedenle bir STATUS registerini etkileyen komutun çalıştırılması sonucunda etkilenen bitler beklenenden farklı olabilir. 22
23 STATUS register bitleri: Bit 7: IRP:register bank select bit 16F84 te kullanılmaz 0 olarak kalmalıdır Bit 6-5: RP1:RP0: register bank select bit 00=bank0 ( h 00 -h FF ) 01=bank1 ( h 80 -h FF ) 10=bank2 ( h 100 -h 17F ) 11=bank3 ( h 180 -h 1FF ) 16F84 te sadece RP0 kullanılır, RP1 0 olarak kalmalıdır Bit 4: TO: time out bit 1=PIC enerjilendiğinde, CLRWDT ve SLEEP komutu çalışınca 0=WDT zamanlayıcısında zaman dolduğunda Bit 3: PD: power down bit 1=PIC enerjilendiğinde ve CLRWDT komutu çalıştığında 0=SLEEP komutu çalışınca Bit 2: Z: zero bit 1=aritmetik veya mantıksal komutun sonucu 0 olduğunda 0= 0 olmadığında Bit 1: DC: digit carry/borrow bit ADDLW ve ADDWF komutları kullanıldığında oluşan taşma ve ödünç alma olduğunda 1=alt dört bitin 4. bitinde taşma meydana geldiğinde 0= gelmediğinde Bit 0: C: carry/borrow bit ADDLW ve ADDWF komutları kullanıldığında oluşan taşma ve ödünç alma olduğunda 1=en soldaki 7. bitte taşma olduğunda 0=en soldaki 7. bitte taşma olmadığında NOT: RLF ve RFF komutları çalıştığında en sol bit veya en sağ bit değeri carry bitine yüklenir Zaman Geciktirme Zaman geciktirme döngüleri Dahili komut saykılı PIC girişine uygulanan osc frekansı 4 e bölünür ve bir komutun icra süresi bu frekansın bir saykılı süresincedir. Fakat PIC16F84 komutlarından 10 tanesi hariç diğerleri bir komut saykılı süresince çalışır. Bu komutlar: Komut Komut saykılı GOTO 2 CALL 2 RETURN 2 23
24 Program sayıcıya (PC) veri yazan 2 komutlar DECFSZ 1 ( register içerisindeki sayı 1 ise ) 2 ( register içerisindeki sayı 0 ise ) RETLW 2 RETFIE 2 INCFSZ 1 ( register içerisindeki sayı 1 ise ) 2 ( register içerisindeki sayı 0 ise ) BTFSC 1 ( test edilen bit 1 ise ) 2 ( test edilen bit 0 ise ) BTFSS 1 ( test edilen bit 0 ise ) 2 ( test edilen bit 1 ise ) Tablo 2.2 komut icra süreleri Tek döngü ile minimum zaman geciktirme SAYAC registeri içerisine h 01 yüklenir, DECFSZ komutu ile tekrar sayısından her defasında 1 çıkarılır. Çıkarma sonucu 0 olduğunda döngü sona erdirilir. SAYAC h 01 SAYAC= SAYAC- Sayaç 0 mı evet DONGU MOVLW h 01 ;1 saykıl MOVWF SAYAC ;1 DECFSZ SAYAC, F ;1 0+2 GOTO DONGU ;0 toplam 4 saykıl Tekrar azalt Devam et Şekil 2.15 min zaman geciktirme döngüsü Tek döngü ile maksimum zaman geciktirme SAYAC registerine yüklenen sayı h FF olursa toplam 766 saykıllık zaman gecikmesi elde edilir Komut saykıl sayısının bulunması N registere atanan sayı olursa bir döngünü 3N saykıllık bir geciktirme oluşturur. 24
25 N sayısının bulunması N=GS f/12 N registere atanan decimal sayı hex e dönüştürülerek yazılmalı GS gecikme süresi f PICe uygulanan harici frekans Alt programlar Gerektiğinde alt program adı CALL komutundan sonra yazılarak çağırılır. RETURN komutu ile ana programa dönülür. Alt programın çalıştırılmaya başladığı anda programın tekrar geri döneceği adres bilinmesi gerekir. STACK register bu adresin yazıldığı özel bir registerdir. Alt programlardan gri dönülürken en son yazılan adres ilk önce işlem görür. - ana programın ilk komutundan itibaren program çalışmaya başlar. - program akışı CALL_ALTPROG ile alt prog adlı alt programa geçer - ana alt programdan çıkıldığı andaki adres STACK registere yazılır - alt program komutları çalışır - RETURN alt program komutlarının bittiğini gösterir. Program akışını ana programda kaldığı yerdeki adrese gönderir - STACK registerde yazılı bulunan ayrılma adresine alınır - Ana program kaldığı yerden itibaren çalışmaya başlar ve END komutu ile sona erer Bit Kaydırma Sola kaydırma RLF komutu ile belirlenen bir file register içerisindeki bitlerin pozisyonu her defasında bir sola kaydırmak için kullanılır. Register içerisindeki bitler sola kaydığında MSB biti STATUS registerde bulunan carry flag içerisine yazılır. Carry flag içeriği ise registerlerin LSB bitine yazılır. RLF (file register) (d) destination W veya F W ise sonuç W ye F ise F e yazılır MEM adındaki bir file registerin içeriği h 86 ise RLF komutu çalıştırıldığında MEM registerinin içeriği MOVLW h 86 MOVWF MEM RLF MEM, F H 86 =b CF 1 MSB LSB Kaydırma sonucu MEM registeri 0CF 0 MSB LSB 25
26 Sağa kaydırma RRF komutu ile belirlenen bir file register içerisindeki bitlerin pozisyonu her defasında bir sağa kaydırmak için kullanılır. Register içerisindeki bitler sağa kaydığında LSB biti STATUS registerde bulunan carry flag içerisine yazılır. Carry flag içeriği ise registerlerin MSB bitine yazılır. RRF (file register) (d) destination W veya F W ise sonuç W ye F ise F e yazılır MEM adındaki bir file registerin içeriği h 49 ise RRF komutu çalıştırıldığında MEM registerinin içeriği MOVLW h 49 MOVWF MEM RRF MEM, F H 49 =b MSB CF Kaydırma sonucu MEM registeri COMF ve SWAPF komutları COMF komutu seçilen file register içerisindeki bitleri tersine çevirir yani 1 ler 0, 0 lar 1 olur COMF ( file register ) (d) W veya F MOVLW h 0F MOVWF MEM COMF MEM, F SWAPF komutu seçilen bir file register içerisindeki verinin ilk dört biti ile son dört biti yer değiştirir. SWAPF ( file register ) (d) MOVLW h C6 MOVWF MEM SWAPF MEM, F Mantıksal işlem komutları ANDLW W register içeriğini istenen bir sabit veri ile AND ler elde edilen sonucu W registerine yazar. Bu komut W regiter içerisindeki bir veya birkaç bitin değerini 0 yapmak için kullanılır. ANDLW (sabit) 1 ile AND lenen bitlerin değeri değişmez 0 ile AND lenen bitlerin değeri 0 olur.( maskeleme ) W register içerisindeki b ise 2. ve 7. biti 0 yapmak için b sabiti ile AND lemek gerekir. 26
27 MOVLW b ANDLW b MOVWF PORTB DONGU GOTO DONGU Sonuçta W register içeriği şöyledir b ANDWF Seçilen bir file register içeriğini AND ler sonuç W veya F registeri içerisine yazılır. ANDWF ( file register ) (d) W veya F olabilir PORTA içeriği b olsun W registeri içeriği ise b verisini yerleştirerek 5. bitin içeriğini 0 yapan ve PORTB ye gönderen komutlar. MOVLW b ANDWF PORTA, W MOVWF PORTB DONGU GOTO DONGU Sonuçta PORTA içeriği şöyledir PORTA IORLW W registerinin içeriğini istenen bir sabit veri ile OR lar. IORLW ( sabit ) W register içerisindeki veri b ise bu verinin 6. ve 7. bitindeki verileri 1 yapmak için b sabiti ile OR lamak gerekir. MOVLW b IORLW b MOVWF PORTB Sonuçta PORTB içeriği şöyledir PORTB IORWF Seçilen bir file register ile W registerinin içeriğini OR lar sonucu W registerine yada file registere yazar. IORWF ( file register ) (d) XORLW W register içeriğini sabit bir veri ile XOR lar, elde edilen sonucu W register içerisine yazar. XORLW (sabit) MOVLW b XORLW b MOVWF PORTB Sonuçta PORTB içeriği şöyledir PORTB
28 XORWF Seçilen bir file register ile w registerinin içeriğini XORlar sonuç W veya F register içerisine yazılır. XORWF ( file register ) (d) Bir bytelık iki veriyi karşılaştırma W register içindeki bir byte lık veriyi istenen bir bytelık sabit veri ile aynı olup olmadığını test etmek amacıyla XORLW komutu kullanılır. Bir file register içerisindeki veriyi W register içindeki veri ile karşılaştırmak içinde XORWF komutu kullanılır. Veriler aynı ise XORlama sonucunda Z flag 1, veriler aynı değil ise Z flag 0 olur. PORTA registeri içerisindeki verinin b verisi ile aynı olup olamadığını kontrol eden program MOVLW b TEST_PORTA XORWF PORTA, F BTFSS STATUS, 2 GOTO TEST_PORTA DEVAM MOVF PORTA MOVWF PORTB Bir byte lık veriyi 0 ile karşılaştırma W register içerisindeki bir byte lık verinin 0 olup olmadığını test etmek için 0 sabit verisi ile ORlanır. Bu işlem için IORLW kullanılır. Bir file register içerisindeki verinin 0 olup olmadığını kontrol etmek için W register içerisine 0 verisi atandıktan sonra bu ikisi OR lanır. Bu işlem için IORWF komutu kullanılır. OR sunucunda karşılaştırılan byte lar aynı ise yani içerikleri 0 ise Z flag 1 olur W register içeriğinin 0 olup olmadığını kontrol eden komutların yazılışı MOVLW b TEST_W IORLW b BTFSS STATUS, 2 GOTO TEST_W DEVAM Aritmetik İşlemler Aritmetik işlemler için gerekli komutlar: ADDLW sabiti W registerden çıkarır ADDWF W registerle F registeri toplar SUBLW sabitten W registeri çıkarır 28
29 SUBWF F registerden W registeri çıkarır RLF F register içerisindeki bitleri bir sola kaydırır RRF F register içerisindeki bitleri bir sağa kaydırır sayıları arasındaki 8 bitlik toplamada carry flag elde edilen sonucun 8 bitin dışına taşıp taşmadığını gösterir. Eğer CF=0 ise sonuç 8 bitten fazla değildir CF=1 ise sonuç 8 bitten fazladır yani taşma vardır sayıları arasındaki 8 bitlik çıkarmada CF elde edilen sonucun negatif veya pozitif olduğunu gösterir eğer CF=1 ise sonuç pozitif CF=0 ise sonuç negatiftir bit toplama Bir bytelık iki sayı iki şekilde toplanabilir. İlki W register sabit bir sayı ile toplanır (ADDLW) sonuç W registerine yazılır. İkincisi W registerle bir file register içeriği toplanır (ADDWF) sonuç W veya F e yazılır. h 02 +h FD =h FF CF=0 h 03 +h FD =h 00 CF= bit toplama Toplama işleminde kullanılan sayılar 1byte=h FF =d 256 dan daha büyük ise sayı iki yada daha fazla byte ile gösterilir. h 01FD sayısını iki parçaya bölerek h 01 için A registeri, h FD için B registeri kullanarak işlemlkeri yaparız. - toplanacak iki sayının ilk önce alt byte ları toplanır - alt byte lerde taşma varsa üst bytelardan birisine 1 eklenir - üst bytelar toplanır işlemin akış diyagramı: Alt byte ları topla ADDWF CF=1 mi? evet Üst bytelerden birisine 1 ekle INCF Üst byte ları topla ADDWF Şekil 2.16 bit toplama akış diyagramı 29
30 Bit çıkarma SUBLW h 02 ;sayıdan W registerini çıkar SUBWF MEM, F ;MEM den W registerini çıkar Küçük sayıdan büyük sayı çıkarılırsa CF=0, büyük sayıdan küçük sayı çıkarılırsa veya sayılar birbirlerine eşit ise CF=1 olur Bit çıkarma - alt bytelar birbirlerinden çıkarılır - ödünç alma var ise CF=0 sa üst bytelardan birsinden 1 çıkarılır - eğer ödünç alma yok ise CF=1 se üst byteların çıkarması yapılır Alt byte ları çıkar SUBWF CF=0 mi? evet Üst bytelardan birisinden 1 çıkar DECF Üst byte ları çıkar SUBWF Çevrim Tabloları Şekil 2.17 bit çıkarma akış diyagramı Çevrilecek kod Çevrilen 7seg k. 7 seg uçlarındaki 7 segde görülecek PORTB veri sayı h 00 h 3F h 01 h h 02 h 5B h 03 h 4F h 04 h h 05 h 6D h 06 h 7D h 07 h h 08 h 7F h 09 h 6F h 0A h A h 0B h 7C b h 0C h C 30
31 h 0D h 5E d h 0E h E h 0F h F Nokta h Tablo 2.3 çevrim tabloları Program counter 13 bitlik bir program sayıcısı vardır. GOTO ve CALL komutlarıyla kullanılan 11 bitlik adresler 2KB lik program belleği bulunan PIC leri adreslemek için yeterlidir. (PIC16F84 te 1KBlik program belleği vardır ) PIC programlarında program sayıcı PC kodu ile kullanılır. Program sayıcının alt 8 bitine PCL üst 5 bitine PCH adı verilir. Program sayıcının üst 5 bitini doğrudan okumak ve yazmak mümkün değildir. Ancak PCLATH özel registeri ile veri yüklenir. Bu registerde 5 bittir. PCLATH içeriği PIC enerjilendiğinde b dır. PCH komutu kullanılmadığı sürece bu registerle herhangi bir işimiz yoktur. Fakat çalışmada soruna neden olmaması için 4. ve 3. bitlerinin içerikleri 0 lanmalıdır RETLW Ana programa dönüş için kullanılır. RETURN komutundan farklı olarak W registerine sabit bir sayı yükler. RETLW h 3F ;W ye verilen sayıyı yükle ve ana programa dön Kesmeler ( Interrupts ) Port girişlerinden veya donanım içerisindeki bir sayıcıdan gelen sinyal nedeniyle belleğinde çalışmakta olan programın kesilmesi olayıdır. Programın kesildiği andan itibaren önceden hazırlanan bir alt program çalışır. Alt program işlevini bitirdikten sonra ana program kaldığı yerden itibaren tekrar çalışmasına devam eder. Neticede kesme ana programın çalışmasını duraklatır fakat işlevini devam ettirmesini engellemez. Alt programlarla arasındaki fark normal alt program çağırma, program içerisinde yazılan komutlar vasıtasıyla yapılır. Kesme alt programlarının çağırılması ise donanımda oluşan değişiklikler yapar. Kesme meydana geldiğinde o anda çalışmakta olan komutun çalışması tamamlanır daha sonra program akışı PIC program belleğinin h 0004 adresine atlar ve bu adresteki komutu çalıştırır. PIC kesme alt programı çalıştıktan sonra ana programda hangi adrese geri döneceğini o anda çalışan komutun adresini STACK registerine kaydeder. Alt program işlevini tamamladığında ana program akışı bu adresten itibaren devam eder. Kesme alt programından ana programa dönüş komutu RETFIE komutu ile yapılır. Kesme alt programında meydana gelen olaylar: - kesme olayı meydana geldiğinde STACK registerinin olduğu adrese h 23F atla 31
32 - ana programın kaldığı adresi STACK registere yaz - h 04 adresindeki komutu çalıştır. Bu komut kesme alt programını çalıştır - kesme alt programının olduğu adrese atla - kesme alt programı çalıştır. Alt programın en son komutu RETFIE dir - STACK registerin olduğu yere git - Ana programa dönüş adresini al - Ana programın kesildiği yerdeki adresten bir sonraki adrese git ve devam et INTCON registeri RAM bellekte h 0B adresinde bulunan özle registerlerden bir tanesidir. Tüm kesme işlemlerinin kontrolü bu register aracılığı ile yapılır. Bit 7: GIE: tüm kesme işlemlerini iptal etme bayrağı 0=tüm kemeler geçersiz 1=aktif yapılmış tüm kesmeler geçerli Bit 6: EEIE: EEPROM belleğe yazma işlemini tamamlama kesmesi 0=geçersiz 1=geçerli Bit 5: T0IE: TMR0 sayıcı kesmelerini aktif yapma bayrağı 0=geçersiz 1=geçerli Bit 4: INTE: harici kesmeyi aktif yapma bayrağı 0=geçersiz. Harici kesmeler kabul edilmez 1=geçerli. Harici kesmeler kabul edilir Bit 3: RBIE: PORTB (4, 5, 6, 7. bitleri) değişiklik kesmesini aktif yapma bayrağı 0=geçersiz. PORTB deki değişiklikler kesme oluşturur 1=geçerli. PORTB deki değişiklikler kesme oluşturmaz Bit 2: T0IF: TMR0 sayıcısı zaman aşımı bayrağı 0=zaman aşımı yok 1=zaman aşımı var ( h FF den h 00 a geçiş ) Bit 1: INTF: harici kesme bayrağı 0=harici kesme oluşmadığında 1=harici kesme oluştuğunda Bit 0: RBIF: PORTB değişiklik bayrağı 0=RB4-RB7 uçlarında değişiklik yok 1=RB4-RB7 uçlarından en az birinde değişiklik var Kesme kaynakları Kesmeler aşağıdaki 4 kaynaktan gelebilir. 1) external kesme ( RB0/INT ucundan gelen sinyal ) 2) TER0 sayıcısında oluşan zaman aşımı kesmesi ( sayıcının h FF den h 00 gelmesi ) 3) PORTB 4, 5, 6 ve 7. bitler lojik seviye değişikliğinden 4) EEPROM belleğe yazma işleminin tamamlanmasında meydana gelen kesme ( bahsedilmeyecek ) 32
33 Harici kesmeler Harici kesmelerin kullanılabilmeleri için yazılım ve donanım gereklidir. Yazılım aracılığı ile PORTB nin RB0/INT ucu dışarıdan gelebilecek kesmeyi algılayabilecek şekilde hazırlanır. Bunun için: - RB0/INT ucu giriş olarak yönlendirilmeli - INTCON registeri içindeki ilgili bayrak ( INTE ) kullanılarak harici kesme işlemi aktif yapılmalıdır. Donanım ise RB0 ucundan sinyal girişi yapabilecek elektronik bir devredir. Bu sinyalin kenar tetiklemesi önemlidir. OPTION registerinin 6. biti bu uçtan girilen sinyalin yükselen mi yoksa düşen kenarında mı kesme yapılacağına karar verir. OPTION register INTEDG ( 6. bit ) 0=düşen kenarda kesme 1=yükselen kenarda kesme Kesme alt programının çalışması esnasında gelebilecek yeni kesmeleri engellemek için INTCON registerinin 4. bit ( INTE bayrağı ) 0 yapılmalıdır. Eğer harici kesme RB0/INT ucundan sinyal girişiyle meydana gelirse INTCON register içerisindeki INTF bayrağı 1 olur. INTF kesme alt programı içerisinde tekrar 0 yapılmalıdır. Aksi halde tekrarlanan kesmeler ile karşılaşılır. Kısaca özetlenirse harici kesme oluştuğunda yapılacak işlemler sırası şöyledir: - sonraki kesmeleri geçersiz yapmak için INTE bayrağını 0 yap - kesme alt programını çalıştır - INTF kesme bayrağını 0 yap - Yeni kelimeleri geçerli yapmak için INTE bayrağını 1 yap TMR0 sayıcı kesmesi İçerisindeki sayının h FF den h 00 a gelince oluşur PORTB lojik seviye ( RB4-RB7 ) değişiklik kesmesi PORTB nin 4, 5, 6 ve 7. bitlerinde meydana gelen bir değişiklikte INTCON registerinin 0. biti ( RBIF ) 1 olur. Bu kesme INTCON registerinin 3. biti ( RBIE ) aracılığı ile aktif veya pasif yapılabilir. PORTB nin 0, 1, 2, 3. bitlerindeki değişiklikler lemse oluşturmaz. PORTB deki değişikliği algılamak için bu porttaki son değer RB4-RB7 uçlarından okunan veri ile karşılaştırılır. Eski ve yeni okunan veriler OR lanır. Farklılık varsa RBIF bayrağı ( INTCON registerinin 0. biti ) 1 olur.portb kesmesi şöyle silinebilir: - RBIE biti ( INTCON 3.bit ) silinmek suretiyle - PORTB yi okuduktan sonra RBIF bitini silmek suretiyle Kesme alt programlarının düzenlenmesi Tüm kesme işlemlerinin aktif yapma bayrağı ( GIE ) Bir kesme olayının meydana gelmesi esnasında INTCON registerinin 7. biti 0 olur. Bu işlem yeni bir kesmenin program akışını bozmaması için otomatik olarak yapılır. Kesme alt programı çalışmasını RETFIE komutu ile sona erdirip, 33
34 ana programa dönüldüğü anda sonraki kesmelerin geçerli olabilmesi için tekrara otomatik olarak 1 yapılır. Kesme olayında meydana gelen olaylar: - INTCON GIE=1 - Kesme olayı - INTCON GIE=0 - PC içerisindeki adres STACK registerine kaydedilir - h 004 adresine atlar - kesme olayı başlar alt program çalışır - kesme bayrağı kontrol edilir - kesme olayı biter ( RETFIE ) - program akışı ana programa geçer - INTCON GIE= Kesme esnasında W ve STATUS registeri saklama Eğer W ve STATUS registerinin içeriği korunmak isteniyorsa gerekli komutlar kesme alt programının içerisinde yer almalıdır. Kesme olduğunda yapılması gereken işlemler: - W registeri değişkene yükle - STATUS registeri değişkene yükle - Kesme işlemi gerçekleştir - STATUS geri yükle - W geri yükle - Kesme alt programından dön ( RETFIE ) Bu işlemleri yapacak komutlar: ORG GOTO h 004 KESME_ALT_PROG.. KESME_ALT_PROG 1: MOVWF SAKLA_W ;W registerini yükle 2: SWAPF STATUS, W ;STATUS içeriğini SWAP yap 3: MOVWF SAKLA_S ;STATUS içeriğini sakla.. ;kesme alt programı komutları. 4: SWAPF SAKLA_S, W ;STATUS içeriğini yeniden SWAP yap 5: MOVWF STATUS ;STATUS registere yeniden yükle 6: SWAPF SAKLA_W, F ;W içeriğini SWAP yap 7: SWAPF SAKLA_W, W ;W yi yeniden SWAP yap ve W ye yaz RETFIE 34
35 SWAPF komutu bir register içeriğini başka bir registere STATUS registerini değiştirmeden yüklemek için kullanılır. Bu komutla alt 4 bit ile üst 4 bitin yeri değişir. Bu nedenle alt programdan geri dönülmeden önce tekrar SWAPF komutu eski haline getirilmesi gerekir. Bu işlem sırasında MOVF komutu STATUS registerdeki Z bayrağının içeriğini değiştirdiğinden zero flag durumunu kontrol ederek işlem yapan bir programda hatalara neden olabilir. W registeri içeriği b STATUS registeri içeriği ise b olsun ve yukarıdaki programı inceleyelim: W register STATUS register KESME_ALT_PROG 1: SAKLA_W 2: W register 3: SAKLA_S ; kesme alt programı komutları 4: W register 5: STATUS 6: SAKLA_W 7: W register Kesme alt programının yazılması İlk komut h 004 adresine yazılmalıdır. Kesme kullanan programların düzenlenmesi aşağıdaki gibi olmalıdır: ORG h 000 GOTO BASLA ORG h 004 GOTO INT_ALT_PROG ; BASLA Ana program komutları.. INT_ALT_PROG Kesme alt programı komutları.. RETFIE ;ana program başlangıcı ;kesme alt programı başlangıcı Kesme gecikmesi Bir kesme oluştuğunda alt program başlamadan önce 3-4 komut saykılı süresince gecikme meydana gelir. Zamanın önemli olduğu uygulamalarda göz önüne alınmalıdır. 35
36 Donanım Sayıcıları Donanım sayıcı/zamanlayıcı PORT çıkışlarına gönderilen sinyaller arasında bir gecikme istediğimiz zaman bu gecikmeyi sağlaması için bir alt program yapılır bu alt programa software timer denir. Fakat bu işlemi PIC donanımı içerisinde yapan hardware timer bulunmaktadır. Genelde h 00 dan başlayıp içerisindeki birer birer artıran bir file registerdir. Sayma aralıkları nedeniyle gecikme olmaktadır. PIC de iki tip timer bulunmaktadır. TMR0 olarak adlandırılan 8 bit sayıcı ilkidir. RAM belleğin h 01 adresinde olan özel bir registerdir. İkincisi ise watchdog timer WDT adı verilen zamanlayıcıdır TMR0 sayıcı/zamanlayıcı RAM belleğin h 01 adresinde bulunur. TMR0 programlanan bir sayıcıdır. Saymaya istenilen bir komuttan başlatılabilir, herhangi bir anda da içeriği sıfırlanabilir. Özellikleri: - 8 bit sayıcıdır - yazılabilir ve okunabilir - programlanabilen frekans bölme değeri - harici veya dahili clock ile sayı artışı - harici olarak düşen veya yükselen kenar tetiklemesi - sayıcı değeri artan yöndedir. ( h 00, h 01 h FF ) - TMR0 değeri h FF den h 00 a gelince ilgili flag 1 yaparak kesme oluşturur Ana program veya kesme alt programları çalışırken sayma işlemini durdurmaz. Sayma işlemi devam ederken h FF den h 00 a geçişte meydana gelen taşma INTCON registerinin 2. bitinde ( T0IF ) 1 olarak görülür. Bu bayrak kontrol edilerek kesme oluşturulabilir OPTION register RAM belleğin 1. BANK ındaki h 81 adresinde bulunan özel registerdir. Kesme sinyalinin tetikleme kenarını, PORTB nin pull-up yapılma durumunu, TMR0 veya WDT yi seçme bayrağını kontrol eden 8 bitlik registerdir. RBPU(7.bit) INTEDG T0CS T0SE PSA PS2 PS1 PS0(0.bit) PS0, PS1, PS2: frekans bölme sayısı Frekans bölme sayısı TMR0 oranı WDT oranı 000 ½ 1/1 001 ¼ ½ 010 1/8 ¼ 011 1/16 1/ /32 1/ /64 1/32 36
37 110 1/128 1/ /256 1/128 Tablo 2.4 frekans bölme sayısı PSA: frekans bölücü seçme biti 0=bölme sayısı TMR0 için geçerli 1=WDT için geçerli T0SE: TMR0 sinyal kaynağı kenar seçme biti 0=RA4/T0CKI ucundan düşen kenar tetiklemesi 1=yükselen kenar tetiklemesi T0CS: TMR0 sinyal kaynağı seçme biti 0=dahili komut saykılı seçilir 1=harici sinyal ( RA4/T0CKI ucu ) INTEDG: harici kesme sinyali kenar seçme biti 0=RB0/INT ucundan düşen kanarda tetikleme 1=yükselen kenarda tetikleme RBPU: PORTB pull-up geçerli yapma biti 0=PORTB uçlarındaki pull-up lar iptal edilir 1=geçerli yapılır TMR0 sayıcı özellikleri Şekil 2.19 TMR0 Sayıcı içindeki sayının artırılması için gerekli clock sinyali iki farklı kaynaktan sağlanabilir. 1) dahili komut sinyali 2) harici sinyal ( RA4/T0CKI ) - harici sinyal PORTA nın 3. bitinden ( RA4/T0CKI ) - TMR0 ın sinyal kaynağını seçmek için OPTION registerinin 5. biti ( T0CS ) kullanılır - Sinyal kaynağından gelen sinyal direkt olarak TMR0 besleyebildiği gibi frekans bölücü aracılığı ile de beslenebilir 37
38 - Frekans bölme sayısı TRM0 veya WDT ye OPTION registerinin 3. biti ( PSA ) ile yönlendirilir. Her iki sayıcının da bölme oranları birbirlerinden farklıdır dikkat! - OPTION registerinin 0,1,2. bitleri kullanılarak 8 farklı frekans bölme değeri seçilebilir. TMR0 sayıcısını tetikleyecek olan sinyal direkt olarak sinyal kaynağından sağlanmak isteniyorsa ( frekans bölücüyü bypass ederek ) frekans bölme değeri WDT ye atanır. Bu işlem PSA bitile yapılır - Frekans bölme değeri TMR0 a atandığında TMR0 a yazmak için kullanılan tüm komutlar frekans bölme değerini siler - Frekans bölme değeri kullanılmadan direkt olarak harici sinyal kullanılırsa dahili komut sinyali ile senkronizasyonu sağlamak için 2 saykıllık bir gecikme sağlanır - Harici sinyal uygulandığında TMR0 sayıcısının içindeki sayının hangi kenarda artacağını belirlemek için OPTION registerinin 4. biti ( T0SE ) aracılığı ile belirlenir. - TMR0 sayıcısından çıkış sinyalleri aşağıdaki durumlarda oluşur: 1) RAM belleğin h 01 adresindeki TMR0 registeri okununca 2) Sayıcının h FF den h 00 a geçişinde meydana gelen taşma sinyalinin INTCON registerinin 2. bitine ( T0IF bayrağı ) 1 yazılması anında - TMR0 daki sayıları artıran sayıcıya uygulanan sinyallerdir - Sayılar harici sinyal aracılığı ile artırıldığında istenirse bu sinyaller sayılabilir. Bu durumda TMR0 sinyal sayıcı olarak kullanılmış olur Frekans bölme sayısının kullanılması Frekans bölme sayısı TMR0 oranı WDT oranı 000 ½ 1/1 001 ¼ ½ 010 1/8 ¼ 011 1/16 1/ /32 1/ /64 1/ /128 1/ /256 1/128 Tablo 2.5 frekans bölme sayısının kullanılması TMR0 ve WDT oranı TMR0 oranı ½ ise 2 komut saykılında bir defa üst sayıya geçmiş olur. Frekans bölme sayısı b 000 seçilirse TMR0 ın sayma aralığı süresi ne olur? Fosc=4 MHz ise Tkomut=1µs olur TMR0 dahili komut saykılının 2 saykılında 1 defa artar o zaman: TMR0 sayma aralığı süresi=tkomut TMR0oranı =1µs 2=2µs buna göre TMR0 saymaya başladığında ilk sayı h 00 ise bu sayı h FF e gelince kesme sinyali oluşacaktır. Bu sayı ondalık 38
39 olarak 256 eder. Öyleyse TMR0 kaç saniyede kesme sinyali vereceği şöyle hesaplanır: kesme gecikmesi=tmr0 sayma aralığı 256 =2µs 256=512µs şeklinde hesaplanır Frekans bölme sayısının atanması TMR0 sayısını direkt olarak sinyal kaynağından beslemek için frekans bölme sayısını WDT ye atamaktır. Frekans bölme değeri WDT ye atandığında TMR0 a yazmak için kullanılan CLRF, BSF, MOVWF gibi komutlar frekans bölme değerini sıfırlayarak yeni bir değer için hazırlar. Frekans bölme değeri TMR0 dan WDT ye veya tersi atama işlemi yapılırken frekans bölme sayısının sıfırlanması nedeniyle PIC çalışma esnasında istenmeyen resetler oluşabilir. Bunları önlemek için aşağıdaki program muhakkak kullanılmalıdır. #TMR0 dan frekans bölme değeri atama: BCF STATUS, 5 ;BANK0 geç CLRF TMR0 ;TMR0 ve frekans bölme silinir BSF STATUS ;BANK1 geç CLRWDT ;WDT sil MOVLW b xxxx1xxx ;yeni frekans bölme değeri seç MOVWF OPTION_REG ;OPTION registere yaz BCF STATUS, 5 ;BANK0 geç #WDT den TMR0 a frekans bölme değeri atama: CLRWDT ;WDT yi ve frekans bölme değerini sil BSF STATUS, 5 ;BANK1 geç MOVLW b xxxx0xxx ;TMR0 ı yeni frekans bölme değerini ve yeni sinyal kaynağı seç MOVWF OPTION_REG ;OPTION registere yaz BDF STATUS, RP0 ;BANK0 geç TMR0 sayıcısının kullanılması TMR0 sayıcının kurulması - yukarıda verilen komutlar ile frekans bölme değerinin atanmasıyla - OPTION registerin bitlerine uygun veri göndererek TMR0 sayıcının başlatılması - sayıcıya bir sayı yazmak sayma işlemini başlatır Saymaya başlama sayısının değiştirilmesi - sayıcının h 00 dan değil de başka bir sayıdan başlatmak için TMR0 registerine istenen sayının atanması yeterlidir TMR0 ın çalıştığını anlamak bu registeri herhangi bir anda okuyarak - herhangi bir bitini test ederek 39
40 - h FF den h 00 a geçişte oluşan kesme sinyalin test ederek. Kesme anında INTCON registerinin 2. biti ( T0IF bayrağı ) 1 olur - TMR0 çalışması esnasında PIC yüklendiği diğer işleri yapmaya devam eder TMR0 çalışmasına devam etmesi - silinmediği sürece ( CLRF TRM0 ) - içerisine sayı yazılmadığı sürece ( MOVLW h 05, MOVWF TMR0 ) - PIC resetlenmediği sürece Kesme oluştuğunda TRM0 h FF ulaşan sayıcı otomatik olarak h 00 dan başlar - eğer başlangıç sayısı devamlı olarak bir N sayısı olması isteniyor ise her kesme oluştuğunda bu sayı tekrar TMR0 a atanmalıdır TMR0 ı durdurma - PIC çalıştığı sürece saymaya devam eder. Fonksiyonlarından yararlanılmak istenmiyorsa program içerisinde kullanılmaz ancak kesme bayrağı ( T0IF ) 1 yapmaya devam eder TMR0 sayıcısını istenen bir sayıdan başlatılması Kesme gecikmesi=4 (256-TMR0 ilk sayısı) prescaler / Fosc - kesme gecikmesi: oluşacak kesme sinyali aralığı ( µs ) - TMR= ilk sayısı: atanan ondalık sayı - Prescaler: frekans bölme sayısı (2, 4, 8, 16, 32, 64, 128, 256) kullanılmadığı zaman bu sayı senkronizasyon nedeniyle 2 alınmalıdır - Fosc: PIC osc frekansı WDT zamanlayıcısı ( watchdog timer ) PIC önceden belirlenen sürede yapması planlanan bir işi zamanında yapmayıp döngü kontrolden çıkmış ve kilitlenmiş ise WDT devreye girer ve PIC reset edilir. Ayrıca SLEEP moduna girmiş PIC i uyandırarak çalışmaya devam etmesi amacıyla da kullanılır. 40
41 Şekil 2.20 WDT OPTION registerinin WDT ile ilgili 4 biti vardır. WDT zamanlayıcısını seçmek için OPTION registerinin 3. biti 1 yapılmalıdır. WDT oranının ise 0,1,2. bit aracılığı ile frekans bölmesi yapılır. WDT zamanlayıcısın sinyal kaynağı internal bir osc dir. Nominal zaman aşımı 18ms fakat bu değer frekans bölme işlemi ile 2.3 sn kadar çıkarılabilir Zaman aşımı süresi WDT nin CLRWDT komutu ile reset yapıldıktan sonra saymasını tamamlayıp tekrar saymaya başladığı ana kadar geçen zamandır. WDT saymasını tamamladığı anda zaman aşımı sinyali verir ve bu sinyal STATUS un 3. ve 4. bitindeki flagları etkiler. Bit 3: PD: power down biti 0=SLEEP komutu çalıştığında 1=PIC enerjilendiğinde yada CLRWDT komutu çalıştığında Bit 4: TO: time out biti 0=WDT zaman aşım sinyali oluştuğunda 1= PIC enerjilendiğinde yada CLRWDT komutu çalıştığında WDT ile kontrolden çıkmış bir programı tekrar resetleyerek kontrolü ele alma planlanıyorsa ana porgram başında bu bitler kontrol edilmelidir. Böylece zaman aşımı olduğunda program akışı başka bir yere dallandırılabilir. 41
42 Örnek program parçası: WDT_KONT BTFSS STATUS, 4 ;TO biti 1 mi? CALL XXX MOVLW h FF ;hayır program akışına devam et MOVWF TRISA.... WDT uygulamasının kapatılması PIC programlayıcının ara yüzünden yapılır. Ancak bu program içerisinde bir konfigürasyon satırı oluşturularak da yapılabilir. Komut program esnasında geçersiz edilemez sadece CLRWDT ile resetlenebilir. Bu durumda h 00 dan itibaren tekrar saymaya başlar sayma süresi bitince STATUS registerinin TO bayrağını 0 yapar SLEEP komutunun kullanılması Komut genellikle PIC programının devamlı olarak çalışması gerekmeyen durumlarda kullanılır. Bu komut ile program olduğu yerde durur ve tüm özel registerler ve RAM bilgileri saklanır. SLEEP modundan çıkma WDT sinyali ve harici kesme sinyalleri vasıtasıyla yapılabilir. 42
43 BÖLÜM 3 PROJENİN GERÇEKLEŞTİRİLMESİ 3.1. Projenin Gerçekleştirilmesi Her şeyden önce bilinen IR haberleşme protokollerini kullanmayacaksanız kendinize ait bir protokolünüz olması gerekir. Basit bir seri protokol şu şekilde yapılabilir: öncelikle seri haberleşme yapan cihazlar vericinin gönderdiği modüle darbelerin genişliğini ölçerek işlem yaparlar. Örneğin; SIRCS (Sony Infrared Remote Control System ) protokolünde 2400uslik darbeden sonra 600uslik bir boşluk gönderir alıcı 2400uslik darbeyi aldıktan sora işlem yapmaya başlar yani alıcı darbenin birkaç yerinde okuma yaparak programın akışına devam etmez, gelen darbenin süresini ölçerek diğer kodların alınıp alınmayacağına karar verir. Fakat bir microcontroller için daha basit haberleşme yolları varken darbe süresini ölçüp karar verebilen bir program yazmak uğraş gerektiren bir iştir LSB MSB 7 header 8 bit data 30ms 10ms 5ms 10ms 80ms 110ms Şekil 3.1 geliştirilen protokol Proje için geliştirilen IR seri haberleşme protokolü şekil 3.1 de gösterildiği gibidir. 11 bitlik bir koddur ve her bittin gönderilmesi 10ms sürer. 1 seviyesinin gönderilmesi için 10 ms lik darbe, 0 seviyesinin gönderilmesi içinse 10mslik boşluk bırakılır. Gönderilecek bitler ayrı ayrı kodlanmamış ve başlangıç için header kullanılmıştır. Header her transmisyonda tekrar gönderilir. Alıcı ise gelen kodların darbe süresini ölçerek karar vermemektedir, gelen kodlardan belli zaman aralıklarında örnekler alarak işlem devam ettirilir. Esas olarak alıcı, ilk darbeyi aldıktan sonra 5ms bekler ve okuma işlemine başlar. Okuma işlemi örnek alma 43
44 işlemidir. Eğer ilk okuma anında gelen bitden alınan örnek 1 seviyesinde ise bir sonraki okuma işlemi için 10ms beklenir bu bitin ise 0 seviyesinde olması gerekmektedir. 0 biti de alındıktan sonra 10ms lik bir bekleyiş daha başlar ve son gelen header bitinden örnek alınır. Eğer bu bit 1 seviyesinde ise gelen sinyal, güvenlik bandı olan 3 bitlik headeri aşmış demektir ve headerden sonra gelen tüm bitler sırasıyla 1-0 seviyeleri ayırt edilmeksizin microcontroller tarafından kabul edilir ve çıkış portlarına yazılır. Gelen 8 bitlik datada, microcontrollerin 1 veya 0 olması istenen port çıkışlarının bilgisi yer alır. Örneğin alıcı ünitedeki microcontrollerin portlarından biri olan PORTB nin 3. bitinin 1 seviyesi olması isteniyorsa, vericiden gönderilen data sinyali şeklinde olmalıdır. Bu şekilde vericiden gönderilen 1 seviyesi diğer bitlere kaydırılarak teker teker tüm bitlerinde 1 seviyelerine çıkmaları sağlanarak 8 kanallı uzak kontrol ünitesi elde edilebilir. İşlem aşağıdaki tabloda daha rahat görülmektedir. Headerden sonra microcontroller çıkışı ( PORTB ) gelen data RB0 RB1 RB2 RB3 RB4 RB5 RB6 RB Tablo 3.1 microcontroller doğruluk tablosu Artık yapılması gereken tek şey bu protokolde haberleşebilecek microcontroller programlarını yazmaktır. Software tamamlandıktan sonra ise hardwareyi tasarlayıp devreleri board üzerine kurmaktan ibarettir. Yukarıda anlatılan protokolü gerçekleştirebilen programın akış diyagramı şöyledir: 44
45 PORTA 0.biti 1 yap PORTA 0.biti 1 yap PORTA 0.biti 1 yap Şekil 3.2 bekle alt programı 45
46 3.1.1Verici akış diyagramı başla data gönderme programı PORTA 0.biti 1 yap bekle PORTA 0.biti 1 yap bekle header Data1 gönder PORTA 0.biti 1 yap bekle Data2 gönder PORTA 0.biti 1 yap bekle PORTA 0.biti 1 yap Data3 gönder bekle PORTA 0.biti 1 yap Data4 gönder bekle PORTA 0.biti 1 yap Data5 gönder bekle PORTA 0.biti 1 yap gönderilen 8bitlik data bekle Data6 gönder PORTA 0.biti 1 yap bekle PORTA 0.biti 1 yap Data7 gönder bekle PORTA 0.biti 1 yap bekle Data8 gönder Şekil 3.4 verici akış diyagramı 46
47 3.1.2Alıcı akış diyagramı başla PORTA 0.biti 1 yap PORTA 0.biti 1 yap PORTA 0.biti 1 yap bekle PORTA 0.biti 1 yap PORTA 0.biti 1 yap bekle PORTA 0.biti 1 yap PORTA 0.biti 1 yap PORTA 0.biti 1 yap PORTA 0.biti 1 yap bekle bekle PORTA 0.biti 1 yap PORTA 0.biti 1 yap bekle bekle bekle PORTA 0.biti 1 yap bekle bekle PORTA 0.biti 1 yap bekle bekle Şekil 3.5 alıcı akış diyagramı 47
48 3.2.Akış diyagramlarına göre microcontroller programları Verici programı LIST P=16F84 PORTA EQU h'05' PORTB EQU h'06' STATUS EQU h'03' TRISA EQU h'85' TRISB EQU h'86' FH1 EQU h'0c' FH2 EQU h'0d' CLRF PORTB ;PORTB içeriğini 0 yap BSF STATUS, 5 ;BANK1 e geç CLRF TRISA ;PORTA çıkış yap MOVLW h'ff' ;W registerine h FF yükle MOVWF TRISB ;PORTB yı giriş yap BCF STATUS, 5 ;BANK0 geç CLRF FH1 ;FH1 registeri içeği b CLRF FH2 ;FH2 registeri içeği b ; KODSEC BTFSC PORTB, 0 GOTO KOD0 BTFSC PORTB, 1 GOTO KOD1 BTFSC PORTB, 2 GOTO KOD2 BTFSC PORTB, 3 GOTO KOD3 BTFSC PORTB, 4 GOTO KOD4 BTFSC PORTB, 5 GOTO KOD5 BTFSC PORTB, 6 GOTO KOD6 BTFSC PORTB, 7 GOTO KOD7 GOTO KODSEC ; ;GIDEN_DATA_ KOD0 BTFSS PORTB, 0 GOTO KODSEC ; HEADER BSF PORTA, 0 48
49 BSF PORTA, 0 ; BSF PORTA, 0 ; ; ; ; ; ;
50 ; GOTO KOD0 ; ;GIDEN_DATA_ KOD1 BTFSS PORTB, 1 GOTO KODSEC ; HEADER BSF PORTA, 0 BSF PORTA, 0 ; ; BSF PORTA, 0 ; ;
51 ; ; ; ; GOTO KOD1 ; ;GIDEN_DATA_ KOD2 BTFSS PORTB, 2 GOTO KODSEC ; HEADER BSF PORTA, 0 BSF PORTA, 0 ;
52 ; ; BSF PORTA, 0 ; ; ; ; ; GOTO KOD2 ; ; GIDEN_DATA_ KOD3 BTFSS PORTB, 3 GOTO KODSEC 52
53 ; HEADER BSF PORTA, 0 BSF PORTA, 0 ; ; ; ; BSF PORTA, 0 ; ;
54 ; ; GOTO KOD3 ; ;GIDEN_DATA_ KOD4 BTFSS PORTB, 4 GOTO KODSEC ; HEADER BSF PORTA, 0 BSF PORTA, 0 ; ; ; ;
55 ; BSF PORTA, 0 ; ; ; GOTO KOD4 ; ;GIDEN_DATA_ KOD5 BTFSS PORTB, 5 GOTO KODSEC ; HEADER BSF PORTA, 0 BSF PORTA, 0 ;
56 ; ; ; ; ; BSF PORTA, 0 ; ; GOTO KOD5 ; ;GIDEN_DATA_
57 KOD6 BTFSS PORTB, 6 GOTO KODSEC ; HEADER BSF PORTA, 0 BSF PORTA, 0 ; ; ; ; ; ;
58 ; BSF PORTA, 0 ; GOTO KOD6 ; ;GIDEN_DATA_ KOD7 BTFSS PORTB, 7 GOTO KODSEC ; HEADER BSF PORTA, 0 BSF PORTA, 0 ; ; ;
59 ; ; ; ; ; BSF PORTA, 0 GOTO KOD7 ; BEKLE_ALT_PROGRAMI BEKLE MOVLW h'64' MOVWF FH2 DONGU1 DECFSZ FH2 GOTO FH1AZALT GOTO BITIR FH1AZALT MOVLW h'64' MOVWF FH1 DONGU2 DECFSZ FH1, F GOTO DONGU2 GOTO DONGU1 BITIR RETURN ; END 59
60 3.2.2.Alıcı programı LIST P=16F84 PORTA EQU h'05' PORTB EQU h'06' STATUS EQU h'03' TRISA EQU h'85' TRISB EQU h'86' FH1 EQU h'0d' FH2 EQU h'0e' CLRF PORTB ;PORTB içeriğini 0 yap BSF STATUS, 5 ;BANK1 e geç CLRF TRISB ;PORTB çıkış yap MOVLW h'fe' ;W registerine h'ff' yükle MOVWF TRISA ;PORTA yı giriş 0 HARIC BCF STATUS, 5 ;BANK0 geç ; STANDBY BSF PORTA, 0 ;stand-by LEDini yak BTFSS PORTA, 1 GOTO STANDBY ;stand-by LEDini söndür ; DECODE KAYDIR MOVLW h'20' MOVWF FH2 K1 DECFSZ FH2 GOTO K2 GOTO HEADER K2 MOVLW h'20' MOVWF FH1 K3 DECFSZ FH1, F GOTO K3 GOTO K1 ; HEADER_YAKALAMA ; HEADER BTFSS PORTA, 1 GOTO EXIT BTFSC PORTA, 1 GOTO EXIT BTFSS PORTA, 1 GOTO EXIT ; BTFSC PORTA, 1 BSF PORTB, 0 60
61 ; BTFSC PORTA, 1 BSF PORTB, 1 ; BTFSC PORTA, 1 BSF PORTB, 2 ; BTFSC PORTA, 1 BSF PORTB, 3 ; BTFSC PORTA, 1 BSF PORTB, 4 ; BTFSC PORTA, 1 BSF PORTB, 5 ; BTFSC PORTA, 1 BSF PORTB, 6 ; BTFSC PORTA, 1 BSF PORTB, 7 ;
62 GOTO HEADER EXIT MOVLW h'00' MOVWF PORTB GOTO STANDBY ; BEKLE_ALT_PROGRAMI BEKLE MOVLW h'64' MOVWF FH2 DONGU1 DECFSZ FH2 GOTO FH1AZALT GOTO BITIR FH1AZALT MOVLW h'64' MOVWF FH1 DONGU2 DECFSZ FH1, F GOTO DONGU2 GOTO DONGU1 BITIR RETURN ; END 62
63 3.3.Devreler Verici devreleri Taşıyıcı frekansın elde etmesi: Taşıyıcı frekansı, temin edilen alıcı modülü tipine göre 40kHz olarak belirlenmiştir. Bu frekansı üretecek entegre ise osc ve 14 adet bölücü kısmı olan 4060 CMOS entegresi seçilmiştir olması nedeni ise hem üretilen frekansın darbe boşluk oranının yaklaşık olarak eşit olması hem de üretilen frekansın entegre içerisindeki 14 farklı frekans bölücüleri sayesinde osiloskop kullanmadan kolaylıkla bir frekans metre ile ölçülebilmesidir. Şekil 3.6 RC osilatör devresi Üretici firma tarafından önerilen RC osc devresi şekil 3.6 da gösterilmiştir. Şekil 3.7 osilatör devresi 40kHz için gerekli hesaplamalar yapılıp, R ve C değerleri bulunursa vericinin osc devresi şekil 3.7 deki değerleriyle kurulur Çarpım devresi ve IRLED sürücü Çarpım devresi için lü 2 girişli CMOS AND kapı entegresi, IRLED sürücü transistoru için ise yüksek hızlı anahtarlama ve max 800mA kollektör akımı özelliklerinden dolayı 2N2219A seçilmiştir. 63
64 Şekil 3.8 IRLED sürücü devresi AND kapısının 1 nolu girişi microcontrollerın data çıkışı ile ve 2 nolu girişi ise 4060 entegresinin 9 nolu pin olan 40kHz çıkışı ile bağlantı yapılır. Haberleşme sırasında, 2N2219A transistoru ısınabilir fakat kılıf sıcaklığı kritik değerlere ulaşmadığından, soğutucuya gerek yoktur Microcontroller osilatör konfigürasyonu Şekil 3.9 verici osilatör konfigürasyonu PIC16F84A nın 4MHz lik osilatör konfigürasyonu için, üretici firmanın önerdiği bağlantı şekli ve değerleri kullanılmıştır. 64
65 Microcontroller reset devresi Şekil 3.10 verici reset devresi PIC16F84A nın reset devresi için, üretici firmanın önerdiği bağlantı şekli ve değerleri kullanılmıştır Alıcı devreleri IR alıcı modülü Alıcı, kuvvetlendirici ve sinyalin demodülasyon için TSOP1240 modülü kullanılmıştır. Modül numarasının son iki rakamından da anlaşılacağı gibi modül 40kHzlik taşıyıcı frekansına sahip sinyallerin demodülasyonunu yapmaktadır. Şekil 3.11 modül devresi Verilen alıcı modülü devresi, üretici firma tarafından önerilen bağlantı şekli ve değerleri ile kurulmuştur Tersleyici TSOP1240 alıcı modülü demodülasyon sonucunda çıkışında gönderilen datanın tersini oluşturduğundan CMOS 4585 NOT kapısı ile terslenerek microcontroller girişine uygulanmıştır. 65
66 Microcontroller osilatör konfigürasyonu Şekil 3.12 alıcı osilatör konfigürasyonu PIC16F84A nın 4MHz lik osilatör konfigürasyonu için, üretici firmanın önerdiği bağlantı şekli ve değerleri kullanılmıştır Microcontroller reset devresi Şekil 3.13 alıcı reset devresi PIC16F84A nın reset devresi için, üretici firmanın önerdiği bağlantı şekli ve değerleri kullanılmıştır. 3.4.Devrenin Ayarlanması Verilen şemalara uygun olarak devreler kurulup microcontrollerlar programlanır ve yerlerine yerleştirilir. Ayarlanması gereken tek şey; verici ünitenin osilatör frekansını, taşıyıcı frekansı olan 40kHz ye ayarlamaktır. Bir osiloskop veya frekans metre 4060ın 9. pinine bağlanarak, verici ünite üzerindeki 10Klık trimpotu ayarlamak sureti ile 40kHz lik darbe serisi elde edilmeye çalışılır. Verici ve alıcı üniteler aralarında 1m mesafeyi aşmayacak ve birbirlerini görecek 66
67 şekilde konumlandırılıp, verici üzerindeki butonlardan birine basılı tutulur. Bu sırada alıcı ünitedeki karşılığı olan LEDin yanması gerekir. Verici üzerindeki buton basılı tutularak üniteler birbirlerinden yavaş yavaş uzaklaştırılır. Alıcı ünitedeki LED söndüğünde 10K trimpot ayarı ile oynanarak LEDin tekrar yanması sağlanır. Bu işlem sistemin kumanda mesafesini artırmak için kullanılır. İki ünite arasındaki mesafe 5-6m yi aşmayacak şekilde birkaç defa daha bu yöntem uygulanabilir. Sistemin kumanda mesafesini daha fazla artırmak için IRLED 27Ωluk seri direnci, 4.7 Ω luk direnç ile değiştirilebilir. 4.7 Ω dan daha küçük bir direnç değeri IRLED e ve transistora zarar verir. 67
68 BÖLÜM 4 ÇİZİMLER 4.1.Alıcı Alıcı Şematik Alıcı PCB Şekil 4.1 alıcı şematik Şekil 4.2 alıcı PCB 68
69 4.2.Verici Verici Şematik Verici PCB Şekil 4.3 verici şematik Şekil 4.4 verici PCB 69
Bank değiştirme Bir banktan diğerine geçmek için STATUS register denilen özel registerin 5. ve 6. bitinin durumunu değiştirmek gerekir.
File register haritası Bank 0 Bank 1 0 00 INDF 0 80 INDF 0 01 TNF0 0 81 OPTION 0 02 PCL 0 82 PCL 0 03 STATUS 0 83 STATUS 0 04 FSR 0 84 FSR 0 05 PORT A 0 85 TRISA 0 06 PORT B 0 86 TRISB 0 07 0 87 EEPROM
# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak
# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak - LIST=16F84 - PORTB yi temizle - BANK1 e geç - PORTB nin uçlarını çıkış olarak yönlendir - BANK 0 a geç - PORT B nin 0. bitini 1 yap - SON ;pic tanıtması
# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak
# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak - başla - LIST=16F84 - PORTB yi temizle - BANK1 e geç - PORTB nin uçlarını çıkış olarak yönlendir - BANK 0 a geç - PORT B nin 0. bitini 1 yap - SON ;pic
W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001
MOVLW k Move Literal to W k sabit değerini W saklayıcısına yükler. MOVLW h'1a' W 1A. Hexadecimal 1A sayısı W registerine yüklenir. MOVF f,d Move f f saklayıcısının içeriğini W veya f'e yükler. MOVF SAYAC,0
KOMUT AÇIKLAMALARI VE ÖRNEKLERİ
KOMUT AÇIKLAMALARI VE ÖRNEKLERİ Komut açıklamalarında kullanılan harflerin anlamları: F : File(dosya), kaynak ve bilgi alınan yeri ifade eder. D : Destination (hedef), işlem sonucunun kaydedileceği yer.
KESME (INTERRUPT) NEDİR?
KESME (INTERRUPT) NEDİR? Mikro işlemcilerle yeni çalışmaya başlayan çoğu kimseler, interrupt kelimesini duymalarına rağmen, kullanımlarının zor olduğu düşüncesiyle programları içerisinde kullanmaktan çekinirler.
16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB
MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 1 - DERS NOTLARI (Kısım 3) Doç. Dr. Hakan Ündil Program Örneği 9 : Gecikme altprogramı kullanarak Port B ye bağlı tüm LED leri yakıp söndüren bir program için akış
BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: 3.2.KOMUTLAR VE KULLANIM ÖRNEKLERİ
BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: f : File register, Herhangi bir değişkenle tarif edilen bir saklayıcı adresi (0h-7Fh) k : Sabit değer (genellikle (0-FF arasında) d : Destination
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK
DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK KESME NEDİR KESME ÇEŞİTLERİ INTCON SAKLAYICISI RBO/INT KESMESİ PORTB (RB4-RB7) LOJİK SEVİYE DEĞİŞİKLİK KESMESİ Ders 12, Slayt 2 1 KESME PIC in bazı
KONFİGÜRASYON BİTLERİ
MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 1 - DERS NOTLARI (Kısım 2) Doç. Dr. Hakan Ündil INCLUDE Dosyalar Assembly programlarını yazarken kullanılacak register adreslerini (EQU) komutu ile tanımlamak hem
B.Ç. / E.B. MİKROİŞLEMCİLER
1 MİKROİŞLEMCİLER RESET Girişi ve DEVRESİ Program herhangi bir nedenle kilitlenirse ya da program yeniden (baştan) çalıştırılmak istenirse dışarıdan PIC i reset yapmak gerekir. Aslında PIC in içinde besleme
MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize
MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil 2014-2015 Bahar-Vize BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan
Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...
3.1 AMAÇ: Assembly programlama dili kullanarak mikrodenetleyici portlarını giriş olarak kullanmak. GİRİŞ: Bir portun giriş olarak mı yoksa çıkış olarak mı kullanılacağını belirten TRIS kaydedicileridir.
LCD (Liquid Crystal Display)
LCD (Liquid Crystal Display) LCD ekranlar bize birçok harfi, sayıları, sembolleri hatta Güney Asya ülkelerin kullandıkları Kana alfabesindeki karakterleri de görüntüleme imkanını verirler. LCD lerde hane
PIC TABANLI, 4 BASAMAKLI VE SER
PIC TABANLI, 4 BASAMAKLI VE SERİ BAĞLANTILI 7 SEGMENT LED PROJESİ Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Bilgisayar Mühendisliği Bölümü, Lefkoşa E-mail: [email protected],
Komutların İşlem Süresi
Komutların İşlem Süresi PIC lerde ŞARTSIZ dallanma komutları (GOTO, CALL, RETURN gibi ) hariç tüm Assembly dili komutları 1 saat saykılı (cycle) çeker. ŞARTLI dallanma komutları ise normalde 1 saat saykılı
MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI
MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL 2017-2018 Bahar-FİNAL KISMI BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan bitlerin (C
1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı
1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı yazınız. SAYAC1 EQU 0X20 devam movlw B'00000000' call DELAY incf PORTB,f ;Akü ye 0' sabit değerini yaz. ;Aküdeki değer PORTB
İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu
Step Motor Step motor fırçasız elektrik motorlarıdır. Step motorlar ile tam bir tur dönmeyi yüksek sayıda adımlara bölebilmek mümkündür (200 adım). Step motorları sürmek için, sürekli gerilim uygulamak
PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI
PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Bilgisayar Mühendisliği Bölümü, Lefkoşa, KKTC E-mail: [email protected], Tel: (90) 392 2236464 ÖZET Bilgisayarlara
MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI
MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL 2016-2017 Bahar-FİNAL KISMI (NOT: Derslerde işlenen diğer örnekler, Lab. Deneyi ve Sayı Sistemleri de Final sınavına dahildir) BÖLÜM 7 - LOJİK
MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil 2013-2014 Bahar-Final
MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil 2013-2014 Bahar-Final BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan
MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil Bahar
MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil 2016-2017 Bahar (MİKRODENETLEYİCİLER I DERS NOTLARI nın devamıdır. Sadece VİZE için olan kısımdır) 6. BÖLÜM - ALT PROGRAMLAR Program içerisinde
Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk.
HARRAN ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk. 15 Nisan 2014 1) (10p) Mikroişlemcilerle Mikrodenetleyiceleri yapısal olarak ve işlevsel olarak karşılaştırarak
PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI
P I C 1 6 F 8 4 / P I C 1 6 F 8 7 7 K O M U T S E T İ PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1 Gecikme Programları Örnek 1: Tek bir döngü ile yaklaģık
5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI
MİKRO DENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan Ündil 2015-2016 Bahar-Vize (MİKRODENETLEYİCİLER I DERS NOTLARI nın devamıdır. Sadece VİZE için olan kısımdır) 5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI
MİKRODENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-Final Kısmı
MİKRODENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan ÜNDİL 2014-2015 Bahar-Final Kısmı (NOT: Derslerde işlenen diğer örnekler de Final sınavına dahildir) BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir
Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre
MİKRODENETLEYİCİLER Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre Mikrodenetleyici: Bir mikroişlemcinin
PIC16F877A nın Genel Özellikleri
BÖLÜM 3 PIC16F877A nın Genel Özellikleri 3.1 Mikrodenetleyici Mimarisi 3.2 PIC16Fxxx Komut Seti 3.3 PIC16F877A Bellek Organizasyonu 3.4 Giriş/Çıkış Portları 3.5 STATUS ve TRIS Kaydedicileri 3.6 Kesme ve
DERS 13 PIC 16F84 ile DONANIM SAYICI KULLANIMI İÇERİK KESME
DERS 13 PIC 16F84 ile DONANIM SAYICI KULLANIMI İÇERİK KESME Ders 13, Slayt 2 1 TMR0 SAYICISI Ram belleğin h 01 adresi TMR0 adlı özel amaçlı bir saklayıcı olarak düzenlenmiştir. Bu saklayıcı bir sayıcıdır.
LCD (Liquid Crystal Display )
LCD (Liquid Crystal Display ) Hafif olmaları,az yer kaplamaları gibi avantajları yüzünden günlük hayatta birçok cihazda tercih edilen Standart LCD paneller +5 V ile çalışır ve genellikle 14 konnektor lü
Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür.
BÖLÜM 4 4. PIC PROGRAMLAMA Herhangi bir dilde program yazarken, öncelikle kullanılacak dil ve bu dilin editörünü kullanabilmek önemlidir. Biz bu işlem için Mplab programını kullanacağız. Bu sebeple aslında
Yrd.Doç. Dr. Bülent ÇOBANOĞLU. Sakarya Üniversitesi, Teknoloji Fakültesi
B Yrd.Doç. Dr. Bülent ÇOBANOĞLU Sakarya Üniversitesi, Teknoloji Fakültesi Kesmeler Kesme (Interrupt), mikro denetleyicinin gerçekleştirdiği işleme bakmaksızın belirli durumların/olayların olması durumunda
Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }
Temrin1: PIC in PORTB çıkışlarından RB5 e bağlı LED i devamlı olarak 2 sn. aralıklarla yakıp söndüren programı yapınız. En başta PORTB yi temizlemeyi unutmayınız. Devre Şeması: İşlem Basamakları 1. Devreyi
BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB=00000000 BCF STATUS,5 ;bank0 a geçiş
+5V ĠġĠN ADI: PORTB DEKĠ LEDLERĠN ĠSTENĠLENĠ YAKMAK/SÖNDÜRMEK GND C F C F X R 5 U OSC/CLKIN RA0 OSC/CLKOUT RA RA RA RA/T0CKI PICFA RB RB RB RB RB RB 0 R R R R5 R R R R D D D D D5 D D D INCLUDE CONFIG P=FA
Hacettepe Robot Topluluğu
Hacettepe Robot Topluluğu PIC Assembly Dersleri 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı HUNRobotX - PIC Assembly Dersleri 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı Yazan:
ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ
T.C. MİLLÎ EĞİTİM BAKANLIĞI ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİ PROGRAMLAMA 523EO0020 Ankara, 2012 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında
BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü
BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar) Bus
DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü
DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü Ders 7, Slayt 2 1 PROGRAM 1 RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan iki 8-bit sayının toplamını hesaplayıp
BM-311 Bilgisayar Mimarisi
1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar)
İÇİNDEKİLER 1. KLAVYE... 11 2. KLAVYE RB0... 19 3. KLAVYE RBHIGH... 27 4. 4 DİSPLAY... 31
İÇİNDEKİLER 1. KLAVYE... 11 Satır ve Sütunlar...11 Devre Şeması...14 Program...15 PIC 16F84 ile 4x4 klavye tasarımını gösterir. PORTA ya bağlı 4 adet LED ile tuş bilgisi gözlenir. Kendiniz Uygulayınız...18
ÖĞRENME FAALİYETİ-1 1. MİKRODENETLEYİCİ PROGRAMI YAZMA
ÖĞRENME FAALİYETİ-1 AMAÇ ÖĞRENME FAALİYETİ-1 Uygun ortam sağlandığında kurulacak devre için eksiksiz olarak yapabileceksiniz. mikrodenetleyici programını ARAŞTIRMA Mikrodenetleyici çeşitlerini aaştırınız.
MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI
MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI S1. Aşağıdaki eleman ya da birimlerden hangisi genel bir bilgisayar sisteminin donanımsal yapısında yer almaz? a) Mikroişlemci (CPU) b) Bellek
T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ. Uzaktan Kumanda Edilen Lamba Dimmer inin Gerçekleştirilmesi
T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ Uzaktan Kumanda Edilen Lamba Dimmer inin Gerçekleştirilmesi BİTİRME ÖDEVİ Danışman Yrd. Doç. Dr. Murat UZAM Hazırlayan
PIC Mikrodenetleyicileri
PIC Mikrodenetleyicileri Intel 1976 da 8031/51 ailesini piyasaya sürdüğünde dünyanın en popüler mikroişlemcisi olmuştu. Bu işlemci dünya üzerinde 12 den fazla firma tarafından (İntel, Phillips, Dallas,
PROGRAMLANABİLİR ZAMANLAYICI
T.C. KARADENİZ TEKNİK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ PROGRAMLANABİLİR ZAMANLAYICI BİTİRME ÇALIŞMASI SULTAN ÜÇOK 203786 HAZİRAN,2011 TRABZON T.C. KARADENİZ TEKNİK
PIC Mikrodenetleyiciler. Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1
PIC Mikrodenetleyiciler PIC MCU= CPU + I/O pinleri+ Bellek(RAM/ROM) Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1 PIC Mikro denetleyici Programlama Assembly programlama dili, çoğu zaman özel alanlarda geliştirilen
Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin Programlanmasi: PIC Programlama Örnekleri -1
PIC Programlama Örnekleri -1 Sistem Gereksinimleri: PIC programlayicinin kullanilabilmesi için; Win98 ve üstü bir isletim sistemi Paralel port 60 MB veya daha üstü disk alani gerekmektedir. Ancak programlama
Mikro denetleyicili Uygulama devresi bileşenleri
Mikro denetleyicili Uygulama devresi bileşenleri Bir PIC mikro denetleyici ile uygulama gerçekleştirebilmek için ; Besleme devresi, Reset sinyali, Osilatör devresi, Uygulama devresi elemanlarına İhtiyaç
Hacettepe Robot Topluluğu
Hacettepe Robot Topluluğu Makaleler PIC ile LED Yakıp Söndüren Devre PIC ile LED Yakıp Söndüren Devre Canol Gökel - 13 Ekim 2006 Giriş Merhaba arkadaşlar, bu makalemizde PIC'e yeni başlayanlar için basit
PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI. Temel olarak bir PIC içerisinde de iki tür hafıza bulunur:
PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI Temel olarak bir PIC içerisinde de iki tür hafıza bulunur: 1. Program Hafızası (ROM,PROM,EPROM,FLASH) Programı saklar, kalıcıdır. 2. Veri Hafızası (RAM, EEPROM)
PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ
DERSĐN ADI : MĐKROĐŞLEMCĐLER II DENEY ADI : PIC 16F84 VE ĐKĐ BUTONLA BĐR LED KONTROLÜ PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ PIC 16F84 VE VAVĐYEN ANAHTAR ĐLE BĐR LED KONTROLÜ ÖĞRENCĐ ĐSMĐ : ALĐ METĐN
Hyper Terminal programı çalıştırıp Uygun COM portu ve iletişim parametrelerinin ayarları yapılıp bekletilmelidir.
DENEY 1: PIC 16F84 DEN BİLGİSAYARA VERİ GÖNDERME Bu uygulamada verici kısım PIC16F84, alıcı kısım ise bilgisayardır. Asenkron iletişim kurallarına göre her iki tarafta aynı parametreler kullanılacaktır.
PIC 16F877 nin kullanılması
PIC 16F877 nin kullanılması, dünyada kullanıma sunulmasıyla eş zamanlı olarak Türkiye de de uygulama geliştirenlerin kullanımına sunuldu., belki de en popüler PIC işlemcisi olan 16F84 ten sonra kullanıcılara
T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2
T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2 ANKARA 2013 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan yeterlikleri kazandırmaya yönelik
YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ. EasyPic6 Deney Seti Kullanım Kılavuzu
YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EasyPic6 Deney Seti Kullanım Kılavuzu İstanbul 2009 İçindekiler EasyPic6 Deney Setinin Tanıtımı... 1 PIC16F887
UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA UYGULAMA_05_01 UYGULAMA_05_01. Doç.Dr. SERDAR KÜÇÜK
UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA Doç.Dr. SERDAR KÜÇÜK PORTB den aldığı 8 bitlik giriş bilgisini PORTD ye bağlı LED lere aktaran MPASM (Microchip Pic Assembly) Doç. Dr. Serdar Küçük SK-2011 2
BÖLÜM 2 8051 Mikrodenetleyicisine Giriş
C ile 8051 Mikrodenetleyici Uygulamaları BÖLÜM 2 8051 Mikrodenetleyicisine Giriş Amaçlar 8051 mikrodenetleyicisinin tarihi gelişimini açıklamak 8051 mikrodenetleyicisinin mimari yapısını kavramak 8051
IŞIĞA YÖNELEN PANEL. Muhammet Emre Irmak. Mustafa Kemal Üniversitesi Mühendislik Fakültesi. Elektrik-Elektronik Mühendisliği Bölümü
IŞIĞA YÖNELEN PANEL Muhammet Emre Irmak Mustafa Kemal Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü e-posta: [email protected] ÖZET Işığa yönelen panel projesinin amacı,
BÖLÜM 1 ALT PROGRAMLAR 1.1.ALTPROGRAM NEDİR?
0 BÖLÜM 1 ALT PROGRAMLAR 1.1.ALTPROGRAM NEDİR? Programlamada döngü kadar etkili bir diğer kullanım şekli de alt programlardır. Bu sistemde işlemin birkaç yerinde lazım olan bir program parçasını tekrar
Analog Sayısal Dönüşüm
Analog Sayısal Dönüşüm Gerilim sinyali formundaki analog bir veriyi, iki tabanındaki sayısal bir veriye dönüştürmek için, az önce anlatılan merdiven devresiyle, bir sayıcı (counter) ve bir karşılaştırıcı
Bölüm 4 Ardışıl Lojik Devre Deneyleri
Bölüm 4 Ardışıl Lojik Devre Deneyleri DENEY 4-1 Flip-Floplar DENEYİN AMACI 1. Kombinasyonel ve ardışıl lojik devreler arasındaki farkları ve çeşitli bellek birimi uygulamalarını anlamak. 2. Çeşitli flip-flop
3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir?
3.2 PIC16F84 Yazılımı 3.2.1 PIC Assembly 3.2.1.1 Assembler Nedir? Assembler,bir text editöründe assembly dili kurallarına göre yazılmış olan komutları pıc in anlayabileceği heksadesimal kodlara çeviren
PİC BASİC PROFESSİONAL
PİC BASİC PROFESSİONAL Farklı Mikroişlemcilerin farklı Assembler kodları olması genellikle sorun olmuştur. Bu dezavantajdan kurtulmak için compiler lar geliştirilmiştir. C++ ve Basic dillerinde yazılanlar
DENEY 21 IC Zamanlayıcı Devre
DENEY 21 IC Zamanlayıcı Devre DENEYİN AMACI 1. IC zamanlayıcı NE555 in çalışmasını öğrenmek. 2. 555 multivibratörlerinin çalışma ve yapılarını öğrenmek. 3. IC zamanlayıcı anahtar devresi yapmak. GİRİŞ
BİLİŞİM TEKNOLOJİLERİ
T.C. MİLLÎ EĞİTİM BAKANLIĞI BİLİŞİM TEKNOLOJİLERİ MİKRODENETLEYİCİ Ankara, 2014 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan yeterlikleri kazandırmaya
MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme
PROGRAMIN ADI DERSIN KODU VE ADI DERSIN ISLENECEGI DÖNEM HAFTALIK DERS SAATİ DERSİN SÜRESİ ENDÜSTRİYEL ELEKTRONİK MİK.İŞLEMCİLER/MİK.DENETLEYİCİLER-1 2. Yıl, III. Yarıyıl (Güz) 4 (Teori: 3, Uygulama: 1,
MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR
MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR Bülent ÖZBEK Örnek Program -1- B Portuna bağlı LED leri Yakma Bu programda PIC16F84 mikrodenetleyicisinin B portuna bağlı 8 adet LED in yanması sağlanacaktır. Bunu
BÖLÜM 1: MİKRODENETLEYİCİLER
V İÇİNDEKİLER BÖLÜM 1: MİKRODENETLEYİCİLER ve PIC16F877A... 13 1.1 Giriş... 13 1.2 Mikrochip Mikrodenetleyici Ailesi... 14 1.2.1 PIC12CXXX/PIC12FXXX Ailesi... 15 1.2.2 PIC16C5X Ailesi... 15 1.2.3 PIC16CXXX/PIC16FXXX
BÖLÜM 9 (COUNTERS) SAYICILAR SAYISAL ELEKTRONİK. Bu bölümde aşağıdaki konular anlatılacaktır
SYISL ELETRONİ ÖLÜM 9 (OUNTERS) SYIILR u bölümde aşağıdaki konular anlatılacaktır Sayıcılarda Mod kavramı senkron sayıcılar senkron yukarı sayıcı (Up counter) senkron aşağı sayıcı (Down counter) senkron
Mikroişlemciler Laboratuar Deney Föyü
YILDIZ TEKNİK ÜNİVERSİTESİ MAKİNE FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ Mikroişlemciler Laboratuar Deney Föyü İçindekiler DENEYLER... 3 BUTON UYGULAMASI... 3 BUZZER... 4 7 SEGMENT DISPLAY İLE SAYICI...
http://nptel.ac.in/courses/webcourse-contents/iit KANPUR/microcontrollers/micro/ui/Course_home3_16.htm Yrd.Doç. Dr.
http://nptel.ac.in/courses/webcourse-contents/iit KANPUR/microcontrollers/micro/ui/Course_home3_16.htm B Yrd.Doç. Dr. Bülent ÇOBANOĞLU PIC MİKRODENETLEYİCİ VE AİLESİ PIC, Microchip firması tarafından üretilen,
Teorik Bilgi DENEY 7: ASENKRON VE SENKRON SAYICILAR
DENEY 7: ASENKRON VE SENKRON SAYICILAR Deneyin Amaçları Asenkron ve senkron sayıcı devre yapılarının öğrenilmesi ve deneysel olarak yapılması Deney Malzemeleri 74LS08 Ve Kapı Entegresi (1 Adet) 74LS76
ONDOKUZ MAYIS ÜNİVERSİTESİ
ONDOKUZ MAYIS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ MİKROİŞLEMCİLER LABORATUVARI PİC UYGULAMA NOTLARI BÖLÜM 1. 1.1 16F84 Mickrodenetleyicisi: PIC16F84 18 pinli bir mikrodenetleyicidir.
Bu yürütme, Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)
MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Mikroişlemci bir programının yapmak istediği işlemleri, (hafızada bulunan komutları) sırasıyla ile işleyerek icra eder (yürütür). Bu yürütme, 1. Komutun Program
T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ELEKTRİK ELEKTRONİK TEKNOLOJİSİ
T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ELEKTRİK ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİ PROGRAMLAMA ANKARA 2006 Milli Eğitim Bakanlığı tarafından
NB Ekran Seri Port Üzerinden Veri Okuma/Yazma. Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma
NB Ekran Seri Port Üzerinden Veri Okuma/Yazma Genel Bilgi Protokol Oluşturma Veri Okuma Veri Yazma Genel Bilgi NB Ekranlar üzerinde 2 adet seri port bulunmaktadır. Bu portları kullanarak noprotocol modunda
8 Ledli Havada Kayan Yazı
8 Ledli Havada Kayan Yazı Hazırlayan Eyüp Özkan Devre Şemasının ISIS Çizimi Devre şemasından görüldüğü gibi PIC16F84A mikro denetleyicisinin Port B çıkışlarına 8 adet LED ve dirençler bağlı. 4MHz lik kristal
PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu
PIC UYGULAMALARI STEP MOTOR UYGULAMLARI Step motor Adım motorları (Step Motors), girişlerine uygulanan lojik sinyallere karşılık analog dönme hareketi yapan fırçasız, sabit mıknatıs kutuplu DC motorlardır.
9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI
1 9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI Mikroişlemci temelli sistem donanımının en önemli kısmı merkezi işlem birimi modülüdür. Bu modülü tasarlamak için mikroişlemcinin uç işlevlerinin çok iyi bilinmesi
Configuration bitleri ve reset durumları hakkında kavramlar
PİC HAKKINDA KISA KISA BİLGİLER-1 Pic mikrodenetleyicilerinin 8 bit, 16 bit ve 32 bit işlemci çeşitleri vardır. Çoğu uygulamalarımız için 8 bit yeterli olmaktadır. Bu kursta kullanacağımız pic işlemcisi,
MANCHESTER MODUL ASM YAZILIM NOTU
MANCHESTER MODUL ASM YAZILIM NOTU SUBAT 2005 PSF-UN-03 1 SUBAT 2004 ***************************************************************************/ Uygulama Notu UN-12M01v01 MANCHESTER MODUL ASM YAZILIM NOTU
İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.
İŞLEMCİLER (CPU) Mikroişlemci Nedir? Mikroişlemci, hafıza ve giriş/çıkış birimlerini bulunduran yapının geneline mikrobilgisayar; CPU' yu bulunduran entegre devre çipine ise mikroişlemci denir. İşlemciler
UYGULAMA 1 24V START CPU V LO. Verilen PLC bağlantısına göre; START butonuna basıldığında Q0.0 çıkışını aktif yapan PLC programını yazınız.
UYGULAMA 1 24V 0V START I1.5 I1.4 I1.3 I1.2 I1,1 I1.0 I0.7 I0.6 I0.5 I0.4 I0.3 I0.2 I0.1 I0.0 CPU-224 Q1.1 Q1.0 Q0.7 Q0.6 Q0.5 Q0.4 Q0.3 Q0.2 Q0.1 Q0.0 0V 24V LO Verilen PLC bağlantısına göre; START butonuna
Yüksek Performanslı RISC CPU Özellikleri: CMOS Teknolojisi: Dış Yüzeysel Özellikler: Özel Mikrokontrolör Özellikleri: 1.
Yüksek Performanslı RISC CPU Özellikleri: Öğrenmek için yalnızca 35 tek kelime komutları Đki dönüşümlü program komutları haricindeki bütün komutlar tek dönüşümde (400 ns @ 10 MHz) Đşletim hızı DC-10 MHz
Deney 6: Ring (Halka) ve Johnson Sayıcılar
Deney 6: Ring (Halka) ve Johnson Sayıcılar Kullanılan Elemanlar xlm Entegresi, x0 kohm direnç, x00 kohm direnç, x0 µf elektrolitik kondansatör, x00 nf kondansatör, x 7HC7 (D flip-flop), x 0 ohm, x Led
T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ BİTİRME ÖDEVİ
T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ BİTİRME ÖDEVİ ÜÇ ODA BİR SALON BİR EV İÇİN HIRSIZ ALARMININ GERÇEKLEŞTİRİLMESİ HAZIRLAYAN Cevdet Selçuk KAHYALAR
PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI
PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI Bazı pinler çevre birimleri ile çoklanmıştır. Peki bu ne demek? Mesela C portundaki RC6 ve RC7 pinleri seri iletişim için kullanılır. Eğer seri iletişimi
Haftalık Ders Saati Okul Eğitimi Süresi
DERSİN ADI BÖLÜM PROGRAM DÖNEMİ DERSİN DİLİ DERS KATEGORİSİ ÖN ŞARTLAR SÜRE VE DAĞILIMI KREDİ DERSİN AMACI ÖĞRENME ÇIKTILARI VE YETERLİKLER DERSİN İÇERİĞİ VE DAĞILIMI (MODÜLLER VE HAFTALARA GÖRE DAĞILIMI)
T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ
T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ GENEL AMAÇLI UZAKTAN KUMANDA MODÜLÜNÜN TASARIMI VE GERÇEKLEŞTİRİLMESİ Danışman Yrd. Doç. Dr. Murat UZAM Hazırlayan
T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ
T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ 1 7. HAFTA Flip-Floplar RS Flip Flop, Tetiklemeli RS Flip Flop, JK Flip Flop, D Tipi Flip Flop, T Tipi Flip Flop Tetikleme
T.C. MİLLÎ EĞİTİM BAKANLIĞI ELEKTRİK ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİYLE ANALOG İŞLEMLER 523EO0022
T.C. MİLLÎ EĞİTİM BAKANLIĞI ELEKTRİK ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİYLE ANALOG İŞLEMLER 523EO0022 Ankara, 2012 I Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında
3.3. İki Tabanlı Sayı Sisteminde Dört İşlem
3.3. İki Tabanlı Sayı Sisteminde Dört İşlem A + B = 2 0 2 1 (Elde) A * B = Sonuç A B = 2 0 2 1 (Borç) A / B = Sonuç 0 + 0 = 0 0 0 * 0 = 0 0 0 = 0 0 0 / 0 = 0 0 + 1 = 1 0 0 * 1 = 0 0 1 = 1 1 0 / 1 = 0 1
8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:
8051 Ailesi 8051 MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur. 8051 çekirdeğinin temel özellikkleri aşağıda verilmiştir: 1. Kontrol uygulamaları için en uygun hale getirilmiş
Adres Yolu (Address Bus) Bellek Birimi. Veri Yolu (Databus) Kontrol Yolu (Control bus) Şekil xxx. Mikrodenetleyici genel blok şeması
MİKRODENETLEYİCİLER MCU Micro Controller Unit Mikrodenetleyici Birimi İşlemci ile birlikte I/O ve bellek birimlerinin tek bir entegre olarak paketlendiği elektronik birime mikrodenetleyici (microcontroller)
Şekil 3-1 Ses ve PWM işaretleri arasındaki ilişki
DARBE GENİŞLİK MÖDÜLATÖRLERİ (PWM) (3.DENEY) DENEY NO : 3 DENEY ADI : Darbe Genişlik Modülatörleri (PWM) DENEYİN AMACI : µa741 kullanarak bir darbe genişlik modülatörünün gerçekleştirilmesi.lm555 in karakteristiklerinin
6. DİJİTAL / ANALOG VE ANALOG /DİJİTAL ÇEVİRİCİLER 1
6. DİJİTAL / ANALOG VE ANALOG /DİJİTAL ÇEVİRİCİLER 1 Günümüzde kullanılan elektronik kontrol üniteleri analog ve dijital elektronik düzenlerinin birleşimi ile gerçekleşir. Gerilim, akım, direnç, frekans,
Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş
Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş 29.11.2016 İÇERİK Arduino Nedir? Arduino IDE Yazılımı Arduino Donanım Yapısı Elektronik Bilgisi
5.Eğitim E205. PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628:
5.Eğitim E205 PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628: PIC16F628 18 pine sahiptir.bu pinlerin 16 sı giriş / çıkış
MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2014-2015 Güz (Vize sonuna kadar olan kısımdır.)
MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2014-2015 Güz (Vize sonuna kadar olan kısımdır.) 1. BÖLÜM GİRİŞ ve SAYI SİSTEMLERİ 1.1. Devrelendirilmiş Lojik Şimdiye kadar Sayısal Devreler ve
