28
ROBOTİK UYGULAMALARDA YAZILIM EĞİTİMİ • BU ÇALIŞMALAR İKİ BÖLÜMDEN OLUŞUR 1-)DONANIM a-)Mikroişlemciler b-)Mikrodenetleyiciler 2-)YAZILIM a-)Assembly yazılımı b-)C tabanlı yazılımlar

PIC Programlama, Assembly ve Komutlar

Embed Size (px)

Citation preview

Page 1: PIC Programlama, Assembly ve Komutlar

ROBOTİK UYGULAMALARDA YAZILIM EĞİTİMİ

• BU ÇALIŞMALAR İKİ BÖLÜMDEN OLUŞUR1-)DONANIMa-)Mikroişlemcilerb-)Mikrodenetleyiciler2-)YAZILIMa-)Assembly yazılımıb-)C tabanlı yazılımlar

Page 2: PIC Programlama, Assembly ve Komutlar

DONANIM BİLGİLENDİRME

Page 3: PIC Programlama, Assembly ve Komutlar

1 PIC16F628A’nın DIŞ GÖRÜNÜŞÜ

Microchip PIC16F628A’yı üç farklı kılıf tipiyle üretmektedir. Kullanımı en koly olan

PDIP tipi piyasada en kolay bulunandır. Bunun dışında 20 bacaklı SSOP kılıflı ve 28

bacaklı QFN tipleri de mevcuttur.

Page 4: PIC Programlama, Assembly ve Komutlar

PIC16F628A’nın ÇALIŞMASI

Harvard mimarisi ile üretilen PIC16F628 8-bit’lik bir RISC işlemcidir. program

belleği ve veri belleğine farklı adres/veri yolu ile ulaşır.

Mikroişlemcinin çalışmasını çizilebilecek en basit bir blok diyagram üzerinde

görelim. Bu diyagram tüm PIC’lerin çalışması için geçerlidir.

Page 5: PIC Programlama, Assembly ve Komutlar

CPU: İçerisinde PC-program counter (Program sayıcısı), ALU (ritmetic-Logic-Unit)

bulunan ve diğer bloklar arasındaki çalışmayı organize eden ve flash bellekteki kullanıcı

programını çalıştırankısımdır.

Program belleği (FLASH) : Programların saklandığı ve defalarca yazılıp,

silinebilen flash bellek.

Veri belliği (EEPROM) : PIC Üzerindeki gerilim sessizde bile kaybolması

istenmeyen verilerin saklandığı bellek. Bu bellek üzerine de defalarca

yazma/silme yapılabilir.

Veri belliği (RAM) : Programın çalışması esnasında geçici olarak saklanması

gereken veriler için kullanılır. GBR (General Purpose Register-Genel amaçlı

saklayıcı) olarak da adlandırılan bu bellekte programı yazılması esnasında değişkenler

içerisine atanacak veriler bu alanda saklanır. Bu bellekte ayrıca SPR (Special Function

Register-Özel amaçlı saklayıcı) adı verilen saklayıcılar da vardır. Bunlara

PIC’in çalışma biçimini yönlendiren veriler yazılır.

Page 6: PIC Programlama, Assembly ve Komutlar

PORTA ve PORTB : Mikrodenetleyicinin dışarıya açılan elektronik kapısıdır.

PIC’e girilecek ve PIC’ten dışarıya aktarılacak tüm veriler Bugün yoklar içerisindeki

elektronik devreler aracılığı ile yapılır.

Zamanlayıcı (TIMER0/TIMER1/TIMER2) : Programın çalışmasından bağımsız

olarak içerisindeki sayı binary olarak artan 8-bit’lik (Not: TIMER1=16-bit) bir

saklayıcıdır. Her 4 harici saat yedide bir defa içerisindeki sayı bir defa artarak

255’e ulaştığında tekrar 0’dan başlayarak saymaya devam eder.

Bir mikroişlemcinin çalışması kısaca şöyledir; Program belleğinden CPU

tarafından alınan komutu kodu çözerek işlenir. komut işleme göre diğer ünitelerden

veri okunabilir ya da bu ünitelere veri gönderilebilir. Program komutları gerektiriyorsa

zamanlayıcıdan da veri alabilir. Sonuç olarak bir ortama elektronik olarak bağlantısı

bulunan PORTA/PORTB’den gönderilen lojik veri mikroişlemcinin kontrol ettiği

Page 7: PIC Programlama, Assembly ve Komutlar

3 BESLEME GERİLİMİ

PIC'in çalışması için gerekli olan gerilim 5 ve 14 numaralı pin'lerden uygulanır. 14

numaralı Vdd ucu +5 V'a, 5 numaralı Vss ucu da toprağa bağlanır. PIC'e gerilim 15

uygulandığında devredeki fazla akım çeken elemanların devreye girmesiyle ya da

şebekedeki gerilim dalgalanmaları nedeniyle PIC'in resetlenmesini önlemek amacıyla

Vdd ile Vss arasına 0.1 µf lık bir dekuplaj kondansatörü bağlamak gerekir. Bu durumda

kararlı bir gerilim değeri elde edilmiş olur.

Page 8: PIC Programlama, Assembly ve Komutlar

: PIC16F627A, PIC16F628A, PIC16F648A arasındaki farklar

Device

Program

Memory Data Memory

I/O CCP

(PWM) USART Comparators

Timers

8/16-Bit Flash

(words)

SRAM

(bytes)

EEPROM

(bytes)

PIC16F627A 1024 224 128 16 1 Y 2 2/1

PIC16F628A 2046 224 128 16 1 Y 2 2/1

PIC16F648A 4096 256 256 16 1 Y 2 2/1

Page 9: PIC Programlama, Assembly ve Komutlar

PIC 16F877A BACAK NUMARALARI

Page 10: PIC Programlama, Assembly ve Komutlar

• Bacak Yapısı• PIC16F877 'nin 40 pininden 33 tanesi I/O (

input/output - giriş/çıkış ) pinleridir. PIC16F877; 6 bitlik A portu, her biri 8 bitlik B,C ve D portları ve 3 bitlik E portu olmak üzere 5 porta sahiptir. I/O pinlerinin gerekli konfigürasyonlar yapılarak başka amaçlarla kullanılması da mümkündür.

Page 11: PIC Programlama, Assembly ve Komutlar

PIC 16F877A ÖZELLİKLER• Temel Özellikleri• *İşlem hızı DC-20 MHz dir. (bir komut DC-200 ns hızında çalışmaktadır.)

*Dallanma komutları iki çevrim (cycle) sürede, bunların dışındaki komutlar ise bir çevrimlik süredeuygulanır.*8 Kword Flash ROM programlama belleği (EEPROM özellikli program belleği), 368 Byte kullanıcı RAM belleği ve 256 Byte EEPROM belleği olmak üzere üç adet bellek bloğu vardır.*8 Kword 'lük Flash ROM programlama belleği 1000000 kez programlanabilir.*CPU azaltılmış komut setine sahiptir.*Statik RAM üzerinde 32 adet özel işlem kaydedicisi (SFR - Special Function Register) vardır.*RISC temeline dayanır.*CPU azaltılmış komut setine sahiptir.*Öğrenilecek gereken her biri 14 bitlik 35 komut vardır.*Pin çıkışları PIC 16C73B/74B/76 ve 77 ile uyumludur. * 8 bitlik veri yolu (databus) vardır.*14 kaynaktan kesme yapabilir.

Page 12: PIC Programlama, Assembly ve Komutlar

PIC ASSEMBLY DİLİ ve DERLEYİCİ

Derleyici (assembler), bir text editöründe assembly dili kurallarına göre yazılmış

olan komutların PIC’in anlayabileceği hexadesimal kodlara çeviren (derleyen) bir

programdır. Microchip firmasının MPASM bu işi yapan assembler programıdır.

Assembler’e çoğu zaman compiler de (derleyici) denilir.

Assembly dili, bir PIC’e Yaptırılması isteyen işlerin belirli kurallara göre yazılmış

komutlar dizisidir. Assembly dili komutları İngilizce dilindeki bazı kısaltmalardan

meydana gelir. Bu kısaltmalar genellikle bir komutan çalışmasını ifade eden cümlenin

baş harflerinden oluşur. Böylece elde edilen komut, bellekte tutulması kolay

(mnemonic) bir hale getirilmiştir. Örneğin:

BTFSC (Bit Test File register Skip if Clear) - saklayıcıdaki bit’i test et, eğer

sıfırsa bir sonraki komutu atla, anlamında kullanılan İngilizce cümlenin kısaltmasıdır.

Buarada: 8 bit’lik bir saklayıcıdaki 1 bit’i ifade eder. Test : kontrol etmek anlamındadır.

File register : 8 bit’lik port saklayıcı veya değişken ifade eder. Skip : Atlamak, bir

sonrakine geçmek anlamına gelir. If : Eğer. Clear : ‘0’ anlamına gelir.

Page 13: PIC Programlama, Assembly ve Komutlar

PIC ASSEMBLY DİLİ YAZIM KURALLARI

PIC assembly programlarının yazılması için kullanılan metin editörlerinden

1.bölümde bahsetmiştik. Bu editörlerden, Windows altında çalışan NOTPAD veya DOS

altında çalışan EDIT en kolay elde edilebilenlerdir. Bunların dışında printer kontrol

komutları içermeyen ve ASCII kodunda dosya üretebilen herhangi bir editör de

kullanılabilir. MPLAB kullanıldığında ayrıca bir editör kullanmaya gerek yoktur.

Çünkü MPLAB’ın içinde hem bir metin editörü hemde MPASM bulunmaktadır

MPASM asembler programının yazılan komutlaru doğru olarak algılayıp, PIC’in

anlayabileceği heksadesimal kodlara dönüştürebilmesi için şu bilgiler program içinde

özel formatta yazılması gerekir :

Komutların hangi PIC16XX için yazıldığı,

Programın bellekteki hangi adres başlayacağı,

Komutların ve etkiketlerin neler olduğu,

Programın bitiş yeri.

Basit bir örnekle bu bilgilerin program içinde nasıl yazıldığını gösterelim. Program

ilk olarak PIC16F628A’ya B port’unun 8 ucunu da çıkış tanıtacaktır. Daha sonra bu

port’un ilk dört bit’ini lojik 1, sonrakş dört bit’ini de lojik 0 yapacak. Son olarak

program sonsuz bir döngüye girecektir. Bu işlemleri yapacak olan programın akış

diyagramı ve komutları aşağıdaki gibi olacaktır.

Page 14: PIC Programlama, Assembly ve Komutlar

4.2.1 Noktalı Virgül (;)

Baş tarafına (;) konulan satır, assembler tarafından heksadesimal kodlara

dönüştürülmez. Bu satırlar programın geliştirilmesi esnasında hatırlatıcı açıklamaların

yazılmasında kullanılır. Örneğin CLRF ile başlayan satırda ‘porB’nin içini

sıfırla’ cümlesi, CLRF komutunun ne iş yaptığını açıklar. Programın bölümlerini

birbirinden ayırmak için (---------veya =====) çizgileri kullanmak, programı görsel

olarak daha okunur hale getirdiği gibi bu çizgiler arasına uyarılar ve açıklamalarda

yazılabilir.

4.2.2 Girintiler ve Program Bölümleri

Metin editörlerin de birbirinden farklı uzunlukta girintiler veren TAB (

sekme) özelliği vardır. Bu özellikten yararlanarak assembly komutları üç kolona

...

bölünerek yazılır. Bir assembly programı temel olarak dört bölüme

ayrılır. Bunlar; Başlık, atama, program ve sonuç bölümleridir.

Page 15: PIC Programlama, Assembly ve Komutlar

4.3 PIC ASSEMBLY KOMUTLARININ YAZILIŞ BİÇİMİ

PIC16F628A’nın toplam 35 tane komutu vardır. Bu komutların yazılış biçimini üç

grupta toplayabiliriz. 1. Byte-yönlendirmeli komutlar.

2. Bit-yönlendirlemli komutlar.

3. Sabit işleyen komutlar.

4. Kontrol komutları

Komutların yazılış biçimleri ne açıklarken bazı tanımlama harfleri

kullanacağız. bu tanımlama harfleri mikroçipin veri kataloglarında da aynı şekilde

geçtiğinden orijinal biçiminde verilmiştir. Önce bu harflerin anlamları verelim:

f = fiel register (özel veya genel amaçlı saklayıcı)

d = destination (hedef, gönderilen yer)

d=0 Verinin gönderileceği yer (W saklayıcı.)

d=1 Verinin gönderileceği yer ( özel veya genel amaçlı saklayıcı.)

k = Sabit sayı veya adres etiketi

b = bit tanımlayıcı

b = binary sayıları belirleyen harf (Örneğin b’00001111’ gibi)

d = desimal sayıları belirleyen harf (Örneğin d ‘16’ gibi)

Page 16: PIC Programlama, Assembly ve Komutlar

• *PIC16F877 dolaylı ve göreceli adresleme yapabilme özelliğine sahiptir.• *CMOSFlash EEPROM teknoloji ile düşük güçle yüksek hıza erişebilir.• *Enerji verildiğinde sistemi resetleme özelliği (Power-on Reset), • *Power-up zamanlayıcı (Power-up Timer)• *Osilatör başlatma zamanlayıcısı (Osilatör Start-up Timer)• *Özel tip zamanlayıcı (Watch-dog Timer), devre içi RC osilatör• *Hata ayıklamada kullanılanabilecek modül (devre içi Debugger)• *Seçimli osilatör özellikleri• *Statik tasarım• *Enerji tasarrufu sağlayan uyku modu ( Sleep Mode) özelliği vardır.• *Programla kod güvenliği sağlanabilir.• *Düşük gerilimli programalama özelliğine sahiptir.• *Sadece 5 V giriş ile devre içi seri programlanabilir.• *2 pinle programlanabilir.• *Program belleğine okuma/yazma özelliği ile erişilebilir.• *2,0 V ile 5,0 V arasında değişen geniş işletim aralığına sahiptir.• *Kaynak akımı 25 mA dir.• *Geniş sıcaklık aralığında ve düşük güçle çalışabilir.• *Devre içi iki pin ile hata ayıklama özelliği vardır.

Page 17: PIC Programlama, Assembly ve Komutlar

• PIC 16F877A BESLEME BAĞLANTISI

Page 18: PIC Programlama, Assembly ve Komutlar

YAZILIM BİLGİLENDİRME

Page 19: PIC Programlama, Assembly ve Komutlar

PIC ASSEMBLY 35 KOMUTU PIC ASSEMBLY KOMUTLARI

Yer Değiştirme ve Yükleme Komutları

Komut ve Örnek İngilizce tanımı

Türkçe açıklaması

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 d=0 W←SAYAC d=1 SAYAC←SAYAC

MOVWF F Move W to f

W saklayıcısının içeriğini f saklayıcısına yükler.

MOVWF PORTA PORTA←W

Saklayıcı İçeriğini Değiştire Komutları

CLRF F CleaR f f saklayıcısının içeriğini siler (sıfırlar).

CLRF TRISB TRISB←00000000

CLRW CleaR W W saklayıcısının içeriğini siler (sıfırlar). CLRW W←00000000

COMF f,d Complement f F saklayıcısının içindeki sayı terslenir. Yani tüm 1'ler 0, 0'lar 1 olur. Sonuç W veya f saklayıcısına yüklenir. Diğer bir anlamda sayının tümleyeni alınır.

COMF SAYAC,0 SAYAC=10110110 ise, d=0 W←01001001 d=1 olsaydı SAYAC←01001001

DECF f,d Decrement f F registerinin içerisindeki sayıyı "1" eksiltir. Registerin içeriği h'00' ise, "1" eksiltildiğinde h'FF' olur. Sonuç W veya f registerine yazılır.

DECF GIT,1 GIT=h'2C' ise 2C-1=2B d=1 GIT←2B d=0 olsaydı W←2B

INCF f,d Increment f F registerinin içerisindeki sayıyı "1" artırır. Registerin içeriği h'FF' ise, "1" arttırıldığında h'00' olur. Sonuç W veya f Registerine yazılır.

Page 20: PIC Programlama, Assembly ve Komutlar

INCF GIT,0

GIT=h'2C' ise 2C+1=2D d=0 W←2D d=1 olsaydı GIT←2D

BCF Bit Clear f f registerinin içerisindeki sayının b.ninci bit'ini sıfırlar.

BCF PORTB,5 PORTB=b'1111111’ ise, PORTB←b'11011111'

BSF f,b Bit Set f F registerinin içerisindeki sayının b.ninci Bit'ini 1 yapar.

BSF PORTA,3 PORTA=b'00000000' ise, PORTA←b'00001000'

RLF f,d Rotate Left f F registeri içerisideki sayıyı bir pozisyon sola kaydırır. Registeriden taşarak Carry bayrağına yazılan bit, LSB'ye yazılır. Sonuç W veya f registerine yüklenir.

RLF KAY,0 KAY=b'10110110' ise, d=0 olduğundan W←01101101 d=1 olsaydı KAY←01101101

RRF f,d Rotate Right f F registeri içerisindeki sayıyı bir pozisyon sağa kaydırılır.Registeriden

taşarak Carry bayrağına yazılan bit, MSB'ye yazılır. Sonuç W veya f registerine yüklenir.

RRF KAY,1 KAY=b'10110111' ise, d=1 olduğundan KAY←11011011 d=0 olsaydı W←11011011

Page 21: PIC Programlama, Assembly ve Komutlar

Komut ve Örnek İngilizce tanımı

Türkçe Açıklaması

SWAPF f,d Swap nibbles in f

F registerinin içerisindeki ilk dört bit ile son dört biti yer değiştirir. Sonuç W veya f registerine yüklenirç

SWAPF DEG,1 DEG=b'00101111' ise,

d=1 olduğundan d=0 olsaydı

DEG←11110010

W←11110010

Program Akışını Kontrol Etme Komutları

GOTO GOTO

k DONGU

Go to address

Program akışı k adresine dallanır. Program, DONGU etiketinin yazıldığı yere dallanır ve

burdan itibaren devam eder.

CALL CALL

k TIMER

Call subroutine

Program akışı k etiketinin bulunduğu yerdeki alt programa dallanır Program TIMER etiketinin yazıldığı alt program satırının bailangıcına dallanır ve buradan

itibaren devam eder.

RETURN Return from subrautine

Alt program komutlarının en sonuna yazılan bu komut, program akışını ana programa geri döndürür.

RETLW Return With Literal in W

Program akışını alt programdan ana programa döndürür ve W regis- terine k sabitini yükler

RETLW H'2F' Alt programdan ana programa döndürür ve W registerine 2F yüklenir.

RETFIE Return From Interrup

Program akışını kesme alt programından ana programa döndürür.

BTFSC f,b Bit Test F,

Skip if Clerar

F registerinin b.ninci bitini test eder. Eğer bu bit "0" sa program akışı bir sonraki komuta geçer.

Page 22: PIC Programlama, Assembly ve Komutlar

BTFSC PORTA,2

PORTA=b'0000100' ise, →1 PORTA=b'00000000' ise, →2 ↓←← BTFSC PORTA,2

→→↓

"2" ↓GOTO ↓

START ←←↓

"1"

↓→→ MOVLW h'FF'

BTFSS f,b Bit Test F, Skip if Set

F registerinin b.ninci bitini test eder. Eğer bu bit "1" se program akışı bir sonraki komuta geçer.

BTFSS PORTA,0

PORTA=b'00000001' ise, →1 PORTA=b'00000000' ise, →2 ↓←← BTFSS PORTA,0

→→↓

"1"↓GOTO ↓

START ←←↓

"2"

↓→→ MOVLW h'FF'

DECFSZ f,d Decrement f, Skip if Zero

F registerinin içeriğini "1" azaltır. Registerinin içeriği 0'sa bir sonraki komuta atlar. Sonuç W veya f

registerine yazılır.

DECFSZ SAYAC,1 SAYAC=h'2F' ise, 2F-1=2E

d=0 olsaydı W← h'2E' d=1 olduğundan SAYAC← h'2E'

INCFSZ

INCFSZ F,d Increment f,

Skip if Zero

F Registerinin içeriğini "1" arttırır. Registerin içeriği 0'sa bir sonraki komuta atlar. Sonuç W veya

f registerine yazılır. SAYAC=h'2F' ise, 2F+1=30

d=1 SAYAC←h'30' d=0 W←h'30'

Page 23: PIC Programlama, Assembly ve Komutlar

Mikrodenetleyici Kontorol Komutları Komut ve

Örnek İngilizc

e Tanımı

Türkçe Açıklaması

CLRWDT

Clear Watchdog

Timer

Watchdog timer'ı sıfırlar. Ayrıca watchdog timer'ın prescalar değerini de sıfırlar. Status bit'lerinden TO ve PD'yi "1" yapar.

SLEEP

Go into

standy

mode

Mikrodenetleyiciyi uyuma moduna geçirerek güç harcamasını azaltır. Mikrodenetleyici uyuma modundan reseti watchdog

timer ce TOCKI giriş vasıtasıyla çıkar.

Mantıksal Komutlar

ANDLW k AND

Literal With W

W registerinin içeriği ile k sabitine AND işlemi uygular. Sonuç W registerine yazılır.

ANDLW b'00110001'

W=b'10011101' ise, b'00110001' sabitinin

değeri b'00010001' AND işlemi

sonucu W←b'00010001'

ANDWF f,d AND W

with f W registeri ile file registeri içeriğine AND işelemi uygular.

Sonuç W registerine yazılır.

ANDWF SAYAC,1

W=b'11111111' ise,

SAYAC=b'1101111 ise,

b'11011110' AND işlemi sonucu

d=0 ise W←b'11011110' d=1 olursa SAYAC←b'11011110'

Page 24: PIC Programlama, Assembly ve Komutlar

IORLW k Inclusive

OR Literal with W

W registerinin içeriği ile k sabitine OR işlemi uygular. Sonuç W registerine yazılır.

IORLW b'00101000'

W=b'10000100' ise b'00101000' sabitin

değeri b'10101100' OR

sonucu W ← b'10101100'

IORWF f,d W registerinin içeriği ile file registerinin içeriğine OR işlemi uygular. Sonuç W veya f registerine yazılır.

IORWF SAYAC,1

W=b'10000100' ise,

SAYAC=b'0010100 ise,

b'10101100' OR sonucu d=o ise W ← b'10101100' d=1 olursa SAYAC←b'10101100'

XORLW k

Exclusive OR Literal

with W

W registerinin içeriği ile k sabitine XOR işlemi uygular. Sonuç W registerine yazılır.

XORLW

b'00101100'

W= b'11111111' ise XOR b'00101100 sabitin değeri

b'11010011 XOR sonucu W ← b'11010011'

XORWF F,d

Exclusive OR W

with f

W registeri ile f register file register içeriğine XOR işlemini uygular. Sonuç W veya f registerine yazılır.

XORWF SAYAC,1

W=b'00100000' ise,

SAYAC=b'0010100 ise,

b'00001000' XOR sonucu d=0 ise W ← b'00001000' d=1 olursa SAYAC←b'00001000'

Page 25: PIC Programlama, Assembly ve Komutlar

Aritmetik İşlem Komutları Komut ve Örnek İngilizce

Tanımı Türkçe Açıklaması

ADDWF f,d Add W with

f W registerinin içeriğini f registeri ile toplar. Sonuç W veya f

registe- rine yazılır.

ADDWF TOP,0

W=h'2A' ise, TOP=h'31' ise, h'2A'+h'31'=h'5B2

d=1 ise TOP←h'5B' d=0

olduğundan W←h'5B'

ADDLW k Add Literal

and W W registerinin içeriğini k sabit değeri ile tolar. Sonuç W

registerine yazılır.

ADDLW h'2A' W=h'B0' ise, h'B0'+h'2A'=h'DA' W← h'DA'

SUBLW k Subtract W

from Literal

K sabit değerinden W registerinin içeriğini çıkarır. Sonuç W registerine yazılır.

SUBLW H'93' W=h'83' ise, h'93'-h'83'=h'1 W← h'10'

SUBWF f,d Subtract W

from File register

F registerinin içeriğinden W registerinin içeriğini çıkarır. Sonuç W veya f registerine yazılır.

SUBWF CIK,1

W=h'73' ise, CIK=h'90' ise, h'90'-h'73'=h'17'

d=0 ise W←h'17' d=1 olduğundan CIK←h'17'

Sonucun pozitif, negatif veya sıfır olmasına göre STATUS registerinin C ve Z bitleri kontrol edilir.

Page 26: PIC Programlama, Assembly ve Komutlar

Başla

PortB’nin tüm uçlarını çıkış olarak tanıt

PortB’ye 0x0F yükle

Döngü

Son

Page 27: PIC Programlama, Assembly ve Komutlar

ÖRNEK PROGRAM KOMUTLARI;======PICTEST1.ASM=========================06 / 03 / 2016======== LIST P= 16F628A ;--------------------------------------------------------------------------------------------------------- ; Adres tanımlama bloğu STATUS EQU 0x03 PORTB EQU 0x06 TRISB EQU 0x86 ;--------------------------------------------------------------------------------------------------------- ORG 0x00 ; programı 0x00’dan başlat ;--------------------------------------------------------------------------------------------------------- ; Port’ların durumunu belirleme bloğu BASLA CLRF PORTB ; PortB’nin içini sıfırla BSF STATUS,5 ; BANK1’e geç CLRF TRISB ; PortB’nin uçlarını çıkış yap BCF STATUS,5 ; tekrar BANK0’a geç ;--------------------------------------------------------------------------------------------------------- ; Program bloğu MOVLW 0x0F ; W saklayıcısına 0x0F’i yükle MOVWF PORTB ; W ’yi portB’ye yükle ;--------------------------------------------------------------------------------------------------------- ; Sonlandırma bloğu DONGU GOTO DONGU END ;=============================================================

Page 28: PIC Programlama, Assembly ve Komutlar

ÖĞR. GÖR. KADİR CENGİZELEKTRONİK VE OTOMASYON

BÖLÜMÜMUĞLA MESLEK YÜKSEKOKULU

[email protected]