![mikroC ile PIC Programlama #05 : Buton ile LED On-Off Uygulaması – 1](https://trudyo.com/wp-content/uploads/2022/06/05.jpg)
mikroC ile PIC Programlama #05 : Buton ile LED On-Off Uygulaması – 1
Merhaba, mikroC ile PIC programlama eğitimlerimizin bu adımında;
– Input tanımlamaları ile buton kullanımını göreceğiz
– ADCON register’ı ile portların analog-dijital ayarlarını yapacağız
– PORT ile LAT register’ı arasındaki fark ve avantajları inceleyeceğiz
– Buton ile LED yakma uygulamaları yapacak ve if-else kontrol yapılarını kullanmayı öğreneceğiz
– For döngüsünü kullanarak kara şimşek uygulamasını gerçekleştireceğiz
Bölümler
00:00 Proje Dosyalarının Oluşturulması
01:45 Inputların Tanımlanması
03:13 ADCON ile Portların Dijital-Analog Seçimleri
04:45 PORT vs LAT Farkı, LAT Register’ını Kullanmanın Avantajı
06:50 LED=PORT Uygulaması
08:30 “if-else” Kontrol Yapısı Kullanımı
09:48 Buton ile Sırayla LED’leri Yakma ve PORT Shift Uygulaması
15:40 “for” Döngüsü ile Kara Şimşek Yapımı
Şematik Tasarım
![mikroC ile PIC Programlama #05 Buton ile LED On-Off Uygulaması – 1](https://trudyo.com/wp-content/uploads/2022/06/mikroC-ile-PIC-Programlama-05-Buton-ile-LED-On-Off-Uygulamasi-–-1-1024x512.jpg)
Uygulama Kodları
// Connections
sbit LED at LATA4_bit;
sbit LEDB1 at LATD0_bit;
sbit LEDB2 at LATD1_bit;
sbit LEDB3 at LATD2_bit;
sbit LEDB4 at LATD3_bit;
sbit LEDR1 at LATD4_bit;
sbit LEDR2 at LATD5_bit;
sbit LEDR3 at LATD6_bit;
sbit LEDR4 at LATD7_bit;
sbit BUTTON_UP at RB0_bit;
sbit BUTTON_DOWN at RB1_bit;
// Global Variables
unsigned short i;
// Functions
void wait(void){
delay_ms(50);
}
void main() {
TRISA=0b00000000;// [][][][LED][][][][]
TRISB=0b00000011; //[][][][][][][BUTTON_DOWN][BUTTON_UP]
TRISD=0b00000000; //[LEDB4][LEDB4][LEDB2][LEDB1][LEDR4][LEDR3][LEDR2][LEDR1]
LATA=0x00;
PORTB=0x00;
LATD=0x00;
ADCON1 |= 0x0F;
PORTD=0b00000001;
//EP:5
while(1){
for(i=0;i<7;i++){
PORTD<<=1;
wait();
}
for(i=0;i<7;i++){
PORTD>>=1;
wait();
}
}
while(1){
//EP:1
//LED=BUTTON_UP;
//EP:2
//if(!BUTTON_UP) LED=1;
//else LED=0;
//EP:3
if(!BUTTON_UP){
wait();
//EP:3A
//PORTD=PORTD<<1;
//EP:3B
//PORTD<<=1;
//EP:3C
//if(PORTD != 0b10000000) PORTD<<=1;
//else PORTD=0b00000001;
//EP:4
if(PORTD != 0b10000000) PORTD<<=1;
while(!BUTTON_UP);
}
//EP:4
if(!BUTTON_DOWN){
wait();
if(PORTD != 0b00000001) PORTD>>=1;
while(!BUTTON_DOWN);
}
}
}
Uygulama kodlarını GitHub üzerinden incelemek ve indirmek için tıklayın. Merak ettiğiniz ve aklınıza takılan soruları aşağıda 👇 yorum olarak bize iletebilirsiniz. Yeni uygulamalar gerçekleştirirken YouTube kanalımızdaki videolarımızdan yararlanmayı unutmayın. İyi çalışmalar. 🙂 #geliştirmeyebaşla
Yorum yapmak için giriş yapmalısınız.