pic 16f877 ve KS58015 dtmf encoder kullanarak dtmf sinyalleri ürettim....ve bu dtmf sinyallerini mt8870 decoder devresinin girişine bağladım...mt8870 decoder ın çıkışlarına da 4 led bağladım...
pic ile encoder a gönderdiğim kodları decoder da tekrar ledler yardımıyla görebilmek için....
fakat ledler yanmıyor.....herseyi kontrol ettim anlamadım....
pice attığım programı göstereyim
#include <16f877A.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#define enable pin_d0
#use fast_io(b)
#use fast_io(d)
#use fast_io(a)
int i;
char tel[7]={'7','5','7','7','5','1','1'};
char adres[5]={'I','Z','M','I','T'};
//int digit[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void main()
{
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_ccp1(CCP_OFF);
setup_ccp2(CCP_OFF);
set_tris_b(0x00);
set_tris_d(0x00);
set_tris_c(0x00);
output_b(0x00);
output_d(0x00);
output_a(0x00);
while(1){
for(i=0;i<7;i++){
output_high(pin_a0);
output_b(tel);
delay_ms(0.1);
output_high(enable);
delay_ms(0.28);
delay_ms(40);
output_low(enable);
delay_ms(65);
}
output_low(pin_a0);
for(i=0;i<3;i++){
output_b(0x00);
delay_ms(150);
output_b(0xFF);
delay_ms(150);
}
for(i=0;i<5;i++){
output_high(pin_a0);
output_b(adres);
delay_ms(0.1);
output_high(enable);
delay_ms(0.28);
delay_ms(40);
output_low(enable);
delay_ms(65);
swap(adres);
output_b(adres);
delay_ms(0.1);
output_high(enable);
delay_ms(0.28);
delay_ms(40);
output_low(enable);
delay_ms(65);
}
output_low(pin_a0);
for(i=0;i<3;i++){
output_b(0x00);
delay_ms(150);
output_b(0xFF);
delay_ms(150);
}
}}
acaba decoder gelen sinyalleri çözebilmesi için zaman aralıklarına mı ihtiyac var...yardım edebilrimisin