aapocan
Üye
- Katılım
- 3 May 2011
- Mesajlar
- 37
- Puanları
- 1
- Yaş
- 32
devrede zaman ayarı için 4 adet buton var,
1.buton=+1 dk
2.buton=+20dk
3.buton=-1dk
4.buton=-20dk
işlemini sağlayacak. aynı anda 4 digit display de girilen süre ss:dd olarak gözükecek. Sonradan başka özellikler de gelcekte ben burada takıldım çünkü yazdığım program ile azaltıcı butonlar işlemiyor ve arttırıcı butonlar 1 arttırıp, saat kısmına yazıyor yardımcı olabilecek olan varsa çok teşekkürler şimdiden,
#include <16f877a.h>
#fuses xt,noprotect,nowrt,nodebug,nolvp,nocpd,nobrownout,nowdt,noput
#use delay(clock=4M)
int sayac, saat, birler,onlar,sbirler,sonlar;
const int dijit[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_a(11111100);
set_tris_b(0x00);
output_b(0x00);
set_tris_c(0x00);
output_c(0x00);
set_tris_d(0x00);
output_d(0x00);
saat=0;
birler=0;
sbirler=0;
onlar=0;
sonlar=0;
sayac=0;
while(1)
{
bak:
{
if(input(pin_a0))
goto calistir;
else{
if(input(pin_a5))
{sayac=sayac+1;
delay_ms(150);
if(sayac=60)
{saat=saat+1 ;
sayac=0;
goto yak;};
goto yak;}
else{
if(input(pin_a4))
{sayac=sayac+20;
delay_ms(150);
if(sayac=60)
{
saat=saat+1;
sayac=0;
goto yak;};
goto yak;}
else;
if(input(pin_a3))
{sayac=sayac-1;
delay_ms(150);
if(sayac=0)
if(saat=0)
saat=0;
else{
saat=saat-1;
sayac=60;
goto yak;
};
goto yak;}
else{
if(input(pin_a2))
{sayac=sayac-20;
delay_ms(150);
if(sayac=0)
if(saat=0)
saat=0;
else{
saat=saat-1;
sayac=60;
goto yak;
};goto yak;}
}
}
}
}
;
yak:
{
if(sayac<10)
birler=sayac%10;
else
{birler=sayac%10;
onlar=(sayac/10)%10;};
if(saat<10)
sbirler=saat%10;
else{
sbirler=saat%10;
sonlar=(saat/10)%10;}
goster:
output_high(pin_c2);
output_low(pin_c5);
output_b(dijit[birler]);
delay_ms(5);
output_high(pin_c5);
output_low(pin_c4);
output_b(dijit[onlar]);
delay_ms(5);
output_high(pin_c4);
output_low(pin_c3);
output_b(dijit[sbirler]);
delay_ms(5);
output_high(pin_c3);
output_low(pin_c2);
output_b(dijit[sonlar]);
delay_ms(5);
}
calistir:
goto bak;
};
}
1.buton=+1 dk
2.buton=+20dk
3.buton=-1dk
4.buton=-20dk
işlemini sağlayacak. aynı anda 4 digit display de girilen süre ss:dd olarak gözükecek. Sonradan başka özellikler de gelcekte ben burada takıldım çünkü yazdığım program ile azaltıcı butonlar işlemiyor ve arttırıcı butonlar 1 arttırıp, saat kısmına yazıyor yardımcı olabilecek olan varsa çok teşekkürler şimdiden,
#include <16f877a.h>
#fuses xt,noprotect,nowrt,nodebug,nolvp,nocpd,nobrownout,nowdt,noput
#use delay(clock=4M)
int sayac, saat, birler,onlar,sbirler,sonlar;
const int dijit[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_a(11111100);
set_tris_b(0x00);
output_b(0x00);
set_tris_c(0x00);
output_c(0x00);
set_tris_d(0x00);
output_d(0x00);
saat=0;
birler=0;
sbirler=0;
onlar=0;
sonlar=0;
sayac=0;
while(1)
{
bak:
{
if(input(pin_a0))
goto calistir;
else{
if(input(pin_a5))
{sayac=sayac+1;
delay_ms(150);
if(sayac=60)
{saat=saat+1 ;
sayac=0;
goto yak;};
goto yak;}
else{
if(input(pin_a4))
{sayac=sayac+20;
delay_ms(150);
if(sayac=60)
{
saat=saat+1;
sayac=0;
goto yak;};
goto yak;}
else;
if(input(pin_a3))
{sayac=sayac-1;
delay_ms(150);
if(sayac=0)
if(saat=0)
saat=0;
else{
saat=saat-1;
sayac=60;
goto yak;
};
goto yak;}
else{
if(input(pin_a2))
{sayac=sayac-20;
delay_ms(150);
if(sayac=0)
if(saat=0)
saat=0;
else{
saat=saat-1;
sayac=60;
goto yak;
};goto yak;}
}
}
}
}
;
yak:
{
if(sayac<10)
birler=sayac%10;
else
{birler=sayac%10;
onlar=(sayac/10)%10;};
if(saat<10)
sbirler=saat%10;
else{
sbirler=saat%10;
sonlar=(saat/10)%10;}
goster:
output_high(pin_c2);
output_low(pin_c5);
output_b(dijit[birler]);
delay_ms(5);
output_high(pin_c5);
output_low(pin_c4);
output_b(dijit[onlar]);
delay_ms(5);
output_high(pin_c4);
output_low(pin_c3);
output_b(dijit[sbirler]);
delay_ms(5);
output_high(pin_c3);
output_low(pin_c2);
output_b(dijit[sonlar]);
delay_ms(5);
}
calistir:
goto bak;
};
}
Son düzenleme: