1 YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Mikroişlemciler 2013/2014 Bahar Y.Y. Laboratuvar Deney Kitabı İstanbul 2013
2 İçindekiler Deneyle İlgili Genel Bilgiler ve Uyarılar /2011 Bahar Y.Y. Deney Programı... 1 EasyPic6 Deney Setinin Tanıtımı... 2 PIC16F887 μc Tanıtımı PIC16F887 Komut Seti Özeti mikroc Derleyicisinin Tanıtımı CCS C Derleyicisi Tanıtımı DENEY 1 : PIC Assembly Uygulaması DENEY 2 : Giriş/Çıkış ve 4x4 Tuş Takımı Uygulaması DENEY 3 : PIC16F887 Modülleri ve Kesmeler DENEY 4 : Kesme Kullanarak Seri (RS232 ve I 2 C) Haberleşme Uygulaması DENEY 5 : GLCD ve Dokunmatik Ekran Uygulaması Kaynaklar Ek1 : PIC16F887 Komut Açıklamaları Ek2 : Proteus ile PIC Simülasyonu... 45
3 1 Deneyle İlgili Genel Bilgiler ve Uyarılar 1) Deney grupları ve tarihleri önceden duyurulacaktır. 2) Her biri 2 saat sürecek olan toplam 5 deney yaptırılacaktır. 3) Deneyler 2 şer kişilik gruplar halinde yapılacaktır. 4) Deneyler EasyPic6 deney seti üzerinde CCS C ve mikroc derleyicileri kullanılarak C dili ve PIC-assembly dili ile yaptırılacaktır. Deneyler için ön çalışma Proteus simülasyon ortamında yapılabilir. 5) Deneye gelmeden önce deney kitabının en son versiyonuna sahip olup olmadığınızı kontrol edin. Dönem boyunca deneylerde ufak değişiklikler yapılabilir. 6) Deneyden Önce Yapılacaklar bölümünde istenenler deneyden önce mutlaka yapılmalıdır. 7) Deney sonundaki sorular deneyden önce mutlaka yanıtlandırılmaya çalışılmalıdır. 8) Deneyde Yapılacaklar deney sırasında duyurulacaktır. 9) Deney sırasında öğrenciler arasında bilgi alış verişi yasaktır. 10) Deneyde yapılacaklardan herhangi biri bittiğinde görevliye gösterilip onay alınmalıdır. 11) Yönetmelik gereğince öğrenci deneylere %80 oranında devam etmek mecburiyetindedir. Devam her deneyde yoklama yapılarak saptanacaktır. 12) Öğrencinin gelmediği deneyden alacağı not sıfırdır. 13) Mikroişlemciler dersi laboratuarı için telafi deneyi yaptırılmayacaktır. 2013/2014 Bahar Y.Y. Deney Programı Deneyler D Blok DB08 no lu laboratuvarda yapılacaktır. İlan edilen deney gruplarının deney tarihleri aşağıda verilmiştir. A ve C grupları Pazartesi 15:00-17:00 saatleri arasında; B ve D grupları ise Cuma 16:00-18:00 saatleri arasında deneye gireceklerdir. 1 A 10 Mart 14 Pazartesi 1 B 14 Mart 14 Cuma 1 C 17 Mart 14 Pazartesi 1 D 21 Mart 14 Cuma 2 A 24 Mart 14 Pazartesi 2 B 28 Mart 14 Cuma 2 C 31 Mart 14 Pazartesi 2 D 4 Nisan 14 Cuma 3 A 7 Nisan 14 Pazartesi 3 B 11 Nisan 14 Cuma 3 C 14 Nisan 14 Pazartesi 3 D 18 Nisan 14 Cuma 4 A 28 Nisan 14 Pazartesi 4 B 2 Mayıs 14 Cuma 4 C 5 Mayıs 14 Pazartesi 4 D 9 Mayıs 14 Cuma 5 A 12 Mayıs 14 Pazartesi 5 B 16 Mayıs 14 Cuma 5 C 26 Mayıs 14 Pazartesi 5 D 23 Mayıs 14 Cuma
4 2 EasyPic6 Deney Setinin Tanıtımı Deneyler sırasında EasyPic6 deney seti kullanılacaktır. EasyPic6 sistemi Microchip PIC mikro denetleyicileri için geliştirilmiş çok fonksiyonlu bir uygulama kartıdır. Kart üzerinde PIC mikro denetleyicisi ile bir dizi devre elemanlarıyla donanım arayüzü oluşturulmuştur. Kartın temel birimleri aşağıda listelenmiştir:
5 3 1) Güç kaynağı 2) USB programlama girişi 3) On-board USB programlayıcı ve mikroicd gerçek zamanlı donanımsal devre içi hata ayıklayıcı (in circuit debugger) 4) Sıcaklık sensor modülü 5) Harici debugger girişi 6) USB destekli mikro denetleyiciler için USB portu 7) Analog dijital çevirici giriş modül 8) PS/2 konektörü 9) Onboard 2x16 karakter lcd 10) Port için direnç bağlantı anahtarları, 11) Port için pull-up, pull-down seçim atacı 12) Giriş çıkış bağlantı pinleri 13) DIP8, DIP14, DIP18, DIP20, DIP28 ve DIP40 soketler 14) Dokunmatik ekran kontrolörü 15) Port genişletme modülü 16) 128x64 grafik LCD konektörü 17) Grafik LCD zıtlık ayarı
6 4 18) Dokunmatik ekran konektörü 19) Menu tuş takımı 20) 4x4 tuş takımı 21) Pushbutton anahtarlar 22) Pushbutton basıldığında pin giriş seviyesi seçim atacı 23) Koruyucu direnç aç kapa atacı 24) Reset tuşu 25) Mikro denetleyici G/Ç portlarına bağlı LED ler 26) LCD zıtlık ayarı 27) Karakter LCD konektörü 28) RS232 haberleşme modülü Deneylerin yaptırılacağı PIC16F887 mikro denetleyicisi için programlama seviyesi seçim ucu, soket seçim ve MCLR ucu için öntanımlı ataç konumları aşağıdaki şekillerdeki gibidir. Deney sırasında bu ayarların doğru olduğundan emin olunuz. Deneylerde kullanılacak donanımsal modüllerin genel şematik yapıları aşağıda verilmiştir.
7 5 RS232 haberleşme modülü için donanımsal olarak seri haberleşmeyi destekleyen RC6 ve RC7 pinlerinin seçilmesi gerekmektedir. SW7 nin 8 numarılı anahtarı ile SW8 in 8 numaralı anahtarı on konumuna getirilmelidir. CTS ve RTS anahtarları ise kullanılmayacaktır. Deney seti ile bilgisayar arasında seri kablo ile bağlantı kurulacaktır. Bilgisayar tarafında Hyperterminal veya mikroc nin Seri Terminal programı uygun baudrate ve gerekli ayarlar ile kullanılarak haberleşme sağlanacaktır. DS1820 entegresi 1-wire olarak isimlendirilen haberleşme protokülünü kullanan, 9bit çözünürlükte, sayısal bir sıcaklık sensörüdür. DS1820 yi kullanabilmek üzere deney setinde sıcaklık sensör konnektörü kullanılır. Mikro denetleyicide 1-wire haberleşmeyi sağlamak üzere kullanılacak uç J11 atacı ile seçilir. Sıcaklık sensörü için deney seti şematiği aşağıdaki gibidir.
8 6 Analog sayısal dönüşüm uygulaması için kullanılmak üzere set üzerinde bir adet potansiyometre bulunmaktadır. Analog değer J15 atacının uygun yerleştirilmesi ile mikro denetleyicinin RA0, RA1, RA2, RA3, RA4 uçlarından birine iletilir. Analog sayısal dönüşüm yardımcı kartı için şematik aşağıdaki gibidir. Set üzerinde çıkış amaçlı olarak kullanılmak üzere herbir G/Ç ucuna bir adet LED bağlıdır. LED ler port bazında SW9 un ilgili anahtarı ile açılıp kapatılabilir. LED lerin anot ucu mikro denetleyici tarafına bağlı olduğundan LED in yakılabilmesi için ilgili uca lojik 1 verilmesi gerekmektedir.
9 7 Set üzerinde giriş amaçlı olarak kullanılmak üzere herbir G/Ç ucuna bir adet pushbuttonlar bağlıdır. J2, J17 ataçları ve SW1-SW5 anahtarlarının konumlandırılmasına göre butona basıldığında lojik 1 bırakıldığında lojik 0, butona basıldığında lojik 0 bırakıldığında lojik 1 şeklinde iki farklı konfigürasyon sağlanabilir. J17 ile butona basıldığında mikro denetleyici ucunda oluşacak değer seçilirken SW1-SW5 on konumunda iken J2 atacı ile tuş bırakıldığında mikro denetleyici ucunda oluşacak değer belirlenir. PortB nin bir ucuna ilişkin pushbutton ayarlanması aşağıdaki şekillerde gösterilmiştir.
10 8 Set üzerinde pushbuttonlardan farklı olarak iki ayrı tuş takımı sağlanmıştır. Menü tuş takımının konfigürasyonu pushbuttonlar gibi yapılmaktadır (RA0-RA5). 4x4 tuş takımı ise klasik tuş takımı konfigürasyonundadır. RD4-RD7 tuş takımını sürmek için, RD0-RD3 tuş takımını okumak için kullanılır. J4 pull-down konumunda, SW4 ilk 4 anahtar on konumunda olmalıdır. (4x4 tuş takımı sembolik)
11 9 2x16 karakter LCD modülünün donanımsal bağlantıları 4 bitlik çalışma moduna göre yapılmıştır. LCD arka ışığı SW6 nın 8 numaralı anahtarı ile açılmakta, kontrast potansiyometresi (P4) ile netlik ayarı yapılabilmektedir. Karakter LCD için data ve kontrol uçları mikro denetleyicinin PortB uçları ile sağlanır. 2x16 karakter LCD modülü için şematik aşağıda verimiştir.
12 10 128x64 grafik LCD arkaplan ışığı SW6 nın 8 numaralı anahtarının on konumuna getirilmesi ile açılır. Kontrast ayarı için P3 potansiyometresi kullanılır. Grafik LCD için data mikro denetleyici PortB uçları ile, kontrol ise PortD uçları sağlanır. 128x64 grafik LCD için donanımsal bağlantı aşağıdaki şekilde verilmiştir. Dokunmatik ekran paneli GLCD modülüne yapıştırılarak kullanılır. Yatayda ve dikeyde okunan iki farklı analog değer ile panel üzerinde dokunulan nokta için koordinat ADC dönüşümü ile elde edilir.
13 11 PIC16F887 μc Tanıtımı PIC16F887 mikro denetleyicisi RISC mimarisine sahip 8 bitlik bir denetleyicidir. 35 komuta sahiptir ve dallanma (branch) komutları hariç tek çevrimlik komutlara sahiptir. PIC16F887 toplam 8192 word kapasiteli program belleğine, 368 byte SRAM veri belleğine ve 256 byte EEPROM veri belleğine sahiptir. 35 G/Ç pinine, 10 adet 10 bitlik A/D kanalına, 1 adet gelişmiş CCP modülüne, 1 adet CCP modülüne, 1 adet Enhanced Universal Synchronous Asynchronous Receiver Transmitter modülüne, 1 adet Master Synchronous Serial Port modülüne, 2 adet karşılaştırma modülüne, 1 adet 8 bitlik ve 2 adet 16 bitlik Timer modülüne sahiptir. PIC16F887 ye ait uç tanımları aşağıdaki şekilde verilmiştir. Bir uca ilişkin farklı görevler SRAM veri belleğindeki özel amaçlı yazmaçlar (SFR) ile kontrol edilir.
14 12 PIC16F887 mikrodenetleyicisi için uç tanım ve görevleri aşağıda verilmiştir. Aşağıdaki tablo incelendiğinde örneğin 3 numaralı pin uygun ayarlamalar ile ya RA1 dijital giriş çıkış ucu ya da AN1 analog giriş ucu olarak kullanılabilir. Port ayar yazmaçlarının reset sonrası varsayılan değerleri gereği analog giriş olarak ayarlanabilin tüm uçlar reset sonrasında analog giriş olarak ayarlıdır. Bu sebeple 3 numaralı pini dijital giriş çıkış amaçlı olarak kullanabilmek için istenen port ilk durumlandırmaları yazılımsal olarak yapılmalıdır.
15 13 PIC16F887 ye ilişkin içyapı, aşağıda verilmiştir. Program belleği adres yolu, SRAM veri belleği adres yolu, program belleği veri yolu, SRAM veri belleği veri yolu ile EEPROM adresleme ve veri uçları şekil üzerinde işaretlenmiştir. PIC16F887 de akümülatör ve genel amaçlı yazmaç olarak W yazmacı (working register) kullanılır.
16 14 PIC16F887 ye ilişkin program belleği organizasyonu aşağıdaki şeklide verilmiştir. Şekilde ayrıca program belleğinde reset ve kesme vektör adresleri de işaretlenmiştir. Sistem ilk başlatıldığında veya reset devresi ile reset durumu oluşturulduğunda PC ye 0x0000 adres değeri yüklenir. Benzer şekilde bir kesme durumunda PC ye 0x0004 adresi yüklenir. PC değeri PCL ve PCLATH yazmaçları ile oluşturulur. PC değerinin elde edilmesine ilişkin şekil aşağıda verilmiştir.
17 15 SRAM veri belleğine ilişkin organizasyon aşağıda verilmiştir. Bu yapı içerisinde çevre birimlerin ayar ve kontrolleri için özel amaçlı yazmaçlar (special function registers) ve kullanıcıya sunulmuş genel amaçlı yazmaç (general purpose registers) bölgeleri bulunmaktadır.
18 16 SRAM bölgesinde yerleştirilmiş önemli SFR yazmaçlarına ilişkin bit tanımları ve reset değerleri aşağıdaki tablo ile verilmiştir. Addr İsim Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Reset Değeri 03h STATUS IRP RP1 RP0 TO PD Z DC C xxx 05h PORTA RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0 xxxx xxxx 06h PORTB RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 xxxx xxxx 07h PORTC RC7 RC6 RC5 RC4 RC3 RC2 RC1 RC0 xxxx xxxx 08h PORTD RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 xxxx xxxx 09h PORTE RE3 RE2 RE1 RE xxxx 0Bh INTCON GIE PEIE T0IE INTE RBIE T0IF INTF RBIF x 17h CCP1CON P1M1 P1M0 DC1B1 DC1B0 CCP1M3 CCP1M2 CCP1M1 CCP1M Fh ADCON0 ADCS1 ADCS0 CHS3 CHS2 CHS1 CHS0 GO/DONE ADON h TRISA TRISA7 TRISA6 TRISA5 TRISA4 TRISA3 TRISA2 TRISA1 TRISA h TRISB TRISB7 TRISB6 TRISB5 TRISB4 TRISB3 TRISB2 TRISB1 TRISB h TRISC TRISC7 TRISC6 TRISC5 TRISC4 TRISC3 TRISC2 TRISC1 TRISC h TRISD TRISD7 TRISD6 TRISD5 TRISD4 TRISD3 TRISD2 TRISD1 TRISD h TRISE TRISE3 TRISE2 TRISE1 TRISE Ch EEDAT EEDAT7 EEDAT6 EEDAT5 EEDAT4 EEDAT3 EEDAT2 EEDAT1 EEDAT Dh EEADR EEADR7 EEADR6 EEADR5 EEADR4 EEADR3 EEADR2 EEADR1 EEADR h ANSEL ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS h ANSELH ANS13 ANS12 ANS11 ANS10 ANS9 ANS Ch EECON1 EEPGD WRERR WREN WR RD x--- x000 = fonksiyon atanmamış bölgeler, x = belirsiz SRAM veri belleğinin adreslenmesine ilişkin modlar doğrudan adresleme ve dolaylı adresleme olarak aşağıda verilmiştir. Doğrudan adresleme: 9 bitlik ram adresinin 7 biti instruction dan 2 biti ise STATUS<6:5> yazmacından gelir.
19 17 //STATUS 0x03 olarak tanımlanmış ise BSF STATUS, 6 BSF STATUS, 5 MOVLW 0xFF MOVWF 0x0C //EECON1 SFR yazmacına 0xFF yazıldı //STATUS 0x03 olarak tanımlanmış ise BSF STATUS, 6 BCF STATUS, 5 MOVLW 0xFF MOVWF 0x0C //EEDAT SFR yazmacına 0xFF yazıldı Dolaylı Adresleme:9 bitlik adresin 8 biti FSR yazmacından bir biti ise STATUS<7> yazmacından gelir. BCF STATUS, 7 MOVLW 0x20 MOVWF FSR NEXT : CLRF INDF //dolaylı adreslemede INDF yazmacında yazılı olan bellek gözüne erişilir INCF FSR BTFSS FSR,4 GOTO NEXT //0x20-0x2F adresleri arasındaki SRAM veri belleğini siler Yukarıda geçen adresleme modlarından farklı olarak Relative Addressing modu da desteklenmektedir.
20 18 Yaptırılacak deneylerde kullanılacak PIC16F887 modüllerine ilişkin gerekli SFR yazmaçları ve modüllere ilişkin şematik yapı aşağıda verilmiştir. EUSART modülüne ilişkin yapı aşağıda verilmiştir.
21 19 Anolog dijital çevrim modülüne ait yapı aşağıda verilmiştir. Capture / Compare / PWM modülüne ait yapı aşağıda verilmiştir.
22 20 MSSP modülü için I2C fonksiyonuna ait yapısı aşağıda verilmiştir:
23 21 PIC16F887 Komut Seti Özeti Mnemonic, Operands Description Cycles MSb 14-Bit Opcode LSb Status Affected Notes BYTE-ORIENTED FILE REGISTER OPERATIONS ADDWF f, d Add W and f dfff ffff C, DC, Z 1, 2 ANDWF f, d AND W with f dfff ffff Z 1, 2 CLRF f Clear f lfff ffff Z 2 CLRW Clear W xxx xxxx Z COMF f, d Complement f dfff ffff Z 1, 2 DECF f, d Decrement f dfff ffff Z 1, 2 DECFSZ f, d Decrement f, Skip if 0 1(2) dfff ffff 1, 2, 3 INCF f, d Increment f dfff ffff Z 1, 2 INCFSZ f, d Increment f, Skip if 0 1(2) dfff ffff 1, 2, 3 IORWF f, d Inclusive OR W with f dfff ffff Z 1, 2 MOVF f, d Move f dfff ffff Z 1, 2 MOVWF f Move W to f lfff ffff NOP No Operation xx RLF f, d Rotate Left f through Carry dfff ffff C 1, 2 RRF f, d Rotate Right f through Carry dfff ffff C 1, 2 SUBWF f, d Subtract W from f dfff ffff C, DC, Z 1, 2 SWAPF f, d Swap nibbles in f dfff ffff 1, 2 XORWF f, d Exclusive OR W with f dfff ffff Z 1, 2 BIT-ORIENTED FILE REGISTER OPERATIONS BCF f, b Bit Clear f bb bfff ffff 1, 2 BSF f, b Bit Set f bb bfff ffff 1, 2 BTFSC f, b Bit Test f, Skip if Clear 1 (2) 01 10bb bfff ffff 3 BTFSS f, b Bit Test f, Skip if Set 1 (2) 01 11bb bfff ffff 3 LITERAL AND CONTROL OPERATIONS ADDLW k Add literal and W x kkkk kkkk C, DC, Z ANDLW k AND literal with W kkkk kkkk Z CALL Call Subroutine Clear Watchdog 10 0kkk kkkk kkkk k 2 1 CLRWDT Timer TO, PD GOTO k Go to address kkk kkkk kkkk IORLW k Inclusive OR literal with W kkkk kkkk Z MOVLW k Move literal to W xx kkkk kkkk RETFIE Return from interrupt RETLW k Return with literal in W xx kkkk kkkk RETURN Return from Subroutine Go into SLEEP Standby mode TO, PD SUBLW k Subtract W from literal x kkkk kkkk C, DC, Z XORLW k Exclusive OR literal with W kkkk kkkk Z 1: When an I/O register is modified as a function of itself (e.g., MOVF GPIO, 1), the value used will be that value present on the pins themselves. For example, if the data latch is 1 for a pin configured as input and is driven low by an external device, the data will be written back with a 0. 2: If this instruction is executed on the TMR0 register (and where applicable, d = 1), the prescaler will be cleared if assigned to the Timer0 module. 3: If the Program Counter (PC) is modified, or a conditional test is true, the instruction requires two cycles. The second cycle is executed as a NOP.
24 22 Field f W b k x Description Register file address (0x00 to 0x7F) Working register (accumulator) Bit address within an 8-bit file register Literal field, constant data or label Don t care location (= 0 or 1). The assembler will generate code with x = 0. It is the recommended form of use for compatibility with all Microchip software tools. d Destination select; d = 0: store result in W, d = 1: store result in file register f. Default is d = 1. PC TO C DC Z PD Program Counter Time-out bit Carry bit Digit carry bit Zero bit Power-down bit
25 23 mikroc Derleyicisinin Tanıtımı mikroc PIC mikrodenetleyicileri için bir C derleyicisidir. Bir proje oluşturmak ve mikro denetleyiciye yüklemek için aşağıdaki adımlar izlenir: 1) mikroc programı çalıştırılarak microc IDE açılır 2) Project > New Project yolu ile yeni proje penceresi açılır 3) Proje ismi, yolu girildikten sonra Device menüsünden PIC16F887 seçilir 4) Clock değeri olarak değeri girilir 5) Device Flags kısmında Default düğmesi tıklanır 6) Derleyicinin oluşturduğu.c dosyasına ilgili kod yazılır 7) Project > Build yolu ile proje derlenir 8) Tools > me Programmer yolu ile derlenen hex dosyası mikro denetleyiciye aktarılır mikroc derleyicisi ile PIC assembly komutları kullanılmak istendiğinde asm bloğu kullanılmalıdır. unsigned myvar; void main() { myvar=0; asm { MOVLW 10 MOVLW test_main_global_myvar_1 } } mikroc derleyicisi üzerinde uygulama geliştirilecek mikro denetleyiciye özel veya genel uygulama kütüphanelerine sahiptir. Bu kütüphanelerin açıklamalarına mikroc IDE üzerinden Help > Help menüsünden Contents tab içerisindeki mikroc Libraries yolu ile erişilebilir.! mikroc derleyicisi ile derleme işlemi sonucunda oluşan.lst uzantılı dosya incelenerek c kodlarına karşılık üretilen PIC assembly komutları görülebilir.
26 24 CCS C Derleyicisi Tanıtımı CCS C PIC mikro denetleyiciler için bir C derleyicisidir. Bir proje oluşturmak ve mikro denetleyiciye yüklemek için aşağıdaki adımlar izlenir: 1) PIC C Compiler çalıştırılarak CCS C IDE açılır 2) Project tabından Project Wizard seçilir 3) Projenin kaydedileceği yol belirtilir 4) PIC Wizard penceresinde General başlığı Options sekmesinde Device olarak PIC16F887 seçilir 5) Oscilator Frequency olarak değeri girilir 6) Fuses kısmında High Speed Osc (>4mhz) seçilir 7) Enable MSCLR seçeneği işaretlenir 8) OK tuşu ile ayarlar onaylanır 9) Derleyicinin oluşturduğu.c dosyasına ilgili kod yazılır 10) IDE penceresinde Compile sekmesi altında Compile butonu tıklanarak proje derlenir 11) Mikroelektronika mikroprog Suite For PIC programı çalıştırılır 12) MCU Family kısmında PIC16F seçilir 13) Device kısmında PIC16F887 seçilir 14) File > Load Hex yolu ile derlenen hex dosyası programa yüklenir 15) Write butonu ile hex kod mikro denetleyiciye yüklenir
27 25 CCS C derleyicisi ile PIC assembly komutları kullanılmak istendiğinde asm bloğu kullanılmalıdır. void asm_function(){ #asm BCF 3,6 BCF 3,5 MOVLW 0x11 MOVWF 0x20 BCF 3,6 BSF 3,5 MOVLW 0x33 MOVWF 0x20 #endasm } CCS C derleyicisinin uygulama kütüphanelerinin açıklamalarına help menüsünden erişilebilir.! CCS C derleyicisi ile derleme işlemi sonucunda oluşan.lst uzantılı dosya incelenerek c kodlarına karşılık üretilen PIC assembly komutları görülebilir.
28 26 DENEY 1 : PIC Assembly Uygulaması Deneyden Önce Yapılacaklar PIC16F887 için program belleği word büyüklüğü nedir? PIC16F887 için program bellek boyutu toplam bit olduğuna göre kaç adet program belleği word değeri adreslenebilir? Program belleği adres yolu genişliği nedir? PIC16F887 için SRAM belleği word büyüklüğü nedir? PIC16F887 için SRAM belleği boyutu toplam 2944 bit olduğuna göre kaç adet SRAM belleği word değeri adreslenebilir? SRAM belleği adres yolu genişliği nedir? PIC16F887 için EEPROM veri belleği adres yolu ve veri yolu genişlikleri nedir? (EEPROM veri belleği boyutu toplam 2048 bit) Deneyde kullanılacak SFR yazmaçlarını inceleyiniz. (Daha detaylı bilgi için 16F887 kataloguna bakınız) Verilen örnek soru 1 şablon kodunu derleyerek Proteus ta 16F887 için hex kodu olarak kullanılacak şekilde ayarlayın. Proteus u debug modda başlatarak, PIC16F887 için reset adresi not edin. Örnek soru 1 şablon kodu derleyip Proteus u debug modda çalıştırarak main fonksiyonun adresini bulun. Resetten itibaren main fonksiyonuna dallanma adımlarını inceleyin. Derleme sonucu oluşan *.lst uzantılı dosyayı inceleyin. Örnek soru 1 şablon kodunda istenen değişikliği gerçekleyin: PIC16F887 nin SRAM veri belleğinde bank1 ofset 0x20 adresindeki değerin 5. Biti 0 ise bank3 ofset 20 adresine 0, 5. Bit 1 ise bank2 ofset 20 adresine 1 yazan programı PIC assembly komutları ile gerçekleyin.. Kodu CCS C derleyicisi ile derleyerek ilgili Proteus simülasyonunda çalıştırın. Örnek soru 2 şablon kodunda istenen değişikliği gerçekleyin: PIC16F887 nin EEPROM veri belleği bölgesindeki ilk 3 word u (0x00, 0x01, 0x02 adreslerindeki) okuyup SRAM veri belleği bölgesinde bank3 ofset 0x20 adresinden itibaren yazan programı PIC assembly komutları ile oluşturun. Kodu CCS C derleyicisi ile derleyerek ilgili Proteus simülasyonunda çalıştırın. Deney İçin Önemli Yazmaçlar: STATUS REGISTER ALU biriminin aritmetik durumunu, reset durumunu ve bank seçin bitlerini içerir. b7 b6 b5 b4 b3 b2 b1 b0 IRP RP1 RP0 Z DC/ C/ Bit7 Dolaylı adresleme bank seçim biti 0 = bank0 ve bank1 1 = bank2 ve bank3
29 27 Bit<6:5> Bit2 Bit1 Bit0 Doğrudan adresleme bank seçim bitleri 00 = bank0 01 = bank1 10 = bank2 11 = bank3 sıfır bayrağı 0 = aritmetik veya lojik işlem sonucu 0 değil 1 = aritmetik veya lojik işlem sonucu 0 toplama basamak eldesi (düşük anlamlı 4. bitten elde oluştu), çıkarma eldesi toplama eldesi (en yüksek anlamlı bitten elde oluştu), çıkarma basamak eldesi ANSEL ve ANSELH REGISTER A ve E portları için analog-dijital i/o seçim bitleri. (ANSEL) b7 b6 b5 b4 b3 b2 b1 b0 ANS7 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 ANS0 Bit<7:0> Analog seçim bitleri; AN0-AN7 uçları için dijital I/O veya analog seçim ucu 1 = Analog giriş 0 = Dijital I/O B portu için analog-dijital i/o seçim bitleri. (ANSELH) b7 b6 b5 b4 b3 b2 b1 b0 ANS13 ANS12 ANS11 ANS10 ANS9 ANS8 Bit<5:0> Analog seçim bitleri; AN0-AN7 uçları için dijital I/O veya analog seçim ucu 1 = Analog giriş 0 = Dijital I/O Analog veya dijital i/o olarak ayarlanabilecek uçlar ve karşılık gelen dijital i/o ve analog uç tanımları aşağıdaki gibidir. Analog giriş olarak ayarlanabilir tüm uçlar reset varsayılan değerleri gereği analog giriş ayarlı olarak ilk değer alırlar. İlgili uçlar dijital i/o için kullanılacaksa istenen ilk değerler yazılımsal olarak verilmelidir. EECON1 : EEPROM CONTROL REGISTER b7 b6 b5 b4 b3 b2 b1 b0 EEPGD WRERR WREN WR RD Bit7 Program/Data EEPROM seçim biti 0 = Veri belleğine erişim 1 = program belleğine erişim Bit3 EEPROM hata bayrağı 0 = Yama işlemi kesildi 1 = Yazma işlemi başarılı Bit2 EEPROM yazma izin biti 0 = Veri EEPROM a yazmayı engelle 1 = Yazma çevrimini aktif yap
30 28 Bit1 Bit0 Yazma kontrol biti 0 = EEPROM a yazma çevrimi başarı ile tamamlandı 1 = Yazma çevrimini başlat Okuma kontrol biti 0 = Okuma başlatılmasın 1 = Okuma çevrimini başlat EEADR : EEPROM ADDRESS REGISTER b7 b6 b5 b4 b3 b2 b1 b0 EEADR7 EEADR6 EEADR5 EEADR4 EEADR3 EEADR2 EEADR1 EEADR0 Bit<7:0> EEPROM okuma yazma işlemlerinde adres tutan yazmaç EEDAT : EEPROM DATA REGISTER b7 b6 b5 b4 b3 b2 b1 b0 EEDAT7 EEDAT6 EEDAT5 EEDAT4 EEDAT3 EEDAT2 EEDAT1 EEDAT0 Bit<7:0> EEPROM okuma yazma işlemlerinde veri tutan yazmaç Deney Sırasında Yapılacaklar SORULAR DENEY SIRASINDA VERİLECEKTİR Deney Sonu Soruları PIC16F887 mikro denetleyicisinin EEPROM ve SRAM veri bellekleri hangi amaçla kullanılır? Az sayıda komuta sahip olan ve bu komutların çoğunu kısa çevrim sürelerinde tamamlayacak şekilde oluşturulmuş işlemci mimarilerine verilen isim nedir? Veri belleği ile program belleğinin ayrı olduğu işlemci mimarilerine verilen isim nedir? Veri belleği ile program belleğinin ayrı olmasının avantaj ve dezavantajları nelerdir?
31 29 DENEY 2 : Giriş/Çıkış ve 4x4 Tuş Takımı Uygulaması Deneyden Önce Yapılacaklar Giriş uygulamalarında düğme/buton/anahtar kullanımında debounce kavramını açıklayın. Yazılımsal olarak debounce uygulaması için bir yöntem belirtin ve açıklayın. 4x4 tuş tarama mantığını araştırın. (4x4 keypad) Deneyde kullanılacak SFR yazmaçlarını inceleyiniz. (Daha detaylı bilgi için 16F887 kataloguna bakınız) Örnek soru1 için Proteus simülasyonunu açın ve simülasyonu başlatın. Önceden derlenerek simülasyon ile sağlanan bir hex kodun çalışması sonucu PORTD de kayan ışık uygulaması sonucunu gözlemleyin. Örnek soru1 şablon kodunda gerekli değişikliği yapın: kayan ışık uygulamasını PIC assembly komutları ile gerçekleyin. Örnek soru2 için verilen şablon kod için gerekli değişikliği yapın: butonlardan SW1 için sadece basıldığı anda PORTD deki tüm ledleri yakan, butonlardan SW2 için sadece buton bırakıldığında PORTD deki tüm ledleri söndüren programı PIC assembly komutları ile gerçekleyin. Örnek soru3 için Proteus simülasyonunu açın ve simülasyonu başlatın. Önceden derlenerek simülasyon ile sağlanan bir hex kodun çalışması sonucu 7 parça göstergede 4321 yazdırılmasını gözlemleyin. Örnek soru3 şablon kodunda gerekli değişikliği yapın: 7 parçalı göstergede numaranızın son 4 basamağını yazdıracak PIC assembly kodunu gerçekleyin. Deney İçin Önemli Yazmaçlar: PORTx : PORTx REGISTER (x : A, B, C ve D, E için geçerli) b7 b6 b5 b4 b3 b2 b1 b0 Rx7 Rx6 Rx5 Rx4 Rx3 Rx2 Rx1 Rx0 Bit<7:0> PORTx G/Ç ucu 0 = Port ucuna lojik 0 yaz 1 = Port ucuna lojik 1 yaz TRISx : PORTx TRISTATE CONTROL REGISTER (x : A, B, C ve D, E için geçerli) b7 b6 b5 b4 b3 b2 b1 b0 TRISx7 TRISx6 TRISx5 TRISx4 TRISx3 TRISx2 TRISx1 TRISx0 Bit<7:0> PORTx tristate kontrol bitleri 0 = Ucu çıkış olarak ayarla 1 = Ucu giriş olarak ayarla Deney Sırasında Yapılacaklar: SORULAR DENEY SIRASINDA VERİLECEKTİR
32 30 Deney Sonu Soruları Mikro denetleyicinin dış dünya ile iletişimi neden portlar aracılığı ile yapılırken veri/adres yolları ile yapılmaz? 0-9 arasındaki rakamları gösterebilmek için ortak katotlu ve ortak anotlu 7 parçalı göstergeye hangi değerler gönderilmelidir, aşağıdaki tabloyu tamamlayın. Ortak Anotlu Ortak Katotlu g f e d c b a g f e d c b a
33 31 DENEY 3 : PIC16F887 Modülleri ve Kesmeler Deneyden Önce Yapılacaklar: PIC16F887 mikrodenetleyicisi için PORTB, Timer 1, ADC ve CCP2 modüllerinin yapısını ve ilgili yazmaçlarını inceleyin. Bu modüllerin kullanım alanlarını ve amaçlarını araştırın. Kesme kavramını araştırın. PIC16F887 için farklı kesme kaynaklarını inceleyerek listeleyin. Dış kesme (INT RB0 ile ilgili), Timer 1 kesmesi, ADC kesmesi, CCP2 kesmesi ile ilgili yazmaç ve bitleri görevlerini açıklayarak listeleyin. Deney 3 CCS C derleyicisi ve C dili kullanılarak gerçekleştirilecektir. Aşağıda bu derleyici için çeşitli modüllere ait kütüphaneler verilmiştir, inceleyin. CCS ADC Kütüphanesi SET_ADC_CHANNEL( ) SETUP_ADC_PORTS( ) SETUP_ADC(mode ) mode- Analog to digital mode. The valid options vary depending on the device. See the devices.h file for all options. Some typical options include: ADC_OFF ADC_CLOCK_INTERNAL ADC_CLOCK_DIV_32 READ_ADC( ) ADC_DONE #device ADC=x CCS CCP Kütüphanesi SET_PWM1_DUTY( ) SETUP_CCP1(mode) mode is a constant. Valid constants are in the devices.h file and are as follows: Disable the CCP: CCP_OFF Set CCP to PWM mode: CCP_PWM Enable Pulse Width Modulator SET_PWM2_DUTY( ) SETUP_CCP2( )
34 32 CCS Timer Kütüphanesi SET_TIMER0( ) SETUP_TIMER_0( ) mode may be one or two of the constants defined in the devices.h file. RTCC_INTERNAL, RTCC_EXT_L_TO_H or RTCC_EXT_H_TO_L RTCC_DIV_2, RTCC_DIV_4, RTCC_DIV_8, RTCC_DIV_16, RTCC_DIV_32, RTCC_DIV_64, RTCC_DIV_128, RTCC_DIV_256 One constant may be used from each group or'ed together with the operator SET_TIMER1( ) SETUP_TIMER_1(mode) mode values may be: T1_DISABLED, T1_INTERNAL, T1_EXTERNAL, T1_EXTERNAL_SYNC T1_CLK_OUT T1_DIV_BY_1, T1_DIV_BY_2, T1_DIV_BY_4, T1_DIV_BY_8 constants from different groups may be or'ed together with SET_TIMER2( ) SETUP_TIMER_2(mode, period, postscale ) mode may be one of: T2_DISABLED, T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16 period is a int that determines when the clock value is reset, postscale is a number 1-16 that determines how many timer overflows before an interrupt: (1 means once, 2 means twice, and so on). SET_TRIS_A( ) SET_TRIS_B( ) SET_TRIS_C( ) SET_TRIS_D( ) INPUT_A( ) INPUT_B( ) INPUT_C( ) INPUT_D( ) OUTPUT_A( ) OUTPUT_B( ) OUTPUT_C( ) OUTPUT_D( ) OUTPUT_TOGGLE( ) DELAY_MS( ) DELAY_US( ) CCS I/O Kütüphanesi CCS Delay Kütüphanesi
35 33 Deney sırasında gerekli PWM periyot, duty ve çözünürlük hesapları aşağıda verilmiştir: [( )] ( ) ( ) ( ) [ ( )] Darbe genişliği en fazla PWM periyodu kadar olabileceği için duty değeri olarak yazılabilecek anlamlı en büyük değer DarbeGenişliği=PWMPeriyot alınarak hesaplanabilir. değeri mikro denetleyicinin çalışma periyodudur. Deneylerde 8 MHz lik çalışma frekansı kullanılmaktadır. Deney Sırasında Yapılacaklar SORULAR DENEY SIRASINDA VERİLECEKTİR Deney Sonu Soruları Donanımsal modüllerin (CCP, Timer gibi) gerekli ayarları yapıldıktan sonra çalışmaları sırasında komut yürütülmesine etkileri nedir? Soruyu 5 saniyede bir RA0 pinine bağlı LED i toogle eden bir program parçasını Timer modülü ile ve yazılımsal gecikme ile yaptığınız durumda karşılaştırarak açıklayın. Aşağıda verilen analog işaret için 3 bitlik çözünürlükte 1 saniye periyot ile örnekleyin. Sonucu aşağıdaki grafikte çizin.
36 34 DENEY 4 : Kesme Kullanarak Seri (RS232 ve I 2 C) Haberleşme Uygulaması Deneyden Önce Yapılacaklar: RS232 ve I2C haberleşme protokolleri için anlamlı elektriksel seviyeleri alıcı ve verici tarafları için araştırın. (Örneğin RS 232 deverici tarafı lojik 0 elektriksel olarak -5:-15 aralığı kabul edilir.) RS232 ve I2C haberleşme protokolleri için gerekli minimum bağlantı sayısı ve uç tanımlarını araştırın. Aşağıda verilen RS232 haberleşme protokolü örnek veri çerçevesi için format tanımlarını araştırın: baud hızı, veri biti sayısı, eşlik cinsi, durdurma biti sayısı kaçtır. D1 veri için LSB mi yoksa MSB midir? 104 s D1 Boşta Start Data Parity Stop Boşta I2C haberleşme protokolü için başla, dur, master slave yönlü haberleşme, slave master yönlü haberleşme koşulları aşağıda verilmiştir inceleyin: RS232 ve I2C haberleşmesi ile ilgili 16F887 SFR yazmaçlarını inceleyin RTC entegresi katalog bilgilerini inceleyin. CCS C derleyicisi için seri haberleşme kesmesi kullanımı için kullanılabilecek kod şablonu aşağıda verilmiştir.
37 35 #include "main.h" #INT_RDA void rda_isr(){ //RS232 seri veri alma kesmesi oluştuğunda bu fonksiyon çağrılır } #INT_TBE void tbe_isr(){ //RS232 seri veri gönderme kesmesi oluştuğunda bu fonksiyon çağrılır } void main(){ enable_interrupts(global);//kesmeleri aç enable_interrupts(int_rda);//rs232 seri veri alma kesmesini aç enable_interrupts(int_tbe);//rs232 seri veri gönderme kesmesini aç } PC8583 entegresi için örnek bir bağlantı şekli aşağıda verilmiştir. Deney Sırasında Yapılacaklar: SORULAR DENEY SIRASINDA VERİLECEKTİR
38 36 DENEY 5 : GLCD ve Dokunmatik Ekran Uygulaması Deney Sırasında Yapılacaklar: SORULAR DENEY SIRASINDA VERİLECEKTİR
47 45 Ek2 : Proteus ile PIC Simülasyonu Proteus ta ISIS programı devre simülasyonu için, ARES programı ise baskı devre hazırlamak için kullanılır. Proteus ISIS ile PIC simülasyonu yapabilmek için aşağıdaki adımlar izlenmelidir. ISIS programı çalıştırıldıktan sonra, sırası ile işaretlenen düğmeler tıklanarak aygıt seçim penceresi açılır. Aygıt seçim penceresinde keywords kutusuna doğrudan kullanılacak aygıt adı yazılarak veya category penceresinden başlık seçilerek istenen aygıt aranır. Arama sonuçları results penceresinde listelenir. İstenen Aygıt seçilerek OK düğmesine basılarak aygıt program aygıt penceresine eklenir. Program aygıtlar penceresinden PIC16F887 aygıtı seçilerek deney ortamına eklenir.
48 46 Deney ortamında aygıta ilişkin ayarlamaları yapmak üzere aygıt özellikleri menüsüne aygıt üzerinde iken sağ Mouse tuşu ile açılan menüden girilir. Aygıt özelliklerinde Processor Clock Frequency 8MHz olarak ayarlanmalıdır.
49 47 Program File olarak derlediğiniz koda ilişkin.cof uzantılı dosyanın yolunu göstermelisiniz..cof uzantılı dosyanın bulunduğu klasörde.c,.h vb. kaynak kodların olduğundan emin olun. Aygıt özellikleri menüsünü OK ile geçtikten sonra debug işlemini pause düğmesi düğmesine basılması ile kod penceresi ve değişkenler penceresi açılır. ile başlatılır. Pause
50 48
51 49 PIC16F887 üzerinde iken sağ Mouse tuşu ile PIC CPU menüsünden yazmaçlar, veri belleği, program belleği, EPROM veri belleği, stack, kaynak kod ve değişkenler pencereleri açılabilir.
52 50 Kaynak kod penceresinde yer alan run, step over, step into, step out, run to cursor ve toogle breakpoint düğmeleri ile debug işlemi gerçekleştirilir. Kaynak kod üzerinde breakpoint eklenebilir. Aşağıda kaynak kodda işaretli satıra kadar adım adım çalıştırma sonucu veri belleğinde değişen içerik görülmektedir.
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çı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.
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.
EasyPic 6 Deney Seti Tanıtımı Power supply voltage regulator J6 ile power supply seçimi yapılır. USB seçilirse USB kablosu üzerinden +5V gönderilir, EXT seçilirse DC connector üzerinden harici bir power
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
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ü
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
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
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
# 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ı
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 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
XIII İçİndekİler 1. Bölüm - Mİkro Denetleyİcİ Nedİr? Mikrodenetleyici Tanımı Mikrodenetleyicilerin Tarihçesi Mikroişlemci- Mikrodenetleyici 1. İki Kavram Arasındaki Farklar 2. Tasarım Felsefesi ve Mimari
# 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
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
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
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
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,
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: firstname.lastname@example.org ÖZET Işığa yönelen panel projesinin amacı,
12. Bölüm TUŞ TAKIMI (KEYPAD) UYGULAMALARI Tuş Takımı (Keypad) Hakkında Bilgi Tuş Takımı Uygulaması-1 74C922 Tuş Takımı Enkoder Entegresi Tuş Takımı Uygulaması-2 (74C922 İle) Bu bölümde tuş takımı diğer
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
Mikroişlemcili Sistem Uygulamaları 1. Ders Giriş Dikkat ettiniz mi: Etrafımızdaki akıllı cihazların sayısı ne kadar da arttı. Cep telefonlarımız artık sadece iletişim sağlamakla kalmıyor, müzik çalıyor,
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
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
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
İÇİ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
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
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
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
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
EEM 419-Mikroişlemciler Güz 2017 Katalog Bilgisi : EEM 419 Mikroişlemciler (3+2) 4 Bir mikroişlemci kullanarak mikrobilgisayar tasarımı. Giriş/Çıkış ve direk hafıza erişimi. Paralel ve seri iletişim ve
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
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)
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@example.com,
MDS 8051 8051 AİLESİ DENEY SETİ 8051 Ailesi Deney Seti ile piyasada yaygın olarak bulunan 8051 ailesi mikro denetleyicileri çok kolay ve hızlı bir şekilde PC nizin USB veya Seri portundan gönderdiğiniz
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
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
Paralel ve Seri İletişim Şekil1a: Paralel İletişim Şekil1b. Seri iletişim Şekil 2: İletişim Modları Asenkron/Senkron İletişim PROTEUS/ISIS SANAL SERİ PORT ile C# USART HABERLEŞMESİ Seri iletişimde, saniyedeki
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
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
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:
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
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,
3.2 PIC16F84 Yazılımı 3.2.1 PIC Assembly 184.108.40.206 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
GERÇEK ZAMAN ENTEGRE DESTEKLİ PIC MİKROKONTROLÖR PROJESİ Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü E-mail: dogan @neu.edu.tr Tel: 90 3922236464
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
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: firstname.lastname@example.org, Tel: (90) 392 2236464 ÖZET Bilgisayarlara
+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
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
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
SAKARYA ÜNİVERSİTESİ Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Bölümü Mikroişlemcili Sistemler ve Laboratuvarı Hafta04 : 8255 ve Bellek Organizasyonu Doç.Dr. Ahmet Turan ÖZCERİT
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
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
PIC Programlama Devrim Çamoğlu İçİndekİler XIII İçİndekİler 1. Bölüm - Temel Kavramlar Mikrodenetleyici Tanımı Mikroişlemci-Mikrodenetleyici 1. Mikro İşlemcili Bir Sistemde Kavramlar 2. Tasarım Felsefesi
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)
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
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
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ı
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:
1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Mikro işlemler Fetch cycle Indirect cycle Interrupt cycle Execute cycle Instruction
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İ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ MİKRODENETLEYİCİ-4 Ankara 2007 Milli Eğitim Bakanlığı tarafından geliştirilen
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.
x86 Ailesi 1 8085A,8088 ve 8086 2 Temel Mikroişlemci Özellikleri Mikroişlemcinin bir defade işleyebileceği kelime uzunluğu Mikroişlemcinin tek bir komutu işleme hızı Mikroişlemcinin doğrudan adresleyebileceği
7. Port Programlama Şekil 2.1. Atmega16 mikrodenetleyici pin şeması A, B, C ve D portları için Register yapıları benzer şekildedir. -42- 7.1. Port Yönlendirme Mikrodenetleyicinin A, B, C, D ve varsa diğer
İLERI MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı EK-A IDE, Program Geliştirme Araçları Geliştirme Araçları Keil C51 Yazılımı Geliştirme Araçları ISIS Programı ISIS/Proteus programı:
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
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.
CP1E KM-N2-FLK MODBUS HABERLEŞMESİ Kablo Bağlantıları ve Slave Node Adresinin Belirlenmesi KM-N2-FLK Modbus Ayarlarının Yapılması PLC Modbus Ayarlarının Yapılması KM-N2-FLK dan 1 Word Okuma İşlemi KM-N2-FLK
1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Operand türleri Assembly dili 2 İşlemcinin yapacağı iş makine komutlarıyla belirlenir. İşlemcinin
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 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
T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 1 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
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;
KARADENĠZ TEKNĠK ÜNĠVERSĠTESĠ BĠLGĠSAYAR MÜHENDĠSLĠĞĠ BÖLÜMÜ MĠKROĠġLEMCĠ LABORATUARI Mikrobilgisayar Donanımı 1. GiriĢ Bu deneyde 16 bit işlemci mimarisine dayalı 80286 mikroişlemcisini kullanan DIGIAC
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.
LAB 0 : Xilinx ISE Kullanımı 1. Proje Yaratma a. Xilinx ISE programını açınız. b. File à New Project menüsünü seçiniz. New Project Wizard diyalog penceresi açılacaktır. c. New Project Wizard diyalog penceresinde