Trafik ışıklarına kesme

Başlatan ican43, 26 Şubat 2018, 12:15:28

ican43

Selam Arkadaşlar ana programda belirttiğim sistem normal trafik ışıkların çalışmasıdır. Ben ao girişine herhangi bir anda uyguladığım kesme veya sinyal ile 2. ve 4. çıkış sürekli yanacak,0-1-6-5 çıkışları sönecek,3.çıkış yanıp sönecek. ben aynı veya farklı uca uyguladığım tekrar kesme veya sinyal ile ışıklar normal trafik düzenine göre çalışmaya devam edecek. Trafik ışık akısı tamam lakin kesme veya sinyal ile ani durdurma(yani istenilen şartlarda çalışma) yapamadım. Daha doğrusu kesme işlemini tam anlamadığım için yapamadım. Yardımcı olursanız sevinirim. Allah'a emanet olun

#include <16f877A.h>
#fuses XT,NOWDT,NOPUT,NOPROTECT,NOLVP,NOCPD,NOBROWNOUT
#use delay(clock=4000000)
#use fast_io(a)//port yonlendirme komutları a portu için geçerli
#use fast_io(b)//port yonlendirme komutları b portu için geçerli
#byte port_a=5
#byte port_b=6
#int_EXT
void ext_kesmesi()
{
     
        if (input(pin_a0)==1)
        {
         output_high(pin_b3);
         delay_ms(200);
         output_low(pin_b3);
         delay_ms(200);
        
         delay_ms(1000);
         output_high(pin_b4);
         output_high(pin_b2);     
            
         output_low(pin_b0);
         output_low(pin_b6);
         output_low(pin_b1);
         output_low(pin_b5);
        }
}
/*************************ANA PROGRAM FONKSİYONU*********************/
void main()
{  
   
   set_tris_a(0xff);// a portu giriş
   set_tris_b(0x00);// b portu çıkış
   output_b(0x00);
   while(1)
 {    
                    
      {
      output_b(0x00);
      output_high(pin_b0);
      output_high(pin_b6);
      delay_ms(3000);
      }
      
      {
      output_high(pin_b1);
      output_high(pin_b5);
      delay_ms(2000);
      output_low(pin_b0);
      output_low(pin_b1);
      output_low(pin_b6);
      output_low(pin_b5);
      delay_ms(20);
      }
      {
      output_high(pin_b2);
      output_high(pin_b4);
      delay_ms(3000);
      }
      {
      output_high(pin_b1);
      output_high(pin_b5);
      delay_ms(2000);
      output_low(pin_b2);
      output_low(pin_b1);
      output_low(pin_b4);
      output_low(pin_b5);
      delay_ms(20);
      }
   
   }
}