nyguist
Üye
- Katılım
- 14 Haz 2010
- Mesajlar
- 14
- Puanları
- 1
arkadaşlar bn telefon ile kontrol devresi tasarlamak istiyorum.bunun için pice bir şifre girilecek ve şifre doğruysa tuş takımındaki sayılara göre çıkış alacam.fakat ŞİFRE OKUTMA KISMINI bir türlü yazamadım. bunu gerçekte cm8870 ile yapacam fakat proteusta olmadığı için ona en yakın olan 74c922 entegresini kullandm.internette dolaşan telefon kontrol programlarına benzer birşey.. fakat c kodu ile yapan yok galiba yardımcı olursanız sevinirim.
char const key[]={1,2,3,0,4,5,6,0,7,8,9,0,0xF,0,0xF,0};
char const sifre[5]={};
#byte porta=0x05
int c;
#int_EXT
void EXT_isr(void)
{ output_high(pin_d7);
}
#int_TIMER1
void TIMER1_isr(void)
{ set_timer1(65535);
output_low(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_INTERNAL|RTCC_DIV_1);
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_EXT);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_timer1(65535);
output_high(pin_d7);
while(1)
{ do
{ c=0;
sifre[c]=key[porta];
c++;
}while(sifre[0]==1 && sifre[1]==2 && sifre[2]==3&& sifre[3]==4&& sifre[4]==5);
// (***bu kısmi almıyor işte sorun burada**)
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_high(pin_d3);
if(porta==0x04)output_low(pin_d0);
if(porta==0x05)output_low(pin_d1);
if(porta==0x06)output_low(pin_d2);
if(porta==0x07)output_low(pin_d3);
}}
char const key[]={1,2,3,0,4,5,6,0,7,8,9,0,0xF,0,0xF,0};
char const sifre[5]={};
#byte porta=0x05
int c;
#int_EXT
void EXT_isr(void)
{ output_high(pin_d7);
}
#int_TIMER1
void TIMER1_isr(void)
{ set_timer1(65535);
output_low(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_INTERNAL|RTCC_DIV_1);
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_EXT);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
set_timer1(65535);
output_high(pin_d7);
while(1)
{ do
{ c=0;
sifre[c]=key[porta];
c++;
}while(sifre[0]==1 && sifre[1]==2 && sifre[2]==3&& sifre[3]==4&& sifre[4]==5);
// (***bu kısmi almıyor işte sorun burada**)
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_high(pin_d3);
if(porta==0x04)output_low(pin_d0);
if(porta==0x05)output_low(pin_d1);
if(porta==0x06)output_low(pin_d2);
if(porta==0x07)output_low(pin_d3);
}}