CCS C ile 7 Segment Sayıcı Uygulamaları

pr_01_37_max

 

/******************************************************
 Uygulama Adı : Display Uygulaması-3(7448 Entegresi ve Buton İle 0-99 Yukarı/Aşağı Sayıcı)
*******************************************************/
#include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

//***********Denetleyici konfigürasyon ayarları************
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay(clock=4000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı belirtiliyor

#use fast_io(a) // Port yönlendirme komutları a portu için geçerli
#use fast_io(b) // Port yönlendirme komutları b portu için geçerli

#define arttir pin_a0 // arttir butonu pin_a0 ile eşleniyor
#define azalt pin_a1 // azalt butonu pin_a1 ile eşleniyor

char birler=0, onlar=0, sayi=0; // int tipinde değişkenler tanımlanıyor

// Ortak katot display için veri değerleri
const int digit[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};

/********* ANA PROGRAM FONKSİYONU********/

void main ()
{
 setup_psp(PSP_DISABLED); // PSP birimi devre dışı
 setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
 setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
 setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
 setup_adc(ADC_OFF); // ADC birimi devre dışı
 setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
 setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı

 set_tris_a(0x03); // RA0 ve RA1 giriş olarak yönlendiriliyor
 set_tris_b(0x00); // B portu tümüyle çıkış olarak yönlendiriliyor

 while(1) // Sonsuz döngü
 {
 output_b(digit[birler]|(0b00010000)); // 1.display aktif, 2.display pasif yapılıyor ve birler basamağı bilgisi B portuna gönderiliyor
 delay_ms(5); // Gecikme veriliyor
 output_b(digit[onlar]|(0b00100000)); // 2.display aktif, 1.display pasif yapılıyor ve onlar basamağı bilgisi B portuna gönderiliyor
 delay_ms(5); // Gecikme veriliyor

 if (input(arttir)) // arttır butonuna basıldığında
 {
 sayi++; // sayi değerini 1 arttır

 birler=sayi%10;; // birler hanesi hesaplanıyor
 onlar=sayi/10; // onlar hanesi hesaplanıyor

 while(input(arttir)) // arttır butonundan el çekilene kadar bekle
 {
 output_b(digit[birler]|(0b00010000)); // 1.display aktif, 2.display pasif yapılıyor ve birler basamağı bilgisi B portuna gönderiliyor
 delay_ms(5); // Gecikme veriliyor
 output_b(digit[onlar]|(0b00100000)); // 2.display aktif, 1.display pasif yapılıyor ve onlar basamağı bilgisi B portuna gönderiliyor
 delay_ms(5); // Gecikme veriliyor
 }
 }

 if (input(azalt)&&(sayi!=0)) // azalt butonuna basıldığında
 {
 sayi--; // sayi değerini 1 azalt

 birler=sayi%10;; // birler hanesi hesaplanıyor
 onlar=sayi/10; // onlar hanesi hesaplanıyor

 while(input(azalt)) // azalt butonundan el çekilene kadar bekle
 {
 output_b(digit[birler]|(0b00010000)); // 1.display aktif, 2.display pasif yapılıyor ve birler basamağı bilgisi B portuna gönderiliyor
 delay_ms(5); // Gecikme veriliyor
 output_b(digit[onlar]|(0b00100000)); // 2.display aktif, 1.display pasif yapılıyor ve onlar basamağı bilgisi B portuna gönderiliyor
 delay_ms(5); // Gecikme veriliyor

 }
 }
 if (sayi==100) // sayi değeri 100 ise değeri sıfırla
 sayi=0;
 }
}

7 Segment Sayıcı Uygulamaları

Bu yazı CCS C Örnekleri kategorisine gönderilmiş ve , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.