16f84 12 buton ve bir led zamanlama problemi

Başlatan yargicim, 26 Mart 2012, 23:21:51

yargicim

Öncelikle herkese iyi geceler. Bu bir ödev değil evim için bir uygulamadır. Bınu belirtmek isterim.
Sorum şu şekilde 16f84'ün port a0 çıkış ve diğer bütün bacaklarını giriş yaparak, her bir buton basıldığında o programın alt dalı çalışması erekiyor. Yani port a1 lojik1 olduğunda (port a0) ledi 10 sn yanacak 5 dakika sönük kalacak ve bu şekilde buton bırakılana kadar tekrar edecek A2 basılınca 10 dakika her bir çıkışta 5 er dakika artarak devam edecek. Ben programı yazdım ama nerede hata yaptığımı bulamıyorum. Yardım ederseniz sevinirim.
Yadığım Program:
#include "C:\Documents and Settings\Administrator\Desktop\Yeni Klasör (2)\BLOCAN.h"

  int a;
void main()
{

   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);

   set_tris_a(0xFE);
   set_tris_b(0xFF);
   while (1)
   {
   if (input(pin_a1))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<05;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_a2))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<10;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_a3))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<15;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_a4))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<20;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_b0))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<25;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_b1))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<30;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_b2))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<35;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_b3))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<40;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_b4))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<45;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_b5))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<50;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_b6))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<55;a++) delay_ms(60000);  //
   }
   while (1)
   {
   if (input(pin_b7))
   output_high(pin_a1);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<60;a++) delay_ms(60000);  //
   }
   }

omereliusuk

while (1)
   {
   if (input(pin_a1))
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<05;a++) delay_ms(60000);  //
   }

yerine;
while (!input(pin_a1))
   {
   output_high(pin_a0);
   delay_ms(500);
   output_low(PIN_a0);
   for(a=0;a<05;a++) delay_ms(60000);  //
   }


hepsinde bunu yap.

yargicim

ustam dediğinizi yaptım ancak similasyonda devreyi ilk çalıştırınca led 5 sn yanıyor sönüyor ve bir daha yanmıyor. Hatam nerede acaba

yargicim

lütfen yardım edin içinden çıkamıyorum nasıl yapacağımı bulamadım :'(