buton kontrol

Başlatan kısi, 14 Eylül 2010, 07:27:05

kısi

bn bir telefon kontrol uygulaması yapmak istiyorum.sitede bununla ilgili birçok konu açılmış.bnde basit bir kod yazarak işe başladım.pice şifre girildikten sonra tuşa basılarak ilgili led yanacak.gerçekte bunu cm8870 ile yapacam fakat proteusta olmadığı için 74c922 entegresini kullandım..telefon gelen pals sinyallerinide harici clock girişleri olarak ayarladım.yani mini bir smülasyon..ama şifre sorma kısmını yazamadım . yardımcı olursanız sevinirim.devre şeması ve kod aşağıdadır.

char const key[]={1,2,3,0,4,5,6,0,7,8,9,0,0xF,0,0xF,0};
char const sifre[3]={};
int i;
#byte porta=0x05
#int_TIMER1
void  TIMER1_isr(void) 
{  set_timer1(65535);
output_low(pin_d7);


}

#int_TIMER0
void  TIMER0_isr(void) 
{ set_timer0(254);
output_high(pin_d7);



}



void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_EXT_L_TO_H|RTCC_DIV_2);
   setup_timer_1(T1_EXTERNAL|T1_DIV_BY_1);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   enable_interrupts(INT_TIMER1);
   enable_interrupts(INT_TIMER0);
   enable_interrupts(GLOBAL);
    set_timer0(254);
    set_timer1(65535);
    
    while(1)
   { 
     sifreoku:
    { for(i=0;i<3;i++)
  {  sifre[i]=key[porta]; }
    if(sifre[0]==1 && sifre[1]==2 && sifre[2]==3)
    
    { output_high(pin_d3);
     
       if(porta==0x00) output_high(pin_d0);
        if(porta==0x01) output_high(pin_d1);
        if(porta==0x02) output_high(pin_d2);
        if(porta==0x03) output_low(pin_d0);
        if(porta==0x04) output_low(pin_d1);
        if(porta==0x05) output_low(pin_d2);
        
      } 
      else  { goto sifreoku;  }
    }}}
   



kısi

resimi kısayoldan ekleyemedim nedense.rapidde aşağıdan ekledim.
http://rapidshare.com/files/418930127/picc.rar