Hacettepe Robot Topluluğu
|
|
- Derya Umut Aygün
- 8 yıl önce
- İzleme sayısı:
Transkript
1 Hacettepe Robot Topluluğu
2 PIC Assembly Dersleri 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı
3 HUNRobotX - PIC Assembly Dersleri 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 4 Haziran 2007 Kesmelere Giriş Bu derse kesme (interrupt) tanımıyla başlayacağız ve TIMER kesmesinin kullanımı ile devam edeceğiz. Kesmeyi şu şekilde açıklayabiliriz Armada'dan çıktınız ve Ümitköy e doğru araba ile gidiyorsunuz. Birden telefonunuz çalıyor ve arabayı kenara çekip konuşuyorsunuz, konuşma bittikten sonra da yola kaldığınız yerden devam ediyorsunuz. Burada telefonun çalması kesme oluşturmuş oluyor. Araba kullanmak ise ana programınız. Araba kullanırken kesme oluştu, kesme programındaki işlemi yaptınız ve ana programa kaldığınız yerden devam ettiniz. Kesme kullanımı programımızı çok kolaylaştırabilen ve karmaşıklıktan kurtarabilen bir araçtır. Ne zaman olacağını bilmediğiniz bir durum karşısında programınızın bazı işlemler gerçekleştirmesini istiyorsanız 2 seçeneğiniz vardır: Ya ne zaman olacağını bilmediğiniz durumun oluşup oluşmadığını sürekli kontrol etmek ya da kesme kullanarak (sürekli siz programda kontrol etmezsiniz ama işlemci siz farkında olmadan kontrol eder) sadece o durum oluştuğunda gerekli işlemleri yapmak. Eğer programınız birçok işlem yapıyorsa kesmeler büyük kolaylık sağlar. Geçen derste TRISA ve TRISB yazmaçlarını görmüştük, bunlar gördüğümüz ilk ayar yazmaçlarıydı. TRISA yazmacını kullanarak PORTA'daki hangi ikililerin (pin'lerin) çıkış hangilerinin ise giriş olarak kullanılacağını ayarlıyorduk. PIC'lerde kesmeleri ayarlamak için kullanacağımız yine INTCON diye bir yazmacımız var. Hem bank 1'de hem de bank 0'da yer alan bir yazmaç olduğu için INTCON 'u programlamak için bank değiştirmeye ihtiyacımız olmayacak. 16f84'te kesmelerin oluşabileceği durumlar şunlardır: 1- Eeprom'a yazma işlemi tamamlandığında, 2- Timer zamanlayıcısı taştığı zaman (yani 255'ten tekrar 0'a döndüğünde), 3- PORTB'nin 0. ikilisinden gelen harici bir kesme olduğunda, 4- PORTB'nin 4, 5, 6 veya 7. ikililerinde bir değişme olduğunda. Siz programınızın yapacağı işleme göre INTCON yazmacını kullanarak bunlardan birisini ya da istediğiniz kadarını kullanabilirsiniz.
4 Şimdi sıra ile INTCON'daki ikililerin ne manaya geldiğine bakalım. 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı O/Y-0 O/Y-0 O/Y-0 O/Y-0 O/Y-0 O/Y-0 O/Y-0 O/Y-X GIE EEIE T0IE INTE RBIE T0IF INTF RBIF ikili 7 ikili 0 GIE: Global Interrupt Enable Đkilisi EEIE: EE Write Complete Interrupt Enable Đkilisi T0IE: TMR0 Overflow Interrupt Enable Đkilisi INTE: RB0/INT External Interrupt Enable Đkilisi RBIE: RB Port Change Interrupt Enable Đkilisi T0IF: TMR0 Overflow Interrupt Flag Đkilisi INTF: RB0/INT External Interrupt Flag Đkilisi RBIF: RB Port Change Interrupt Flag Đkilisi O: Okunabilir ikili Y: Yazılabilir ikili 0: Temizlenmiş ikili 7. ikili: GIE INTCON Yazmacının Đkilileri 1 yaparsak bütün kesmeler açık (herhangi bir kesme kullanacaksanız 1 olmalı), RETFIE komutu ile otomatik olarak 1 yapılır. 0 yaparsak bütün kesmeler kapalı (hiçbir kesmeyi kullanmayacaksanız 0 olmalı), herhangi bir sebeple program kesmeye girdiğinde "0" yapılır. 6. ikili: EEIE Eeprom'a yazma işlemi bittiğinde kesme oluşmasını istiyorsanız bu biti "1" yapmalısınız, kullanmayacaksanız "0". 5. ikili: T0IE Eğer programınızda timer kullanıyorsanız ve istediğiniz kadar saydıktan sonra kesme oluşmasını istiyosanız T0IE "1" olmalı, kullanamayacaksanız "0". 4. ikili: INTE Eğer PORTB, 0'a dışarıdan gelen bir veri ile programınız kesmeye girsin istiyorsanız bu bit "1"
5 HUNRobotX - PIC Assembly Dersleri olmalı, değilse "0" olmalı. PORTB, 0'a 1 gelince mi yoksa 0 gelince mi kesmeye girmesini istediğinizi ise OPTION_REG yazmacından ayarlıyoruz. Bundan bu dersin diğer konusunda bahsedilecek. 3. ikili: RBIE PORTB'nin son 4 ikilisini (4, 5, 6, 7) giriş olarak ayarladıysanız ve bu girişlerde herhangi bir değişim olduğunda haberiniz olsun istiyorsanız bu kesme çeşidini kullanabilirsiniz ve bu durumda bu ikili "1" olmalı, kullanmayacaksanız "0" olmalı. 2. ikili: T0IF T0IE ikilisini (5. ikili) "1" yaptıysanız ve timer 0 ile kesme oluşursa bu ikili 1 olur ve programınız kesmeye girer. Böylece kesme programınıza girdiğinizde kesmenin nasıl oluştuğunu anlayabilirsiniz. Kesmeden dönüşte bunu kendiniz "0" yapmanız gerekir aksi taktirde işlemci bir daha timer 0 vasıtası ile kesmeye girmeyecektir. Bu şekilde eğer bir daha timer 0 ile kesmeye girmesini istemiyorsanız bu ikiliyi geri 0 yapmazsınız ve bir daha da timer 0 ile kesmeye girmez. 1. ikili: INTF INTE ikilisini (4. ikili) "1" yaptıysanız ve PORTB, 0 ile kesme oluşursa bu bit 1 olur ve programınız kesmeye girer. Böylece kesme programınıza girdiğinizde kesmenin nasıl oluştuğunu anlayabilirsiniz. Kesmeden dönüşte bunu kendiniz "0" yapmanız gerekir aksi taktirde işlemci bir daha PORTB, 0 vasıtası ile kesmeye girmeyecektir. Bu şekilde eğer bir daha PORTB, 0 ile kesmeye girmesini istemiyorsanız bu ikiliyi geri 0 yapmazsınız ve bir daha da PORTB, 0 ile kesmeye girmez. 0. ikili: RBIF RBIE ikilisini (3. ikili) "1" yaptıysanız ve PORTB'nin son 4 ikilisi (4, 5, 6, 7) ile kesme oluşursa bu ikili 1 olur ve programınız kesmeye girer. Böylece kesme programınıza girdiğinizde kesmenin nasıl oluştuğunu anlayabilirsiniz. Kesmeden dönüşte bunu kendiniz "0" yapmanız gerekir aksi taktirde işlemci bir daha PORTB'nin son 4 ikilisi (4, 5, 6, 7) vasıtası ile kesmeye girmeyecektir. Bu şekilde eğer bir daha PORTB'nin son 4 ikilisi (4, 5, 6, 7) ile kesmeye girmesini istemiyorsanız bu ikiliyi geri 0 yapmazsınız ve bir daha da PORTB'nin son 4 ikilisi (4, 5, 6, 7) ile kesmeye girmez. Örnek Şimdi bir örnek yapalım ve bu örnekte de ilk derste yazdığımız programı kullanalım. Elimizde 1 düğme ve 1 LED var, düğmeye her bastığımızda LED durum değiştirecek. Yani yanıyorsa sönecek sönüyorsa yanacak. Bunun içinde PORTB, 0 harici kesmesini kullanalım. Tahmin ettiğiniz gibi düğme PORTB, 0'a bağlı olacak. LED'i de PORTB, 1'e bağlayacağız.
6 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı Assembly Programı Öncelikle PORTB'nin gerekli pin'lerini giriş/çıkış olarak ayarlayalım: BSF STATUS, RP0 ; Bank 1'e geçtik. MOVLW B' ' MOVWF TRISB ; Port B'nin 0. ikilisi hariç tüm ikililerini çıkış ; yaptık. BCF STATUS, RP0 ; Geri bank 0'a geçtik. Şimdi INTCON yazmacını ayarlayalım. MOVLW B' ' ; 7. ikili 1, dolayısı ile istediğimiz kesmeleri ; kullanabiliriz. 4. ikili 1, PORTB kesmesini ; kullanacağız, geri kalan ikililerle bu ; programda işimiz olmadığı için onları "0" ; yaptık. MOVWF INTCON GOTO $ ; GOTO komutunda "$" işareti bulunulan satırı ifade ; ediyordu, yani bulunduğun satırda kal demek oluyor bu ; komutun bütünü. Kesmeyi ayarladıktan sonraki işlem kesme alt programını yazmak olmalı. Kesme programları 0x004 numaralı program hafızasından başlayarak yazılıyordu, o zaman ORG komutu ile gerekli adresi belirtmeliyiz. Ama programın ortalarına bunu yazamayız o yüzden şimdi yazacağımız kesme programını sonradan programın üst tarafına taşımalıyız. ORG 0x000 ; Program buradan başlayacak,
7 HUNRobotX - PIC Assembly Dersleri GOTO main ; Sonra da ana programa gidecek. ORG 0x004 ; Kesme alt programı ise buradan başlayacak. BTFSS INTCON, INTF ; Kesme PORTB, 0 ile mi oluşmuş? GOTO KESMEDENCIK ; PORTB, 0 ile oluşmadıysa yapacak işlemim yok, ; kesmeden çık. MOVLW B' ' ; PORTB, 1'i bu sayı ile XOR yaparsam; PORTB, 1 ; işlemden önce "1" ise "0" olur, "0" ise "1" ; olur yani yanıyosa söner sönükse yanar. XORWF PORTB, F BTFSC PORTB, 0 ; PORTB, 0 daki düğme bırakıldı mı? GOTO $-1 ; Bırakılmadıysa bırakılana kadar bekle, çünkü düğmeye ; basılı konumdayken kesmeden çıkarsa, yine düğmeye ; basılmış gibi algılanıp tekrar kesmeye girer ve ben ; bunu istemem. KESMEDENCIK BCF INTCON, INTF ; Kesmeden çıkarken INTCON, INTF'i "0" yapmalıyım ; ki tekrar kesmeye girebilrsin. RETFIE ; Ana programda kaldığın yere geri dön. Şimdi komutların hepsini yerli yerine yazarak programımızı düzenleyecek olursak: list p=16f84 ; Projenizi hangi işlemci ile yapacağınızı ; belirtiyorsunuz. Bu satırı programın başına yazdık. CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC ; Kullanacağınız donanım ; konusunda bilgi veriyoruz (Bkz: 2. Ders notları) #include <p16f84.inc> ; (Bkz: 2. Ders notları) #DEFINE PORTB, 1 LED ; Eğer yapacağınız tanımlama varsa onlar da ; buraya gelecek. ORG 0x000 ; Program buradan başlayacak, GOTO main ; Sonra da ana programa gidecek. ORG 0x004 ; Kesme alt programı ise buradan başlayacak. BTFSS INTCON, INTF ; Kesme PORTB, 0 ile mi oluşmuş? GOTO KESMEDENCIK ; PORTB, 0 ile oluşmadıysa yapacak işlemim yok, ; kesmeden çık. MOVLW B' ' ; PORTB, 1'i bu sayı ile XOR yaparsam PORTB, 1 ; işlemden önce "1" ise "0" olur, "0" ise "1" ; olur. Yani LED, yanıyorsa söner sönükse yanar. XORWF PORTB, F BTFSC PORTB, 0 ; PORTB, 0'daki düğme bırakıldı mı? GOTO $-1 ; Bırakılmadıysa bırakılana kadar bekle, çünkü düğmeye ; basılı konumdayken kesmeden çıkarsa, yine düğmeye ; basılmış gibi algılanıp tekrar kesmeye girer ve ben ; bunu istemem. KESMEDENCIK BCF INTCON, INTF ; Kesmeden çıkarken INTCO, INTF'i "0" yapmalıyım ; ki tekrar kesmeye girebilirsin.
8 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı RETFIE ; Ana programda kaldığın yere geri dön. main BSF STATUS, RP0 ; Bank 1'e geçtik. MOVLW B' ' MOVWF TRISB ; Port B nin 0. ikilisi hariç tüm ikililerini çıkış ; yaptık. BCF STATUS, RP0 ; Geri bank 0'a geçtik MOVLW B' ' ; 7. ikili 1, dolayısı ile istediğimiz kesmeleri ; kullanabiliriz. 4. ikili 1, PORTB kesmesini ; kullanacağız. Geri kalan ikililerle bu programda ; işimiz olmadığı için onları "0" yaptık. MOVWF INTCON GOTO $ ; GOTO komutunda "$" işareti bulunulan satırı ifade ediyordu. ; Yani bu komutun bütünü "bulunduğun satırda kal" demek ; oluyor. END ; Programımız burada bitiyor. Programımızdaki "GOTO $" satırı yerine uzunca bir program gelebilirdi. Bu durumda bile bizim düğme ve LED'in çalışmalarında hiçbir aksama olmaz, işlemci LED'i yakıp söndürmek için diğer işlemleri bitirmeyi beklemezdi. Bunu kendiniz GOTO $ komutu yerine bir program yazarak deneyiniz. Eeprom kesmesi 6. derste ayrıntılı olarak anlatılacağından burada bahsetmeyeceğim. PORTB'nin son 4 ikilisi ile ilgili kesmede (veya herhangi başka bir konuda) ise anlaşılmayan birşey varsa forumda sorabilirsiniz Kesme Kullanırken Dikkat Edilmesi Gerekenler 1- Programınız ana programın herhangi bir yerinde iken kesme koşulları gerçekleşebilir ve bu durumda ana programda kullandığınız değişkenlerin içerikleri, mesela W yazmacının içeriği ve SFR'lerin içerikleri kesmeden çıkışta değişime uğramış olabilir. Bu yazmaçlar kesme programında da kullanılıyorsa ve değiştiriliyorsa, kesme programının başında bu yazmaçların yedeğini almalısınız ve kesmeden çıkarken eski değerlerini geri yüklemelisiniz, 2-1'den fazla kaynaktan kesme alıyorsanız (mesela hem timer, hem PORTB, 0) kesme programının başında hangi nedenle kesme oluştuğunu kontrol edip ona göre gerekli işlemleri yapmalısınız, 3- Kesme programından çıkarken, hangi kesme oluştu ise INTCON'daki o kesmeye ait interrupt flag ikilisini tekrar pasif (0) yapmalısınız ki tekrar o kaynaktan kesme oluşabilsin.
9 HUNRobotX - PIC Assembly Dersleri Timer 16F84'ün içinde dahili olarak zamanlama veya sayma işlemlerinizi kolaylaştırması için timer (geri sayım) bileşeni bulunmaktadır. Bunun ismi TIMER 0'dır ve TMR0 yazmacı vasıtasıyla içeriği kontrol edilir, OPTION_REG vasıtası ile de ayarları yapılır. O/Y-1 O/Y-1 O/Y-1 O/Y-1 O/Y-1 O/Y-1 O/Y-1 O/Y-1 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 ikili 7 ikili 0 RBPU: Global Interrupt Enable Đkilisi INTEDG: Interrupt Edge Select Đkilisi T0CS: TMR0 Clock Source Select Đkilisi T0SE: TMR0 Source Edge Select Đkilisi PSA: Prescaler Assignment Đkilisi PS2-PS0: Prescaler Rate Select Đkilileri O: Okunabilir ikili Y: Yazılabilir ikili 1: Kurulmuş ikili Her yazmaç gibi bu da 8 ikililik bir yazmaçtır ikilileri yazmacı ayarlamak için kullanılır. 7. ikili: RBPU Hatırlarsanız bir düğme bağlarken, eğer düğmeye basılınca "1" gelmesini istiyorsak düğmenin bir tarafını direk "+"ya diğer tarafını ise bir dirençle "-"ye ve PIC'e bağlıyorduk. (yukarıdaki resimdeki gibi). Bu işleme pull-down denir. Yani düğmeye basılmadığı anda girişi "0" seviyesinde tutmak için kullanılır. Düğmeye basılmazken PIC bir direnç vasıtasıyla "-"ye bağlı iken düğmeye basılınca direk "+" ya bağlı olur ve bu sayede düğmeye basılınca "+" basılmazken de "-" gelir. Eğer bağlantıları değiştirip dirençli kısmı "+"ya bağlasaydık ve diğer kısmı da direk "-"ye bağlasaydık bu işleme pull-up denirdi. OPTION Yazmacının Đkilileri Đşlemcinin içinde de opsiyonel olarak direnç bağlamanıza gerek duymadan pull-up işlemini yapabilirsiniz ama sadece PORTB için. Eğer bu ikiliyi 1 yaparsanız pull-up dirençlerini işlemcinin içinden, haricen kullanmadan bağlayabilirsiniz. Eğer "0" yaparsanız kullanmazsınız.
10 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı 6. ikili: INTEDG Eğer PORTB, 0'ı kesme işlemi için kullanıyorsak, bu bacağa "0" gelince mi kesme olacak yoksa "1" gelince mi kesme olacak bunu değiştirebiliriz. Eğer bu ikili "0" olursa "0" gelince, "1" olursa "1" gelince kesme gerçekleşir. 5. ikili: T0CS Timer 0'da sinyal kaynağı olarak 2 seçeneğimiz var (hani ya zaman sayacak, ya da istediğimiz bir şeyi sayacak ya). Đşlemciye bağlamış olduğumuz osilatörü (kristali) ya da dışarıdan vereceğimiz bir veriyi kaynak olarak kullanabiliriz. Eğer dışarıdan bir kaynak vereceksek bunun verileceği yer PORTA, 4'tür. Bu bit "1" olursa timer 0 kaynağını PORTA, 4'ten alır, eğer "0" olursa timer 0 kaynağını osilatörden alır. Timer 0 kaynağı osilatör olarak belirtilirse Osc/4 olarak kaynağı kullanır. Yani 4 MHz lik kristal kullanıyorsanız, timer 0'ın kaynağı 1 MHz'tir yani saniyede 1 milyon defa sinyal algılıyordur. 4. ikili: T0SE Bu ikili "1" olursa timer 0, döngü sinyalinin düşen kenarı ile sayar, "0" olursa çıkan kenarı ile sayar. Düşen kenar: Bir düğmeye basınca + geldiğini düşünelim. O zaman düğmeyi bıraktığımız an +'dan -'ye geçmiş ve dolayısı ile düşen kenar üretmiş oluyoruz. Çıkan kenar: Düğmeye basınca + geliyorsa, düğmeye bastığımızda çıkan kenar üretmiş oluruz. Bu durumları şekilde görerek neden "düşen kenar" ve "çıkan kenar" tanımlarının kullanıldığını daha iyi anlayabiliriz: Sinyalimiz (Volt) 5 (Yani +) Düşen Kenar 0 (Yani -) Zaman Çıkan Kenar 3. ikili: PSA Bu ikili "0" ise önbölücü, timer 0 için kullanılır; "1" ise WDT için kullanılır. WDT'yi daha sonraki
11 HUNRobotX - PIC Assembly Dersleri derslerde göreceğiz. Önbölücü ise gönderdiğimiz sinyalleri gruplandırarak her grubun 1 sinyal olarak kabul edilmesini sağlar. Mesela önbölücü değeri 8 ise, her sinyalde timer 1 artacağına 8 sinyalde 1 artar ve 0. ikililer: Bu bitler ile önbölücünün değeri ayarlanır. Đkililerin Değerleri TMR0 Oranı WDT Oranı : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : : : 1 1 : 2 1 : 4 1 : 8 1 : 16 1 : 32 1 : 64 1 : 128 Tablo 1: Önbölücü Oran Seçimi Đkilileri Eğer bu ikilileri 000 olarak ayarlarsak önbölücü değeri 2 olur, yani her 2 sinyal geldiğinde timer 0, 1 sinyal gelmiş gibi işlem yapar. Eğer 256 sinyalde 1 sinyal gelmiş gibi davranmasını istiyorsak bu 3 ikiliyi 111 olarak ayarlamalıyız. Örnek Kendi kendine yanıp sönen bir LED yapalım, fakat bu yanıp sönmedeki zamanlamayı timer ile ayarlayalım. LED'imiz PORTA, 0'a bağlı olsun ve saniyede 2 defa yanıp sönsün. Saniyede 2 defa yanıp sönmesi için her yanma ve sönme arasında ¼ saniye yani 250 milisaniye olsun. Bu gecikmeyi sağlamak için biraz matematik hesabı ile önbölücü ayarlarını yapmalıyız. Eğer önbölücü ayarları yeterli gelmezse, kesme hizmet programı içerisine birkaç satırlık bir tekrarlama algoritması ekleyerek zamana ince ayar çekebiliriz. Önbölücü Ayarlarının Yapılması Eğer 4 Mhz'lik kristal kullanıyorsak 1 mikrosaniye de TMR0 yazmacının içeriği 1 artacak demiştik. TMR0, 8 ikililik bir yazmaç olduğuna göre maksimum 255'e kadar artabilir. Önbölücü ayarlanarak bu 1 mikrosaniyelik sürenin değiştirilebileceğini söylemiştik. Eğer önbölücü 16 olursa, TMR0'ın içeriği 16 mikrosaniyede 1 artacaktır. Bu da demektir ki sağlayabileceğimiz maksimum gecikmeyi 16 kat arttırdık. 4 Mhz kullanılarak toplam sağlanabilecek gecikmeye bakalım: Her TMR0 artması için gerekli gecikme TMR0 ' ın sayacağı miktar önbölücü değeri
12 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı = 1x256x256=65536 mikrosaniye = milisaniye Görüldüğü gibi maksimum sağlanabilecek gecikme bizim gereksinimimizin çok altında. Bu durumda kesme hizmet programında kesmeye girilen miktarı saydırarak, gecikme miktarını arttırmamız gerekecek. Bunu en yakın olarak sağlamak için hesaplarımızı yapalım: 50 milisaniyelik gecikme sağlarsak bunu da kesme alt programında 5 kere saydırırsak ihtiyacımız olan 250 milisaniyelik gecikmeyi sağlamış oluruz. 50 milisaniyelik gecikme için, önbölücüyü 256 olarak ayarlarsak ve TMR0 ile 195 saydırırsak =49.92 milisaniyelik bir gecikme hesaplamış oluruz. Bu da bizim için yeterli. TMR0 256 olunca taşıyor, kesme oluşturuyor demiştik. 195 saydırmak için TMR0'ı öyle bir değerden başlatmalıyız ki 195 sayınca 256'ya ulaşmalı, bu değer de tabii ki =61 'dir. Yani TMR0 saymaya başlamadan önce içeriğine 61 sayısını yüklemeliyiz. Kesme alt programında da 5 kere saydırma işlemini yaptığımızda gerekli gecikme programı yazılmış olacak. Assembly Programı list p=16f84a ; Denetleyiciyi tanımladık. #include <p16f84a.inc> ; Denetleyicinin kendisine has ; tanımlamalarını yüklemek için ; kullanılmıştır. CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC #DEFINE LED PORTA,0 SAYAC EQU 0X19 ; Kesme programında 5 kere saydırma işlemi için ; kullanılacak ORG 0x000 ; Denetleyicinin reset vektör adresi, reset yaparsak ; Program buradan devam eder GOTO BASLA ORG 0X004 DECFSZ SAYAC ; SAYAC 1 azaltıldı, 0 ise 1 komut atlandı. GOTO KESMEDENDON ; SAYAC "0" değilse RETFIE ile tekrar kesmenin ; oluştuğu adrese geri dönüldü. MOVLW D'5' ; Eğer SAYAC "0" olduysa buraya atlanacak ve bir sonraki ; kesmeye hazırlık olması için tekrar SAYAC yazmacına ; desimal 5 değeri yüklendi. MOVWF SAYAC MOVLW B' ' ; LED bağlı yer olan PORTA'da XOR işlemi ile ; durum değiştirildi, yanıyorsa söndürüldü, ; sönükse yakıldı. XORWF PORTA KESMEDENDON MOVLW D'61' MOVWF TMR0
13 HUNRobotX - PIC Assembly Dersleri BCF INTCON,T0IF ; Tekrar TMR0 kesmesi ile kesme oluşabilmesi ; için INTCON, T0IF = 0 yapıldı. RETFIE ; Programda kalınan yere geri dönüldü. BASLA BSF STATUS,RP0 ; BANK1'e geçildi. BCF TRISA, 0 ; TRISA, 0 "0" yapılarak, PORTA, 0 çıkış yapıldı MOVLW B' ' ; Đlgili ikililerle ilgili açıklama ders içeriğinde ; verilmiştir. MOVWF OPTION_REG BCF STATUS,RP0 ; BANK0'a geçildi. BCF LED ; LED'in ilk konumu sönük olarak ayarlandı. MOVLW B' ' MOVWF INTCON MOVLW D'61' MOVWF TMR0 MOVLW D'5' MOVWF SAYAC END Kaynaklar ; Đlgili ikililerin açıklaması ders içeriğinde ; verilmiştir. ; Yaptığımız hesaplamada TMR0'a 61 yükleyerek ; istediğimiz zaman gecikmesini sağlamıştık. GOTO $ ; Bu komut yerine 1000 satırlık bir program da yazsak Antrak Gazetesi PIC 16F84 Datasheet Bağlantılar ; LED'imizin istediğimiz zaman aralığında yanıp sönmesine ; zeval gelmez. Đşte bu yüzden kesme denen şeyi icat ; etmişler.
# 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ı
Detaylı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
Detaylı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
Detaylı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
Detaylı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
Detaylı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
Detaylı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
Detaylı# 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
Detaylı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.
Detaylı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ı
Detaylı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ı
Detaylı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: dogan@neu.edu.tr, Tel: (90) 392 2236464 ÖZET Bilgisayarlara
Detaylı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
Detaylı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: dogan@neu.edu.tr,
Detaylı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ü
Detaylı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
DetaylıBÖLÜM 2 INTERRUPT ve TIMER İŞLEMLERİ
BÖLÜM 2 INTERRUPT ve TIMER İŞLEMLERİ 2.1) Hi-Tech te Interrupt İşlemleri Interrupt ya da diğer adıyla kesme, bir çok işlemin olmazsa olmazlarındandır. Pic16f877 de 15 ten fazla kesme kaynağı bulunur. Kesme
Detaylı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.
Detaylı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
DetaylıHacettepe Robot Topluluğu
Hacettepe Robot Topluluğu Makaleler Geri Sayım Cihazı HUNRobotX - Makaleler - Geri Sayım Cihazı Geri Sayım Cihazı Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 22 Ekim 2006 Giriş Hepinizin bazı macera
Detaylı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ç
Detaylı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
Detaylı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
Detaylıİ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
Detaylı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.
Detaylı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,
Detaylı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: memreirmak@gmail.com ÖZET Işığa yönelen panel projesinin amacı,
Detaylı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
Detaylı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
Detaylı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
Detaylı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
Detaylı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
Detaylı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ış
Detaylı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
DetaylıHacettepe Robot Topluluğu
Hacettepe Robot Topluluğu PIC Assembly Dersleri 3. Ders: Bazı Özel İşlev Yazmaçları ve Altprogram Kavramı HUNRobotX - PIC Assembly Dersleri 3. Ders: Bazı Özel İşlev Yazmaçları ve Altprogram Kavramı Yazan:
Detaylı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
DetaylıROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU
ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU İSMAİL KAHRAMAN-ŞEYMA ÖZTÜRK 200713151027 200513152008 Robot Kol Mekanizması: Şekildeki robot-insan benzetmesinden yola çıkarak, bel kısmı tekerlekli ve sağa-sola-ileri-geri
Detaylı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
DetaylıBu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz.
Ders-2: ---------- Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz. Hazırlanan programlarda pic in zaman zaman dış ortamdan bilgi
Detaylı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
DetaylıHacettepe Robot Topluluğu
Hacettepe Robot Topluluğu PIC Assembly Dersleri 2. Ders: Çalışma Mantığı ve Komutlar HUNRobotX - PIC Assembly Dersleri 2. Ders: Çalışma Mantığı ve Komutlar Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel
Detaylı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
Detaylı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
DetaylıHUNRobotX - Makaleler - Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı. Makaleler Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı
Makaleler Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı Yazan: Mustafa Tufaner, Düzenleyen: Canol Gökel - 31 Ocak 2007 Giriş Merhaba, bu
DetaylıHUNRobotX - Makaleler - Hız Ayarlı Çoklu DC Motor Kontrolü. Makaleler Hız Ayarlı Çoklu DC Motor Kontrolü
Makaleler Hız Ayarlı Çoklu DC Motor Kontrolü Hız Ayarlı Çoklu DC Motor Kontrolü Yazan: Mustafa Tufaner, Düzenleyen: Canol Gökel - 18 Kasım 2006 Giriş Robotikte sıkça kullanılabilecek bir uygulama ile karşınızdayız.
Detaylı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.
DetaylıPIC MCU da Komutların İşlem Süresi
PIC MCU da Komutların İşlem Süresi PIC lerde dallanma komutları (GOTO, CALL, RETURN gibi ) hariç tüm Assembly dili komutları 1 saat saykılı (cycle) çeker. Hazırlayan: Dr.Bülent ÇOBANOĞLU 1 PIC in Bir Komutu
Detaylı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)
Detaylı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
DetaylıMikroişlemciler. Microchip PIC
Mikroişlemciler Microchip PIC Öğr. Gör. M. Ozan AKI r1.1 Microchip PIC Mikrodenetleyiciler www.microchip.com Microchip PIC Mikrodenetleyiciler Microchip PIC Mikrodenetleyiciler Microchip PIC Mikrodenetleyiciler
Detaylı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
DetaylıT.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ
T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ Doç. Dr. Melih Cevdet İNCE DENEYLER Deney_1: 8085 Simülatör Kullanımı Deney_2: 8085
Detaylı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
Detaylı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
DetaylıBUTON KONTROLÜ. Pull-Down Bağlantı (Ters Bağlantı) Butona basılmadığında Giriş=1 Butona basıldığında Giriş=0
BUTON KONTROLÜ PULL-DOWN BAĞLANTI PULL-UP BAĞLANTI PIC girişlerine bağlı botonlara basılıp basılmadığını bilmez. Sadece o girişte 0 mı var 1 mi var onu bilir. Bağlantının türüne göre bu eşleştirmeyi sizin
Detaylı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ı
DetaylıT.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ
T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ Doç. Dr. Melih Cevdet İNCE DENEYLER Deney_1: Program yazma, derleme, pic e yükleme,
Detaylı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
Detaylı7 Segment Display ve Kesmeler (Interrupts) Hafta6-7. Dr. Bülent Çobanoğlu-SAÜ 1
7 Segment Display ve Kesmeler (Interrupts) Hafta6-7 Dr. Bülent Çobanoğlu-SAÜ 1 Çevrim Tabloları Ve 7 Segment Display Uygulaması Çevrim / Bakış tabloları ile bir kodu başka bir koda dönüştürmek için kullanılırlar.
Detaylı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
Detaylıwww.muhendisiz.net BÖLÜM 1
www.muhendisiz.net 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
DetaylıPIC MCU ile UYGULAMALAR
PIC MCU ile UYGULAMALAR Gecikme Programları TMRO Gecikmesi 7 Segment Göstergeler Sayaç Örnekleri Trafik Sinyalizasyonu ADC-DAC Uygulamaları Kesmeler ve Uygulamaları Tuş Takımı (Keypad) Uygulamaları Paralel
Detaylı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
DetaylıMİKRODENETLEYİCİ TABANLI KONTROL
BÖLÜM 5 EK.1. MPLAB KULLANIMI Bu bölümde MPLAB Ver 3.31.00 versiyonunun çalıştırılması ve kullanımı ana hatlarıyla anlatılacaktır. MPLAB programının diğer versiyonları da bu versiyon ile menü açısından
Detaylı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
Detaylı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
DetaylıHacettepe Robot Topluluğu
Hacettepe Robot Topluluğu PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş HUNRobotX - PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 4 Haziran
Detaylı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.
Detaylı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
DetaylıİÇİ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
DetaylıMikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici
Mikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici Mahmut KISACIK ve Doç.Dr. Hasan KÖMÜRCÜGIL Bilgisayar Mühendisligi Bölümü, Dogu Akdeniz Üniversitesi Gazimagusa-Kuzey Kibris Türk Cumhuriyeti
DetaylıMicroprocessors and Programming
Microprocessors and Programming Dr. Kadir ERKAN Department of Mechatronics Engineering Fall : 2013 10/20/2013 1 Interpretation of Assembly Instructions ADDLW h 10 ; literal (constant) oriented ADDWF TOPLA,d
Detaylı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
DetaylıEEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ
EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ Alt Program Yapısı Alt programın çağrılması Alt program korunur alınır ;Argumanlar R12 R15 registerlarına atanir. call #SubroutineLabel SubroutineLabel:
Detaylı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,
Detaylı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
Detaylı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ış
Detaylı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
Detaylı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
Detaylı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
Detaylı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
DetaylıLPC2104 Mikro Denetleyicisini KEIL İle Programlamak
LPC2104 Mikro Denetleyicisini KEIL İle Programlamak Program yazabilmek için öncelikle komutları tanımamız ve ne işe yaradıklarını bilmemiz gerekir. Komutlar yeri geldikçe çalışma içerisinde anlatılacaktır.
Detaylı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
DetaylıPIC16F87X te ADC MODÜLÜNÜN KULLANIMI
PIC16F87X te ADC MODÜLÜNÜN KULLANIMI Emre YAVUZ Temmuz 2009 PIC16F87X te ADC MODÜLÜ Ü KULLA IMI Bu makalemizde PIC16F87X serisi mikrodenetleyicilerde ADC modülünün temel düzeyde kullanımını anlatacağım.
Detaylı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,
DetaylıMİKRODENETLEYİCİ GELİŞTİRME SETİ TASARIM VE UYGULAMALARI. öğrencilerine eğitimleri esnasında iş hayatında karşılaşabilecekleri kontrol işlemleri ve
MİKRODENETLEYİCİ GELİŞTİRME SETİ TASARIM VE UYGULAMALARI Muciz ÖZCAN 1 Hidayet GÜNAY 2 1 Selçuk Üniversitesi KONYA 2 MPG Makine Prodüksiyon Grubu Arge- Müh. KONYA Özet Haberleşme, Elektronik, Kontrol ve
DetaylıGAZİ MESLEK YÜKSEK OKULU ELEKTRONİK TEKNOLOJİSİ
T.C. GAZİ MESLEK YÜKSEK OKULU ELEKTRONİK TEKNOLOJİSİ PROJE MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 2 PROJE SAHİBİ ADI:MEHNET SOYADI:AVCI SINIF:2 ŞUBE:1 OKUL NO:092904005 BÖLÜM: ELEKTRONİK TEKNOLOJİSİ DERS
Detaylı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
Detaylı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
Detaylı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
Detaylı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.
Detaylı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İ) BİLİŞİM TEKNOLOJİLERİ MİKRODENETLEYİCİLER 1
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İ) BİLİŞİM TEKNOLOJİLERİ MİKRODENETLEYİCİLER 1 ANKARA 2007 Milli Eğitim Bakanlığı tarafından geliştirilen modüller;
DetaylıMikroişlemci Programlama Aşamaları
Mikroişlemci Programlama Aşamaları 1. Önce yapılacak işe uygun devre şeması çizilmelidir. Çünkü program bu devreye göre yapılacaktır. Biz ISIS programında devreyi kurabiliriz. Bu devrederb4 çıkışına bağlı
DetaylıPIC ASSEMBLY VE MAKROLAR
PIC ASSEMBLY VE MAKROLAR Abdullah UNUTMAZ Ağustos 2009 Pic Assembly ve Makrolar H U N R O B O T X M A K A L E L E R #DEFI E #DEFINE anahtar sözcüğü ile kendi tanımladığımız değişkenler, yada include dosyalarında
DetaylıTIMER. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ
TIMER SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ PIC16F877A mikrodenetleyicisinde üç adet zamanlayıcı/sayıcı birimi bulunmaktadır. o Timer0 8 bitlik
DetaylıPIC Mikro denetleyiciler ve Programlama. Öğr.Gör.Bülent ÇOBANOĞLU
PIC Mikro denetleyiciler ve Programlama Değerlendirme BaĢarı Puanı: Yıl içi %60+ Final %40 Yıl içi ise; Vize*60+Q1*10+Q2*10+Ödev*15+Devam*5 BaĢarı Ortalaması 40 altı olan FF dir. Diğer notlar, çana göre
Detaylı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
DetaylıMİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)
MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur) Mikroişlemci bir programının yapmak istediği işlemleri, (hafızada bulunan komutları) sırasıyla ile
DetaylıProton Plus ile PIC Programlama Bölüm 2
Bu bölümde program Yazmaya yeni başlayanların kullanmakta çekindiği bir kavram olan Kesme (Interrupt) kullanımını ele alacağız. Kesme (Interrupt) tanımlayacak olursak, bir programının normal çalışması
DetaylıÇİZGİ İZLEYEN ROBOT YAPIMI
ÇİZGİ İZLEYEN ROBOT YAPIMI Tanımı ve Çalışma Prensibi Çizgi izleyen robot, adından da anlaşıldığı üzere, renk farkından faydalanarak bir çizgiyi takip eden robot çeşididir. Bu robot, endüstriyel alanlarda
Detaylı