CCS C ile DS1868 Dijital Potansiyometre Uygulaması

pr_01_37_max

 

/******************************************************************
 PIC16F877 ile DS1868 Dijital Potansiyometre Uygulaması
*******************************************************************/
#include <16f877.h> // Kullanılacak denetleyicinin başlık // dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları

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

#include <DS1868.c> // DS1868.c dosyası programa ekleniyor

// Butonlar ve Anahtar Tanımlamaları Yapılıyor
#define pot_reset pin_a0
#define pot_sec pin_a1
#define arttir pin_a2
#define azalt pin_a3

int i=0,j=0; // Tam sayı tipinde değişkenler tanımlanıyor

//******************* ANA PROGRAM FONKSİYONU *******************
void main ()
{
 setup_psp(PSP_DISABLED); // PSP birimi devre dışı
 setup_spi(SPI_SS_DISABLED); // SPI 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ışı

 init_pots(); // 2 potansiyometre değeri ilk anda sıfırlanıyor

 while(1) // Sonsuz döngü
 {
 if (input(pot_reset)) // Eğer Pot reset butonuna basıldı ise
 {
 init_pots(); // 2 potansiyometreyi de sıfırla
 i=0; j=0; // i ve j değerleri de sıfırla
 }

 if (input(pot_sec)) // 0. Potansiyometre seçilmiş ise
 {
 if (input(arttir)) // Arttir butonuna basılmış ise
 {
 i++; // i değerini bir arttır
 set_pot(0,i); // 0. potansiyometreyi i değerine ayarla
 while(input(arttir)); // Butondan el çekile kadar bekle
 }

 if (input(azalt) && (i!=0)) // Azalt butonuna basılmış ise ve
 { // i değeri 0 değil ise
 i--; // i değerini bir azalt
 set_pot(0,i); // 0. potansiyometreyi i değerine ayarla
 while(input(azalt)); // Butondan el çekile kadar bekle
 }
 }
 else // 1. potansiyometre seçilmiş ise
 {
 if (input(arttir)) // Arttir butonuna basılmış ise
 {
 j++; // j değerini bir arttır
 set_pot(1,j); // 1. potansiyometreyi j değerine ayarla
 while(input(arttir)); // Butondan el çekile kadar bekle
 }

 if (input(azalt) && (j!=0)) // Azalt butonuna basılmış ise ve
 { // j değeri 0 değil ise
 j--; // j değerini bir azalt
 set_pot(1,j); // 1. potansiyometreyi j değerine ayarla
 while(input(azalt)); // Butondan el çekile kadar bekle
 }
 }
 }
}

DS1868 Dijital Potansiyometre Uygulaması

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