PIC16F877 ile Butonla BCD Sayıcı Uygulaması CCS C Kodu
Uygulamanın CCS C Kodu
/******************************************************
Uygulama Adı : Buton ile BCD Sayıcı
Programın Amacı : RA0 butonuna her basışta 0'dan itibaren artan BCD sayılar
B portuna bağlı LED'lerde görünecektir
PIC PROG/DEKA : Port B jumper'ı LED konumunda olmalı
*******************************************************/
#include <16f877 data-blogger-escaped-.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ılan osilatör frekansı belirtiliyor
#define buton pin_A0 // "buton" adında "pin_A0" kelimesine eşit bir sabit tanımlanıyor
int i=1; // 8 bitlik tamsayı tipinde değişken 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ışı
set_tris_a(0x01); // RA0 pini giriş olarak yönlendiriliyor
set_tris_b(0x00); // RB0 portu tümüyle çıkış olarak yönlendiriliyor
output_b(0x00); // B portu çıkışları sıfırlanıyor
while(1) // Sonsuz döngü oluşturuluyor
{
if (input(buton))
{
delay_ms(15); // Butona basılınca meydana gelen arkın etkisini önlemek için verilen gecikme
output_b(i); // b portuna i değeri yükleniyor
i=i+1; // i değeri 1 arttırılıyor
while(input(buton)); // Buton bırakılana kadar bekle
if (i==10) // i değeri test ediliyor.i değeri 10 olunca sıfırlanıyor.
{
i=0; // i değeri sıfırlanıyor
}
}
}
}
Uygulamanın Simulasyonu
 |
BCD sayıcının ledler ile simulasyonu |
 |
BCD sayıcının 7 segmentli display ile simulasyonu |
This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
0 yorum:
Yorum Gönder