#device PIC16F877A
#include <16f877a.h>
#fuses xt,nowdt,noprotect, nobrownout, nolvp, noput, nowrt, nocpd
#use delay (clock=4000000)
#use rs232(baud=9600,xmit=pin_C6, rcv=pin_C7, parity=N, stop=1, Bits=8)
// haberleşme ayarları bu kod ile yapılmaktadır . xmit veri gönderilen TX pininin hangi pin olacağını ifade // eder.
//rcv veri alınan RX pininin hangi pin olacağını ifade eder.
// baud haberleşme hızımızın değerini ifade eder.
// burada mesaj gönderme fonksiyonu tanımlanacaktır.
void mesaj_gonder()
{ //fonksiyon başlangıcı
// mesaj göndermek için modüle gönderilmesi gereken komutlar
printf("AT+CMGS=");
putc(34); // "
//mesaj gönderilecek telefonun numarası
printf("+905351084938");
putc(34); // "
putc(13); // CR
delay_ms(1000);
// gönderilecek olan mesaj girilir.
printf("Sistem Acildi !");
putc(26); // CTRL +Z tuş kombinasyonunun ASCII karşılığı
delay_ms(5000);
} //fonksiyon sonu
// burada arama yapma fonksiyonu tanımlanacaktır.
void arama_yap()
{ //fonksiyon başlangıcı
printf("ATD");
// arama yapılacak telefon numarası girilir.
printf("+905351084938");
printf(";");
putc(13); // CR
delay_ms(10000);
printf("ATH");
// aramayı sonlandırmak için gerekli olan AT komutu ATH dir.
putc(13);
delay_ms(3000);
} //fonksiyon sonu
void main() // ANA FONKSİYON BAŞLANGICI
{
// PİC16F877A için gerekli olan konfigirasyon ayarları
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_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
mesaj_gonder();
arama_yap();
while(1); // do while döngüsü sonu , while (1) sürekli tekrarla anlamındadır.
} // ANA FONSİYON SONU