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