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



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

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

Hacettepe Robot Topluluğu

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

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

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

TUŞ TAKIMI (KEYPAD) UYGULAMALARI

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

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

BÖLÜM 2 2. PROGRAMLAMA MANTIĞI

EasyPic 6 Deney Seti Tanıtımı

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

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

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

WINGO Hızlı Kullanma Kılavuzu

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

ZAMANLAYICILAR S de, 4 farklı zamanlayıcı vardır.

STF1000 FIRIN KONTROL SİSTEMİ KULLANIM KILAVUZU

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

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

OPEN ADVANCE V.1.1 FOTOSELLİ OTOMATİK KAPI SİSTEMİ KULLANMA KILAVUZU

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

Mikroişlemci Programlama Aşamaları

Askeri araç Acil Aydınlatma Modülü

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

BQ300 RF Röle Kontrol Ünitesi. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

TT - SC6V Video Modülü

KMD99 RF 99 Kanal Kumanda. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

AYBEY ELEKTRONİK. MFS Güvenlik Sistemi KULLANIM KILAVUZU F/ R:3

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

FP52 PROXIMITY KART OKUYUCUSU KULLANIM KILAVUZU

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İ

KAÇAK AKIM RÖLESİ. Sayfa 1

Kullanım Uygulamaları Ön Görünüş. Dijital Ekran Mode Butonu Programlama Tuşu Sıcaklık Değiştirme tuşu ( - ) Sıcaklık Değiştirme tuşu ( +)

Nice RUN400HS RUN1200HS. Montaj Kılavuzu

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

ORKA BİLİŞİM ELEKTRONİĞİ

# 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

1. Mikrodenetleyici Programlamada Giriş- Çıkış İşlemleri

DC motorların sürülmesi ve sürücü devreleri

4-1. Ön Kontrol Paneli

3. ÜNİTE AYDINLATMA TESİSATI ŞEMALARI ÇİZİMİ

Code Composer Studio İndirilmesi ve Kurulması

Nice RUN1800 RUN2500. Montaj Kılavuzu

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:

HESAP PLANI DEĞİŞİKLİĞİ

Nice MC424. Kontrol Ünitesi

Cybelec-PCSS Kullanma Kılavuzu (LZS-004 Takılı Sistemler için)

AKZİL KULLANIM KILAVUZU

BQ101 GSM Access Kontrol Ünitesi Windows Programı. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

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

BRC-3R V2.0 BARIYER KONTROL KARTI

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.

Hacettepe Robot Topluluğu

BESLEME KARTI RF ALICI KARTI

SAUEEE.ORG. Önce C 00 Sonrası C 00

KEYPAD SLIM TGS-01. Kullanım Kitabı V 1.0. Şubat, 2014 KONTAL ELEKTRONİK :: KEYPAD (TGS-01) 0

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

BQ301 RF Ekstra Röle Kontrol Ünitesi. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

4-1. Ön Kontrol Paneli

2 Kablolu Villa Zil Paneli (Kart Okuyuculu)

MKT2012,Proje Tabanlı Mekatronik Eğitim Çalıştayı, Mayıs 2012, Çankırı-Ilgaz, TÜRKĐYE

MT9505-P/Px, MT9503-P/Px HIZLI KULLANMA KILAVUZU

EVRİM YENİ YIL İŞLEMLERİ

Horoz Programlanabilir Zaman Rölesi

PIC PROGRAMLAMA STEP MOTOR SÜRÜCÜ VE KONTROL AMAÇ NEDİR? Unipolar Step Motorlar. Uç TESPİTİ NASIL YAPILIR?

SBAR HIZLI KULLANIM KILAVUZU

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

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

BÖLÜM 5 S_BĐT. Komut listesi (STL) Network 1 LD I0.0 S Q0.0, 1

KULLANIM KILAVUZU

DELTA PLC EĞİTİM SETİ KİTAPÇIĞI

KONTROL VE OTOMASYON KULÜBÜ

SQL Uyarı Programı Kurulum ve Kullanımı

DENEY 21 IC Zamanlayıcı Devre

OTOMATİK KUTULU LCD GÖSTERGELİ MODEL 1 KAZAN KONTROL PANOSU KULLANIM KLAVUZU

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

2 Kablolu Villa Zil Paneli (Kart Okuyuculu)

UYGULAMA 1 SİEMENS S PLC UYGULAMALARI-2. Mühürleme Elemanları:

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

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

Şekil 4.12 : Klasik kumanda devresi. Ladder devresi : Network1. Network 2. Network 3 I0.0

T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ. Uzaktan Kumanda Edilen Lamba Dimmer inin Gerçekleştirilmesi

UYGULAMA 1 SİEMENS S PLC UYGULAMALARI CPU-1214C

OTOMASYON ATÖLYESİ TEMEL PLC SORULARI

UYGULANMIŞ ÖRNEK PLC PROGRAMLARI

GSM Kartı. Programlama Butonu

ART S602W Standalone Kart Okuyucu

L1 L2 L3 V I> C> ÖN PANEL ÖZELLİKLERİ

BEGO. Miditherm. Kullanma Talimatı

BQ Modbus Analog Giriş Kartı 6 Kanal 4 20mA. Kullanım Kılavuzu. Doküman Versiyon: BQTEK

3. Çok kontaklı, tek konumlu röleler 2. Tek kontaklı, çift konumlu röleler

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

KUMANDA DEVRELERİ Örnek 1: Stop öncelikli Start Stop Devresi (Klasik Mühürleme Devresi):

5-14 KURULUM AYARLARI CALIŞMA FONKSİYONLARI MEKANÝK KURULUM ARIZA DURUMLARI GÜVENLÝK UYARILARI TEKNÝK ÖZELLÝKLER

Teknosem ANASAYFA. Program komut butonları ve program zaman parametrelerinin bulunduğu sayfadır.

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

Ses Kontrol Kartı Kullanım Kılavuzu

CAPTAİN-i ver. 5.6 & ve Üzeri RX-6 KULLANIM KİTAPÇIĞI

NEW LOGO FUAR SİPARİŞ PAKETİ

Transkript:

BUTON KONTROLÜ PULL-DOWN BAĞLANTI PULL-UP BAĞLANTI PIC girişlerine bağlı botonlara basılıp basılmadığını bilmez. Sadece o girişte 0 mı var 1 mi var onu bilir. Bağlantının türüne göre bu eşleştirmeyi sizin yapmanız gerekir. Pull-Down Bağlantı (Ters Bağlantı) Butona basılmadığında Giriş=1 Butona basıldığında Giriş=0 Pull-Up Bağlantı (Ters Bağlantı) Butona basılmadığında Giriş=0 Butona basıldığında Giriş=1

PROGRAM_1: PORTA nın 0. bitine (RA0) bağlı butona basınca PORTB ye bağlı tüm ledleri yakan program. (PORTB yi temizlemeyi unutmayınız.) Pull-Up Bağlantıya göre if (porta.ra0==1) portb=0xff; Pull-Down Bağlantıya göre if (porta.ra0==0) portb=0xff; Program açıklama: Burada devre çalıştırıldığında LED sönük konumdadır. Butona basmadığımız sürece sönük konumda kalır. Butona bastığımızda ise LED yanar. Programda LED leri söndürecek bir komut olmadığından LED ler 1 kere yakıldığında bir daha sönmez. Butona basılıp LED ler yakıldıktan sonra butona tekrar basmamız hiçbirşeyi değiştirmez. LED ler hep yanık kalır. Eğer RESET butonu ile devreyi resetlersek program tekrar başlayacağından portb=0 komutu ile LED ler söner ve biz butona basıncaya kadar sönük kalır. Bit tanımlaması yapmadaki farklılıklar if (porta.ra0==1) portb=0xff; if (porta.f0==1) portb=0xff; if (porta.b0==1) portb=0xff; if (portb.rb0==1) portb=0xff; if (portb.f0==1) portb=0xff; if (portb.b0==1) portb=0xff; Sayı Tanımlamaları Binary: porta.ra0=0b00101111; Hex: porta.ra0=0x2f; Decimal: porta.ra0=47;

DEFINE ile BUTON TANIMLAMA PROGRAM_1: PORTA nın 0. bitine (RA0) Pull-Up bağlı butona basınca PORTB ye bağlı tüm ledleri yakan program. #define buton1 porta.b0 if (buton1==1) portb=0xff; NOT: Programlamada DEFINE kullanmak kullanım kolaylığı açısından çok önemlidir. DEFINE program komutu değil, derleyici komutudur. MikroC Derleyici derleme sırasında DEFINE ile tanımlı her yeri kendi ismiyle değiştirerek derler. Yani programda buton1 yazdığınız yere porta.b0 yazarak programı derler.

PROGRAM_2: PORTA nın 0. Bitine (RA0) bağlı butona basınca PORTB deki tüm ledleri yakan, PORTA nın 1. bitine (RA1) bağlı butona basınca PORTB deki ledleri 11001100 şeklinde yakan program. (Butonlar Pull-Down bağlı) RA0 a buton1, RA1 e buton2 bağlanmıştır. #define buton1 porta.ra0 #define buton2 porta.ra1 if(buton1==0) portb=0xff; if(buton2==0) portb=0xcc; Program açıklama: Devreye enerji verdiğimizde LED ler sönük konumdadır. Butonlara basmadığımız sürece LED ler sönük kalır. Buton1 e bastığımızda (11111111) şeklinde yanar ve diğer butona basılıncaya kadar bu şekilde yanık kalır. Buton2 ye basıldığında (11001100) şeklinde yanar ve diğer butona basılıncaya kadar bu şekilde yanık kalır. Program resetlenmedikçe LED ler ya (11111111) şeklinde, ya (11001100) şeklinde yanar. Örneğin (11001100) şeklinde yanarken buton2 ye basılırsa LED lerde bir değişiklik olmaz. Buton1 e bastığımızda (11111111) durumuna geçer.

IF ve KOMUTLAR DİZİSİ PROGRAM_3: PORTA nın 0. bitine (RA0) Pull-Up bağlı butona basılınca PORTB deki tüm ledleri bir defa 1 sn. aralıklarla yakıp söndüren program. #define buton1 porta.ra0 if(buton1==1) Bu parantezden sonraki komutlar IF içindeki İFADE doğru ise yapılacak... Buraya PORTB deki Led leri yakıp söndüren program kodları yazılacak.. Bu paranteze kadar olan komutlar IF içindeki İFADE doğru ise yapılacak... Buradaki komutlar IF içindeki İFADE yanlış ise yapılacak.

PROGRAM_3: PORTA nın 0. bitine (RA0) Pull-Up bağlı butona basılınca PORTB deki tüm ledleri bir defa 1 sn. yakan program. #define buton1 porta.ra0 if(buton1==1) portb=0xff; delay_ms(1000); Program açıklama: Devreye enerji verildiğinde LED ler sönük konumdadır. Buton a bastığımızda LED ler 1 sn. yanar ve söner ve sönük konumda kalır. Butona tekrar basıldığında 1 sn. LED ler tekrar yanar ve söner. Burada dikkat edilmesi gereken konu şudur: Diyelimki butona bastık ve LED ler yanıyor. LED ler yanıyor iken butona tekrar basmak hiçbirşey ifade etmez çünkü butonun etkisinin olabilmesi için butona basıldığı anda buton kontrolü yapan if(buton1==1) komutundan programın geçmesi gerekir. Burada süre kısa olduğundan (1 sn.) bunun fazla önemi yoktur ama süre 5 sn. olsa idi delay_ms(5000); bu bekleme sırasında buton kontrol komutu çalışmayacağından butona basmanın bir anlamı olmayacaktır.

SORU: Program3 için yazdığımız kodları aşağıdaki gibi değiştirirsek programın çalışması nasıl değişir? #define buton1 porta.ra0 if(buton1==1) portb=0xff; delay_ms(1000); portb=0x00;

IF İçersindeki İfadenin 2 Tane Olması Durumu PROGRAM_4: PORTA nın 0. ve 1. bitlerine bağlı butonlara aynı anda basıldığında PORTB ye bağlı tüm ledleri yakan program. (Butonlar Pull-Up bağlı) #define buton1 porta.ra0 #define buton2 porta.ra1 if(buton1==1 && buton2==1) portb=0xff;

IF İfadeleri İçin Operatörler = = Eşittir. && VE işlemi!= Eşit değildir. VEYA işlemi < Küçüktür.! DEĞİL işlemi > Büyüktür. <= Küçük eşittir. >= Büyük eşittir. Örnekler if( buton1==0 && buton2==0). : Her 2 buton 0 olduğunda ifade doğru olur. Yani eğer butonlar Pull-Down bağlı ise her 2 butona basıldığında ifade doğru olur. if( buton1==0 buton2==0). : Butonlardan herhangi biri 0 olduğunda ifade doğru olur. Yani eğer butonlar Pull-Down bağlı ise butonlardan herhangi birine basıldığında ifade doğru olur. Butonlardan ikisinede basılması (yani ikisininde 0 olması durumunda) ifade yine doğru olur. if( (buton1==0 && buton2==0 ) buton3==0 ). buton1=0, buton2=0, buton3=0 ise İFADE=Doğru buton1=0, buton2=0, buton3=1 ise İFADE=Doğru buton1=1, buton2=0, buton3=0 ise İFADE=Doğru buton1=1, buton2=1, buton3=0 ise İFADE=Doğru buton1=1, buton2=1, buton3=1 ise İFADE=Yanlış buton1=1, buton2=0, buton3=1 ise İFADE=Yanlış buton1=0, buton2=1, buton3=1 ise İFADE=Yanlış

PROGRAM_5: PORTB nin 2. bitine (RB2 ye) Pull-Up bağlı butona basıldığı müddetce PORTB nin 5. Bitine LED i yakan programı yapınız. (RB2 ye basıldığı müddetçe demek RB2 ye basıldığında yansın, basılmadığında sönsün demektir.) #define buton portb.b2 #define LED portb.b5 trisb.b5=0; portb.b5=0; (trisb=0b11011111) (trisb=0xdf) if(buton==1) LED=1; if(buton==0) LED=0; DİĞER #define buton portb.b2 #define LED portb.b5 trisb.b5=0; portb.b5=0; (trisb=0b11011111) (trisb=0xdf) if(buton==1) LED=1; LED=0;