PIC16F877A ile 3 digit 7 segment display sayıcı uygulaması

PIC16F877A ile 3 digit 7 segment display sayıcı uygulaması

#include <16f877A.h>
#fuses xt, nowdt, noprotect, nobrownout, nolvp, noput, nowrt, nodebug, nocpd
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
#use fast_io(d)

int birler=0, onlar=5, yuzler=7;

const int digit[10]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7c, 0x07, 0x7f, 0x6f };  


void main()

{
setup_psp(psp_disabled);
setup_timer_1(t1_disabled);
setup_timer_2(t2_disabled,0,1);
setup_adc_ports(no_analogs);
setup_adc(adc_off);
setup_ccp1(ccp_off);
setup_ccp2(ccp_off);

set_tris_a(0b00000111);
set_tris_b(0x00);
set_tris_d(0x00);
output_b(0x00);
output_d(0xff);

while(1)

{
output_low(pin_d2);
output_b(digit[birler]);
delay_ms(15);
output_high(pin_d2);

output_low(pin_d1);
output_b(digit[onlar]);
delay_ms(15);
output_high(pin_d1);

output_low(pin_d0);
output_b(digit[yuzler]);
delay_ms(15);
output_high(pin_d0);

if (input(pin_a0))             //ileri sayma

while(input(pin_a0))
{
output_low(pin_d2);
output_b(digit[birler]);
delay_ms(15);
output_high(pin_d2);

output_low(pin_d1);
output_b(digit[onlar]);
delay_ms(15);
output_high(pin_d1);

output_low(pin_d0);
output_b(digit[yuzler]);
delay_ms(15);
output_high(pin_d0);
}
birler++;
if(birler==10)
{
birler=0;
onlar++;
}
if(onlar==10)
{
onlar=0;
yuzler++;
}
if(yuzler==10)
{
yuzler=0;
birler=0;
onlar=0;
}


}

if (input(pin_a1))             //ileri sayma

while(input(pin_a1))
{
output_low(pin_d2);
output_b(digit[birler]);
delay_ms(15);
output_high(pin_d2);

output_low(pin_d1);
output_b(digit[onlar]);
delay_ms(15);
output_high(pin_d1);

output_low(pin_d0);
output_b(digit[yuzler]);
delay_ms(15);
output_high(pin_d0);
}
birler--;
if(birler==-1)
{
birler=9;
onlar--;
}
if(onlar==-1)
{
onlar=9;
yuzler--;
}
if(yuzler==-1)
{
yuzler=9;
birler=9;
onlar=9;
}


}
if(input(pin_a2))
{
yuzler=0;
birler=0;
onlar=0;
while(input(pin_a2))
{
output_low(pin_d2);
output_b(digit[birler]);
delay_ms(15);
output_high(pin_d2);

output_low(pin_d1);
output_b(digit[onlar]);
delay_ms(15);
output_high(pin_d1);

output_low(pin_d0);
output_b(digit[yuzler]);
delay_ms(15);
output_high(pin_d0);
}
}
}

}

 

Proje Dosyaları                                       İNDİR

Yorum yazın

E-Posta Adresiniz Paylaşılmayacaktır işaretli alanlar zorunludur *