// --------------------------------------------------------------------------------------------------------------------------------
#include <18F2550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN // dont change
#use delay(clock=48000000) // dont change
#build (reset=0x1000, interrupt=0x1008) // new addresses
#org 0x0,0xfff {} // reserved space
#include <lcd_flex.c>
#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1, bits=8)
#define CTRLZ 0x1A
// --------------------------------------------------------------------------------------------------------------------------------
boolean kontrol=false;
char klavye[80]=" "; // klavye isminde 80 üyeli bir dizi tanımlanıyor
int i=0,t=0,degisim=0,kesme=0;
#int_rda // RX ucuna veri gelince meydane gelen kesme
void serihaberlesme_kesmesi (void)
{
disable_interrupts(int_rda); // int_rda kesmesini pasif yap
degisim=1;
klavye[i]=getc();
i++;
output_low(pin_c2); //c2 pinine led bağlı
enable_interrupts(int_rda);
return;
}
/********* ANA PROGRAM FONKSİYONU********/
void main ( )
{
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
lcd_init(); // LCD'yi hazırla
enable_interrupts(GLOBAL); // Aktif edilen tüm kesmelere izin ver
//!printf("ATE 0\r\n"); //!bu kodu sadece gsm modül ilk açıldığında bir defa aktif ediyorum. sonra pasifleştiriyorum.
//! delay_ms(20);
while(1) // Sonsuz döngü
{
enable_interrupts(int_rda);
if (input(pin_A0)==0)
{
delay_ms(10);
while(input(pin_A0)==0);
i=0;
output_high(pin_c2);
delay_ms(200);
printf(lcd_putc,"\f");
printf("AT&K0\r\n");
}
if (input(pin_A1)==0)
{
delay_ms(20);
while(input(pin_A1)==0);
i=0;
output_high(pin_c2);
delay_ms(200);
printf(lcd_putc,"\f");
printf(lcd_putc,"\f");
printf("AT\r\n");
}
if(degisim==1)
{
degisim=0;
printf(lcd_putc,"\f");
kontrol=false;
if(klavye[1]==0x0a)
t=2;
while(kontrol==false)
{
printf(lcd_putc,"%c",klavye[t]);
t++;
if(klavye[t]==0x0d)
kontrol=true;
}
}
}
} // End of main