Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }



Benzer belgeler
BUTON KONTROLÜ. Pull-Down Bağlantı (Ters Bağlantı) Butona basılmadığında Giriş=1 Butona basıldığında Giriş=0

Mikroişlemci Programlama Aşamaları

Hacettepe Robot Topluluğu

PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ

DENEY-1. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

PIC TABANLI, 4 BASAMAKLI VE SER

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI

B.Ç. / E.B. MİKROİŞLEMCİLER

16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB

Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin Programlanmasi: PIC Programlama Örnekleri -1

Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür.

LCD (Liquid Crystal Display )

BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB= BCF STATUS,5 ;bank0 a geçiş

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

PD103 BUTON LED UYGULAMA DEVRESİ UYGULAMA ÖRNEKLERİ MALZEME LİSTESİ

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

LCD (Liquid Crystal Display)

PIC Mikrodenetleyiciler. Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1

PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI. Temel olarak bir PIC içerisinde de iki tür hafıza bulunur:

IŞIĞA YÖNELEN PANEL. Muhammet Emre Irmak. Mustafa Kemal Üniversitesi Mühendislik Fakültesi. Elektrik-Elektronik Mühendisliği Bölümü

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir?

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü

7. Port Programlama. mikroc Dili ile Mikrodenetleyici Programlama Ders Notları -42- Şekil 2.1. Atmega16 mikrodenetleyici pin şeması

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA UYGULAMA_05_01 UYGULAMA_05_01. Doç.Dr. SERDAR KÜÇÜK

8 Ledli Havada Kayan Yazı

Hacettepe Robot Topluluğu

PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu

Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk.

DENEY 9-A : PIC 16F877 ve LM-35 ile SICAKLIK ÖLÇÜM UYGULAMASI

T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2

MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize

KONFİGÜRASYON BİTLERİ

LED YAKMAK. Circuit 2. Kablo LED. Direnç. Arduino LED. Direnç (330ohm)

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı

Sistem Programlama Deney 1

Hacettepe Robot Topluluğu

DENEY-2. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

Bu yürütme, Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

Komutların İşlem Süresi

TUŞ TAKIMI (KEYPAD) UYGULAMALARI

Yrd.Doç. Dr. Bülent ÇOBANOĞLU. Sakarya Üniversitesi, Teknoloji Fakültesi

MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil Bahar

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz.

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

Paralel ve Seri İletişim. Asenkron/Senkron İletişim. Şekil 2: İletişim Modları

5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI

W SAYAC SAYAC SAYAC. SAYAC= ise, d=0 W

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İ

DOKUMANLAR

Program Nedir? Program, bir problemin çözümü için herhangi bir programlama dilinin kuralları ile oluşturulmuş komut kümesidir.

PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI

MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

Yrd. Doç.Dr. Bülent ÇOBANOĞLU. Hazırlayan:Yrd.Doç.Dr.Bülent ÇOBANOĞLU 1

MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil Güz (Vize sonuna kadar olan kısımdır.)

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ

ÇİZGİ İZLEYEN ROBOT YAPIMI

Deney 7: Aritmetik ve Lojik İşlem Birimi(ALU)

Arduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur.

MİKROİŞLEMCİ (Microprocessor) NEDİR?

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

Mikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici

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İ

Deney 6: Ring (Halka) ve Johnson Sayıcılar

Alıcı Devresi; Sinyali şu şekilde modüle ediyoruz;

EEProm 24C08 UYGULAMA AMAÇ 24C08 MCU_VCC. e r : d e G. Sayfa - 1

PIC16F877A nın Genel Özellikleri

Hyper Terminal programı çalıştırıp Uygun COM portu ve iletişim parametrelerinin ayarları yapılıp bekletilmelidir.

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ

Haftalık Ders Saati Okul Eğitimi Süresi

Deney 5: Shift Register(Kaydırmalı Kaydedici)

Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü Tel:

BLGM423 Gömülü Sistem Tasarımı

Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre

KANPUR/microcontrollers/micro/ui/Course_home3_16.htm Yrd.Doç. Dr.

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK

XC8 ile PİC uygulamaları

DENEY-5. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

ART S602W Standalone Kart Okuyucu

PIC Mikrodenetleyicileri

UniGSM Arduino SHIELD (UniGSM-A) KURULUM ve KULLANIM KİTAPÇIĞI

FOG AUTO-PILOT. Fatih GENÇ

T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ

GAZİ MESLEK YÜKSEK OKULU ELEKTRONİK TEKNOLOJİSİ

Hacettepe Robot Topluluğu

Deney 8: ALU da Aritmetik Fonksiyonlar

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ ELEKTRONİK SİSTEMLER LABORATUVARI 1

ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU

Mikro denetleyicili Uygulama devresi bileşenleri

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

HUNRobotX - Makaleler - Hız Ayarlı Çoklu DC Motor Kontrolü. Makaleler Hız Ayarlı Çoklu DC Motor Kontrolü

5.Eğitim E205. PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628:

Transkript:

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 kurunuz. (Besleme, Clock, Reset ve istenilen elemanlar) 2. MikroC derleyici programını ayarlarını yaparak çalıştırınız. 3. Yapacağınız işe uygun program kodlarını MikroC editör programında yazınız ve kaydediniz. 4. Yazdığınız programı derleyerek ( Build ).hex uzantılı dosyayı oluşturunuz. 5. Programlayıcı kartınızı bilgisayarın uygun USB girişine bağlayınız. 6. PIC entegresini uygun şekilde programlayıcı karta yerleştiriniz. 7. Programlayıcı yazılımını çalıştırınız. (MicroPro26) 8. File > Load komutu ile ***.hex dosyasınınn bulunduğu dizinden dosyayı bulup yükleyiniz. 9. Gerekli sigorta ayarlarının düzgün yapıldığından emin olunuz. 10. Program komutu ile yazdığınız programı PIC içersindeki program belleğine atınız. 11. Devreye enerji verip doğru çalışıp çalışmadığını kontrol ediniz. 22

Program Kodları void main() trisb=0; portb=0; while(1) portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); KOD void main().. trisb=0; PROGRAM KODLARININ ANLAMLARI AÇIKLAMA Program her zaman ana fonksiyon olan void main() fonksiyonu ile başlar ve bundan sonraki 2 süslü parantez arasına kodlar yazılır. Bu kısım tüm programlarda sabittir. Araya yazılacak her kod dan sonra noktalı virgül kullanılması unutulmamalıdır. PIC in hangi bacağının giriş hangi bacağının çıkış olacağı programın başında ayarlanmalıdır. Bu ayar PORTA için TRISA ile, PORTB için TRISB ile ayarlanır. Bizim kullandığımız PIC te RA0, RA1, RA2, RA3 VE RA4 olmak üzere PORTA bacakları, RB0, RB1, RB2, RB3, RB4, RB5, RB6, RB7 olmak üzere PORTB bacakları vardır. TRISB=0; komutu ile 8 bitlik TRISB nin içeriği 00000000 olur. En soldaki bitten sağa doğru sırayla RB7, RB6, RB5, RB4, RB3, RB2, RB1, RB0 bacaklarının ne olacağı buradan belirlenir. 0 olması çıkış olması 1 olması giriş olması demektir. 23

Bacakların giriş çıkış durumunu ayarlama örnek Örneğin RB0, RB1 ve RB2 nin giriş, PORTB nin diğer bacakları ile PORTA nın tüm portlarının çıkış olmasını istiyorsak TRISA ve TRISB şu şekilde ayarlanmalıdır. TRISA=0b00000000; (0b00000000=0x00) TRISB=0b00000111; (0b00000111=0x07) TRISB=0; demek TRISB = 00000000 demektir. TRISB=0x00; demek TRISB = 00000000 demektir. TRISB=0b00000000; demek TRISB = 00000000 demektir. TRISB=0xF1; demek TRISB = 11110001 demektir. TRISB.b1=0; demek TRISB nin sadece 1 nolu bitini (sağdan 2. Bit) 0 yap diğer bitler aynen kalsın demektir. Bu işlem RB1 bacağının çıkış olarak ayarlanmasını sağlar. 0x.. şeklinde hex sistemde yazı yazılır. 2 basamaklı, 8 bit yazılması gerekir 0b.. şeklinde binary sistemde yazılır. 8 bit yazılması gerekir. portb=0; while(1) PORTB ye bağlı bacaklara 0 bilgisi gönderir. Yani bu bacaklar toprağa bağlanmış gibi olur. Bizim devremizde çıkışlara LED bağlı olduğundan LED ler sönük konuma geçer. Biz buna çıkış portunu temizleme diyoruz. Eğer bunu yapmazsak daha önceden aklında kalan bilgiye göre ilk çalıştırmada LED lerin bazıları yanar bazıları söner. Bu komut sonsuz döngü oluşturur. 2 süslü parantez içindeki komutları durmadan sonsuza kadar işler. portb.b5=1; delay_ms(1000); PORTB nin 5 nolu bitini 1 yapar. Yani RB5 nolu bacağı 1 yapar. Yani bu bacağa +5V gider. Bu sayede bu bacağa bağlı LED yanar. (Daha önceden PORTB nin tüm bacaklarını 0 yaptığımız için sadece RB5=1 olur.) Program buraya geldiğinde 1000 msn=1 sn bekler. Eğer bu komut olmasaydı çok hızlı bir işlemle 1 mikrosaniye 24

portb.b5=0; aralıklarla LED i yak LED i söndür komutları olmuş olurdu. Bu durumda LED devamlı yanık kalırdı. PORTB nin 5 nolu bitini 0 yapar. Yani RB5 nolu bacağı 0 yapar. Yani bu bacağı toprağa bağlamış oluruz. Bu sayede bu bacağa bağlı LED söner. ÇIKIŞLARA BİLGİ GÖNDEREREK LEDLERİ YAKIP SÖNDÜRME PORTB ye bağlı LED lerin tamamını yakmak için PORTB ye bağlı LED lerden yüksek değerli 4 bit yansın, düşük değerli 4 bit sönsün istenirse PORTB ye bağlı LED ler yüksek değerli bitten düşük değerli bite doğru yansın, sönsün şeklinde gitsin istenirse PORTB nin 3. bitine (RB3 e) bağlı LED yansın istenirse PORTB nin 6. bitine (RB6 ya) bağlı LED sönsün istenirse PORTB=1; PORTB=0xFF; PORTB=0b11111111; PORTB=0xF0; PORTB=0b11110000; PORTB=0xAA; PORTB=0b10101010; PORTB.b3=1; PORTB.b6=0; 25

Program Kodlarının Açıklaması KOD Kodun Anlamı Program Anlamı void main() Ana fonksiyon trisb=0; portb=0; while(1) Özel Kaydedicilerden TRIS in tüm bitlerini 0 yapar. PORTB ye ait tüm pinlere 0 gönderir. (RB7 RB0) Bu komuttan sonraki iki süslü parantez arasını sonsuza kadar tekrar eder. PORTB yi çıkış olarak ayarlar. PORTB yi temizler. LED lerin devamlı yanıp sönmesini sağlar. portb.b4=1; PORTB nin 4. pinine (RB4) 1 bilgisi gönderir. RB4 e bağlı LED i yakar. portb.b5=1; PORTB nin 5. pinine (RB5) 1 bilgisi gönderir. RB5 e bağlı LED i yakar. delay_ms(1000); Program akışı 1 sn. bekler. Program akışı 1 sn. bekler. portb.b4=0; PORTB nin 5. pinine (RB4) 0 bilgisi gönderir. RB4 e bağlı LED i söndürür. portb.b5=0; PORTB nin 5. pinine (RB5) 1 bilgisi gönderir. RB5 e bağlı LED i söndürür. delay_ms(1000); Program akışı 1 sn. bekler. Program akışı 1 sn. bekler. 26

ASSEMBLY PROGRAM KODLARI ;16F84 İÇİN LED YAKMA PROGRAMI LIST P=16F84 INCLUDE "P16F84.INC" CONFIG _CP_OFF &_WDT_OFF &_PWRTE_ON &_XT_OSC HAZIRLIK BSF STATUS,5 ;BANK1 E GEÇ CLRF TRISB ;PortB nin tüm uçlarını ÇIKIŞ olarak ayarla BCF STATUS,5 ;BANK0 A GEÇ CLRF PORTB ;PORTB Yİ TEMİZLE (LEDleri söndür) BASLA BSF PORTB,4 ;RB4 portuna bağlı LED i yak. BSF PORTB,5 ;RB5 portuna bağlı LED i yak. END ;Programı durdur. ADRES MAKİNE KODU MAKİNE KODU ASSEMBLY ANLAMI (hex) (bin) KOMUT 0000 1683 01 0110 1000 0011 BSF STATUS,5 0001 0186 00 0001 1000 0110 CLRF TRISB 0002 1283 01 0010 1000 0011 BCF STATUS,5 0003 0186 00 0001 1000 0110 CLRF PORTB 0004 1606 01 0110 0000 0110 BSF PORTB,4 0005 1686 01 0110 1000 0110 BSF PORTB,5 END 27

Temrin: Tüm LED leri yakan program. 28