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

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...

Detaylı