EasyPic6 Deney Seti Kullanım Kılavuzu
Transkript
EasyPic6 Deney Seti Kullanım Kılavuzu
YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EasyPic6 Deney Seti Kullanım Kılavuzu İstanbul 2009 İçindekiler EasyPic6 Deney Setinin Tanıtımı ............................................................................................................. 1 PIC16F887 μC Tanıtımı .......................................................................................................................... 11 PIC16F887 Komut Seti Özeti ................................................................................................................. 20 mikroC Derleyicisinin Tanıtımı .............................................................................................................. 22 CCS C Derleyicisi Tanıtımı ...................................................................................................................... 23 Kaynaklar............................................................................................................................................... 24 Ek : PIC16F887 Komut Açıklamaları ...................................................................................................... 25 1 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: 2 1) Güç kaynağı voltaj regülatörü 2) On board programcı USB bağlantısı 3) MikroICD destekli USB 2.0 programcı 4) DS1820 sensör soketi 5) Dış MICROCHIP debugger’ı bağlantısı. (ICD2 veya ICD3) 6) USB bağlantı soketi 7) A/D değiştirici test girişleri 8) PS/2 bağlantısı 9) Kart üstünde 2x16 LCD ekran 10) Pull-up/pull-down dirençleri aktive etmek için DIP anahtarları 11) Pull-up/pull-down mod seçen port pinleri 12) I/O port bağlantıları 13) PIC mikrokontrolcüsü soketi 14) Dokunmatik panel kontrolcüsü 15) Port genişletici 16) 128x64 LCD ekran bağlantısı 17) 128x64 LCD ekran kontrasy potansiyometresi 18) Dokunma paneli bağlantısı 19) Menü tuşları 20) 4x4 tuş takımı 3 21) Dijital girişleri simüle eden butonlar 22) Lojik durum seçici 23) Koruyucu direnç açık/kapalı jumperı 24) Reset tuşu 25) Pinlerin durumunu gösteren 36 LED 26) Alfanumerik LCD kontrast ayarı 27) Alfanumerik LCD bağlantısı 28) RS-232 iletişim bağlantısı Deneylerin yaptırılacağı PIC16F887 mikro denetleyicisi için programlama, soket seçim ve MCLR ucu uygun ataç ayarları aşağıdaki şekillerdeki gibidir. Deney sırasında bu ayarların doğru olduğundan emin olunuz. 4 Deneylerde kullanılacak donanımsal modüllerin genel şematik yapıları aşağıda verilmiştir. 5 G/Ç pinlerinin, giriş çıkış işlemlerinde kullanım amacına göre, ataç ve anahtar ayarları aşağıdaki şekilde verilmiştir. Anahtar 6 ile (SW6) ilgili pinin bağlı olduğu LED’i aktif, inaktif yapmak mümkündür. Ataç 17 ile (J17) pushbuttona basıldığında mikro denetleyici ucundaki lojik seviye 0 veya 1 olarak ayarlanabilir. Anahtar 1 ile (SW1) direk port geçişi için pull-up, pull-down direnç seçimi yapılabilmektedir. 6 EasyPic5 deney setinde 4 basamaklı ortak katotlu 7 parçalı gösterge mevcuttur. 7 parçalı gösterge takımı için gösterge seçimleri RA0-RA3 pinleri ile yapılmaktadır, parçalar ise RD0-RD7 pinleri ile sürülmektedir. 7 parçalı gösterge uygulamasında bir seferde sadece bir göstergenin aktif olması sağlanarak sırayla tüm göstergeler taranmalıdır. LCD modülünün donanımsal bağlantıları 4 bitlik çalışma moduna göre yapılmıştır. LCD arka ışığı anahtar 9 (SW9) backlight butonu ile kontrol 7 edilmektedir. Grafik LCD için donanımsal bağlantı aşağıdaki şekilde verilmiştir. Sıcaklık sensörü analog çıkış üreten bir entegredir. İstenen analog giriş ucu ile sensör arasındaki bağlantı J11 atacı ile sağlanır. 8 9 RS232 haberleşme modülü için donanımsal olarak seri haberleşmeyi destekleyen RC6 ve RC7 pinlerinin seçilmesi gerekmektedir. Deney seti ile bilgisayar arasında seri kablo ile bağlantı kurulacaktır. Bilgisayar tarafında Hyperterminal veya benzeri bir program uygun baudrate ve gerekli ayarlar ile kullanılarak haberleşme sağlanacaktır. 10 Analog dijital çevirici giriş modülünde iki adet 10K’lık potansiyometre bulunmaktadır. Analog giriş uçlarından kullanılacak olanına ait SW1 anahtarı konumu kapalı olarak ayarlanmalıdır. J15 ve J16 ataçları ile de kullanılacak analog giriş ucu bağlantısı sağlanmalıdır. 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. 12 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. 13 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. 14 PC değeri PCL ve PCLATH yazmaçları ile oluşturulur. PC değerinin elde edilmesine ilişkin şekil aşağıda verilmiştir. 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. 15 SRAM veri belleğinin adreslenmesine ilişkin modlar doğrudan adresleme ve dolaylı adresleme olarak aşağıda verilmiştir. 16 Doğrudan adresleme: 9 bitlik ram adresinin 7 biti instruction’dan 2 biti ise STATUS<6:5> yazmacından gelir. //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ı 17 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 desteklenmektedir. modlarından farklı olarak Relative Addressing modu da 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. 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. 20 PIC16F887 Komut Seti Özeti Status Affected 14-Bit Opcode Mnemonic, Operands Description Cycles MSb Notes LSb BYTE-ORIENTED FILE REGISTER OPERATIONS 1 1 1 1 00 00 00 00 0111 0101 0001 0001 dfff dfff lfff 0xxx ffff ffff ffff xxxx C, DC, Z Z Z Z 1, 2 1, 2 2 Complement f Decrement f Decrement f, Skip if 0 1 1 1(2) 00 00 00 1001 0011 1011 dfff dfff dfff ffff ffff ffff Z Z 1, 2 1, 2 1, 2, 3 f, d f, d Increment f Increment f, Skip if 0 1 1(2) 00 00 1010 1111 dfff dfff ffff ffff Z 1, 2 1, 2, 3 IORWF MOVF MOVWF f, d f, d f Inclusive OR W with f Move f Move W to f 1 1 1 00 00 00 0100 1000 0000 dfff dfff lfff ffff ffff ffff Z Z 1, 2 1, 2 NOP RLF RRF SUBWF SWAPF – f, d f, d f, d f, d No Operation Rotate Left f through Carry Rotate Right f through Carry Subtract W from f Swap nibbles in f 1 1 1 1 1 00 00 00 00 00 0000 1101 1100 0010 1110 0xx0 dfff dfff dfff dfff 0000 ffff ffff ffff ffff C C C, DC, Z 1, 2 1, 2 1, 2 1, 2 XORWF f, d Exclusive OR W with f 1 00 0110 dfff ffff Z 1, 2 ADDWF ANDWF CLRF CLRW f, d f, d f – Add W and f AND W with f Clear f Clear W COMF DECF DECFSZ f, d f, d f, d INCF INCFSZ BIT-ORIENTED FILE REGISTER OPERATIONS 1 1 01 01 00bb 01bb bfff bfff ffff ffff 1, 2 1, 2 Bit Test f, Skip if Clear 1 (2) 01 10bb bfff ffff 3 Bit Test f, Skip if Set 1 (2) 01 11bb bfff ffff 3 111x 1001 kkkk kkkk kkkk kkkk BCF BSF f, b f, b Bit Clear f Bit Set f BTFSC f, b BTFSS f, b LITERAL AND CONTROL OPERATIONS ADDLW k Add literal and W 1 ANDLW k AND literal with W 1 11 11 21 10 00 0kkk 0000 kkkk 0110 kkkk 0100 2 10 1kkk kkkk kkkk CALL CLRWDT GOTO C, DC, Z Z k Call Subroutine Clear Watchdog Timer Go to address IORLW k Inclusive OR literal with W 1 11 1000 kkkk kkkk MOVLW k Move literal to W 1 11 00xx kkkk kkkk RETFIE RETLW – k Return from interrupt Return with literal in W 2 2 00 11 0000 01xx 0000 kkkk 1001 kkkk 1 00 00 11 0000 0000 110x 0000 0110 kkkk 1000 0011 kkkk TO, PD C, DC, Z 1 11 1010 kkkk kkkk Z k– RETURN SLEEP SUBLW –– k Return from Subroutine Go into Standby mode Subtract W from literal XORLW k Exclusive OR literal with W 21 TO, PD 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. 21 Field f Description Register file address (0x00 to 0x7F) W Working register (accumulator) b Bit address within an 8-bit file register k 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. Destination select; d = 0: store result in W, d = 1: store result in file register f. Default is d = 1. x d PC TO C Program Counter Time-out bit Carry bit DC Digit carry bit Z PD Zero bit Power-down bit 22 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) 2) 3) 4) 5) 6) 7) 8) mikroC programı çalıştırılarak microC IDE açılır Project > New Project yolu ile yeni proje penceresi açılır Proje ismi, yolu girildikten sonra Device menüsünden PIC16F887 seçilir Clock değeri olarak 8.000.000 değeri girilir Device Flags kısmında Default düğmesi tıklanır Derleyicinin oluşturduğu .c dosyasına ilgili kod yazılır Project > Build yolu ile proje derlenir 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. 23 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 8.000.000 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 PICFlash programı çalıştırılır 12) File > Load Hex yolu ile derlenen hex dosyası programa yüklenir 13) Device kısmında PIC16F887 seçili olduğunu kontrol ediniz 14) Write butonu ile hex kod mikro denetleyiciye yüklenir 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. 24 Kaynaklar 16F887 katalog bilgisi : http://ww1.microchip.com/downloads/en/DeviceDoc/41291E.pdf EasyPic5 kullanma kılavuzu : http://www.mikroe.com/pdf/easypic5/easypic5_manual.pdf mikroC kullanma kılavuzu : http://www.mikroe.com/pdf/mikroc/mikroc_manual.pdf Ek : PIC16F887 Komut Açıklamaları
Benzer belgeler
aile watchdog.us
PIC16F84’ ÜN BACAK (PİN) YAPISI VE PORTLARI
• PIC16F84 mikrodenetleyicisi 18
bacağa (pin) sahiptir ve hepsi Dijital
(sayısal)dir.
• Şekilde görüldüğü gibi VDD (+), VSS
(-) besleme uçlarıdır. 5 V u...