aapocan
Üye
- Katılım
- 3 May 2011
- Mesajlar
- 36
- Puanları
- 1
- Yaş
- 32
Programı gördükten sonra çok yeni olduğumu göreceksiniz
Programda butonlarla süre giriliyor daha sonra başlat tuşuna basıldığında süre geri saymaya başlıyor ve bir röleyi sürüyor.
Sadece şöyle bir sıkıntım var reel devrede ;
Süre girilip, kullanıcı başlat tuşuna uzun süre basılı tuttuğunda (yanlışlıkla); süre çok hızlı şekilde eriyor. Butonu algıladıktan sonra verdiğim pause işe yaramıyor açıkçası
Programda butonlarla süre giriliyor daha sonra başlat tuşuna basıldığında süre geri saymaya başlıyor ve bir röleyi sürüyor.
Sadece şöyle bir sıkıntım var reel devrede ;
Süre girilip, kullanıcı başlat tuşuna uzun süre basılı tuttuğunda (yanlışlıkla); süre çok hızlı şekilde eriyor. Butonu algıladıktan sonra verdiğim pause işe yaramıyor açıkçası
Kod:
#include <16f877a.h>#fuses xt,noprotect,nowrt,nodebug,nolvp,nocpd,nobrownout,nowdt,noput
#use delay(clock=4M)
#define use_portb_lcd TRUE
#include <lcd.c>
int sayac,saat,birler,onlar,sbirler,sonlar,i,saniye;
int dizi[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);
sayac=saat=birler=onlar=sbirler=sonlar=i=saniye=0;
set_tris_a(0b11111111);
set_tris_d(0xFF);
set_tris_b(0x00);
output_b(0x00);
set_tris_c(0x00);
output_c(0x00);
set_tris_e(0xFF);
set_tris_d(0x00);
output_d(0x00);
while(1)
{
lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
delay_ms (2000);
output_low(pin_d0);
bak:
if(input(pin_e0))
{delay_ms(150);
goto kapak;}
if(input(pin_a0))
{delay_ms(1250);
goto calistir;}
if(input(pin_a5))
{delay_ms(150);
sayac=sayac+1;
if(sayac>59)
{sayac=sayac-60;
saat=saat+1;}
goto goster;}
if(input(pin_a4))
{delay_ms(150);
sayac=sayac+20;
if(sayac>59)
{sayac=sayac-60;
saat=saat+1;}
goto goster;}
if(input(pin_a3))
{delay_ms(150);
if(sayac<1)
{if(saat>0)
{saat=saat-1;
sayac=sayac+59;}
else
sayac=0;}
else
sayac=sayac-1;
goto goster;}
if(input(pin_a2))
{delay_ms(150);
if(sayac<20)
{if(saat>0)
{saat=saat-1;
sayac=sayac+40 ;}
else
sayac=0;}
else
sayac=sayac-20;}
goto goster;
goster:
if(sayac<10)
{if(saat<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
delay_ms(1);
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:0%d:00",saat,sayac);
delay_ms(150);}
else{
lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
delay_ms(1);
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:0%d:00",saat,sayac);
delay_ms(140);}}
else{
if(saat<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
delay_ms(1);
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:%d:00",saat,sayac);
delay_ms(140);}
else{
lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
delay_ms(1);
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:%d:00",saat,sayac);
delay_ms(140);}}
goto bak;
calistir:
i=1;
output_high(pin_d0);
if(input(pin_e0))
{goto kapak;
delay_ms(55);}
if(input(pin_a1))
{goto dur;
delay_ms(55);}
if(saniye<1)
{ if(sayac>0)
{saniye=saniye+59,
sayac=sayac-1;}
else{
if(saat>0){
saat=saat-1;
sayac=sayac+59;}
goto bitir;}}
else
saniye=saniye-1;
goto goster2;
goster2:
if(sayac<10)
{if(saat<10)
if(saniye<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:0%d:0%d",saat,sayac,saniye);
goto saniyegecikmesi;
}
else{
lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?);
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:0%d:%d",saat,sayac,saniye);
goto saniyegecikmesi;}
else{
if(saniye<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:0%d:0%d",saat,sayac,saniye);
goto saniyegecikmesi;}
else{
lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:0%d:%d",saat,sayac,saniye);
goto saniyegecikmesi;}}}
if(saat<10)
{if(saniye<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:%d:0%d",saat,sayac,saniye);
goto saniyegecikmesi;}
else{
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:%d:%d",saat,sayac,saniye);
goto saniyegecikmesi;}}}
if(saniye<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:%d:0%d",saat,sayac,saniye);
goto saniyegecikmesi;}
else
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:%d:%d",saat,sayac,saniye);
goto saniyegecikmesi;}
dur:
output_low(pin_d0);
if(input(pin_a0))
{goto calistir;
delay_ms(55);}
if(input(pin_e0))
{goto kapak;
delay_ms(80);}
if(sayac<10)
{if(saat<10)
if(saniye<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:0%d:0%d",saat,sayac,saniye);
delay_ms(150);
goto dur;
}
else{
lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:0%d:%d",saat,sayac,saniye);
delay_ms(150);
goto dur;}
else{
if(saniye<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:0%d:0%d",saat,sayac,saniye);
delay_ms(150);
goto dur;}
else{
lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:0%d:%d",saat,sayac,saniye);
delay_ms(150);
goto dur;}}}
if(saat<10)
{if(saniye<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:%d:0%d",saat,sayac,saniye);
delay_ms(150);
goto dur;}
else{
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"0%d:%d:%d",saat,sayac,saniye);
delay_ms(150);
goto dur;}}}
if(saniye<10)
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:%d:0%d",saat,sayac,saniye);
delay_ms(150);
goto dur;}
else
{lcd_init();
lcd_gotoxy(3,1);
printf(lcd_putc,"?");
lcd_gotoxy(5,2);
printf(lcd_putc,"%d:%d:%d",saat,sayac,saniye);
delay_ms(150);
goto dur;}
bitir:
output_low(pin_d0);
goto bak;
kapak:
output_low(pin_d0);
sayac=saat=birler=onlar=sbirler=sonlar=i=0;
goto bak;
saniyegecikmesi:
i++;
delay_ms(87);
if(input(pin_e0))
{goto kapak;
delay_ms(150);}
if(input(pin_a0))
{goto calistir;
delay_ms(150);}
if(input(pin_a5))
{delay_ms(150);
sayac=sayac+1;
if(sayac>59)
{sayac=sayac-60;
saat=saat+1;}
goto goster;}
if(input(pin_a4))
{delay_ms(150);
sayac=sayac+20;
if(sayac>59)
{sayac=sayac-60;
saat=saat+1;}
goto goster;}
if(input(pin_a3))
{delay_ms(150);
if(sayac<1)
{if(saat>0)
{saat=saat-1;
sayac=sayac+59;}
else
sayac=0;}
else
sayac=sayac-1;
goto goster;}
if(input(pin_a2))
{delay_ms(150);
if(sayac<20)
{if(saat>0)
{saat=saat-1;
sayac=sayac+40 ;}
else
sayac=0;}
else
sayac=sayac-20;}
if(i==12)
goto calistir;
else
goto saniyegecikmesi;
}}